Example usage for org.eclipse.jdt.core JavaCore getClasspathContainerInitializer

List of usage examples for org.eclipse.jdt.core JavaCore getClasspathContainerInitializer

Introduction

In this page you can find the example usage for org.eclipse.jdt.core JavaCore getClasspathContainerInitializer.

Prototype

public static ClasspathContainerInitializer getClasspathContainerInitializer(String containerID) 

Source Link

Document

Helper method finding the classpath container initializer registered for a given classpath container ID or null if none was found while iterating over the contributions to extension point to the extension point "org.eclipse.jdt.core.classpathContainerInitializer".

Usage

From source file:at.bestsolution.fxide.jdt.corext.util.JavaModelUtil.java

License:Open Source License

/**
 * Helper method that tests if an classpath entry can be found in a
 * container. <code>null</code> is returned if the entry can not be found
 * or if the container does not allows the configuration of source
 * attachments/* www . ja  va2s.c om*/
 * @param jproject The container's parent project
 * @param containerPath The path of the container
 * @param libPath The path of the library to be found
 * @return IClasspathEntry A classpath entry from the container of
 * <code>null</code> if the container can not be modified.
 * @throws JavaModelException thrown if accessing the container failed
 */
public static IClasspathEntry getClasspathEntryToEdit(IJavaProject jproject, IPath containerPath, IPath libPath)
        throws JavaModelException {
    IClasspathContainer container = JavaCore.getClasspathContainer(containerPath, jproject);
    ClasspathContainerInitializer initializer = JavaCore
            .getClasspathContainerInitializer(containerPath.segment(0));
    if (container != null && initializer != null
            && initializer.canUpdateClasspathContainer(containerPath, jproject)) {
        return findEntryInContainer(container, libPath);
    }
    return null; // attachment not possible
}

From source file:at.bestsolution.javafx.ide.jdt.internal.jdt.CPListElement.java

License:Open Source License

private IStatus evaluateContainerChildStatus(CPListElementAttribute attrib) {
    if (fProject != null) {
        ClasspathContainerInitializer initializer = JavaCore.getClasspathContainerInitializer(fPath.segment(0));
        if (initializer != null && initializer.canUpdateClasspathContainer(fPath, fProject)) {
            if (attrib.isBuiltIn()) {
                if (CPListElement.SOURCEATTACHMENT.equals(attrib.getKey())) {
                    return initializer.getSourceAttachmentStatus(fPath, fProject);
                } else if (CPListElement.ACCESSRULES.equals(attrib.getKey())) {
                    return initializer.getAccessRulesStatus(fPath, fProject);
                }//from   w w  w.j  a v  a 2 s . co m
            } else {
                return initializer.getAttributeStatus(fPath, fProject, attrib.getKey());
            }
        }
        return new Status(IStatus.ERROR, "at.bestsolution.javafx.ide.jdt", //$NON-NLS-1$
                ClasspathContainerInitializer.ATTRIBUTE_READ_ONLY, "", null);
    }
    return null;
}

From source file:ch.mlutz.plugins.t4e.handlers.ClasspathContainerHandler.java

License:Open Source License

