@Override public CharSequence getQualifiedName() { return wrapped.getQualifiedName(); }
private Pair(CsmNamespace ref, CsmProject proj) { this.fqn = ref.getQualifiedName(); this.proj = proj; }
@Override public String getItemText() { return displayFullNamespacePath ? pkg.getQualifiedName().toString() : pkg.getName().toString(); }
private void init(CsmNamespace ns){ id = ns.getQualifiedName(); project = ns.getProject(); name = ns.getQualifiedName(); qname = CVUtil.getNamespaceDisplayName(ns).toString(); if( namespaceImage == null ) { namespaceImage = CsmImageLoader.getImage(ns); } }
public void addRemovedNamespace(CsmNamespace ns) { // put in removed only if not added as "new" if (_getNewNamespaces().get(ns.getQualifiedName()) == null) { _getRemovedNamespaces().put(ns.getQualifiedName(), ns); getChangedProjects().add(ns.getProject()); } }
private static boolean fromStd(CsmScopeElement object) { CsmScope scope = object.getScope(); return CsmKindUtilities.isNamespace(scope) && "std".equals(((CsmNamespace)scope).getQualifiedName().toString()); // NOI18N } }
private static boolean filterAuto(CsmScopeElement object) { CsmScope scope = object.getScope(); return CsmKindUtilities.isNamespace(scope) && "std".equals(((CsmNamespace)scope).getQualifiedName().toString()); // NOI18N }
public void addNewNamespace(CsmNamespace ns) { // remove from removed if (_getRemovedNamespaces().remove(ns.getQualifiedName()) == null) { _getNewNamespaces().put(ns.getQualifiedName(), ns); getChangedProjects().add(ns.getProject()); } }
@Override public CharSequence getQualifiedName() { CsmNamespace ns = getNamespace(); return ns != null ? ns.getQualifiedName() : getName(); }
public static CharSequence getQualifiedName(CharSequence name, CsmNamespace parent) { if (parent != null && !parent.isGlobal()) { return CharSequenceUtils.concatenate(parent.getQualifiedName(), "::", name); // NOI18N } return name; }
NamespaceBaseKey(CsmNamespace ns) { super(((ProjectBase) ns.getProject()).getUnitId()); this.fqn = ns.getQualifiedName(); }
private CsmObject resolveInInlinedNamespacesImpl(CsmObject result, Set<CharSequence> checked, CsmNamespace namespace, CharSequence nameToken, AtomicBoolean outVisibility) { if (result == null || !outVisibility.get()) { for (CsmNamespace ns : namespace.getInlinedNamespaces()) { final CharSequence name = ns.getQualifiedName(); if (checked.add(name)) { String fqn = name + "::" + nameToken; // NOI18N if (fqn.startsWith("::")) { // NOI18N fqn = fqn.substring(2); } result = findClassifierUsedInFile(fqn, outVisibility); result = resolveInInlinedNamespacesImpl(result, checked, ns, nameToken, outVisibility); if (result != null && outVisibility.get()) { break; } } } } return result; }
/** * Return the name of the context of the scope element - * either namespace or (for file-level, such as C-style statics) file * (If the element is a nested class, return containing class' namespace) */ public static String getContextName(CsmScopeElement element) { CsmScope scope = element.getScope(); if( CsmKindUtilities.isClass(scope) ) { CsmClass cls = ((CsmClass) scope); CsmNamespace ns = getClassNamespace(cls); return ns.getQualifiedName().toString(); } else if( CsmKindUtilities.isNamespace(scope) ) { return ((CsmNamespace) scope).getQualifiedName().toString(); } else if( CsmKindUtilities.isFile(scope) ) { return ((CsmFile) scope).getName().toString(); } return ""; }
private void getFileLocalIncludeNamespaceMembers(CsmNamespace ns, CsmFile file, Collection<CsmScopeElement> out, boolean needDeclFromUnnamedNS) { CsmFilterBuilder builder = CsmSelect.getFilterBuilder(); CsmFilter filter = builder.createKindFilter(CsmDeclaration.Kind.NAMESPACE_DEFINITION); for (Iterator<CsmOffsetableDeclaration> itFile = CsmSelect.getDeclarations(file, filter); itFile.hasNext();) { CsmOffsetableDeclaration decl = itFile.next(); if (CsmKindUtilities.isNamespaceDefinition(decl)) { CsmNamespaceDefinition nsd = (CsmNamespaceDefinition) decl; if (nsd.getQualifiedName().equals(ns.getQualifiedName())) { out.addAll(nsd.getScopeElements()); } else if (CharSequenceUtilities.startsWith(ns.getQualifiedName(), nsd.getQualifiedName())) { getFileLocalIncludeNamespaceMembersFromNested(ns.getQualifiedName(), nsd, out, needDeclFromUnnamedNS); } if (needDeclFromUnnamedNS && CharSequenceUtilities.startsWith(ns.getQualifiedName(), nsd.getQualifiedName())) { getFileLocalIncludeNamespaceMembersFromNested("<unnamed>", nsd, out, needDeclFromUnnamedNS); // NOI18N } } } }
private CsmClassifier findClassifier(CsmNamespace ns, CharSequence qualifiedNamePart, AtomicBoolean outVisibility) { outVisibility.set(false); CsmClassifier result = null; CsmClassifier backupResult = null; while ( ns != null && result == null) { String fqn = ns.getQualifiedName() + "::" + qualifiedNamePart; // NOI18N CsmClassifier aCls = findClassifierUsedInFile(fqn, outVisibility); if (aCls != null) { if (!ForwardClass.isForwardClass(aCls) || needForwardClassesOnly()) { if (outVisibility.get()) { return aCls; } } if (backupResult == null) { backupResult = aCls; } } ns = ns.getParent(); } if (result == null) { result = backupResult; } return result; }
@Override public Collection<CsmDeclaration> findUsedDeclarations(CsmNamespace namespace) { List<CsmUsingDeclaration> res = new ArrayList<>(); Iterator<CsmOffsetableDeclaration> udecls = CsmSelect.getDeclarations( namespace, CsmSelect.getFilterBuilder().createKindFilter(CsmDeclaration.Kind.USING_DECLARATION)); while (udecls.hasNext()) { res.add((CsmUsingDeclaration) udecls.next()); } // Let's also look for similarly named namespace in libraries, // like it's done in CsmProjectContentResolver.getNamespaceMembers() if (!namespace.isGlobal()) { for(CsmProject lib : namespace.getProject().getLibraries()){ CsmNamespace ns = lib.findNamespace(namespace.getQualifiedName()); if (ns != null) { Iterator<CsmOffsetableDeclaration> it = CsmSelect.getDeclarations( ns, CsmSelect.getFilterBuilder().createKindFilter(CsmDeclaration.Kind.USING_DECLARATION)); while (it.hasNext()) { res.add((CsmUsingDeclaration) it.next()); } } } } return extractDeclarations(res); }
private CsmNamespace findNamespaceInInlined(CsmNamespace ns, CharSequence qualifiedNamePart) { CsmNamespace result = null; if (ns != null) { for (CsmNamespace inlinedNs : ns.getInlinedNamespaces()) { String fqn = (inlinedNs.isGlobal() ? "" : (inlinedNs.getQualifiedName() + "::")) + qualifiedNamePart; // NOI18N result = findNamespace(fqn); if (result == null) { result = findNamespaceInInlined(inlinedNs, qualifiedNamePart); } if (result != null) { break; } } } return result; }
private CsmNamespace findNamespace(CsmNamespace ns, CharSequence qualifiedNamePart) { CsmNamespace result = null; if (ns == null) { result = findNamespace(qualifiedNamePart); } else { CsmNamespace containingNs = ns; while (containingNs != null && result == null) { String fqn = (containingNs.isGlobal() ? "" : (containingNs.getQualifiedName() + "::")) + qualifiedNamePart; // NOI18N result = findNamespace(fqn); if (result == null) { result = findNamespaceInInlined(containingNs, qualifiedNamePart); } containingNs = containingNs.getParent(); } } return result; }
@Override public CharSequence getQualifiedName() { CsmObject container = _getContainer(); if (CsmKindUtilities.isClass(container)) { return CharSequences.create(CharSequenceUtils.concatenate(((CsmClass) container).getQualifiedName(), "::", getQualifiedNamePostfix())); // NOI18N } else if (CsmKindUtilities.isNamespace(container)) { CharSequence nsName = ((CsmNamespace) container).getQualifiedName(); if (nsName != null && nsName.length() > 0) { return CharSequences.create(CharSequenceUtils.concatenate(nsName, "::", getQualifiedNamePostfix())); // NOI18N } } return getName(); }
private boolean isInContext(CsmScope scope) { if (!CsmKindUtilities.isClass(scope) && !CsmKindUtilities.isNamespace(scope)) { return false; } CsmQualifiedNamedElement el = (CsmQualifiedNamedElement)scope; CsmNamespace ns = context.getContainingNamespace(); if (ns != null && startsWith(ns.getQualifiedName(), el.getQualifiedName())) { return true; } CsmClass cls = context.getContainingClass(); if (cls != null && startsWith(cls.getQualifiedName(), el.getQualifiedName())) { return true; } return false; }