Example usage for org.eclipse.jdt.core IJavaProject getElementName

List of usage examples for org.eclipse.jdt.core IJavaProject getElementName

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaProject getElementName.

Prototype

String getElementName();

Source Link

Document

Returns the name of this element.

Usage

From source file:org.eclipse.mylyn.internal.java.ui.junit.InteractionContextTestUtil.java

License:Open Source License

public static void setupTestConfiguration(Set<IType> contextTestCases, ILaunchConfiguration configuration,
        IProgressMonitor pm) throws CoreException {
    String testKindId = TestKindRegistry.JUNIT3_TEST_KIND_ID;

    IJavaProject javaProject = null;
    for (IType type : contextTestCases) {
        IProjectNature nature = type.getJavaProject().getProject().getNature("org.eclipse.pde.PluginNature"); //$NON-NLS-1$
        if (nature != null) {
            // HACK: might want another project
            javaProject = type.getJavaProject();
        }//from  w w w  .j a v  a  2  s  . c o  m
    }

    ILaunchConfigurationWorkingCopy workingCopy = configuration.getWorkingCopy();
    if (javaProject != null) {
        workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME,
                javaProject.getElementName());
    }

    // HACK: only checks first type
    if (contextTestCases.size() > 0) {
        testKindId = TestKindRegistry.getContainerTestKindId(contextTestCases.iterator().next());
        workingCopy.setAttribute(JUnitLaunchConfigurationConstants.ATTR_TEST_RUNNER_KIND, testKindId);
        //         testKind = TestKindRegistry.getDefault().getKind(configuration);// contextTestCases.iterator().next());
    }
    workingCopy.doSave();
}

From source file:org.eclipse.pde.api.tools.internal.ApiDescriptionManager.java

License:Open Source License

/**
 * Cleans the API description for the given project.
 * //from  w w  w  .  j  a v a 2s .  c  o  m
 * @param project
 * @param delete whether to delete the file on disk
 * @param remove whether to remove the cached API description
 */
public synchronized void clean(IJavaProject project, boolean delete, boolean remove) {
    ProjectApiDescription desc = null;
    if (remove) {
        desc = (ProjectApiDescription) fDescriptions.remove(project);
    } else {
        desc = (ProjectApiDescription) fDescriptions.get(project);
    }
    if (desc != null) {
        desc.clean();
    }
    if (delete) {
        File file = API_DESCRIPTIONS_CONTAINER_PATH.append(project.getElementName())
                .append(IApiCoreConstants.API_DESCRIPTION_XML_NAME).toFile();
        if (file.exists()) {
            file.delete();
        }
        file = API_DESCRIPTIONS_CONTAINER_PATH.append(project.getElementName()).toFile();
        if (file.exists() && file.isDirectory()) {
            file.delete();
        }
    }
}

From source file:org.eclipse.pde.api.tools.internal.ApiDescriptionManager.java

License:Open Source License

@Override
public synchronized void saving(ISaveContext context) throws CoreException {
    if (context.getKind() == ISaveContext.PROJECT_SAVE && !Util.isJavaProject(context.getProject())) {
        return;//from ww w  .java2s  .  c  om
    }

    Iterator<Entry<IJavaProject, IApiDescription>> entries = fDescriptions.entrySet().iterator();
    while (entries.hasNext()) {
        Entry<IJavaProject, IApiDescription> entry = entries.next();
        IJavaProject project = entry.getKey();
        ProjectApiDescription desc = (ProjectApiDescription) entry.getValue();
        if (desc.isModified()) {
            File dir = API_DESCRIPTIONS_CONTAINER_PATH.append(project.getElementName()).toFile();
            dir.mkdirs();
            String xml = desc.getXML();
            try {
                Util.saveFile(new File(dir, IApiCoreConstants.API_DESCRIPTION_XML_NAME), xml);
                desc.setModified(false);
            } catch (IOException e) {
                abort(MessageFormat.format(ScannerMessages.ApiDescriptionManager_0,
                        new Object[] { project.getElementName() }), e);
            }
        }
    }
}

From source file:org.eclipse.pde.api.tools.internal.ApiDescriptionManager.java

License:Open Source License

/**
 * Restores the API description from its saved file, if any and returns true
 * if successful.// w w w .  java 2  s .  com
 * 
 * @param project
 * @param description
 * @return whether the restore succeeded
 * @throws CoreException
 */
