Example usage for org.eclipse.jdt.core IPackageFragmentRoot close

List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot close

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IPackageFragmentRoot close.

Prototype

public void close() throws JavaModelException;

Source Link

Document

Closes this element and its buffer (if any).

Usage

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

License:Open Source License

private void checkSourceAttachmentChange(IResourceDelta delta, File res) {
    IPath rootPath = (IPath) this.state.sourceAttachments.get(externalPath(res));
    if (rootPath != null) {
        RootInfo rootInfo = rootInfo(rootPath, delta.getKind());
        if (rootInfo != null) {
            IJavaProject projectOfRoot = rootInfo.project;
            IPackageFragmentRoot root = null;
            try {
                // close the root so that source attachment cache is flushed
                root = projectOfRoot.findPackageFragmentRoot(rootPath);
                if (root != null) {
                    root.close();
                }/*  ww  w. jav a 2 s  . c o  m*/
            } catch (JavaModelException e) {
                // root doesn't exist: ignore
            }
            if (root == null)
                return;
            switch (delta.getKind()) {
            case IResourceDelta.ADDED:
                currentDelta().sourceAttached(root);
                break;
            case IResourceDelta.CHANGED:
                currentDelta().sourceDetached(root);
                currentDelta().sourceAttached(root);
                break;
            case IResourceDelta.REMOVED:
                currentDelta().sourceDetached(root);
                break;
            }
        }
    }
}

From source file:org.codehaus.groovy.eclipse.dsl.tests.BuiltInDSLInferencingTests.java

License:Open Source License

public void testSanity() throws Exception {
    IJavaProject javaProject = JavaCore.create(project);
    assertTrue("Should have DSL support classpath container",
            GroovyRuntime.hasClasspathContainer(javaProject, GroovyDSLCoreActivator.CLASSPATH_CONTAINER_ID));

    IClasspathContainer container = JavaCore
            .getClasspathContainer(GroovyDSLCoreActivator.CLASSPATH_CONTAINER_ID, javaProject);
    IClasspathEntry[] cpes = container.getClasspathEntries();
    assertEquals("Wrong number of classpath entries found: " + Arrays.toString(cpes), 2, cpes.length);

    IClasspathEntry pluginEntry = null;//from ww w. jav  a2s  . c  o  m
    IClasspathEntry[] entries = javaProject.getResolvedClasspath(true);
    for (IClasspathEntry entry : entries) {
        if (entry.getPath().toString().contains("plugin_dsld")) {
            pluginEntry = entry;
        }
    }

    IPackageFragmentRoot root = null;
    List<String> elements = new ArrayList<String>();
    for (IJavaElement elt : javaProject.getChildren()) {
        elements.add(elt.getElementName());
        if (elt.getElementName().contains("plugin_dsld")) {
            root = (IPackageFragmentRoot) elt;
        }
    }

    List<String> possibleFrags = new ArrayList<String>();
    for (IPackageFragment frag : javaProject.getPackageFragments()) {
        if (frag.getElementName().equals("dsld")) {
            possibleFrags.add(frag.toString());
            possibleFrags.add("  [");
            for (IJavaElement child : frag.getChildren()) {
                possibleFrags.add("    " + child.getElementName());
            }
            possibleFrags.add("  ]");
        }
    }

    assertNotNull("Did not find the Plugin DSLD classpath entry.  Exsting resolved roots:\n"
            + printList(elements) + "\nOther DSLD fragments:\n" + printList(possibleFrags), pluginEntry);
    assertNotNull("Plugin DSLD classpath entry should exist.  Exsting resolved roots:\n" + printList(elements)
            + "\nOther DSLD fragments:\n" + printList(possibleFrags), root);
    assertTrue("Plugin DSLD classpath entry should exist", root.exists());

    ExternalPackageFragmentRoot ext = (ExternalPackageFragmentRoot) root;
    ext.resource().refreshLocal(IResource.DEPTH_INFINITE, null);
    root.close();
    root.open(null);

    IPackageFragment frag = root.getPackageFragment("dsld");
    assertTrue("DSLD package fragment should exist", frag.exists());
}

From source file:org.eclipse.recommenders.codesearch.rcp.index.ui.ProjectIndexerRunnable.java

License:Open Source License

private void analyzeRoot(final IPackageFragmentRoot root) throws Exception {
    this.root = root;
    monitor.subTask("Analyzing " + root.getElementName());

    rootLocation = getFile(root);/*from   w  w w . j a va 2 s . com*/
    if (monitor.isCanceled()) {
        return;
    }
    if (rootLocation == null) {
        return;
    }
    if (hasNotChanged(rootLocation)) {
        return;
    }
    if (root.isArchive()) {
        indexer.delete(rootLocation);
        if (!findSourceMapper()) {
            return;
        }
    }

    analyzePackageFragments();

    monitor.subTask("Checkpointing...");
    indexer.commit();
    monitor.worked(1);
    root.close();
}

From source file:org.eclipse.xtend.shared.ui.core.builder.XtendXpandBuilder.java

License:Open Source License

