private static boolean isSameFile(CsmOffsetableDeclaration decl1, CsmOffsetableDeclaration decl2) { if (decl1 != null && decl2 != null) { CsmFile file1 = decl1.getContainingFile(); CsmFile file2 = decl2.getContainingFile(); if (file1 != null && file2 != null) { return file1.equals(file2); } } return false; }
public VariableProvider(CsmOffsetableDeclaration decl, CsmScope scope, MapHierarchy<CsmTemplateParameter, CsmSpecializationParameter> mapping, CsmFile variableFile, int variableStartOffset, int variableEndOffset, int level) { this.decl = decl; this.scope = scope; this.mapping = mapping; this.variableFile = variableFile != null ? variableFile : (decl != null ? decl.getContainingFile() : null); this.variableStartOffset = variableStartOffset; this.variableEndOffset = variableEndOffset; this.level = level; if (LOG.isLoggable(Level.FINE)) { LOG.log(Level.FINE, "\nVARIABLE PROVIDER CREATED WITH MAP HIERARCHY:\n{0}\n", mapping); // NOI18N } }
private ItemWrapper(CsmOffsetableDeclaration decl){ this.decl = decl; name = decl.getContainingFile().getName(); } @Override
@Override public CsmFile getContainingFile() { return getTemplateDeclaration().getContainingFile(); }
private JMenuItem createItem(final CsmOffsetableDeclaration decl) { JMenuItem item = new JMenuItem(); CsmFile file = decl.getContainingFile(); item.setText(file.getName().toString()); item.putClientProperty(PROP_DECLARATION, decl); item.addActionListener(this); return item; }
private static CsmProject findProject(CsmOffsetableDeclaration decl){ CsmFile file = decl.getContainingFile(); if (file != null){ //if (file.isValid()) { return file.getProject(); //} //return null; } System.err.println("Cannot fing project for declaration "+decl.getUniqueName()); return null; }
private boolean isVariableDeclarationsVisible(CsmFile currentFile, Collection<CsmOffsetableDeclaration> decls) { for (CsmOffsetableDeclaration decl : decls) { if(decl.getContainingFile().equals(currentFile)) { return true; } if (((ProjectBase)currentFile.getProject()).getGraphStorage().isFileIncluded(currentFile, decl.getContainingFile())){ return true; } //HashSet<CsmFile> scannedFiles = new HashSet<CsmFile>(); //if (isFileVisibleInIncludeFiles(currentFile.getIncludes(), decl.getContainingFile(), scannedFiles)) { // return true; //} } return false; }
public void addChangedDeclaration(CsmOffsetableDeclaration oldDecl, CsmOffsetableDeclaration newDecl) { getChangedDeclarations().put(oldDecl,newDecl); addChangedFile(oldDecl.getContainingFile()); }
public void addNewDeclaration(CsmOffsetableDeclaration declaration) { getNewDeclarations().add(declaration); CsmFile file = declaration.getContainingFile(); if( ! getNewFiles().contains(file) ) { addChangedFile(file); } }
public void addRemovedDeclaration(CsmOffsetableDeclaration declaration) { getRemovedDeclarations().add(declaration); CsmFile file = declaration.getContainingFile(); if( ! getRemovedFiles().contains(file) ) { addChangedFile(file); } }
private Instantiation(T declaration, Map<CsmTemplateParameter, CsmSpecializationParameter> mapping) { super(declaration.getContainingFile(), declaration.getStartOffset(), declaration.getEndOffset()); this.declaration = declaration; this.mapping = mapping; }
public static boolean isObjectVisibleInFile(CsmFile currentFile, CsmOffsetableDeclaration item) { CsmFile file = item.getContainingFile(); if (file == null) { return false; } if (file.equals(currentFile)) { return true; } return ((ProjectBase) currentFile.getProject()).getGraphStorage().isFileIncluded(currentFile, file); }
/** * return all friend declarations for declaration, i.e. * class target { * friend class friendClass; * friend void friendMethod(); * }; * class friendClass{ * } * void friendMethod(){ * } * * @return friend class declaration "friendClass" for class declaration "friendClass" or * friend method declaration "friendMethod" for method definition "friendMethod" */ @Override public Collection<CsmFriend> findFriends(CsmOffsetableDeclaration decl) { if (decl.isValid()) { CsmProject prj = decl.getContainingFile().getProject(); if (prj instanceof ProjectBase) { return ((ProjectBase)prj).findFriendDeclarations(decl); } } return Collections.<CsmFriend>emptyList(); } }
private static void gatherProjects(ChangeEventImpl ev) { Collection<CsmProject> projects = ev.getChangedProjects(); Collection/*CsmFile*/[] files = new Collection/*CsmFile*/[]{ ev.getNewFiles(), ev.getChangedFiles(), ev.getRemovedFiles()}; for (int i = 0; i < files.length; i++) { for (Iterator iter = files[i].iterator(); iter.hasNext();) { projects.add(((CsmFile) iter.next()).getProject()); } } Collection/*CsmOffsetableDeclaration*/[] decls = new Collection/*CsmOffsetableDeclaration*/[]{ ev.getNewDeclarations(), ev.getChangedDeclarations().values(), ev.getRemovedDeclarations()}; for (int i = 0; i < decls.length; i++) { for (Iterator iter = decls[i].iterator(); iter.hasNext();) { Object o = iter.next(); if (o instanceof CsmOffsetableDeclaration) { projects.add(((CsmOffsetableDeclaration) o).getContainingFile().getProject()); } } } }
VariableImpl<?> v = (VariableImpl<?>) decl; if (!NamespaceImpl.isNamespaceScope(v, true)) { v.setScope(decl.getContainingFile()); addStaticVariableDeclaration(uidDecl); FunctionImpl<?> fi = (FunctionImpl<?>) decl; if (!NamespaceImpl.isNamespaceScope(fi)) { fi.setScope(decl.getContainingFile()); addStaticFunctionDeclaration(uidDecl);
protected final Collection<? extends CsmObject> getEqualObjects(CsmObject csmObject) { if (CsmKindUtilities.isOffsetableDeclaration(csmObject)) { CsmOffsetableDeclaration decl = (CsmOffsetableDeclaration) csmObject; // CharSequence uniqueName = decl.getUniqueName(); CsmFile file = decl.getContainingFile(); if (file != null) { FileObject fo = file.getFileObject(); FSPath fsPath = FSPath.toFSPath(fo); CsmFile[] findFiles = CsmModelAccessor.getModel().findFiles(fsPath, false, false); Collection<CsmObject> out = new HashSet<CsmObject>(findFiles.length); out.add(csmObject); CsmSelect.CsmFilter filter = CsmSelect.getFilterBuilder().createOffsetFilter(decl.getStartOffset()+1); for (CsmFile csmFile : findFiles) { if (!file.equals(csmFile)) { Iterator<CsmOffsetableDeclaration> declarations = CsmSelect.getDeclarations(csmFile, filter); while (declarations.hasNext()) { CsmOffsetableDeclaration other = declarations.next(); if (CsmReferenceSupport.sameDeclaration(other, decl)) { out.add(other); } } } } return out; } } return Collections.singleton(csmObject); } }
public static PersistentKey createKey(CsmOffsetableDeclaration decl){ CharSequence name = decl.getName(); CharSequence uniq = decl.getUniqueName(); CsmProject project = decl.getContainingFile().getProject(); if (name.length() > 0 && CharSequences.indexOf(uniq, "::::") < 0 && project != null){ // NOI18N return new PersistentKey(uniq, project, DECLARATION); } else { //System.out.println("Skip "+uniq); } // obtain UID directly without "null-check", because notificator works // in separate thread which can be run after closed project return new PersistentKey(UIDProviderIml.get(decl, false)); }
@Override public List<CsmClass> findBaseClasses(CsmOffsetableDeclaration contextDeclaration, CsmClassifier c, String name, boolean exactMatch, boolean sort) { CsmFile contextFile = getCsmFile(); if (contextFile == null && contextDeclaration != null) { contextFile = contextDeclaration.getContainingFile(); } c = CsmBaseUtilities.getOriginalClassifier(c, contextFile); if (CsmKindUtilities.isClass(c)) { CsmClass clazz = (CsmClass) c; CsmProjectContentResolver contResolver = new CsmProjectContentResolver(getCaseSensitive()); List<CsmClass> classClassifiers = contResolver.getBaseClasses(clazz, contextDeclaration, name, exactMatch); return classClassifiers; } else { return new ArrayList<CsmClass>(); } } }
private void computeAnnotations(Collection<? extends CsmOffsetableDeclaration> toProcess, Collection<BaseAnnotation> toAdd) { for (CsmOffsetableDeclaration decl : toProcess) { if (canceled.get()) { return; } if (this.csmFile.equals(decl.getContainingFile())) { if (CsmKindUtilities.isFunction(decl)) { computeAnnotation((CsmFunction) decl, toAdd); } else if (CsmKindUtilities.isClass(decl)) { if (CsmKindUtilities.isTemplate(decl)) { if (((CsmTemplate)decl).isExplicitSpecialization()) { continue; } } computeAnnotation((CsmClass) decl, toAdd); computeAnnotations(((CsmClass) decl).getMembers(), toAdd); } else if (CsmKindUtilities.isNamespaceDefinition(decl)) { computeAnnotations(((CsmNamespaceDefinition) decl).getDeclarations(), toAdd); } } } }
name = cls.getName(); CsmProject project = decl.getContainingFile().getProject(); if (name.length() > 0 && CharSequences.indexOf(uniq, "::::") < 0 && project != null){ // NOI18N return new PersistentKey(uniq, project, DECLARATION, getStateBit(object));