@Override public Iterator<CsmOffsetableDeclaration> getDeclarations(CsmNamespace namespace, CsmFilter filter) { if (namespace instanceof NamespaceImpl){ Iterator<CsmOffsetableDeclaration> res = analyzeFilter((NamespaceImpl)namespace, filter); if (res != null) { return res; } return ((NamespaceImpl)namespace).getDeclarations(filter); } return namespace.getDeclarations().iterator(); }
private static CsmDeclaration findInnerDeclaration(CsmDeclaration outDecl, int offset) { assert (isInObject(outDecl, offset)) : "must be in outDecl object!"; Iterator<? extends CsmDeclaration> it = null; if (CsmKindUtilities.isNamespace(outDecl)) { CsmNamespace ns = (CsmNamespace)outDecl; it = ns.getDeclarations().iterator(); } else if (CsmKindUtilities.isNamespaceDefinition(outDecl)) { it = ((CsmNamespaceDefinition) outDecl).getDeclarations().iterator(); } else if (CsmKindUtilities.isClass(outDecl)) { CsmClass cl = (CsmClass)outDecl; it = cl.getMembers().iterator(); } else if (CsmKindUtilities.isEnum(outDecl)) { CsmEnum en = (CsmEnum)outDecl; it = en.getEnumerators().iterator(); } return findInnerDeclaration(it, offset); }
if (CsmKindUtilities.isNamespace(outDecl)) { CsmNamespace ns = (CsmNamespace)outDecl; it = ns.getDeclarations().iterator(); } else if (CsmKindUtilities.isNamespaceDefinition(outDecl)) { it = ((CsmNamespaceDefinition) outDecl).getDeclarations().iterator();
private CsmClassifier findOtherClassifier(CsmClassifier out) { CsmNamespace ns = BaseUtilitiesProviderImpl.getImpl()._getClassNamespace(out); CsmClassifier cls = null; if (ns != null) { CsmUID<?> uid = UIDs.get(out); CharSequence fqn = out.getQualifiedName(); Collection<CsmOffsetableDeclaration> col; if (ns instanceof NamespaceImpl) { col = ((NamespaceImpl)ns).getDeclarationsRange(fqn, new Kind[]{Kind.CLASS, Kind.UNION, Kind.STRUCT, Kind.ENUM, Kind.TYPEDEF, Kind.TYPEALIAS, Kind.TEMPLATE_DECLARATION, Kind.TEMPLATE_SPECIALIZATION, Kind.CLASS_FORWARD_DECLARATION, Kind.ENUM_FORWARD_DECLARATION}); } else { col = ns.getDeclarations(); } for (CsmDeclaration decl : col) { if (CsmKindUtilities.isClassifier(decl) && decl.getQualifiedName().equals(fqn)) { if (!UIDs.get(decl).equals(uid)) { cls = (CsmClassifier)decl; if (!ForwardClass.isForwardClass(cls)) { break; } } } } } return cls; }
Collection<CsmOffsetableDeclaration> decl = namespace.getDeclarations(); if (decl != null) { for (CsmDeclaration d : decl) {