/** * Just produces debug representation */ public String toString() { String s = elements.toString(); if(isRequired()) s += '!'; if(isCollection()) s += '*'; return s; } }
/** * Forms a strongly connected component by doing a reverse DFS. */ private void formConnectedComponent(ConnectedComponent group) { if(belongsToSCC()) return; this.cc=group; group.add(this); for (Element prev : backEdges) prev.formConnectedComponent(group); }
/** * Builds a set of strongly connected components and puts them * all into the given set. */ public void buildStronglyConnectedComponents(List<ConnectedComponent> ccs) { // store visited elements - loop detection List<Element> visitedElements = new ArrayList<Element>(); for(Element cur=this; cur!=cur.prevPostOrder; cur=cur.prevPostOrder) { if(visitedElements.contains(cur)) { // if I've already processed cur element, I'm in a loop break; } else { visitedElements.add(cur); } if(cur.belongsToSCC()) continue; // start a new component ConnectedComponent cc = new ConnectedComponent(); ccs.add(cc); cur.formConnectedComponent(cc); } }
/** * Forms a strongly connected component by doing a reverse DFS. */ private void formConnectedComponent(ConnectedComponent group) { if(belongsToSCC()) return; this.cc=group; group.add(this); for (Element prev : backEdges) prev.formConnectedComponent(group); }
/** * Builds a set of strongly connected components and puts them * all into the given set. */ public void buildStronglyConnectedComponents(List<ConnectedComponent> ccs) { // store visited elements - loop detection List<Element> visitedElements = new ArrayList<Element>(); for(Element cur=this; cur!=cur.prevPostOrder; cur=cur.prevPostOrder) { if(visitedElements.contains(cur)) { // if I've already processed cur element, I'm in a loop break; } else { visitedElements.add(cur); } if(cur.belongsToSCC()) continue; // start a new component ConnectedComponent cc = new ConnectedComponent(); ccs.add(cc); cur.formConnectedComponent(cc); } }
/** * Just produces debug representation */ public String toString() { String s = elements.toString(); if(isRequired()) s += '!'; if(isCollection()) s += '*'; return s; } }
/** * Forms a strongly connected component by doing a reverse DFS. */ private void formConnectedComponent(ConnectedComponent group) { if(belongsToSCC()) return; this.cc=group; group.add(this); for (Element prev : backEdges) prev.formConnectedComponent(group); }
/** * Builds a set of strongly connected components and puts them * all into the given set. */ public void buildStronglyConnectedComponents(List<ConnectedComponent> ccs) { // store visited elements - loop detection List<Element> visitedElements = new ArrayList<Element>(); for(Element cur=this; cur!=cur.prevPostOrder; cur=cur.prevPostOrder) { if(visitedElements.contains(cur)) { // if I've already processed cur element, I'm in a loop break; } else { visitedElements.add(cur); } if(cur.belongsToSCC()) continue; // start a new component ConnectedComponent cc = new ConnectedComponent(); ccs.add(cc); cur.formConnectedComponent(cc); } }
/** * Just produces debug representation */ public String toString() { String s = elements.toString(); if(isRequired()) s += '!'; if(isCollection()) s += '*'; return s; } }
/** * Forms a strongly connected component by doing a reverse DFS. */ private void formConnectedComponent(ConnectedComponent group) { if(belongsToSCC()) return; this.cc=group; group.add(this); for (Element prev : backEdges) prev.formConnectedComponent(group); }
/** * Builds a set of strongly connected components and puts them * all into the given set. */ public void buildStronglyConnectedComponents(List<ConnectedComponent> ccs) { // store visited elements - loop detection List<Element> visitedElements = new ArrayList<Element>(); for(Element cur=this; cur!=cur.prevPostOrder; cur=cur.prevPostOrder) { if(visitedElements.contains(cur)) { // if I've already processed cur element, I'm in a loop break; } else { visitedElements.add(cur); } if(cur.belongsToSCC()) continue; // start a new component ConnectedComponent cc = new ConnectedComponent(); ccs.add(cc); cur.formConnectedComponent(cc); } }
/** * Just produces debug representation */ public String toString() { String s = elements.toString(); if(isRequired()) s += '!'; if(isCollection()) s += '*'; return s; } }
/** * Forms a strongly connected component by doing a reverse DFS. */ private void formConnectedComponent(ConnectedComponent group) { if(belongsToSCC()) return; this.cc=group; group.add(this); for (Element prev : backEdges) prev.formConnectedComponent(group); }
/** * Builds a set of strongly connected components and puts them * all into the given set. */ public void buildStronglyConnectedComponents(List<ConnectedComponent> ccs) { // store visited elements - loop detection List<Element> visitedElements = new ArrayList<Element>(); for(Element cur=this; cur!=cur.prevPostOrder; cur=cur.prevPostOrder) { if(visitedElements.contains(cur)) { // if I've already processed cur element, I'm in a loop break; } else { visitedElements.add(cur); } if(cur.belongsToSCC()) continue; // start a new component ConnectedComponent cc = new ConnectedComponent(); ccs.add(cc); cur.formConnectedComponent(cc); } }
/** * Just produces debug representation */ public String toString() { String s = elements.toString(); if(isRequired()) s += '!'; if(isCollection()) s += '*'; return s; } }
if(nameTokenCount!=0) propName.append("And"); propName.append(makeJavaName(cc.isCollection(),ge.getPropertyNameSeed())); nameTokenCount++; if(cc.isCollection()) m = m.makeRepeated(); if(!cc.isRequired()) m = m.makeOptional();
if(nameTokenCount!=0) propName.append("And"); propName.append(makeJavaName(cc.isCollection(),ge.getPropertyNameSeed())); nameTokenCount++; if(cc.isCollection()) m = m.makeRepeated(); if(!cc.isRequired()) m = m.makeOptional();
if(nameTokenCount!=0) propName.append("And"); propName.append(makeJavaName(cc.isCollection(),ge.getPropertyNameSeed())); nameTokenCount++; if(cc.isCollection()) m = m.makeRepeated(); if(!cc.isRequired()) m = m.makeOptional();
if(nameTokenCount!=0) propName.append("And"); propName.append(makeJavaName(cc.isCollection(),ge.getPropertyNameSeed())); nameTokenCount++; if(cc.isCollection()) m = m.makeRepeated(); if(!cc.isRequired()) m = m.makeOptional();
if(nameTokenCount!=0) propName.append("And"); propName.append(makeJavaName(cc.isCollection(),ge.getPropertyNameSeed())); nameTokenCount++; if(cc.isCollection()) m = m.makeRepeated(); if(!cc.isRequired()) m = m.makeOptional();