private boolean restoreDescription(IJavaProject project, ProjectApiDescription description)
        throws CoreException {
    File file = API_DESCRIPTIONS_CONTAINER_PATH.append(project.getElementName())
            .append(IApiCoreConstants.API_DESCRIPTION_XML_NAME).toFile();
    if (file.exists()) {
        BufferedInputStream stream = null;
        try {
            stream = new BufferedInputStream(new FileInputStream(file));
            String xml = new String(Util.getInputStreamAsCharArray(stream, -1, IApiCoreConstants.UTF_8));
            Element root = Util.parseDocument(xml);
            if (!root.getNodeName().equals(IApiXmlConstants.ELEMENT_COMPONENT)) {
                abort(ScannerMessages.ComponentXMLScanner_0, null);
            }
            long timestamp = getLong(root, IApiXmlConstants.ATTR_MODIFICATION_STAMP);
            String version = root.getAttribute(IApiXmlConstants.ATTR_VERSION);
            description.setEmbeddedVersion(version);
            if (IApiXmlConstants.API_DESCRIPTION_CURRENT_VERSION.equals(version)) {
                description.fPackageTimeStamp = timestamp;
                description.fManifestFile = project.getProject().getFile(JarFile.MANIFEST_NAME);
                restoreChildren(description, root, null, description.fPackageMap);
                return true;
            }
        } catch (IOException e) {
            abort(MessageFormat.format(ScannerMessages.ApiDescriptionManager_1,
                    new Object[] { project.getElementName() }), e);
        } finally {
            if (stream != null) {
                try {
                    stream.close();
                } catch (IOException e) {
                    // ignore
                }
            }
        }
    }
    return false;
}

From source file:org.eclipse.pde.api.tools.internal.ProjectApiDescription.java

License:Open Source License

/**
 * Constructs a new API description for the given project API component.
 * /*from   w ww.  j  a  v a 2s  . com*/
 * @param component
 */
public ProjectApiDescription(IJavaProject project) {
    super(project.getElementName());
    fProject = project;
}

From source file:org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.java

License:Open Source License

/**
 * Processes the java element deltas of interest
 * //from  w w w  . jav a 2 s . c o  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.tests.AbstractApiTest.java

License:Open Source License

/**
 * Returns the {@link IApiComponent} for the given project name or
 * <code>null</code> if it does not exist
 * /*from ww w  .j av  a  2  s. c om*/
 * @param projectname the name of the project
 * @return the {@link IApiComponent} for the given project name or
 *         <code>null</code>
 */
protected IApiComponent getProjectApiComponent(String projectname) {
    IJavaProject project = getTestingJavaProject(projectname);
    assertNotNull("the project " + projectname + " must exist", project); //$NON-NLS-1$ //$NON-NLS-2$
    IApiBaseline profile = ApiPlugin.getDefault().getApiBaselineManager().getWorkspaceBaseline();
    assertNotNull("the workspace profile must exist", profile); //$NON-NLS-1$
    return profile.getApiComponent(project.getElementName());
}

From source file:org.eclipse.pde.api.tools.ui.internal.wizards.CompareOperation.java

License:Open Source License

/**
 * @param structuredSelection// w  ww. j  a  va  2 s.c  o  m
 * @param monitor
 * @return the scope
 */