private Object onAddClasspathContainer(ExecutionEvent event) throws ExecutionException {

    // boolean oldValue = HandlerUtil.toggleCommandState(event.getCommand());

    String localRepositoryDir = MavenTools.getMavenLocalRepoPath();
    log.info("LocalRepositoryDir: " + localRepositoryDir);

    /*/*  w ww .  ja  v a  2s  .c  o  m*/
         try {
    JavaCore.setClasspathContainer(containerSuggestion.getPath(), new IJavaProject[] {project},
       new IClasspathContainer[] {new Maven2ClasspathContainer(containerPath, bundleUpdater.newEntries)}, null);
         } catch(JavaModelException ex) {
    Maven2Plugin.getDefault().getConsole().logError(ex.getMessage());
         }
     */

    // get workbench window
    IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
    // set selection service
    ISelectionService service = window.getSelectionService();
    // set structured selection
    IStructuredSelection structured = (IStructuredSelection) service.getSelection();

    //check if it is an IFile
    Object el = structured.getFirstElement();

    if (el instanceof IJavaProject) {

        IJavaProject javaProject = (IJavaProject) el;

        // Create new Classpath Container Entry
        IClasspathEntry containerEntry = JavaCore.newContainerEntry(CONTAINER_PATH);

        // Initialize Classpath Container
        ClasspathContainerInitializer containerInit = JavaCore
                .getClasspathContainerInitializer(Constants.CONTAINER_ID);
        try {
            containerInit.initialize(new Path(Constants.CONTAINER_ID), javaProject);

            // Set Classpath of Java Project
            List<IClasspathEntry> projectClassPath = new ArrayList<IClasspathEntry>(
                    Arrays.asList(javaProject.getRawClasspath()));
            projectClassPath.add(containerEntry);
            javaProject.setRawClasspath(projectClassPath.toArray(new IClasspathEntry[projectClassPath.size()]),
                    null);
        } catch (CoreException e) {
            log.error("Could not add Classpath container: ", e);
        }

        /*
        IClasspathEntry varEntry = JavaCore.newContainerEntry(
              new Path("JDKLIB/default"), // container 'JDKLIB' + hint 'default'
              false); //not exported
                
        try {
           JavaCore.setClasspathContainer(
          new Path("JDKLIB/default"),
          new IJavaProject[]{ (IJavaProject) el }, // value for 'myProject'
          new IClasspathContainer[] {
             new IClasspathContainer() {
                public IClasspathEntry[] getClasspathEntries() {
                   return new IClasspathEntry[]{
                         JavaCore.newLibraryEntry(new Path("d:/rt.jar"), null, null, false)
                   };
                }
                public String getDescription() { return "Basic JDK library container"; }
                public int getKind() { return IClasspathContainer.K_SYSTEM; }
                public IPath getPath() { return new Path("JDKLIB/basic"); }
             }
          },
          null);
        } catch (JavaModelException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
        }
        */
    }
    return null;
}

From source file:com.cisco.surf.jenkow.ide.config.UserLibConfigurator.java

License:Open Source License

public void configure(final String name, final File jarFileOrDir) throws CoreException {

    ClasspathContainerInitializer initializer = JavaCore
            .getClasspathContainerInitializer(JavaCore.USER_LIBRARY_CONTAINER_ID);
    IPath containerPath = new Path(JavaCore.USER_LIBRARY_CONTAINER_ID);
    initializer.requestClasspathContainerUpdate(containerPath.append(name), null,
            getClasspathContainer(name, jarFileOrDir));
}

From source file:com.codenvy.ide.ext.java.server.internal.core.JavaModelStatus.java

License:Open Source License

/**
 * Returns the message that is relevant to the code of this status.
 *//* w w w  . j  av  a2 s  .c o m*/
