{
List<Transition> colTransitions = new ArrayList<Transition>();
List<State> colTmpStates = new ArrayList<State>();
colTmpStates.add(in_oState);
while(!colTmpStates.isEmpty()) {
State oTmpState = colTmpStates.get(0);
colTmpStates.remove(oTmpState);
if(oTmpState.isComposite()) {
for(Region oRegion : oTmpState.getRegions())
for(Vertex oVertex: oRegion.getSubvertices())
if(oVertex instanceof State)
colTmpStates.add((State)oVertex);
}
if(oTmpState.isSubmachineState()) {
for(Region oRegion : oTmpState.getSubmachine().getRegions())
for(Vertex oVertex: oRegion.getSubvertices())
if(oVertex instanceof State)
colTmpStates.add((State)oVertex);
}
if(!oTmpState.equals(in_oState)) {
for(Transition oTransition : oTmpState.getOutgoings()) {
for(Trigger oOriginalTrigger : in_colTriggers) {
for(Trigger oTrigger : oTransition.getTriggers()) {
if(oTrigger.getEvent().equals(oOriginalTrigger.getEvent())) {
colTransitions.add(oTransition);
}