List of usage examples for org.eclipse.jdt.internal.core JavaProject getPath
@Override
public IPath getPath()
From source file:com.codenvy.ide.ext.java.server.internal.core.search.HierarchyScope.java
License:Open Source License
private IPath[] computeProjectsAndJars(IType type) throws JavaModelException { HashSet set = new HashSet(); IPackageFragmentRoot root = (IPackageFragmentRoot) type.getPackageFragment().getParent(); if (root.isArchive()) { // add the root set.add(root.getPath());//ww w. j a va 2 s .co m // add all projects that reference this archive and their dependents IPath rootPath = root.getPath(); IJavaModel model = JavaModelManager.getJavaModelManager().getJavaModel(); IJavaProject[] projects = model.getJavaProjects(); HashSet visited = new HashSet(); for (int i = 0; i < projects.length; i++) { JavaProject project = (JavaProject) projects[i]; IClasspathEntry entry = project.getClasspathEntryFor(rootPath); if (entry != null) { // add the project and its binary pkg fragment roots IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots(); set.add(project.getPath()); for (int k = 0; k < roots.length; k++) { IPackageFragmentRoot pkgFragmentRoot = roots[k]; if (pkgFragmentRoot.getKind() == IPackageFragmentRoot.K_BINARY) { set.add(pkgFragmentRoot.getPath()); } } // add the dependent projects computeDependents(project, set, visited); } } } else { // add all the project's pkg fragment roots IJavaProject project = (IJavaProject) root.getParent(); IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { IPackageFragmentRoot pkgFragmentRoot = roots[i]; if (pkgFragmentRoot.getKind() == IPackageFragmentRoot.K_BINARY) { set.add(pkgFragmentRoot.getPath()); } else { set.add(pkgFragmentRoot.getParent().getPath()); } } // add the dependent projects computeDependents(project, set, new HashSet()); } IPath[] result = new IPath[set.size()]; set.toArray(result); return result; }
From source file:org.eclipse.che.jdt.search.FindReferencesTest.java
License:Open Source License
@Test public void testSearchManagerFindUsage() throws Exception { IJavaProject aProject = JUnitSourceSetup.getProject(); IPackageFragmentRoot root = ((JavaProject) aProject) .getPackageFragmentRoot(new Path(JUnitSourceSetup.SRC_CONTAINER)); IPackageFragment packageFragment = root.createPackageFragment("che", true, null); StringBuilder a = new StringBuilder(); a.append("package che;\n"); a.append("public class A{}\n"); ICompilationUnit compilationUnitA = packageFragment.createCompilationUnit("A.java", a.toString(), true, null);/*from w w w. java2 s. c o m*/ StringBuilder b = new StringBuilder(); b.append("package che;\n"); b.append("import java.util.Comparator;\n"); b.append("import che.A;\n"); b.append("public class B extends A implements Comparator<A>{\n"); b.append(" private A a = null;\n"); b.append(" static{\n"); b.append(" A ddd = null;\n"); b.append(" }\n"); b.append(" @Override\n"); b.append(" public int compare(A o1, A o2) {\n"); b.append(" A bb = null;\n"); b.append(" return 0;\n"); b.append(" }\n"); b.append(" class SubB{\n"); b.append(" public A ccc = null;\n"); b.append(" }\n"); b.append("}\n"); b.append("class SubB2{\n"); b.append(" private final A foo = null;\n"); b.append("}\n"); packageFragment.createCompilationUnit("B.java", b.toString(), true, null); SearchManager manager = new SearchManager(); FindUsagesResponse response = manager.findUsage(aProject, "che.A", 26); assertThat(response.getSearchElementLabel()).isEqualTo("A"); List<org.eclipse.che.ide.ext.java.shared.dto.model.JavaProject> projects = response.getProjects(); assertThat(projects).isNotNull().isNotEmpty().hasSize(1); String expectedProjectPath = JUnitSourceSetup.getProject().getPath().toOSString(); org.eclipse.che.ide.ext.java.shared.dto.model.JavaProject project = projects.get(0); assertThat(project.getName()).isEqualTo(JUnitSourceSetup.PROJECT_NAME); assertThat(project.getPath()).isEqualTo(expectedProjectPath); assertThat(project.getPackageFragmentRoots()).isNotNull().isNotEmpty().hasSize(1); PackageFragmentRoot fragmentRoot = project.getPackageFragmentRoots().get(0); assertThat(fragmentRoot.getElementName()).isEqualTo(JUnitSourceSetup.SRC_CONTAINER); assertThat(fragmentRoot.getProjectPath()).isEqualTo(expectedProjectPath); assertThat(fragmentRoot.getPackageFragments()).isNotNull().isNotEmpty().hasSize(1); PackageFragment fragment = fragmentRoot.getPackageFragments().get(0); assertThat(fragment.getElementName()).isEqualTo("che"); assertThat(fragment.getProjectPath()).isEqualTo(expectedProjectPath); assertThat(fragment.getPath()) .isEqualTo(expectedProjectPath + "/" + JUnitSourceSetup.SRC_CONTAINER + "/che"); assertThat(fragment.getClassFiles()).isNotNull().isEmpty(); assertThat(fragment.getCompilationUnits()).isNotNull().isNotEmpty().hasSize(1); CompilationUnit compilationUnit = fragment.getCompilationUnits().get(0); assertThat(compilationUnit.getElementName()).isEqualTo("B.java"); assertThat(compilationUnit.getPath()) .isEqualTo(expectedProjectPath + "/" + JUnitSourceSetup.SRC_CONTAINER + "/che/B.java"); assertThat(compilationUnit.getImports()).hasSize(1); assertThat(compilationUnit.getTypes()).hasSize(2); }
From source file:org.eclipse.che.plugin.java.server.jdt.search.FindReferencesTest.java
License:Open Source License
@Test public void testSearchManagerFindUsage() throws Exception { IJavaProject aProject = JUnitSourceSetup.getProject(); IPackageFragmentRoot root = ((JavaProject) aProject) .getPackageFragmentRoot(new Path(JUnitSourceSetup.SRC_CONTAINER)); IPackageFragment packageFragment = root.createPackageFragment("che", true, null); StringBuilder a = new StringBuilder(); a.append("package che;\n"); a.append("public class A{}\n"); ICompilationUnit compilationUnitA = packageFragment.createCompilationUnit("A.java", a.toString(), true, null);/* w ww . j a v a2 s .co m*/ StringBuilder b = new StringBuilder(); b.append("package che;\n"); b.append("import java.util.Comparator;\n"); b.append("import che.A;\n"); b.append("public class B extends A implements Comparator<A>{\n"); b.append(" private A a = null;\n"); b.append(" static{\n"); b.append(" A ddd = null;\n"); b.append(" }\n"); b.append(" @Override\n"); b.append(" public int compare(A o1, A o2) {\n"); b.append(" A bb = null;\n"); b.append(" return 0;\n"); b.append(" }\n"); b.append(" class SubB{\n"); b.append(" public A ccc = null;\n"); b.append(" }\n"); b.append("}\n"); b.append("class SubB2{\n"); b.append(" private final A foo = null;\n"); b.append("}\n"); packageFragment.createCompilationUnit("B.java", b.toString(), true, null); SearchManager manager = new SearchManager(); FindUsagesResponse response = manager.findUsage(aProject, "che.A", 26); Assertions.assertThat(response.getSearchElementLabel()).isEqualTo("A"); List<org.eclipse.che.ide.ext.java.shared.dto.model.JavaProject> projects = response.getProjects(); Assertions.assertThat(projects).isNotNull().isNotEmpty().hasSize(1); String expectedProjectPath = JUnitSourceSetup.getProject().getPath().toOSString(); org.eclipse.che.ide.ext.java.shared.dto.model.JavaProject project = projects.get(0); Assertions.assertThat(project.getName()).isEqualTo(JUnitSourceSetup.PROJECT_NAME); Assertions.assertThat(project.getPath()).isEqualTo(expectedProjectPath); Assertions.assertThat(project.getPackageFragmentRoots()).isNotNull().isNotEmpty().hasSize(1); PackageFragmentRoot fragmentRoot = project.getPackageFragmentRoots().get(0); Assertions.assertThat(fragmentRoot.getElementName()).isEqualTo(JUnitSourceSetup.SRC_CONTAINER); Assertions.assertThat(fragmentRoot.getProjectPath()).isEqualTo(expectedProjectPath); Assertions.assertThat(fragmentRoot.getPackageFragments()).isNotNull().isNotEmpty().hasSize(1); PackageFragment fragment = fragmentRoot.getPackageFragments().get(0); Assertions.assertThat(fragment.getElementName()).isEqualTo("che"); Assertions.assertThat(fragment.getProjectPath()).isEqualTo(expectedProjectPath); Assertions.assertThat(fragment.getPath()) .isEqualTo(expectedProjectPath + "/" + JUnitSourceSetup.SRC_CONTAINER + "/che"); Assertions.assertThat(fragment.getClassFiles()).isNotNull().isEmpty(); Assertions.assertThat(fragment.getCompilationUnits()).isNotNull().isNotEmpty().hasSize(1); CompilationUnit compilationUnit = fragment.getCompilationUnits().get(0); Assertions.assertThat(compilationUnit.getElementName()).isEqualTo("B.java"); Assertions.assertThat(compilationUnit.getPath()) .isEqualTo(expectedProjectPath + "/" + JUnitSourceSetup.SRC_CONTAINER + "/che/B.java"); Assertions.assertThat(compilationUnit.getImports()).hasSize(1); Assertions.assertThat(compilationUnit.getTypes()).hasSize(2); }
From source file:org.eclipse.jdt.internal.core.JavaProject.java
License:Open Source License
public static void validateCycles(Map preferredClasspaths) throws JavaModelException { //long start = System.currentTimeMillis(); IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); IProject[] rscProjects = workspaceRoot.getProjects(); int length = rscProjects.length; JavaProject[] projects = new JavaProject[length]; LinkedHashSet cycleParticipants = new LinkedHashSet(); HashSet traversed = new HashSet(); // compute cycle participants ArrayList prereqChain = new ArrayList(); for (int i = 0; i < length; i++) { if (hasJavaNature(rscProjects[i])) { JavaProject project = (projects[i] = (JavaProject) JavaCore.create(rscProjects[i])); if (!traversed.contains(project.getPath())) { prereqChain.clear();/*from w ww . j a va 2 s . c o m*/ project.updateCycleParticipants(prereqChain, cycleParticipants, workspaceRoot, traversed, preferredClasspaths); } } } //System.out.println("updateAllCycleMarkers: " + (System.currentTimeMillis() - start) + " ms"); for (int i = 0; i < length; i++) { JavaProject project = projects[i]; if (project != null) { if (cycleParticipants.contains(project.getPath())) { IMarker cycleMarker = project.getCycleMarker(); String circularCPOption = project.getOption(JavaCore.CORE_CIRCULAR_CLASSPATH, true); int circularCPSeverity = JavaCore.ERROR.equals(circularCPOption) ? IMarker.SEVERITY_ERROR : IMarker.SEVERITY_WARNING; if (cycleMarker != null) { // update existing cycle marker if needed try { int existingSeverity = ((Integer) cycleMarker.getAttribute(IMarker.SEVERITY)) .intValue(); if (existingSeverity != circularCPSeverity) { cycleMarker.setAttribute(IMarker.SEVERITY, circularCPSeverity); } } catch (CoreException e) { throw new JavaModelException(e); } } else { IJavaProject[] projectsInCycle; String cycleString = ""; //$NON-NLS-1$ if (cycleParticipants.isEmpty()) { projectsInCycle = null; } else { projectsInCycle = new IJavaProject[cycleParticipants.size()]; Iterator it = cycleParticipants.iterator(); int k = 0; while (it.hasNext()) { //projectsInCycle[i++] = (IPath) it.next(); IResource member = workspaceRoot.findMember((IPath) it.next()); if (member != null && member.getType() == IResource.PROJECT) { projectsInCycle[k] = JavaCore.create((IProject) member); if (projectsInCycle[k] != null) { if (k != 0) cycleString += ", "; //$NON-NLS-1$ cycleString += projectsInCycle[k++].getElementName(); } } } } // create new marker project.createClasspathProblemMarker(new JavaModelStatus( IJavaModelStatusConstants.CLASSPATH_CYCLE, project, cycleString)); } } else { project.flushClasspathProblemMarkers(true, false, false); } } } }
From source file:org.isoe.fwk.utils.ResourceUtils.java
License:Open Source License
public static String getDiagraphLanguageName_(JavaProject javaProject) { IProject project = javaProject.getProject(); if (project.isAccessible()) { IPath path = javaProject.getPath(); if (DParams.LanguageTransformer_4_LOG) clog("AKW projectpath=" + path.toPortableString()); if (path.toFile().getAbsolutePath().contains(DiagraphPreferences.getTeamNamespace() + ".")) { try { String prjn = project.getName().substring(project.getName().lastIndexOf(".") + 1); if (prjn.equals("edit") || prjn.equals("editor") || prjn.equals("tests") || prjn.startsWith("diagram")) { prjn = project.getName(); prjn = prjn.substring(DiagraphPreferences.getTeamNamespace().length() + 1); prjn = prjn.substring(0, prjn.lastIndexOf(".")); }// w w w . j av a 2 s . c om EPackage p = getPackage(prjn); // FP140705 if (isDiagraphedM2(p)) { if (DParams.LanguageTransformer_4_LOG) clog("*** AKW lang=" + p.getName()); return p.getName(); } } catch (Exception e) { } } } return null; }
From source file:org.isoe.fwk.utils.ResourceUtils.java
License:Open Source License
public static EPackage getPackage(JavaProject javaProject) { IProject project = javaProject.getProject(); if (project.isAccessible()) { IPath path = javaProject.getPath(); if (DParams.LanguageTransformer_4_LOG) clog("AKW projectpath=" + path.toPortableString()); if (path.toFile().getAbsolutePath().contains(DiagraphPreferences.getTeamNamespace() + ".")) { try { String prjn = project.getName().substring(project.getName().lastIndexOf(".") + 1); if (prjn.equals("edit") || prjn.equals("editor") || prjn.equals("tests") || prjn.startsWith("diagram")) { prjn = project.getName(); prjn = prjn.substring(DiagraphPreferences.getTeamNamespace().length() + 1); prjn = prjn.substring(0, prjn.lastIndexOf(".")); }/*w w w. j a va2 s . c om*/ return getPackage(prjn); // FP140705 } catch (Exception e) { } } } return null; }