public String getMessage() {
    Throwable exception = getException();
    if (exception == null) {
        switch (getCode()) {
        case CORE_EXCEPTION:
            return Messages.status_coreException;

        case BUILDER_INITIALIZATION_ERROR:
            return Messages.build_initializationError;

        case BUILDER_SERIALIZATION_ERROR:
            return Messages.build_serializationError;

        case DEVICE_PATH:
            return Messages.bind(Messages.status_cannotUseDeviceOnPath, getPath().toString());

        case DOM_EXCEPTION:
            return Messages.status_JDOMError;

        case ELEMENT_DOES_NOT_EXIST:
            return Messages.bind(Messages.element_doesNotExist,
                    ((JavaElement) this.elements[0]).toStringWithAncestors());

        case ELEMENT_NOT_ON_CLASSPATH:
            return Messages.bind(Messages.element_notOnClasspath,
                    ((JavaElement) this.elements[0]).toStringWithAncestors());

        case EVALUATION_ERROR:
            return Messages.bind(Messages.status_evaluationError, this.string);

        case INDEX_OUT_OF_BOUNDS:
            return Messages.status_indexOutOfBounds;

        case INVALID_CONTENTS:
            return Messages.status_invalidContents;

        case INVALID_DESTINATION:
            return Messages.bind(Messages.status_invalidDestination,
                    ((JavaElement) this.elements[0]).toStringWithAncestors());

        case INVALID_ELEMENT_TYPES:
            StringBuffer buff = new StringBuffer(Messages.operation_notSupported);
            for (int i = 0; i < this.elements.length; i++) {
                if (i > 0) {
                    buff.append(", "); //$NON-NLS-1$
                }
                buff.append(((JavaElement) this.elements[i]).toStringWithAncestors());
            }
            return buff.toString();

        case INVALID_NAME:
            return Messages.bind(Messages.status_invalidName, this.string);

        case INVALID_PACKAGE:
            return Messages.bind(Messages.status_invalidPackage, this.string);

        case INVALID_PATH:
            if (this.string != null) {
                return this.string;
            } else {
                return Messages.bind(Messages.status_invalidPath,
                        new String[] { getPath() == null ? "null" : getPath().toString() } //$NON-NLS-1$
                );
            }

        case INVALID_PROJECT:
            return Messages.bind(Messages.status_invalidProject, this.string);

        case INVALID_RESOURCE:
            return Messages.bind(Messages.status_invalidResource, this.string);

        case INVALID_RESOURCE_TYPE:
            return Messages.bind(Messages.status_invalidResourceType, this.string);

        case INVALID_SIBLING:
            if (this.string != null) {
                return Messages.bind(Messages.status_invalidSibling, this.string);
            } else {
                return Messages.bind(Messages.status_invalidSibling,
                        ((JavaElement) this.elements[0]).toStringWithAncestors());
            }

        case IO_EXCEPTION:
            return Messages.status_IOException;

        case NAME_COLLISION:
            if (this.elements != null && this.elements.length > 0) {
                IJavaElement element = this.elements[0];
                if (element instanceof org.eclipse.jdt.internal.core.PackageFragment
                        && ((PackageFragment) element).isDefaultPackage()) {
                    return Messages.operation_cannotRenameDefaultPackage;
                }
            }
            if (this.string != null) {
                return this.string;
            } else {
                return Messages.bind(Messages.status_nameCollision, ""); //$NON-NLS-1$
            }
        case NO_ELEMENTS_TO_PROCESS:
            return Messages.operation_needElements;

        case NULL_NAME:
            return Messages.operation_needName;

        case NULL_PATH:
            return Messages.operation_needPath;

        case NULL_STRING:
            return Messages.operation_needString;

        case PATH_OUTSIDE_PROJECT:
            return Messages.bind(Messages.operation_pathOutsideProject,
                    new String[] { this.string, ((JavaElement) this.elements[0]).toStringWithAncestors() });

        case READ_ONLY:
            IJavaElement element = this.elements[0];
            String name = element.getElementName();
            if (element instanceof IPackageFragment && name.equals(IPackageFragment.DEFAULT_PACKAGE_NAME)) {
                return Messages.status_defaultPackageReadOnly;
            }
            return Messages.bind(Messages.status_readOnly, name);

        case RELATIVE_PATH:
            return Messages.bind(Messages.operation_needAbsolutePath, getPath().toString());

        case TARGET_EXCEPTION:
            return Messages.status_targetException;

        case UPDATE_CONFLICT:
            return Messages.status_updateConflict;

        case NO_LOCAL_CONTENTS:
            return Messages.bind(Messages.status_noLocalContents, getPath().toString());

        case CP_CONTAINER_PATH_UNBOUND:
            IJavaProject javaProject = (IJavaProject) this.elements[0];
            ClasspathContainerInitializer initializer = JavaCore
                    .getClasspathContainerInitializer(this.path.segment(0));
            String description = null;
            if (initializer != null)
                description = initializer.getDescription(this.path, javaProject);
            if (description == null)
                description = this.path.makeRelative().toString();
            return Messages.bind(Messages.classpath_unboundContainerPath,
                    new String[] { description, javaProject.getElementName() });

        case INVALID_CP_CONTAINER_ENTRY:
            javaProject = (IJavaProject) this.elements[0];
            IClasspathContainer container = null;
            description = null;
            try {
                container = JavaCore.getClasspathContainer(this.path, javaProject);
            } catch (JavaModelException e) {
                // project doesn't exist: ignore
            }
            if (container == null) {
                initializer = JavaCore.getClasspathContainerInitializer(this.path.segment(0));
                if (initializer != null)
                    description = initializer.getDescription(this.path, javaProject);
            } else {
                description = container.getDescription();
            }
            if (description == null)
                description = this.path.makeRelative().toString();
            return Messages.bind(Messages.classpath_invalidContainer,
                    new String[] { description, javaProject.getElementName() });

        case CP_VARIABLE_PATH_UNBOUND:
            javaProject = (IJavaProject) this.elements[0];
            return Messages.bind(Messages.classpath_unboundVariablePath,
                    new String[] { this.path.makeRelative().toString(), javaProject.getElementName() });

        case CLASSPATH_CYCLE:
            javaProject = (IJavaProject) this.elements[0];
            return Messages.bind(Messages.classpath_cycle,
                    new String[] { javaProject.getElementName(), this.string });

        case DISABLED_CP_EXCLUSION_PATTERNS:
            javaProject = (IJavaProject) this.elements[0];
            String projectName = javaProject.getElementName();
            IPath newPath = this.path;
            if (this.path.segment(0).toString().equals(projectName)) {
                newPath = this.path.removeFirstSegments(1);
            }
            return Messages.bind(Messages.classpath_disabledInclusionExclusionPatterns,
                    new String[] { newPath.makeRelative().toString(), projectName });

        case DISABLED_CP_MULTIPLE_OUTPUT_LOCATIONS:
            javaProject = (IJavaProject) this.elements[0];
            projectName = javaProject.getElementName();
            newPath = this.path;
            if (this.path.segment(0).toString().equals(projectName)) {
                newPath = this.path.removeFirstSegments(1);
            }
            return Messages.bind(Messages.classpath_disabledMultipleOutputLocations,
                    new String[] { newPath.makeRelative().toString(), projectName });

        case CANNOT_RETRIEVE_ATTACHED_JAVADOC:
            if (this.elements != null && this.elements.length == 1) {
                if (this.string != null) {
                    return Messages.bind(Messages.status_cannot_retrieve_attached_javadoc,
                            ((JavaElement) this.elements[0]).toStringWithAncestors(), this.string);
                }
                return Messages.bind(Messages.status_cannot_retrieve_attached_javadoc,
                        ((JavaElement) this.elements[0]).toStringWithAncestors(), ""); //$NON-NLS-1$
            }
            if (this.string != null) {
                return Messages.bind(Messages.status_cannot_retrieve_attached_javadoc, this.string, "");//$NON-NLS-1$
            }
            break;

        case CANNOT_RETRIEVE_ATTACHED_JAVADOC_TIMEOUT:
            if (this.elements != null && this.elements.length == 1) {
                if (this.string != null) {
                    return Messages.bind(Messages.status_timeout_javadoc,
                            ((JavaElement) this.elements[0]).toStringWithAncestors(), this.string);
                }
                return Messages.bind(Messages.status_timeout_javadoc,
                        ((JavaElement) this.elements[0]).toStringWithAncestors(), ""); //$NON-NLS-1$
            }
            if (this.string != null) {
                return Messages.bind(Messages.status_timeout_javadoc, this.string, "");//$NON-NLS-1$
            }
            break;

        case UNKNOWN_JAVADOC_FORMAT:
            return Messages.bind(Messages.status_unknown_javadoc_format,
                    ((JavaElement) this.elements[0]).toStringWithAncestors());

        case DEPRECATED_VARIABLE:
            javaProject = (IJavaProject) this.elements[0];
            return Messages.bind(Messages.classpath_deprecated_variable, new String[] {
                    this.path.segment(0).toString(), javaProject.getElementName(), this.string });
        }
        if (this.string != null) {
            return this.string;
        } else {
            return ""; //$NON-NLS-1$
        }
    } else {
        String message = exception.getMessage();
        if (message != null) {
            return message;
        } else {
            return exception.toString();
        }
    }
}

