private void processProjectLibs(CsmProject project, CsmSelect.CsmFilter filter, Set<CsmProject> processedLibs, NameMatcher matcher) { for (CsmProject lib : project.getLibraries()) { checkCancelled(); if (lib.isArtificial()) { if (!processedLibs.contains(lib)) { processedLibs.add(lib); processProject(lib, filter, matcher); } } } }
@Override public boolean isValid() { return getProject().isValid(); } @Override
@Override public void dumpInfo(Lookup context, PrintWriter printOut) { Collection<CsmProject> projects = new ArrayList<>(context.lookupAll(CsmProject.class)); if (projects.isEmpty()) { CsmFile file = context.lookup(CsmFile.class); if (file != null) { CsmProject project = file.getProject(); if (project != null) { projects.add(project); } } } printOut.println("References:"); // NOI18N for (CsmProject prj : projects) { printOut.print(prj.getName() + " : "); // NOI18N int refsNumber = 0; for (CsmFile file : prj.getAllFiles()) { refsNumber += ((FileImpl)file).getReferences().size(); } printOut.println(refsNumber); } } }
@Override public String getProjectName() { CharSequence prjName = project.getName(); if (project.isArtificial()) { prjName = CsmDisplayUtilities.shrinkPath(prjName, 32, 2, 2); } return prjName.toString(); }
private static boolean areProjectAndLibsParsed(CsmProject project) { if (!project.isStable(null)) { return false; } HashSet<CsmProject> visited = new HashSet<>(); visited.add(project); return areProjectLibsParsed(project.getLibraries(), visited); }
public Object getObject(){ int maskKind = kind & MASK; switch(maskKind){ case UID: return ((CsmUID)key).getObject(); case NAMESPACE: return project.findNamespace((CharSequence)key); case DECLARATION: return project.findDeclaration((CharSequence)key); case PROJECT: return project; case PROJECT_LIBS: return project; } return null; }
private Map<CsmFile,Set<CsmFile>> buildWhoIncludes(CsmFile file){ HashMap<CsmFile,Set<CsmFile>> aMap = new HashMap<CsmFile,Set<CsmFile>>(); for(CsmProject prj :CsmModelAccessor.getModel().projects()){ for(CsmFile f : prj.getSourceFiles()){ buildWhoIncludes(f, aMap); } for(CsmFile f : prj.getHeaderFiles()){ buildWhoIncludes(f, aMap); } for (CsmProject lib : prj.getLibraries()){ for(CsmFile f : lib.getSourceFiles()){ buildWhoIncludes(f, aMap); } for(CsmFile f : lib.getHeaderFiles()){ buildWhoIncludes(f, aMap); } } } return aMap; }
private void collectLibs(CsmProject project, Collection<CsmProject> libs) { for( CsmProject lib : project.getLibraries()) { if (! libs.contains(lib)) { libs.add(lib); collectLibs(lib, libs); } } }
int failedDirectives = 0; int failedFiles = 0; for(Object f : aBaseProject.getSourceFiles()){ CsmFile file = (CsmFile) f; files++; for(Object f :aBaseProject.getHeaderFiles()){ CsmFile file = (CsmFile) f; files++; System.out.println(" File-based Accuracy:"+metric+"%"); // NOI18N Object o = aBaseProject.getPlatformProject(); if (o instanceof NativeProject){ files = 0;
static NativeProject getNativeProject(CsmFile csmFile) { NativeProject nativeProject = null; if (csmFile != null) { CsmProject csmProject = csmFile.getProject(); if (csmProject.getPlatformProject() instanceof NativeProject) { nativeProject = (NativeProject) csmProject.getPlatformProject(); } else { loop: for (CsmProject project : CsmModelAccessor.getModel().projects()) { for (CsmProject lib : project.getLibraries()) { if (lib.equals(csmProject)) { if (project.getPlatformProject() instanceof NativeProject) { nativeProject = (NativeProject) project.getPlatformProject(); break loop; } } } } } } return nativeProject; }
private CsmEventListener getListener(CsmProject project) { Object pp = project.getPlatformProject(); if (pp instanceof NativeProject) { synchronized (listenersLock) { return listeners.get((NativeProject) pp); } } return null; }
@Override public void notifyClosed(CsmFile csmFile) { //if (TRACE) {trace("checking file %s", csmFile.toString());} //NOI18N String closedFilePath = csmFile.getAbsolutePath().toString(); synchronized (lock) { for (CsmProject csmProject : ModelImpl.instance().projects()) { Object platformProject = csmProject.getPlatformProject(); if (platformProject instanceof NativeProjectImpl) { NativeProjectImpl nativeProject = (NativeProjectImpl) platformProject; if (nativeProject.getProjectRoot().equals(closedFilePath)) { for (CsmFile csmf : csmProject.getAllFiles()) { FileObject fo = ((FileImpl) csmf).getFileObject(); DataObject dao = NativeProjectProvider.getDataObject(fo); if (dao != null) { NativeFileItemSet set = dao.getLookup().lookup(NativeFileItemSet.class); if (set != null) { set.remove(nativeProject.findFileItem(fo)); } } } scheduleProjectRemoval(csmProject); } } } } }
private void resolveContext(CsmProject project, CharSequence qualifiedName[], Collection<CsmObject> result) { CharSequence[] cnn = qualifiedName; if (cnn != null) { if (cnn.length > 1) { resolveContext(project.getGlobalNamespace(), qualifiedName, 0, result); } else if (cnn.length == 1) { result.add(project.getGlobalNamespace()); } } }
private void scheduleProjectRemoval(final CsmProject project) { if(!project.isValid()) { return; } final Object nativeProject = project.getPlatformProject(); if (!(nativeProject instanceof NativeProject)) { return; } final String root = ((NativeProject)nativeProject).getProjectRoot(); if (TRACE) {trace("schedulling removal %s", project.toString());} //NOI18N synchronized (lock) { toBeRmoved.add(root); } ModelImpl.instance().enqueueModelTask(new Runnable() { @Override public void run() { if (project.isValid()) { if (TRACE) {trace("removing %s", project.toString());} //NOI18N ProjectBase projectBase = (ProjectBase) project; ModelImpl.instance().closeProjectBase(projectBase, false); synchronized (lock) { toBeRmoved.remove(root); } if (TRACE) {trace("removed %s", project.toString());} //NOI18N } } }, "Standalone project removal."); //NOI18N }
private static void gatherLibIncludedMacros(CsmFile file, List<CsmMacro> res, boolean all, CharSequence strPrefix, boolean match, boolean caseSensitive) { CsmProject prj = file.getProject(); if (!all) { gatherIncludeMacros(file, prj, false, new HashSet<CsmFile>(), new HashSet<CharSequence>(), res, strPrefix, match, caseSensitive); } else { Set<CharSequence> alredyInList = new HashSet<CharSequence>(); for(Iterator p = prj.getLibraries().iterator(); p.hasNext();){ CsmProject lib = (CsmProject)p.next(); for(Iterator i = lib.getHeaderFiles().iterator(); i.hasNext();){ getFileLocalMacros((CsmFile)i.next(), res, alredyInList, strPrefix, match, caseSensitive); } } } }
@Override public void projectLoaded(CsmProject project) { if (TraceFlags.TRACE_PARSER_QUEUE) { System.err.println("ProgressListenerImpl.projectLoaded " + project.getName()); } }
for (CsmProject csmProject : prjs) { if (csmProject.equals(declPrj) || csmProject.getLibraries().contains(declPrj)) { relevantPrjs.add(csmProject); } else { for (CsmProject csmProject : relevantPrjs) { relevantFiles.addAll(csmProject.getAllFiles());
private void dumpProjectFilesInfo(CsmProject project, PrintWriter printOut, boolean printList) { Collection<CsmFile> sourceFiles = project.getSourceFiles(); Collection<CsmFile> headerFiles = project.getHeaderFiles(); printOut.printf("%s\n", project.getDisplayName());// NOI18N printOut.printf(" %,d source files; %,d header files; %,d total files\n", // NOI18N sourceFiles.size(), headerFiles.size(), sourceFiles.size() + headerFiles.size());
private boolean findGlobal(CsmProject project, String uname, Collection<CsmProject> processedProjects) { if (processedProjects.contains(project)) { return false; } processedProjects.add(project); final CsmDeclaration decl = project.findDeclaration(uname); if (decl != null && CsmIncludeResolver.getDefault().isObjectVisible(file, decl)) { return true; } for (CsmProject lib : project.getLibraries()) { if (findGlobal(lib, uname, processedProjects)) { return true; } } return false; }
for(Object f : aBaseProject.getSourceFiles()){ CsmFile file = (CsmFile) f; boolean failed = fiq.hasBrokenIncludes(file); for(Object f :aBaseProject.getHeaderFiles()){ CsmFile file = (CsmFile) f; boolean failed = fiq.hasBrokenIncludes(file);