public void addLinkToOperation(GElementTMOperation op, String pattern) { Set symbols = Tool.symbolsInPattern(pattern); Set variables = Tool.variablesInPattern(pattern); if (symbols.size() == 0) { operation.addLinkToOperation(op.operation, "", variables); } else { Iterator iterator = symbols.iterator(); while (iterator.hasNext()) { String symbol = (String) iterator.next(); operation.addLinkToOperation(op.operation, symbol, variables); } } }
public void removeLinkToOperation(GElementTMOperation op, String pattern) { Set symbols = Tool.symbolsInPattern(pattern); if (symbols.size() == 0) { operation.removeLinkToOperation(op.operation, ""); } else { Iterator iterator = symbols.iterator(); while (iterator.hasNext()) { String symbol = (String) iterator.next(); operation.removeLinkToOperation(op.operation, symbol); } } }
public GLink getTransition(FATransition transition) { ListIterator e = elements.listIterator(); while (e.hasNext()) { GElement element = (GElement) e.next(); if (element.getClass().equals(GLink.class)) { GLink link = (GLink) element; if (getState1(link).state.name.equals(transition.s1) && getState2(link).state.name.equals(transition.s2) && Tool.symbolsInPattern(link.pattern).contains(transition.symbol)) { return link; } } } return null; }
public void reconstruct() { elements.clear(); List stateNames = machine.getStateList(); ListIterator iterator = stateNames.listIterator(stateNames.size()); int x = 0; int y = 0; while (iterator.hasPrevious()) { addElement(new GElementFAState((FAState) iterator.previous(), 100 + x * 200, 50 + y * 200)); x++; if (x > 4) { y++; x = 0; } } List transitions = machine.getTransitions().getTransitions(); iterator = transitions.listIterator(); while (iterator.hasNext()) { FATransition transition = (FATransition) iterator.next(); GElementFAState s1 = getState(transition.s1); GElementFAState s2 = s1; if (transition.s1.equals(transition.s2) == false) s2 = getState(transition.s2); GLink link = getLink(s1, s2); if (link == null) addElement( new GLink( s1, GElementFAState.ANCHOR_CENTER, s2, GElementFAState.ANCHOR_CENTER, GLink.SHAPE_ARC, transition.symbol, 20)); else link.pattern = Tool.addSymbolToPattern(link.pattern, transition.symbol); } }