From source file:com.drgarbage.bytecodevisualizer.editors.NoSourceViewer.java

License:Apache License

private void createSourceAttachmentControls(Composite composite, IPackageFragmentRoot root)
        throws JavaModelException {
    IClasspathEntry entry;//w w  w. ja v a  2s.  c  om
    try {
        entry = root.getRawClasspathEntry();
    } catch (JavaModelException ex) {
        if (ex.isDoesNotExist())
            entry = null;
        else
            throw ex;
    }
    IPath containerPath = null;

    if (entry == null || root.getKind() != IPackageFragmentRoot.K_BINARY) {
        String s = CoreMessages.SourceAttachmentForm_message_noSource;
        createLabel(composite, MessageFormat.format(s, new Object[] { fFile.getElementName() }));
        return;
    }

    IJavaProject jproject = root.getJavaProject();
    if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
        containerPath = entry.getPath();
        ClasspathContainerInitializer initializer = JavaCore
                .getClasspathContainerInitializer(containerPath.segment(0));
        IClasspathContainer container = JavaCore.getClasspathContainer(containerPath, jproject);
        if (initializer == null || container == null) {
            createLabel(composite, MessageFormat.format(CoreMessages.SourceAttachmentForm_cannotconfigure,
                    new Object[] { containerPath.toString() }));
            return;
        }
        String containerName = container.getDescription();
        IStatus status = initializer.getSourceAttachmentStatus(containerPath, jproject);
        if (status.getCode() == ClasspathContainerInitializer.ATTRIBUTE_NOT_SUPPORTED) {
            createLabel(composite, MessageFormat.format(CoreMessages.SourceAttachmentForm_notsupported,
                    new Object[] { containerName }));
            return;
        }
        if (status.getCode() == ClasspathContainerInitializer.ATTRIBUTE_READ_ONLY) {
            createLabel(composite, MessageFormat.format(CoreMessages.SourceAttachmentForm_readonly,
                    new Object[] { containerName }));
            return;
        }
        entry = JavaModelUtil.findEntryInContainer(container, root.getPath());
        Assert.isNotNull(entry);
    }

    Button button;

    String msg = null;
    String btnText = null;

    IPath path = entry.getSourceAttachmentPath();
    if (path == null || path.isEmpty()) {
        msg = MessageFormat.format(CoreMessages.SourceAttachmentForm_message_noSourceAttachment,
                new Object[] { root.getElementName() });
        btnText = CoreMessages.SourceAttachmentForm_button_attachSource;
    } else {
        msg = MessageFormat.format(CoreMessages.SourceAttachmentForm_message_noSourceInAttachment,
                new Object[] { fFile.getElementName() });
        btnText = CoreMessages.SourceAttachmentForm_button_changeAttachedSource;
    }

    createLabel(composite, msg);
    createLabel(composite, CoreMessages.SourceAttachmentForm_message_pressButtonToAttach);
    createLabel(composite, null);

    button = createButton(composite, btnText);
    button.addSelectionListener(createButtonListener(entry, containerPath, jproject));
}

