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

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

Introduction

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

Prototype

String encodeClasspathEntry(IClasspathEntry classpathEntry);

Source Link

Document

Encodes the given classpath entry into a string in the context of this project.

Usage

From source file:it.wallgren.android.platform.AndroidClasspathContainerInitializer.java

License:Apache License

/**
 * Persist relevant parts of the container for future sessions
 *
 * @param containerPath/*from   w  w w .j av a2 s . c o  m*/
 * @param container
 * @throws CoreException
 */
private void persistClasspathContainer(IJavaProject project, IClasspathContainer container)
        throws CoreException {
    final IClasspathEntry[] entries = container.getClasspathEntries();
    for (int i = 0; i < entries.length; i++) {
        final IClasspathEntry entry = entries[i];
        final QualifiedName qname = new QualifiedName(container.getPath().toString(), "IClasspathEntry." + i);
        final String encodedClasspathEntry = project.encodeClasspathEntry(entry);
        ResourcesPlugin.getWorkspace().getRoot().setPersistentProperty(qname, encodedClasspathEntry);
    }
}

From source file:net.ssehub.easy.producer.ui.project_management.EASyJavaConfigurator.java

License:Apache License

@Override
public void configure(IProject project, IProject parentProject) {
    JavaCapabilityConfigurationPage jcpage = new JavaCapabilityConfigurationPage();
    IJavaProject javaProject = JavaCore.create(project);
    IJavaProject javaParentProject = JavaCore.create(parentProject);

    jcpage.init(javaProject, null, null, false);
    try {/*from w  ww . j a  va  2  s.c  om*/
        jcpage.configureJavaProject(null);
    } catch (CoreException e1) {
        EASyLoggerFactory.INSTANCE.getLogger(EASyJavaConfigurator.class, Activator.PLUGIN_ID).exception(e1);
    } catch (InterruptedException e1) {
        EASyLoggerFactory.INSTANCE.getLogger(EASyJavaConfigurator.class, Activator.PLUGIN_ID).exception(e1);
    }

    // Try to copy settings from parent
    try {
        IClasspathEntry[] parrentEntries = javaParentProject.getRawClasspath();
        IClasspathEntry[] newEntries = new IClasspathEntry[parrentEntries.length];

        // Copy Classpath Entries
        for (int i = 0; i < newEntries.length; i++) {
            IClasspathEntry parentEntry = parrentEntries[i];
            newEntries[i] = javaProject
                    .decodeClasspathEntry(javaParentProject.encodeClasspathEntry(parentEntry));

            try {
                IPath entryPath = newEntries[i].getPath().makeAbsolute();
                if (project.getFullPath().matchingFirstSegments(entryPath) > 0) {
                    File entryFile = entryPath.toFile();
                    IFolder folder = project.getFolder(entryFile.getName());
                    if (!folder.exists()) {
                        folder.create(false, true, null);
                    }
                }
            } catch (CoreException e) {
                EASyLoggerFactory.INSTANCE.getLogger(EASyJavaConfigurator.class, Activator.PLUGIN_ID)
                        .exception(e);
            }
        }
        javaProject.setRawClasspath(newEntries, null);
    } catch (CoreException e) {
        EASyLoggerFactory.INSTANCE.getLogger(EASyJavaConfigurator.class, Activator.PLUGIN_ID).exception(e);
    }

}

From source file:org.apache.felix.sigil.eclipse.ui.internal.classpath.SigilClassPathContainer.java

License:Apache License

private static void writeClassPath(IJavaProject javaModel, File file, IClasspathEntry entry)
        throws IOException {
    String enc = javaModel.encodeClasspathEntry(entry);
    FileOutputStream out = new FileOutputStream(file);
    try {/*w  w  w.ja v a  2 s  .co m*/
        out.write(enc.getBytes());
        out.flush();
    } finally {
        try {
            out.close();
        } catch (IOException e) {
            SigilCore.warn("Failed to close stream to " + entry, e);
        }
    }
}

From source file:org.org.eclipse.dws.core.internal.bridges.ProjectInteractionHelper.java

License:Open Source License

/**
 * Adds the to raw classpath.//from   www.j av  a  2s  . c  o  m
 * 
 * @param classpathEntryWrappers the classpath entry wrappers
 * @param javaProject the java project
 * @param monitor the monitor
 * 
 * @return the list< classpath entry definition>
 */
private static List<ClasspathEntryDefinition> addToRawClasspath(
        List<ClasspathEntryDefinition> classpathEntryWrappers, IJavaProject javaProject,
        IProgressMonitor monitor) {
    monitor.beginTask("Adding libraries to the classpath of project :" + javaProject.getElementName(),
            classpathEntryWrappers.size() + 1);
    IClasspathEntry[] rawClassPath = JavaProjectClasspathHelper.getRawClasspath(javaProject);
    List<IClasspathEntry> formerEntries = new LinkedList<IClasspathEntry>(Arrays.asList(rawClassPath));
    List<IClasspathEntry> newEntries = new LinkedList<IClasspathEntry>();
    for (ClasspathEntryDefinition classpathEntryWrapper : classpathEntryWrappers) {
        IClasspathEntry newLibraryEntry = null;
        if (classpathEntryWrapper.getEntryType() == EntryType.PATH) {
            newLibraryEntry = ClasspathHelper.createEntry(classpathEntryWrapper, monitor);
        } else {
            newLibraryEntry = createDWSVariableEntry(classpathEntryWrapper, javaProject, monitor);
        }
        // ClasspathHelper.addToClasspath(classpath, newLibraryEntry, monitor);
        newEntries.add(newLibraryEntry);
        classpathEntryWrapper.setClasspathEntry(javaProject.encodeClasspathEntry(newLibraryEntry));
    }
    JavaProjectClasspathHelper.updateRawClasspath(javaProject, formerEntries, newEntries, monitor);
    return classpathEntryWrappers;
}

From source file:org.org.eclipse.dws.core.internal.bridges.ProjectInteractionHelper.java

License:Open Source License

/**
 * Gets the classpath entries.//from ww w. j  av a2  s.  c  o  m
 * 
 * @param javaProject the java project
 * 
 * @return the classpath entries
 */
public static Set<DWSClasspathEntryDescriptor> getClasspathEntries(IJavaProject javaProject) {
    Set<DWSClasspathEntryDescriptor> classpathEntryDescriptors = new LinkedHashSet<DWSClasspathEntryDescriptor>();
    try {
        if (javaProject.exists()) {
            for (IClasspathEntry classpathEntry : javaProject.getRawClasspath()) {
                DWSClasspathEntryDescriptor classpathEntryDescriptor = new DWSClasspathEntryDescriptor();
                classpathEntryDescriptor
                        .setEncodedClasspathEntry(javaProject.encodeClasspathEntry(classpathEntry));
                classpathEntryDescriptor.setPath(classpathEntry.getPath().toPortableString());
                classpathEntryDescriptor.setProjectName(javaProject.getElementName());
                IJavaModelStatus javaModelStatus = JavaConventions.validateClasspathEntry(javaProject,
                        classpathEntry, false);
                classpathEntryDescriptor.setValid(classpathEntry.getEntryKind() == IClasspathEntry.CPE_LIBRARY
                        || classpathEntry.getEntryKind() == IClasspathEntry.CPE_VARIABLE
                                && javaModelStatus.isOK());
                classpathEntryDescriptors.add(classpathEntryDescriptor);
            }
        }
    } catch (JavaModelException e) {
        throw new JavaProjectInteractionException(
                "An error occured while scanning for classpath entries in project:" + javaProject, e);
    }
    return classpathEntryDescriptors;
}