public static INameEnvironment create(List<IJavaProject> javaProjects, org.eclipse.jdt.core.ICompilationUnit[] copies) { if (JavaIndex.isEnabled() && isEnabled()) { return new IndexBasedJavaSearchEnvironment(javaProjects, copies); } else { Iterator<IJavaProject> next = javaProjects.iterator(); JavaSearchNameEnvironment result = new JavaSearchNameEnvironment(next.next(), copies); while (next.hasNext()) { result.addProjectClassPath((JavaProject)next.next()); } return result; } } }
void addProjectClassPath(JavaProject javaProject) { LinkedHashSet<ClasspathLocation> locations = computeClasspathLocations(javaProject); if (locations != null) this.locationSet.addAll(locations); }
public NameEnvironmentAnswer findType(char[][] compoundName) { if (compoundName != null) return findClass( new String(CharOperation.concatWith(compoundName, '/')), compoundName[compoundName.length - 1]); return null; }
public JavaSearchNameEnvironment(IJavaProject javaProject, org.eclipse.jdt.core.ICompilationUnit[] copies) { if (isComplianceJava9OrHigher(javaProject)) { this.moduleLocations = new HashMap<>(); this.moduleToClassPathLocations = new HashMap<>(); } this.modules = new HashMap<>(); this.locationSet = computeClasspathLocations((JavaProject) javaProject); this.workingCopies = getWorkingCopyMap(copies); }
public JavaSearchNameEnvironment(IJavaProject javaProject, org.eclipse.jdt.core.ICompilationUnit[] copies) { if (CompilerOptions.versionToJdkLevel(javaProject.getOption(JavaCore.COMPILER_COMPLIANCE, true)) >= ClassFileConstants.JDK9) { this.moduleLocations = new HashMap<>(); this.moduleToClassPathLocations = new HashMap<>(); } this.modules = new HashMap<>(); this.locationSet = computeClasspathLocations((JavaProject) javaProject); this.workingCopies = getWorkingCopyMap(copies); }
private INameEnvironment getNoCacheNameEnvironment() { if (this.noCacheNameEnvironment == null) { JavaModelManager.getJavaModelManager().cacheZipFiles(this); this.noCacheNameEnvironment = new JavaSearchNameEnvironment(this.javaProject, this.owner == null ? null : JavaModelManager.getJavaModelManager().getWorkingCopies(this.owner, true/*add primary WCs*/)); } return this.noCacheNameEnvironment; }
protected void reset() { super.reset(false); this.knownPkgs = new HashtableOfObject(10); this.knownTypes = new HashtableOfObject(10); if (this.noCacheNameEnvironment != null) { this.noCacheNameEnvironment.cleanup(); this.noCacheNameEnvironment = null; JavaModelManager.getJavaModelManager().flushZipFiles(this); } }
public boolean isPackage(char[][] compoundName, char[] packageName) { return isPackage(new String(CharOperation.concatWith(compoundName, packageName, '/'))); }
private LinkedHashSet<ClasspathLocation> computeClasspathLocations(JavaProject javaProject) { IPackageFragmentRoot[] roots = null; try { roots = javaProject.getAllPackageFragmentRoots(); } catch (JavaModelException e) { return null;// project doesn't exist } LinkedHashSet<ClasspathLocation> locations = new LinkedHashSet<ClasspathLocation>(); int length = roots.length; JavaModelManager manager = JavaModelManager.getJavaModelManager(); for (int i = 0; i < length; i++) { ClasspathLocation cp = mapToClassPathLocation(manager, (PackageFragmentRoot) roots[i]); if (cp != null) locations.add(cp); } return locations; }
if (isComplianceJava9OrHigher(root.getJavaProject())) { addModuleClassPathInfo(root, defaultModule, cp);
@Override public IModule getModule(char[] moduleName) { computeModules(); IModuleDescription moduleDesc = this.modules.get(new String(moduleName)); IModule module = null; try { if (moduleDesc != null) module = ((ModuleDescriptionInfo)((JavaElement) moduleDesc).getElementInfo()); } catch (JavaModelException e) { // do nothing } return module; }
private void addModuleClassPathInfo(PackageFragmentRoot root, IModuleDescription defaultModule, ClasspathLocation cp) { IModuleDescription imd = root.getModuleDescription(); if (imd != null) { String moduleName = addModuleClassPathInfo(cp, imd); if (moduleName != null) this.modules.put(moduleName, imd); if (this.moduleLocations != null) this.moduleLocations.put(moduleName, cp); } else if (defaultModule != null) { addModuleClassPathInfo(cp, defaultModule); } } private String addModuleClassPathInfo(ClasspathLocation cp, IModuleDescription imd) {
private String addModuleClassPathInfo(ClasspathLocation cp, IModuleDescription imd) { IModule mod = NameLookup.getModuleDescriptionInfo(imd); String moduleName = null; if (mod != null) { char[] name = mod.name(); if (name != null) { moduleName = new String(name); cp.setModule(mod); addClassPathToModule(moduleName, cp); } } return moduleName; } private void addClassPathToModule(String moduleName, ClasspathLocation cp) {
private INameEnvironment getNoCacheNameEnvironment() { if (this.noCacheNameEnvironment == null) { JavaModelManager.getJavaModelManager().cacheZipFiles(this); this.noCacheNameEnvironment = new JavaSearchNameEnvironment(this.javaProject, this.owner == null ? null : JavaModelManager.getJavaModelManager().getWorkingCopies(this.owner, true/*add primary WCs*/)); } return this.noCacheNameEnvironment; }
protected void reset() { super.reset(false); this.validPackageNames = new SimpleSetOfCharArray(10); this.invalidPackageNames = new SimpleSetOfCharArray(1); this.knownPkgs = new HashtableOfObject(10); this.knownTypes = new HashtableOfObject(10); if (this.noCacheNameEnvironment != null) { this.noCacheNameEnvironment.cleanup(); this.noCacheNameEnvironment = null; JavaModelManager.getJavaModelManager().flushZipFiles(this); } }
public boolean isPackage(char[][] compoundName, char[] packageName) { return isPackage(new String(CharOperation.concatWith(compoundName, packageName, '/'))); }
private LinkedHashSet<ClasspathLocation> computeClasspathLocations(JavaProject javaProject) { IPackageFragmentRoot[] roots = null; try { roots = javaProject.getAllPackageFragmentRoots(); } catch (JavaModelException e) { return null;// project doesn't exist } IModuleDescription imd = null; try { imd = javaProject.getModuleDescription(); } catch (JavaModelException e) { // e.printStackTrace(); // ignore } LinkedHashSet<ClasspathLocation> locations = new LinkedHashSet<ClasspathLocation>(); int length = roots.length; JavaModelManager manager = JavaModelManager.getJavaModelManager(); for (int i = 0; i < length; i++) { ClasspathLocation cp = mapToClassPathLocation(manager, (PackageFragmentRoot) roots[i], imd); if (cp != null) locations.add(cp); } return locations; }
@Override public IModule getModule(char[] moduleName) { computeModules(); IModuleDescription moduleDesc = this.modules.get(new String(moduleName)); IModule module = null; try { if (moduleDesc != null) module = (IModule)((JavaElement) moduleDesc).getElementInfo(); } catch (JavaModelException e) { // do nothing } return module; }
String moduleName = addModuleClassPathInfo(cp, imd); if (moduleName != null) this.modules.put(moduleName, imd); this.moduleLocations.put(moduleName, cp); } else if (defaultModule != null) { addModuleClassPathInfo(cp, defaultModule);
private String addModuleClassPathInfo(ClasspathLocation cp, IModuleDescription imd) { IModule mod = NameLookup.getModuleDescriptionInfo(imd); String moduleName = null; if (mod != null) { char[] name = mod.name(); if (name != null) { moduleName = new String(name); cp.setModule(mod); addClassPathToModule(moduleName, cp); } } return moduleName; } private void addClassPathToModule(String moduleName, ClasspathLocation cp) {