From source file:com.google.appengine.eclipse.core.sdk.GaeSdkContainerInitializer.java

License:Open Source License

public static ClasspathContainerInitializer getInitializer() {
    return JavaCore.getClasspathContainerInitializer(GaeSdkContainer.CONTAINER_ID);
}

From source file:com.google.appengine.eclipse.core.sdk.GaeSdkContainerInitializerTest.java

License:Open Source License

public void testCanUpdateClasspathContainerIPathIJavaProject() {
    ClasspathContainerInitializer intializer = JavaCore
            .getClasspathContainerInitializer(GaeSdkContainer.CONTAINER_ID);
    assertNotNull(intializer);/* w  w w .j  a va  2 s . co m*/

    assertTrue(intializer.canUpdateClasspathContainer(GaeSdkContainer.CONTAINER_PATH,
            gaeProject.getJavaProject()));

    assertFalse(intializer.canUpdateClasspathContainer(new Path("Nonexistent"), gaeProject.getJavaProject()));
}

From source file:com.google.gdt.eclipse.core.sdk.ClasspathContainerUpdateJob.java

License:Open Source License

public ClasspathContainerUpdateJob(String jobName, String expectedContainerId) {
    super(jobName);
    assert (expectedContainerId != null);
    assert (expectedContainerId.trim().length() != 0);

    this.expectedComparisonId = expectedContainerId;
    classpathContainerInitializer = JavaCore.getClasspathContainerInitializer(expectedContainerId);
    assert (classpathContainerInitializer != null);
}

From source file:com.google.gwt.eclipse.core.runtime.GWTRuntimeContainerInitializerTest.java

License:Open Source License

@Override
protected void setUp() throws Exception {
    super.setUp();

    initializer = JavaCore.getClasspathContainerInitializer(GWTRuntimeContainer.CONTAINER_ID);

    SdkSet<GWTRuntime> sdkSet = GWTPreferences.getSdks();
    GWTJarsRuntime specificRuntime = new GWTJarsRuntime("specific",
            GwtRuntimeTestUtilities.getDefaultRuntime().getInstallationPath());
    sdkSet.add(this.specificRuntime);
    GWTPreferences.setSdks(sdkSet);/*www. ja  v a 2  s. co m*/

    defaultRuntimePath = GWTRuntimeContainer.CONTAINER_PATH;
    specificRuntimePath = GWTRuntimeContainer.CONTAINER_PATH.append(specificRuntime.getName());
}