@Override public Iterator<CsmEnumerator> getEnumerators(CsmEnum en, CsmFilter filter) { if (en instanceof FilterableEnumerators){ return ((FilterableEnumerators)en).getEnumerators(filter); } return en.getEnumerators().iterator(); }
@SuppressWarnings("unchecked") private static void addEnumerators(List resList, CsmEnum en, String strPrefix, boolean match, boolean caseSensitive){ for(Iterator i = en.getEnumerators().iterator(); i.hasNext();){ CsmNamedElement scpElem = (CsmNamedElement) i.next(); if (CsmSortUtilities.matchName(scpElem.getName(), strPrefix, match, caseSensitive)) { resList.add(scpElem); } } }
private void initEnum(CsmEnum en, java.util.Map<PersistentKey, SortedName> res){ for (CsmEnumerator val : en.getEnumerators()) { PersistentKey key = PersistentKey.createKey(val); if (key != null) { res.put(key, new SortedName(0,val.getName(),0)); } } }
public void putHotSpotEnum(Collection<CsmEnumerator> enumerators) { if (isCleaned()){ return; } if (hotSpotEnumerators == null) { hotSpotEnumerators = new HashMap<String, CsmEnumerator>(); } Set<CsmEnum> enums = new HashSet<CsmEnum>(); for(CsmEnumerator e : enumerators) { CsmEnum parent = e.getEnumeration(); if (parent != null) { enums.add(parent); } } for(CsmEnum e : enums) { if (!e.isStronglyTyped()) { for(CsmEnumerator i : e.getEnumerators()) { hotSpotEnumerators.put(i.getName().toString(), i); } } } }
private static boolean findInner(CsmEnum enumm, int offset, CsmContext context) { CsmContextUtilities.updateContext(enumm, offset, context); CsmEnumerator enumerator = CsmOffsetUtilities.findObject(enumm.getEnumerators(), context, offset); if (enumerator != null && !CsmOffsetUtilities.sameOffsets(enumm, enumerator)) { CsmContextUtilities.updateContext(enumerator, offset, context); } return true; }
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); }
} else if (CsmKindUtilities.isEnum(outDecl)) { CsmEnum en = (CsmEnum)outDecl; it = en.getEnumerators().iterator(); } else if (CsmKindUtilities.isTypedef(outDecl) || CsmKindUtilities.isTypeAlias(outDecl)) { CsmTypedef td = (CsmTypedef) outDecl;
private static void addDeclarationAndNested(Collection<FileElement> toAdd, CsmOffsetableDeclaration outDecl) { // TODO: what about function return value? // TODO: what about function params? // TODO: what about const/virtual attributes? // TODO: what about static? CharAndCharSequence cs = new CharAndCharSequence(outDecl.getQualifiedName(), Utils.getCsmDeclarationKindkey(outDecl.getKind())); FileElement fe = new FileElement(outDecl.getStartOffset(), cs); toAdd.add(fe); Iterator<? extends CsmOffsetableDeclaration> it = null; if (CsmKindUtilities.isNamespaceDefinition(outDecl)) { it = ((CsmNamespaceDefinition) outDecl).getDeclarations().iterator(); } else if (CsmKindUtilities.isClass(outDecl)) { CsmClass cl = (CsmClass) outDecl; it = cl.getMembers().iterator(); for (CsmInheritance inh : cl.getBaseClasses()) { CharAndCharSequence csi = new CharAndCharSequence(inh.getAncestorType().getClassifierText(), Utils.getCsmInheritanceKindKey(inh)); toAdd.add(new FileElement(inh.getStartOffset(), csi)); } } else if (CsmKindUtilities.isEnum(outDecl)) { CsmEnum en = (CsmEnum) outDecl; it = en.getEnumerators().iterator(); } if (it != null) { while (it.hasNext()) { CsmOffsetableDeclaration decl = (CsmOffsetableDeclaration) it.next(); addDeclarationAndNested(toAdd, decl); } } }
for (Iterator<CsmEnumerator> enmtrIter = elemEnum.getEnumerators().iterator(); enmtrIter.hasNext();) { CsmEnumerator elem = enmtrIter.next(); if (matchName(elem.getName(), strPrefix, match)) {
for (CsmEnumerator enumerator : ((CsmEnum) classifier).getEnumerators()) { if (CsmSortUtilities.matchName(enumerator.getName(), name, exactMatch, exactMatch)) { ret.add(enumerator);
listByName = CsmSortUtilities.filterList(((CsmEnum)elem).getEnumerators(), strPrefix, match, caseSensitive); list.addAll(listByName); } else if (CsmKindUtilities.isUnion(elem) && ((CsmClass)elem).getName().length() == 0) {
CsmEnum e = (CsmEnum) elem; if (!e.isStronglyTyped()) { for (CsmEnumerator enumerator : e.getEnumerators()) { if(lastName.toString().equals(enumerator.getName().toString())) { referencedDeclaration = enumerator;