@Override public CsmClass getContainingClass() { CsmScope scope = getScope(); if(CsmKindUtilities.isClass(scope)) { return (CsmClass) scope; } return null; }
@Override public CsmClass getContainingClass() { CsmScope scope = getScope(); return CsmKindUtilities.isClass(scope) ? (CsmClass) scope : null; }
private List<CsmClass> getClassesContainers(CsmClass cls) { List<CsmClass> out = new ArrayList<>(); CsmScope container = cls; while (CsmKindUtilities.isClass(container)) { out.add((CsmClass)container); container = ((CsmClass)container).getScope(); } return out; }
private CsmType findNestedType(CsmType baseType, String name, int endOffset) { if (baseType != null) { CsmClassifier classifier = getClassifier(baseType, contextFile, endOffset); if (CsmKindUtilities.isClass(classifier)) { CsmClass clazz = (CsmClass) classifier; List<CsmClassifier> classes = finder.findNestedClassifiers(contextElement, clazz, name, true, true, this.sort); if (classes != null && !classes.isEmpty()) { return CsmCompletion.createType(classes.get(0), 0, 0, 0, false); } } } return null; }
/** Get the class or function definition from the known scope */ public CsmOffsetableDeclaration getDefinition(CsmScope scope) { while (CsmKindUtilities.isScopeElement(scope) && (!CsmKindUtilities.isClass(scope) && !CsmKindUtilities.isFunction(scope))) { scope = ((CsmScopeElement) scope).getScope(); } return (CsmKindUtilities.isClass(scope) || CsmKindUtilities.isFunction(scope)) ? (CsmOffsetableDeclaration) scope : null; }
private CsmScope getFriendScope() { CsmScope scope = ClassImpl.this.getScope(); while (CsmKindUtilities.isClass(scope)) { CsmScope newScope = ((CsmClass)scope).getScope(); if (newScope != null) { scope = newScope; } else { break; } } return scope; }
private void rememberObject(CsmObject obj) { if (CsmKindUtilities.isNamespaceDefinition(obj)) { enclosingNS = (CsmNamespaceDefinition) obj; } else if (CsmKindUtilities.isClass(obj)) { enclosingClass = (CsmClass)obj; } else if (CsmKindUtilities.isFunction(obj)) { enclosingFun = (CsmFunction) obj; } }
private CsmClass getCsmClass(CsmInheritance inh) { CsmClassifier classifier = inh.getClassifier(); classifier = getOriginalClassifier(classifier); if (CsmKindUtilities.isClass(classifier)) { return (CsmClass)classifier; } return null; }
/** * Returns the namespace the given class belongs * (even if it's a nested class) */ public static CsmNamespace getClassNamespace(CsmClass cls) { CsmScope scope = cls.getScope(); while( scope != null && CsmKindUtilities.isClass(scope) ) { CsmClass outer = (CsmClass)scope; scope = outer.getScope(); } return CsmKindUtilities.isNamespace(scope) ? (CsmNamespace) scope : null; }
private CsmClass getClassDeclaration(CsmInheritance inh){ CsmClass c = CsmInheritanceUtilities.getCsmClass(inh); if (CsmKindUtilities.isInstantiation(c)) { CsmDeclaration d = ((CsmInstantiation)c).getTemplateDeclaration(); if (CsmKindUtilities.isClass(d)){ c = (CsmClass) d; } } return c; }
private void visitClasses(Set<CsmClass> classes, Collection<? extends CsmOffsetableDeclaration> decls, final int caretOffset) { for(CsmOffsetableDeclaration decl : decls) { if (CsmKindUtilities.isNamespaceDefinition(decl)) { visitClasses(classes, ((CsmNamespaceDefinition)decl).getDeclarations(), caretOffset); } else if (CsmKindUtilities.isClass(decl)) { visitClasses(classes, ((CsmClass)decl).getMembers(), caretOffset); classes.add((CsmClass)decl); } } }
/*package*/ static boolean isLangContainerFeature(CsmObject obj) { assert obj != null; return CsmKindUtilities.isFunction(obj) || CsmKindUtilities.isClass(obj) || CsmKindUtilities.isEnum(obj) || CsmKindUtilities.isNamespaceDefinition(obj) || CsmKindUtilities.isFile(obj); }
private CsmClass getInheritanceClass(CsmInheritance inh){ if (inh instanceof InheritanceImpl) { if (isRecursionOnResolving(INFINITE_RECURSION)) { return null; } CsmClassifier out = inh.getClassifier(); out = getOriginalClassifier(out); if (CsmKindUtilities.isClass(out)) { return (CsmClass) out; } } return getCsmClass(inh); }
private void initClassDefinition(CsmScope scope) { ClassImpl.MemberForwardDeclaration mfd = findMemberForwardDeclaration(scope); if (mfd instanceof ClassImpl.ClassMemberForwardDeclaration && CsmKindUtilities.isClass(this)) { ClassImpl.ClassMemberForwardDeclaration fd = (ClassImpl.ClassMemberForwardDeclaration) mfd; fd.setCsmClass((CsmClass) this); CsmClass containingClass = fd.getContainingClass(); if (containingClass != null) { // this is our real scope, not current namespace initScope(containingClass); } } }
@Override public CsmScope getScope() { CsmScope scope = super.getScope(); while (CsmKindUtilities.isClass(scope)) { CsmScope newScope = ((CsmClass)scope).getScope(); if (newScope != null) { scope = newScope; } else { break; } } return AstRenderer.FunctionRenderer.getScope(scope, getFile(), isStatic(), false); }
private static CsmFunction getOperator(CsmClassifier classifier, CsmFile contextFile, int offset, CsmFunction.OperatorKind opKind) { if (!CsmKindUtilities.isClass(classifier)) { return null; } CsmClass cls = (CsmClass) classifier; CsmFilter filter = CsmSelect.getFilterBuilder().createNameFilter("operator " + opKind.getImage(), false, true, false); // NOI18N return getOperatorCheckBaseClasses(cls, contextFile, offset, filter, opKind, new ClassifiersAntiLoop()); }
@Override public CsmScope getScope() { CsmScope scope = super.getScope(); while (CsmKindUtilities.isClass(scope)) { CsmScope newScope = ((CsmClass)scope).getScope(); if (newScope != null) { scope = newScope; } else { break; } } return AstRenderer.FunctionRenderer.getScope(scope, getFile(), isStatic(), false); }
@Override public CsmScope getScope() { CsmScope scope = super.getScope(); while (CsmKindUtilities.isClass(scope)) { CsmScope newScope = ((CsmClass)scope).getScope(); if (newScope != null) { scope = newScope; } else { break; } } return AstRenderer.FunctionRenderer.getScope(scope, getFile(), isStatic(), false); }
@Override public CharSequence getQualifiedName() { CsmScope s = getScope(); if (CsmKindUtilities.isFunction(s)) { return CharSequences.create(CharSequenceUtils.concatenate(((CsmFunction)s).getQualifiedName(),"::",name)); // NOI18N } else if (CsmKindUtilities.isClass(s)) { return CharSequences.create(CharSequenceUtils.concatenate(((CsmClass)s).getQualifiedName(),"::",name)); // NOI18N } return name; }
@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(); }