protected void collectChildren(E element, Set<E> result, Set<E> visited) { Iterable<E> children; if ((children = production.getSequentialChildren(element)) != null) collectChildrenSequence(element, children, result, visited); else if ((children = production.getAlternativeChildren(element)) != null) collectChildrenAlternative(element, children, result, visited); else if ((children = production.getUnorderedChildren(element)) != null) switch (unorderedStrategy) { case SEQUENCE: collectChildrenSequence(element, children, result, visited); break; case MULIT_ALTERNATIVE: collectChildrenUnorderedAlt(element, children, result, visited); break; } else { if (production.isMany(element) /* && filter(element) */) collectElement(element, result, visited); collectByParent(element, result, visited); } }
protected void collectChildren(E element, Set<E> result, Set<E> visited) { Iterable<E> children; if ((children = production.getSequentialChildren(element)) != null) collectChildrenSequence(element, children, result, visited); else if ((children = production.getAlternativeChildren(element)) != null) collectChildrenAlternative(element, children, result, visited); else if ((children = production.getUnorderedChildren(element)) != null) switch (unorderedStrategy) { case SEQUENCE: collectChildrenSequence(element, children, result, visited); break; case MULIT_ALTERNATIVE: collectChildrenUnorderedAlt(element, children, result, visited); break; } else { if (production.isMany(element) /* && filter(element) */) collectElement(element, result, visited); collectByParent(element, result, visited); } }