diff options
author | Juergen Haug | 2019-10-04 06:52:08 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2019-10-04 06:52:08 +0000 |
commit | 9d2dde8b172e5e981b1f1abeec1b401aaec0001c (patch) | |
tree | 454a1501e9732f4427663075ee084c9a40cdbc40 | |
parent | 693633327c688590c724e35e6fc56adf6e7889cb (diff) | |
parent | 0082cd5905a55fbbaa3e439f28eb5578edf7c1ee (diff) | |
download | org.eclipse.etrice-9d2dde8b172e5e981b1f1abeec1b401aaec0001c.tar.gz org.eclipse.etrice-9d2dde8b172e5e981b1f1abeec1b401aaec0001c.tar.xz org.eclipse.etrice-9d2dde8b172e5e981b1f1abeec1b401aaec0001c.zip |
Merge "Bug 550895 - [editor] Initial transition validation error"v_2.0.0-RC15
-rw-r--r-- | plugins/org.eclipse.etrice.core.fsm/src/org/eclipse/etrice/core/fsm/naming/FSMFragmentProvider.java | 172 |
1 files changed, 91 insertions, 81 deletions
diff --git a/plugins/org.eclipse.etrice.core.fsm/src/org/eclipse/etrice/core/fsm/naming/FSMFragmentProvider.java b/plugins/org.eclipse.etrice.core.fsm/src/org/eclipse/etrice/core/fsm/naming/FSMFragmentProvider.java index 5299a98bb..569dfa800 100644 --- a/plugins/org.eclipse.etrice.core.fsm/src/org/eclipse/etrice/core/fsm/naming/FSMFragmentProvider.java +++ b/plugins/org.eclipse.etrice.core.fsm/src/org/eclipse/etrice/core/fsm/naming/FSMFragmentProvider.java @@ -24,7 +24,6 @@ import org.eclipse.etrice.core.common.base.AnnotationType; import org.eclipse.etrice.core.common.base.util.BaseSwitch; import org.eclipse.etrice.core.common.naming.BaseFragmentProvider; import org.eclipse.etrice.core.fsm.fSM.ChoicePoint; -import org.eclipse.etrice.core.fsm.fSM.FSMFactory; import org.eclipse.etrice.core.fsm.fSM.FSMModel; import org.eclipse.etrice.core.fsm.fSM.FSMPackage; import org.eclipse.etrice.core.fsm.fSM.InitialTransition; @@ -273,16 +272,18 @@ public class FSMFragmentProvider extends BaseFragmentProvider { protected Transition getTransition(ModelComponent mc, String remainder) { StateGraph sg = getStateGraph(mc, remainder); - int begin = remainder.lastIndexOf(SEP); - if (begin<0) - begin = 0; - else - ++begin; - - String name = remainder.substring(begin, remainder.length()); - for (Transition t : sg.getTransitions()) { - if (t.getName().equals(name)) { - return t; + if (sg!=null) { + int begin = remainder.lastIndexOf(SEP); + if (begin<0) + begin = 0; + else + ++begin; + + String name = remainder.substring(begin, remainder.length()); + for (Transition t : sg.getTransitions()) { + if (t.getName().equals(name)) { + return t; + } } } @@ -292,17 +293,19 @@ public class FSMFragmentProvider extends BaseFragmentProvider { protected InitialTransition getInitialTransition(ModelComponent mc, String remainder) { StateGraph sg = getStateGraph(mc, remainder); - int begin = remainder.lastIndexOf(SEP); - if (begin<0) - begin = 0; - else - ++begin; - - String name = remainder.substring(begin, remainder.length()); - if (name.equals(INIT_TRANS)) { - for (Transition t : sg.getTransitions()) { - if (t instanceof InitialTransition) - return (InitialTransition) t; + if (sg!=null) { + int begin = remainder.lastIndexOf(SEP); + if (begin<0) + begin = 0; + else + ++begin; + + String name = remainder.substring(begin, remainder.length()); + if (name.equals(INIT_TRANS)) { + for (Transition t : sg.getTransitions()) { + if (t instanceof InitialTransition) + return (InitialTransition) t; + } } } @@ -312,16 +315,18 @@ public class FSMFragmentProvider extends BaseFragmentProvider { protected RefinedTransition getRefinedTransition(ModelComponent mc, String remainder) { StateGraph sg = getStateGraph(mc, remainder); - int begin = remainder.lastIndexOf(SEP); - if (begin<0) - begin = 0; - else - ++begin; - - String name = remainder.substring(begin, remainder.length()); - for (RefinedTransition t : sg.getRefinedTransitions()) { - if (t.getTarget().getName().equals(name)) - return t; + if (sg!=null) { + int begin = remainder.lastIndexOf(SEP); + if (begin<0) + begin = 0; + else + ++begin; + + String name = remainder.substring(begin, remainder.length()); + for (RefinedTransition t : sg.getRefinedTransitions()) { + if (t.getTarget().getName().equals(name)) + return t; + } } return null; @@ -330,16 +335,18 @@ public class FSMFragmentProvider extends BaseFragmentProvider { protected ChoicePoint getChoicePoint(ModelComponent mc, String remainder) { StateGraph sg = getStateGraph(mc, remainder); - int begin = remainder.lastIndexOf(SEP); - if (begin<0) - begin = 0; - else - ++begin; - - String name = remainder.substring(begin, remainder.length()); - for (ChoicePoint cp : sg.getChPoints()) { - if (cp.getName().equals(name)) { - return cp; + if (sg!=null) { + int begin = remainder.lastIndexOf(SEP); + if (begin<0) + begin = 0; + else + ++begin; + + String name = remainder.substring(begin, remainder.length()); + for (ChoicePoint cp : sg.getChPoints()) { + if (cp.getName().equals(name)) { + return cp; + } } } @@ -349,16 +356,18 @@ public class FSMFragmentProvider extends BaseFragmentProvider { protected TrPoint getTrPoint(ModelComponent mc, String remainder) { StateGraph sg = getStateGraph(mc, remainder); - int begin = remainder.lastIndexOf(SEP); - if (begin<0) - begin = 0; - else - ++begin; - - String name = remainder.substring(begin, remainder.length()); - for (TrPoint tp : sg.getTrPoints()) { - if (tp.getName().equals(name)) { - return tp; + if (sg!=null) { + int begin = remainder.lastIndexOf(SEP); + if (begin<0) + begin = 0; + else + ++begin; + + String name = remainder.substring(begin, remainder.length()); + for (TrPoint tp : sg.getTrPoints()) { + if (tp.getName().equals(name)) { + return tp; + } } } @@ -368,16 +377,18 @@ public class FSMFragmentProvider extends BaseFragmentProvider { protected State getState(ModelComponent mc, String remainder) { StateGraph sg = getStateGraph(mc, remainder); - int begin = remainder.lastIndexOf(SEP); - if (begin<0) - begin = 0; - else - ++begin; - - String name = remainder.substring(begin, remainder.length()); - for (State s : sg.getStates()) { - if (s.getName().equals(name)) { - return s; + if (sg!=null) { + int begin = remainder.lastIndexOf(SEP); + if (begin<0) + begin = 0; + else + ++begin; + + String name = remainder.substring(begin, remainder.length()); + for (State s : sg.getStates()) { + if (s.getName().equals(name)) { + return s; + } } } @@ -386,27 +397,26 @@ public class FSMFragmentProvider extends BaseFragmentProvider { protected StateGraph getStateGraph(ModelComponent mc, String remainder) { StateGraph sg = mc.getStateMachine(); - if (sg==null) { - mc.setStateMachine(FSMFactory.eINSTANCE.createStateGraph()); - sg = mc.getStateMachine(); - } - int begin = 0; - int end = remainder.indexOf(SEP); - while (end>=0) { - String name = remainder.substring(begin, end); - boolean found = false; - for (State s : sg.getStates()) { - if (s.getName().equals(name)) { - sg = s.getSubgraph(); - found = true; - break; + + if (sg!=null) { + int begin = 0; + int end = remainder.indexOf(SEP); + while (end>=0) { + String name = remainder.substring(begin, end); + boolean found = false; + for (State s : sg.getStates()) { + if (s.getName().equals(name)) { + sg = s.getSubgraph(); + found = true; + break; + } } + if (!found) + return null; + + begin = end+1; + end = remainder.indexOf(SEP, begin); } - if (!found) - return null; - - begin = end+1; - end = remainder.indexOf(SEP, begin); } return sg; |