public static ApiScope walkStructureSelection(IStructuredSelection structuredSelection,
        IProgressMonitor monitor) {
    Object[] selected = structuredSelection.toArray();
    ApiScope scope = new ApiScope();
    IApiBaseline workspaceBaseline = ApiBaselineManager.getManager().getWorkspaceBaseline();
    if (workspaceBaseline == null) {
        return scope;
    }
    Arrays.sort(selected, new Comparator<Object>() {
        @Override
        public int compare(Object o1, Object o2) {
            if (o1 instanceof IJavaElement && o2 instanceof IJavaElement) {
                IJavaElement element = (IJavaElement) o1;
                IJavaElement element2 = (IJavaElement) o2;
                return element.getElementType() - element2.getElementType();
            }
            return 0;
        }
    });
    int length = selected.length;
    for (int i = 0; i < length; i++) {
        Object currentSelection = selected[i];
        if (currentSelection instanceof IJavaElement) {
            IJavaElement element = (IJavaElement) currentSelection;
            IJavaProject javaProject = element.getJavaProject();
            try {
                switch (element.getElementType()) {
                case IJavaElement.COMPILATION_UNIT: {
                    ICompilationUnit compilationUnit = (ICompilationUnit) element;
                    IApiComponent apiComponent = workspaceBaseline
                            .getApiComponent(javaProject.getElementName());
                    if (apiComponent != null) {
                        addElementFor(compilationUnit, apiComponent, scope);
                    }
                    break;
                }
                case IJavaElement.PACKAGE_FRAGMENT: {
                    IPackageFragment fragment = (IPackageFragment) element;
                    IApiComponent apiComponent = workspaceBaseline
                            .getApiComponent(javaProject.getElementName());
                    IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) fragment
                            .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
                    boolean isArchive = false;
                    if (packageFragmentRoot != null) {
                        isArchive = packageFragmentRoot.isArchive();
                    }
                    if (apiComponent != null) {
                        addElementFor(fragment, isArchive, apiComponent, scope);
                    }
                    break;
                }
                case IJavaElement.PACKAGE_FRAGMENT_ROOT: {
                    IPackageFragmentRoot fragmentRoot = (IPackageFragmentRoot) element;
                    IApiComponent apiComponent = workspaceBaseline
                            .getApiComponent(javaProject.getElementName());
                    if (apiComponent != null) {
                        addElementFor(fragmentRoot, apiComponent, scope);
                    }
                    break;
                }
                case IJavaElement.JAVA_PROJECT:
                    IApiComponent apiComponent = workspaceBaseline
                            .getApiComponent(javaProject.getElementName());
                    if (apiComponent != null) {
                        scope.addElement(apiComponent);
                    }
                    break;
                default:
                    break;
                }
            } catch (JavaModelException e) {
                ApiPlugin.log(e);
            } catch (CoreException e) {
                ApiPlugin.log(e);
            }
        }
    }
    return scope;
}

From source file:org.eclipse.pde.api.tools.util.tests.ApiBaselineManagerTests.java

License:Open Source License

/**
 * Tests that adding a source file to an API aware project causes the
 * workspace description to be updated This test adds
 * <code>a.b.c.TestClass1</code> to the plug-in project
 *//*from w  w  w .j a  v a 2s .  c  o  m*/
public void testWPUpdateSourceAdded() throws Exception {
    IJavaProject project = getTestingProject();
    assertNotNull("The testing project must exist", project); //$NON-NLS-1$
    IPackageFragmentRoot root = project.findPackageFragmentRoot(
            new Path(project.getElementName()).append(ProjectUtils.SRC_FOLDER).makeAbsolute().makeAbsolute());
    assertNotNull("the 'src' package fragment root must exist", root); //$NON-NLS-1$
    assertTestSource(root, TESTING_PACKAGE, "TestClass1"); //$NON-NLS-1$
    assertSourceResctriction(TESTING_PACKAGE, "TestClass1", RestrictionModifiers.NO_INSTANTIATE); //$NON-NLS-1$
}

From source file:org.eclipse.pde.api.tools.util.tests.ApiBaselineManagerTests.java

License:Open Source License

/**
 * Tests that removing a source file from an API aware project causes the
 * workspace description to be updated/* w ww  .  j  a  v  a  2 s.  c  o  m*/
 */
public void testWPUpdateSourceRemoved() throws Exception {
    IJavaProject project = getTestingProject();
    assertNotNull("The testing project must exist", project); //$NON-NLS-1$
    IPackageFragmentRoot root = project.findPackageFragmentRoot(
            new Path(project.getElementName()).append(ProjectUtils.SRC_FOLDER).makeAbsolute());
    assertNotNull("the 'src' package fragment root must exist", root); //$NON-NLS-1$
    assertTestSource(root, TESTING_PACKAGE, "TestClass1"); //$NON-NLS-1$
    IJavaElement element = project.findElement(new Path("a/b/c/TestClass1.java")); //$NON-NLS-1$
    assertNotNull("the class a.b.c.TestClass1 must exist in the project", element); //$NON-NLS-1$
    element.getResource().delete(true, new NullProgressMonitor());
    IApiDescription desc = getTestProjectApiDescription();
    assertNotNull("the testing project api description must exist", desc); //$NON-NLS-1$
    IApiAnnotations annot = desc.resolveAnnotations(Factory.typeDescriptor("a.b.c.TestClass1")); //$NON-NLS-1$
    assertNull("the annotations for a.b.c.TestClass1 should no longer be present", annot); //$NON-NLS-1$
}