List of usage examples for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT_ROOT
int PACKAGE_FRAGMENT_ROOT
To view the source code for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT_ROOT.
Click Source Link
From source file:org.eclipse.modisco.java.discoverer.internal.io.library.LibraryReader.java
License:Open Source License
/** * Returns the {@link Archive} object which corresponds to the * {@link IPackageFragmentRoot#isArchive() archive} in which this class file * is contained. If a corresponding archive is present in the {@code model}, * it is returned, or a new one is created and added to the {@code model}. * //from www . java2s . co m * @param classFile * the class file * @param factory * the EMF factory * @param model * the {@code Model} * @return the {@code Archive object}, or {@code null} if {@code classFile} * is not contained in an archive */ public static Archive getArchive(final IClassFile classFile, final JavaFactory factory, final Model model) { Archive archive = null; IPackageFragmentRoot root = (IPackageFragmentRoot) classFile .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); if (root != null && root.isArchive()) { String libraryPath = getPath(root); // class file is in a library for (Archive itElement : model.getArchives()) { if (itElement.getOriginalFilePath().equals(libraryPath)) { return itElement; } } // if non present in model, create a new one archive = factory.createArchive(); archive.setName(root.getElementName()); archive.setOriginalFilePath(libraryPath); ManifestReader.completeArchiveWithManifest(root, archive, factory); model.getArchives().add(archive); } return archive; }
From source file:org.eclipse.modisco.java.discoverer.internal.io.library.LibraryReader.java
License:Open Source License
/** * Returns the archive-relative path of the class file. If this class file * is in an archive (workspace or external), the path will be the path * inside the archive. If it is in a folder (workspace or external), the * path will be the full absolute path to this class file. * /*from w w w. j ava2 s. c o m*/ * @param classFile * the class file * @return the archive-relative path */ public static String getPath(final IClassFile classFile) { IPackageFragmentRoot library = (IPackageFragmentRoot) classFile .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); String filePath = null; if (library.isArchive()) { // zip or jar IPackageFragment parent = (IPackageFragment) classFile.getParent(); String packagePath = parent.getElementName().replace('.', '/'); filePath = '/' + packagePath + '/' + classFile.getElementName(); } else { // folder if (library.isExternal()) { filePath = classFile.getPath().toOSString(); } else { IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(classFile.getPath()); filePath = file.getLocation().toOSString(); } } return filePath; }
From source file:org.eclipse.mylyn.internal.java.ui.JavaStructureBridge.java
License:Open Source License
/** * Some copying from:// w w w .j a v a2 s . c o m * * @see org.eclipse.jdt.ui.ProblemsLabelDecorator */ public boolean containsProblem(IInteractionElement node) { try { IJavaElement element = (IJavaElement) getObjectForHandle(node.getHandleIdentifier()); switch (element.getElementType()) { case IJavaElement.JAVA_PROJECT: case IJavaElement.PACKAGE_FRAGMENT_ROOT: return getErrorTicksFromMarkers(element.getResource(), IResource.DEPTH_INFINITE, null); case IJavaElement.PACKAGE_FRAGMENT: case IJavaElement.COMPILATION_UNIT: case IJavaElement.CLASS_FILE: return getErrorTicksFromMarkers(element.getResource(), IResource.DEPTH_ONE, null); case IJavaElement.PACKAGE_DECLARATION: case IJavaElement.IMPORT_DECLARATION: case IJavaElement.IMPORT_CONTAINER: case IJavaElement.TYPE: case IJavaElement.INITIALIZER: case IJavaElement.METHOD: case IJavaElement.FIELD: case IJavaElement.LOCAL_VARIABLE: ICompilationUnit cu = (ICompilationUnit) element.getAncestor(IJavaElement.COMPILATION_UNIT); if (cu != null) { return getErrorTicksFromMarkers(element.getResource(), IResource.DEPTH_ONE, null); } } } catch (CoreException e) { // ignore } return false; }
From source file:org.eclipse.objectteams.otdt.internal.core.ext.ResourceMarkable.java
License:Open Source License
public boolean exists() { if (!this.fResource.exists()) return false; IJavaElement javaElement = getJavaElement(); do {/*from www .j a v a 2 s. c o m*/ if (!javaElement.exists()) return false; javaElement = javaElement.getParent(); } while (javaElement.getElementType() != IJavaElement.PACKAGE_FRAGMENT_ROOT); return true; }
From source file:org.eclipse.objectteams.otdt.internal.refactoring.otrefactorings.rolefile.MoveToRoleFileRefactoring.java
License:Open Source License
@Override public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException { pm.beginTask(OTRefactoringMessages.MoveToRoleFileRefactoring_creatingChange_progress, 5); CompositeChange change = new CompositeChange(OTRefactoringMessages.MoveToRoleFileRefactoring_change_name); TextEditGroup editGroup = new TextEditGroup(OTRefactoringMessages.MoveToRoleFileRefactoring_change_name); ICompilationUnit newCuWC = null;/* w w w . j a v a 2s . com*/ try { // packages IPackageFragment enclosingPackage = fRoleType.getPackageFragment(); IPackageFragmentRoot root = (IPackageFragmentRoot) enclosingPackage .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); String enclPackName = enclosingPackage.getElementName(); IPackageFragment teamPackage = root .getPackageFragment(enclPackName.length() == 0 ? fTeamType.getElementName() : enclPackName + '.' + fTeamType.getElementName()); // fetch AST for team and role: CompilationUnitRewrite cuRewrite = new CompilationUnitRewrite(fTeamCUnit); CompilationUnit teamCU = cuRewrite.getRoot(); TypeDeclaration teamNode = (TypeDeclaration) findDeclaration(teamCU, fTeamType); ASTNode roleNode = findDeclaration(teamCU, fRoleType); // new CU: if (!teamPackage.getResource().exists()) change.add(new CreatePackageChange(teamPackage)); newCuWC = teamPackage.getCompilationUnit(fRoleType.getElementName() + JavaModelUtil.DEFAULT_CU_SUFFIX) .getWorkingCopy(new SubProgressMonitor(pm, 2)); // (1) create role: // extract role source (as text): String oldSource = fTeamCUnit.getSource(); ISourceRange sourceRange = fRoleType.getSourceRange(); StringBuilder newRoleSource = new StringBuilder(); IJavaProject javaProject = fRoleType.getJavaProject(); if (StubUtility.doAddComments(javaProject)) newRoleSource.append( CodeGeneration.getFileComment(newCuWC, StubUtility.getLineDelimiterUsed(javaProject))); newRoleSource.append("\nteam package " + teamPackage.getElementName() + ";\n\n"); //$NON-NLS-1$ //$NON-NLS-2$ newRoleSource.append(getAlignedSourceBlock(javaProject, oldSource.substring(sourceRange.getOffset(), sourceRange.getOffset() + sourceRange.getLength()))); // done change #1: change.add(new CreateCompilationUnitChange(newCuWC, newRoleSource.toString(), null)); // (2) modify team: // remove role from team: ASTRewrite rewrite = cuRewrite.getASTRewrite(); ListRewrite teamMembersRewrite = rewrite.getListRewrite(teamNode, teamNode.getBodyDeclarationsProperty()); teamMembersRewrite.remove(roleNode, editGroup); // add javadoc tag '@role roleName' Javadoc teamDoc = teamNode.getJavadoc(); AST ast = teamCU.getAST(); TextElement roleName = ast.newTextElement(); roleName.setText(fRoleType.getElementName()); TagElement roleTag = ast.newTagElement(); roleTag.setTagName("@role"); //$NON-NLS-1$ roleTag.fragments().add(roleName); if (teamDoc == null) { // need to add a fresh Javadoc teamDoc = ast.newJavadoc(); teamDoc.tags().add(roleTag); rewrite.set(teamNode, teamNode.getJavadocProperty(), teamDoc, editGroup); } else { // need to insert tag into existing Javadoc ListRewrite tags = rewrite.getListRewrite(teamDoc, Javadoc.TAGS_PROPERTY); tags.insertLast(roleTag, editGroup); } // done change #2: change.add(cuRewrite.createChange(true, new SubProgressMonitor(pm, 2))); } finally { if (newCuWC != null) newCuWC.discardWorkingCopy(); } pm.done(); return change; }
From source file:org.eclipse.objectteams.otdt.ui.tests.refactoring.reorg.OTCopyToClipboardTests.java
License:Open Source License
private static int countResources(IJavaElement[] javaElementsCopied) { int count = 0; for (int i = 0; i < javaElementsCopied.length; i++) { IJavaElement element = javaElementsCopied[i]; switch (element.getElementType()) { case IJavaElement.JAVA_PROJECT: case IJavaElement.PACKAGE_FRAGMENT_ROOT: case IJavaElement.PACKAGE_FRAGMENT: case IJavaElement.COMPILATION_UNIT: case IJavaElement.CLASS_FILE: count++;//from www. j av a2s .co m } } return count; }
From source file:org.eclipse.oomph.manifests.OpenManifestHandler.java
License:Open Source License
@Override @SuppressWarnings("restriction") protected void executeWithElement(IWorkbenchPage page, Object element) throws Exception { if (element == null) { IEditorPart editor = page.getActiveEditor(); if (editor != null) { element = editor.getEditorInput(); }/*from ww w . j a va2s. c o m*/ } IPluginModelBase pluginModelBase = ObjectUtil.adapt(element, IPluginModelBase.class); if (pluginModelBase != null) { org.eclipse.pde.internal.ui.editor.plugin.ManifestEditor.openPluginEditor(pluginModelBase); return; } BundleDescription bundleDescription = ObjectUtil.adapt(element, BundleDescription.class); if (bundleDescription != null) { org.eclipse.pde.internal.ui.editor.plugin.ManifestEditor.openPluginEditor(bundleDescription); return; } IJavaElement javaElement = ObjectUtil.adapt(element, IJavaElement.class); while (javaElement != null && javaElement.getElementType() != IJavaElement.PACKAGE_FRAGMENT_ROOT) { javaElement = javaElement.getParent(); } if (javaElement != null) { IPackageFragmentRoot root = (IPackageFragmentRoot) javaElement; IEditorInput editorInput = getManifestEditorInputStorage(root); if (editorInput != null) { org.eclipse.pde.internal.ui.editor.plugin.ManifestEditor.openEditor(editorInput); } } }
From source file:org.eclipse.pde.api.tools.internal.builder.BaseApiAnalyzer.java
License:Open Source License
/** * Recursively finds all source in the given project and scans it for * invalid tags/*from w ww . j a v a2s.c o m*/ * * @param element * @param monitor * @throws JavaModelException */ private void scanSource(IJavaElement element, boolean tags, boolean annotations, IProgressMonitor monitor) throws JavaModelException { try { switch (element.getElementType()) { case IJavaElement.PACKAGE_FRAGMENT_ROOT: case IJavaElement.PACKAGE_FRAGMENT: { IParent parent = (IParent) element; IJavaElement[] children = parent.getChildren(); for (int i = 0; i < children.length; i++) { scanSource(children[i], tags, annotations, monitor); Util.updateMonitor(monitor, 0); } break; } case IJavaElement.COMPILATION_UNIT: { ICompilationUnit unit = (ICompilationUnit) element; processType(unit, tags, annotations); Util.updateMonitor(monitor, 0); break; } default: break; } } finally { if (monitor != null) { Util.updateMonitor(monitor); monitor.done(); } } }
From source file:org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.java
License:Open Source License
/** * Processes the java element deltas of interest * //from ww w .j a v a 2 s . co m * @param deltas */ void processJavaElementDeltas(IJavaElementDelta[] deltas, IJavaProject project) { for (int i = 0; i < deltas.length; i++) { IJavaElementDelta delta = deltas[i]; switch (delta.getElement().getElementType()) { case IJavaElement.JAVA_PROJECT: { IJavaProject proj = (IJavaProject) delta.getElement(); int flags = delta.getFlags(); switch (delta.getKind()) { case IJavaElementDelta.CHANGED: { if (!Util.isApiProject(proj)) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> skipped processing CHANGED delta for project: " + proj.getElementName()); //$NON-NLS-1$ } continue; } if ((flags & IJavaElementDelta.F_OPENED) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> processing OPEN project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } bmanager.disposeWorkspaceBaseline(); } else if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0 || (flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> processing CLASSPATH CHANGE project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } bmanager.disposeWorkspaceBaseline(); dmanager.projectClasspathChanged(proj); try { BuildState.setLastBuiltState(proj.getProject(), null); } catch (CoreException e) { } dmanager.flushElementCache(delta.getElement()); } else if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> processing CHILDREN delta of project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } processJavaElementDeltas(delta.getAffectedChildren(), proj); } else if ((flags & IJavaElementDelta.F_CONTENT) != 0) { if (proj != null) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> processing child CONTENT of project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } IResourceDelta[] resourcedeltas = delta.getResourceDeltas(); if (resourcedeltas != null) { IResourceDelta rdelta = null; for (int j = 0; j < resourcedeltas.length; j++) { rdelta = resourcedeltas[j].findMember(new Path(Util.MANIFEST_NAME)); if (rdelta != null && rdelta.getKind() == IResourceDelta.CHANGED && (rdelta.getFlags() & IResourceDelta.CONTENT) > 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> processing manifest delta"); //$NON-NLS-1$ } bmanager.disposeWorkspaceBaseline(); break; } } } } else { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> ignoring child CONTENT project context is null"); //$NON-NLS-1$ } } } break; } case IJavaElementDelta.ADDED: { if (!Util.isApiProject(proj)) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> skipped processing ADDED delta for project: " + proj.getElementName()); //$NON-NLS-1$ } continue; } if ((flags & IJavaElementDelta.F_MOVED_FROM) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> processing PROJECT RENAME from: [" //$NON-NLS-1$ + delta.getMovedFromElement().getJavaProject().getElementName() + "] to: [" //$NON-NLS-1$ + proj.getElementName() + "]"); //$NON-NLS-1$ } bmanager.disposeWorkspaceBaseline(); } break; } default: break; } break; } case IJavaElement.PACKAGE_FRAGMENT_ROOT: { IPackageFragmentRoot root = (IPackageFragmentRoot) delta.getElement(); int flags = delta.getFlags(); if ((flags & (IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED | IJavaElementDelta.F_ADDED_TO_CLASSPATH | IJavaElementDelta.F_REMOVED_FROM_CLASSPATH)) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("processed CLASSPATH CHANGED for package fragment root: [" //$NON-NLS-1$ + root.getElementName() + "]"); //$NON-NLS-1$ } dmanager.projectClasspathChanged(project); } if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "processed CHILDREN for package fragment root: [" + root.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } processJavaElementDeltas(delta.getAffectedChildren(), project); } break; } case IJavaElement.PACKAGE_FRAGMENT: { IPackageFragment fragment = (IPackageFragment) delta.getElement(); if (delta.getKind() == IJavaElementDelta.REMOVED) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("processed REMOVED delta for package fragment: [" //$NON-NLS-1$ + fragment.getElementName() + "]"); //$NON-NLS-1$ } ((ApiBaseline) bmanager.getWorkspaceBaseline()).clearPackage(fragment.getElementName()); } int flags = delta.getFlags(); if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("processed CHILDREN delta for package fragment: [" //$NON-NLS-1$ + fragment.getElementName() + "]"); //$NON-NLS-1$ } processJavaElementDeltas(delta.getAffectedChildren(), project); } break; } case IJavaElement.COMPILATION_UNIT: { int flags = delta.getFlags(); switch (delta.getKind()) { case IJavaElementDelta.CHANGED: { if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_FINE_GRAINED | IJavaElementDelta.F_PRIMARY_RESOURCE)) != 0) { if (project != null) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out .println("processed CONTENT / FINE_GRAINED / PRIMARY_RESOURCE delta for: [" //$NON-NLS-1$ + delta.getElement().getElementName() + "]"); //$NON-NLS-1$ } dmanager.projectChanged(project); dmanager.flushElementCache(delta.getElement()); continue; } } break; } case IJavaElementDelta.ADDED: case IJavaElementDelta.REMOVED: { if (project != null) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { if (delta.getKind() == IJavaElementDelta.ADDED) { System.out.println( "processed ADDED delta for: [" + delta.getElement().getElementName() + "]"); //$NON-NLS-1$//$NON-NLS-2$ } else { System.out.println("processed REMOVED delta for: [" //$NON-NLS-1$ + delta.getElement().getElementName() + "]"); //$NON-NLS-1$ } } dmanager.projectChanged(project); dmanager.flushElementCache(delta.getElement()); continue; } break; } default: break; } break; } default: break; } } }
From source file:org.eclipse.pde.api.tools.ui.internal.JavaElementActionFilter.java
License:Open Source License
/** * @see org.eclipse.ui.IActionFilter#testAttribute(Object, String, String) *//*w w w . ja va2 s. c om*/ @Override public boolean testAttribute(Object target, String name, String value) { if (name.equals("JavaElementActionFilter")) { //$NON-NLS-1$ if (target instanceof IJavaElement) { IJavaElement javaElement = (IJavaElement) target; if (value.equals("isEnabled")) { //$NON-NLS-1$ while (javaElement != null) { switch (javaElement.getElementType()) { case IJavaElement.PACKAGE_FRAGMENT_ROOT: IPackageFragmentRoot root = (IPackageFragmentRoot) javaElement; return !root.isArchive(); case IJavaElement.PACKAGE_FRAGMENT: case IJavaElement.COMPILATION_UNIT: case IJavaElement.CLASS_FILE: case IJavaElement.TYPE: javaElement = javaElement.getParent(); break; case IJavaElement.ANNOTATION: case IJavaElement.FIELD: case IJavaElement.IMPORT_CONTAINER: case IJavaElement.IMPORT_DECLARATION: case IJavaElement.INITIALIZER: case IJavaElement.JAVA_MODEL: case IJavaElement.LOCAL_VARIABLE: case IJavaElement.METHOD: case IJavaElement.PACKAGE_DECLARATION: case IJavaElement.TYPE_PARAMETER: return false; case IJavaElement.JAVA_PROJECT: return true; default: break; } } return true; } } } return false; }