protected void fullBuild(final IProgressMonitor monitor) throws CoreException {
    final IXtendXpandProject project = Activator.getExtXptModelManager()
            .findProject(getProject().getFullPath());
    if (project != null) {
        getProject().accept(new XtendXpandDeltaVisitor(monitor));
        final IJavaProject jp = JavaCore.create(getProject());
        final IPackageFragmentRoot[] roots = jp.getPackageFragmentRoots();
        final Set<String> extensions = new HashSet<String>();
        final ResourceContributor[] contributors = Activator.getRegisteredResourceContributors();
        for (final ResourceContributor resourceContributor : contributors) {
            extensions.add(resourceContributor.getFileExtension());
        }/*from ww  w. j  a  v  a2  s.c  o  m*/
        for (final IPackageFragmentRoot root : roots) {
            if (root.isArchive()) {
                try {
                    root.open(monitor);
                    try {
                        final ZipFile zip = ((JarPackageFragmentRoot) root).getJar();
                        final Enumeration<? extends ZipEntry> entries = zip.entries();
                        while (entries.hasMoreElements()) {
                            final ZipEntry entry = entries.nextElement();
                            for (final String ext : extensions) {
                                final String name = entry.getName();
                                if (name.endsWith(ext)) {
                                    final String fqn = name.substring(0, name.length() - ext.length() - 1)
                                            .replaceAll("/", "::");
                                    final ResourceID resourceID = new ResourceID(fqn, ext);
                                    final IStorage findStorage = JDTUtil.loadFromJar(resourceID, root);
                                    project.findXtendXpandResource(findStorage);
                                }
                            }
                        }
                    } finally {
                        root.close();
                    }
                } catch (CoreException ex) {
                    XtendLog.logError(ex);
                }
            }
        }
    } else {
        XtendLog.logInfo("Couldn't create Xpand project for project " + getProject().getName());
    }
}

From source file:org.eclipse.xtend.typesystem.emf.ui.ProjectAnalyzer.java

License:Open Source License

private void loadMetamodelsForProject(final IJavaProject javaProject, final ResourceSet rs,
        final IProgressMonitor monitor) {
    try {/*from  ww  w. jav  a 2s  .c om*/
        final String ext = Messages.ProjectAnalyzer_2;
        if (!javaProject.exists())
            return;
        for (final IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) {
            if (!root.isArchive()) {
                IResource rootResource = null;
                if (root instanceof ExternalPackageFragmentRoot) {
                    rootResource = ((ExternalPackageFragmentRoot) root).resource();
                } else {
                    rootResource = root.getUnderlyingResource();
                }
                if (rootResource != null) {
                    try {
                        // if (!rootResource.exists() || !rootResource.isAccessible())
                        rootResource.refreshLocal(IResource.DEPTH_INFINITE, monitor);
                        rootResource.accept(new IResourceVisitor() {
                            public boolean visit(final IResource resource) throws CoreException {
                                if (resource instanceof IFile
                                        && ext.equals(((IFile) resource).getFileExtension())) {
                                    loadModelFromStorage(rs, (IFile) resource);
                                }
                                return true;
                            }
                        });
                    } catch (final CoreException e) {
                        EmfToolsLog.logError(e);
                    }
                }
            } else {
                // skip JRE jars
                if (((JarPackageFragmentRoot) root).getPath().toString().contains(Messages.ProjectAnalyzer_3)) {
                    if (EmfToolsPlugin.trace) {
                        System.out.println(Messages.ProjectAnalyzer_4
                                + ((JarPackageFragmentRoot) root).getPath().toString());
                    }
                    continue;
                }

                root.open(monitor);
                try {
                    final ZipFile zip = ((JarPackageFragmentRoot) root).getJar();

                    final Enumeration<? extends ZipEntry> entries = zip.entries();
                    while (entries.hasMoreElements()) {
                        final ZipEntry entry = entries.nextElement();
                        final String name = entry.getName();
                        if (name.endsWith(ext)) {
                            final String fqn = name.substring(0, name.length() - ext.length() - 1)
                                    .replaceAll(Messages.ProjectAnalyzer_5, Messages.ProjectAnalyzer_6);
                            final ResourceID resourceID = new ResourceID(fqn, ext);
                            final IStorage findStorage = JDTUtil.loadFromJar(resourceID, root);
                            if (findStorage != null) {
                                loadModelFromStorage(rs, findStorage);
                            }
                        }
                    }
                } catch (final CoreException e) {
                    EmfToolsLog.logError(e);
                } finally {
                    root.close();
                }
            }
        }
    } catch (final JavaModelException e) {
        EmfToolsLog.logError(e);
    }
}

From source file:org.jboss.tools.pde.sourcelookup.core.internal.utils.ClasspathUtils.java

License:Open Source License

public static void attachSource(final IPackageFragmentRoot fragment, final IPath newSourcePath,
        IProgressMonitor monitor) {/*from w w  w . j  a v  a 2 s .  co m*/
    try {
        if (fragment == null || fragment.getKind() != IPackageFragmentRoot.K_BINARY) {
            return;
        }
        if (!Objects.equals(fragment.getSourceAttachmentPath(), newSourcePath)) {
            // would be so cool if it refreshed the UI automatically
            fragment.attachSource(newSourcePath, null, monitor);
            // close the root so that source attachment cache is flushed. Else UI
            // won't update
            fragment.close();
            // we have to manually fire a delta to notify the UI about the source
            // attachment.
            JavaModelManager manager = JavaModelManager.getJavaModelManager();
            JavaElementDelta attachedSourceDelta = new JavaElementDelta(fragment.getJavaModel());
            attachedSourceDelta.sourceAttached(fragment);
            manager.getDeltaProcessor().fire(attachedSourceDelta, ElementChangedEvent.POST_CHANGE);
        }
    } catch (CoreException e) {
        // ignore
    }
}