Iterator<EObject> it = constraint.eAllContents(); while (it.hasNext()) { EObject obj = it.next();
private void gatherConstraint(Constraint constraint, PatternModelAcceptor<?> acceptor) throws SpecificationBuilderException { if (constraint instanceof EClassifierConstraint) { // EMF-specific EClassifierConstraint classifierConstraint = (EClassifierConstraint) constraint; gatherClassifierConstraint(classifierConstraint, acceptor); } else if (constraint instanceof PatternCompositionConstraint) { PatternCompositionConstraint compositionConstraint = (PatternCompositionConstraint) constraint; gatherCompositionConstraint(compositionConstraint, acceptor); } else if (constraint instanceof CompareConstraint) { CompareConstraint compare = (CompareConstraint) constraint; gatherCompareConstraint(compare, acceptor); } else if (constraint instanceof PathExpressionConstraint) { PathExpressionConstraint pathExpression = (PathExpressionConstraint) constraint; gatherPathExpression(pathExpression, acceptor); } else if (constraint instanceof CheckConstraint) { final CheckConstraint check = (CheckConstraint) constraint; gatherCheckConstraint(check, acceptor); } else { throw new SpecificationBuilderException("Unsupported constraint type {1} in pattern {2}.", new String[] { constraint.eClass().getName(), patternFQN }, "Unsupported constraint type", pattern); } }