Example usage for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT_ROOT

List of usage examples for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT_ROOT

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT_ROOT.

Prototype

int PACKAGE_FRAGMENT_ROOT

To view the source code for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT_ROOT.

Click Source Link

Document

Constant representing a package fragment root.

Usage

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;
}