/** * @param pattern * @return true if the pattern contains xbase check() or eval() expressions, false otherwise. */ public static boolean hasXBaseExpression(Pattern pattern) { final TreeIterator<EObject> eAllContents = pattern.eAllContents(); while (eAllContents.hasNext()) { if (eAllContents.next() instanceof XExpression) return true; } return false; }
public TreeIterator<Notifier> getAllContents() { TreeIterator<Notifier> result = EcoreUtil.getAllContents(Collections.singleton(this)); result.next(); return result; }
public TreeIterator<Notifier> getAllContents() { TreeIterator<Notifier> result = EcoreUtil.getAllContents(Collections.singleton(this)); result.next(); return result; }
/** * @param pattern * @return true if the pattern contains xbase check() or eval() expressions, false otherwise. */ public static boolean hasXBaseExpression(Pattern pattern) { final TreeIterator<EObject> eAllContents = pattern.eAllContents(); while (eAllContents.hasNext()) { if (eAllContents.next() instanceof XExpression) return true; } return false; }
protected void highlightElementRecursively(EObject element, IHighlightedPositionAcceptor acceptor, CancelIndicator cancelIndicator) { TreeIterator<EObject> iterator = EcoreUtil2.eAll(element); while (iterator.hasNext()) { EObject object = iterator.next(); if (highlightElement(object, acceptor, cancelIndicator)) { iterator.prune(); } } }
/** * @return all xbase check() or eval() expressions in the pattern */ public static Collection<XExpression> getAllTopLevelXBaseExpressions(EObject patternOrBody) { final List<XExpression> result = new ArrayList<XExpression>(); final TreeIterator<EObject> eAllContents = patternOrBody.eAllContents(); while (eAllContents.hasNext()) { final EObject content = eAllContents.next(); if (content instanceof XExpression) { result.add((XExpression) content); // do not include subexpressions eAllContents.prune(); } } return result; }
/** * @return all xbase check() or eval() expressions in the pattern */ public static Collection<XExpression> getAllTopLevelXBaseExpressions(EObject patternOrBody) { final List<XExpression> result = new ArrayList<>(); final TreeIterator<EObject> eAllContents = patternOrBody.eAllContents(); while (eAllContents.hasNext()) { final EObject content = eAllContents.next(); if (content instanceof XExpression) { result.add((XExpression) content); // do not include subexpressions eAllContents.prune(); } } return result; }
public List<EAnnotation> getAllNestedAnnotations(EAnnotation eAnnotation) { List<EAnnotation> result = new ArrayList<EAnnotation>(); for (TreeIterator<?> i = eAnnotation.eAllContents(); i.hasNext();) { Object content = i.next(); if (content instanceof EAnnotation) { result.add((EAnnotation)content); } else { i.prune(); } } return result; }
@SuppressWarnings("unchecked") public static <T extends EObject> List<T> getAllContentsOfType(EObject ele, Class<T> type) { List<T> result = new ArrayList<T>(); TreeIterator<EObject> allContents = ele.eAllContents(); while (allContents.hasNext()) { EObject object = allContents.next(); if (type.isAssignableFrom(object.getClass())) { result.add((T) object); } } return result; }
public List<EAnnotation> getAllNestedAnnotations(EAnnotation eAnnotation) { List<EAnnotation> result = new ArrayList<EAnnotation>(); for (TreeIterator<?> i = eAnnotation.eAllContents(); i.hasNext();) { Object content = i.next(); if (content instanceof EAnnotation) { result.add((EAnnotation)content); } else { i.prune(); } } return result; }
@Override public Iterable<JvmDeclaredType> getLocallyDefinedTypes(XtextResource resource) { final List<JvmDeclaredType> locallyDefinedTypes = newArrayList(); for (TreeIterator<EObject> i = resource.getAllContents(); i.hasNext();) { EObject next = i.next(); if (next instanceof JvmDeclaredType) { JvmDeclaredType declaredType = (JvmDeclaredType) next; locallyDefinedTypes.add(declaredType); addInnerTypes(declaredType, new IAcceptor<JvmDeclaredType>() { @Override public void accept(JvmDeclaredType t) { locallyDefinedTypes.add(t); } }); i.prune(); } if(next instanceof XExpression) { i.prune(); } } return locallyDefinedTypes; }
@Override public LinkedHashSet<URI> get() { TreeIterator<EObject> iterator = resource.getAllContents(); final LinkedHashSet<URI> uniqueImportURIs = new LinkedHashSet<URI>(10); while (iterator.hasNext()) { EObject object = iterator.next(); if (object instanceof ImportDeclaration) { ImportDeclaration importDeclaration = (ImportDeclaration) object; processImportDeclaration(importDeclaration, resource, uniqueImportURIs); } } return uniqueImportURIs; } });
@Override protected boolean needSyntheticSelfVariable(XClosure closure, LightweightTypeReference typeRef) { JvmType jvmType = typeRef.getType(); TreeIterator<EObject> closureIterator = closure.eAllContents(); while (closureIterator.hasNext()) { EObject obj1 = closureIterator.next(); if (obj1 instanceof XClosure) { closureIterator.prune(); } else if (obj1 instanceof XtendTypeDeclaration) { TreeIterator<EObject> typeIterator = obj1.eAllContents(); while (typeIterator.hasNext()) { EObject obj2 = typeIterator.next(); if (obj2 instanceof XClosure) { typeIterator.prune(); } else if (obj2 instanceof XFeatureCall && isReferenceToSelf((XFeatureCall) obj2, jvmType)) { return true; } } closureIterator.prune(); } } return false; }
@SuppressWarnings("unchecked") public static <T extends EObject> List<T> getAllModelElementsOfType(Resource resource, Class<T> type) { final List<T> results = new LinkedList<T>(); if (resource != null) { final TreeIterator<EObject> iterator = resource.getAllContents(); while (iterator.hasNext()) { final EObject object = iterator.next(); if (type.isInstance(object)) results.add((T)object); } } return Collections.unmodifiableList(results); }
public List<EAnnotation> getAllAnnotations() { List<EAnnotation> result = new UniqueEList<EAnnotation>(); EPackage ePackage = getEcorePackage(); for (TreeIterator<?> i = ePackage.eAllContents(); i.hasNext(); ) { Object object = i.next(); if (object instanceof EPackage) { i.prune(); } else if (object instanceof EAnnotation) { result.add((EAnnotation)object); i.prune(); } } return result; }