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

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

Introduction

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

Prototype

IPackageFragmentRoot getPackageFragmentRoot(IResource resource);

Source Link

Document

Returns a package fragment root for the given resource, which must either be a folder representing the top of a package hierarchy, or a ZIP archive (e.g.

Usage

From source file:org.hibernate.eclipse.console.test.project.SimpleTestProject.java

License:Open Source License

private IPackageFragmentRoot buildSourceFolder(IProject project, IJavaProject javaProject)
        throws CoreException {
    IFolder folder = project.getFolder(SRC_FOLDER);
    folder.create(false, true, null);//  w w w . jav a2  s .c o m
    IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(folder);
    IClasspathEntry[] newEntries = { JavaCore.newSourceEntry(root.getPath()) };
    javaProject.setRawClasspath(newEntries, null);
    return root;
}

From source file:org.jboss.tools.batch.internal.core.impl.BatchBuilder.java

License:Open Source License

private void buildJars(JarSet newJars) throws CoreException {
    IJavaProject jp = EclipseUtil.getJavaProject(getBatchProject().getProject());
    if (jp == null)
        return;//from w  w w . jav  a  2s  .com

    JavaModelManager manager = JavaModelManager.getJavaModelManager();
    try {
        manager.cacheZipFiles(this);

        FileSet fileSet = new FileSet();
        for (String jar : newJars.getBatchModules()) {
            Path path = new Path(jar);
            IPackageFragmentRoot root = jp.getPackageFragmentRoot(jar);
            if (root == null)
                continue;
            if (!root.exists()) {
                IFile f = getFile(jar);
                if (f != null && f.exists()) {
                    root = jp.getPackageFragmentRoot(f);
                } else {
                    f = getFile(jar + "/META-INF/web-fragment.xml");
                    if (f != null && f.exists()) {
                        root = jp.getPackageFragmentRoot(f.getParent().getParent());
                    }
                }
            }
            if (root == null || !root.exists())
                continue;
            IJavaElement[] es = root.getChildren();
            for (IJavaElement e : es) {
                if (e instanceof IPackageFragment) {
                    IPackageFragment pf = (IPackageFragment) e;
                    IClassFile[] cs = pf.getClassFiles();
                    for (IClassFile c : cs) {
                        fileSet.add(path, c.getType());
                    }
                }
            }
        }
        build(fileSet, getBatchProject());

    } finally {
        manager.flushZipFiles(this);
    }
}

From source file:org.jboss.tools.batch.internal.core.scanner.BatchArchiveDetector.java

License:Open Source License

public static IPackageFragmentRoot findPackageFragmentRoot(String jar, IJavaProject jp) {
    IPackageFragmentRoot root = jp.getPackageFragmentRoot(jar);
    if (root != null && !root.exists()) {
        IFile f = BatchBuilder.getFile(jar);
        if (f != null && f.exists()) {
            root = jp.getPackageFragmentRoot(f);
        } else {// w w w  .j a va2s .c om
            IContainer c = ResourcesPlugin.getWorkspace().getRoot()
                    .getContainerForLocation(new Path(jar + "/META-INF").makeAbsolute());
            if (c != null && c.exists()) {
                root = jp.getPackageFragmentRoot(c.getParent());
            }
        }
    }
    return root;
}

From source file:org.jboss.tools.cdi.core.CDICoreBuilder.java

License:Open Source License

protected void buildJars(JarSet newJars) throws CoreException {
    IJavaProject jp = EclipseResourceUtil.getJavaProject(getCDICoreNature().getProject());
    if (jp == null)
        return;//  www . jav a  2s  .c  o  m
    FileSet fileSet = new FileSet();

    for (String jar : newJars.getBeanModules().keySet()) {
        Path path = new Path(jar);
        IPackageFragmentRoot root = jp.getPackageFragmentRoot(jar);
        if (root == null)
            continue;
        if (!root.exists()) {
            IFile f = EclipseResourceUtil.getFile(jar);
            if (f != null && f.exists()) {
                root = jp.getPackageFragmentRoot(f);
            } else {
                f = EclipseResourceUtil.getFile(jar + "/META-INF/beans.xml");
                if (f != null && f.exists()) {
                    root = jp.getPackageFragmentRoot(f.getParent().getParent());
                }
            }
        }
        if (root == null || !root.exists())
            continue;
        IJavaElement[] es = root.getChildren();
        for (IJavaElement e : es) {
            if (e instanceof IPackageFragment) {
                IPackageFragment pf = (IPackageFragment) e;
                IClassFile[] cs = pf.getClassFiles();
                for (IClassFile c : cs) {
                    fileSet.add(path, c.getType());
                }
            }
        }
        XModelObject beansXML = newJars.getBeanModules().get(jar);
        fileSet.setBeanXML(path, beansXML);

        for (IBuildParticipantFeature p : buildParticipants)
            p.visitJar(path, root, beansXML);
    }
    if (!buildParticipants2.isEmpty()) {
        for (String jar : newJars.getFileSystems().keySet()) {
            Path path = new Path(jar);
            XModelObject fs = newJars.getFileSystems().get(jar);
            for (IBuildParticipant2Feature p : buildParticipants2)
                p.visitJar(path, fs);
        }
    }
    addBasicTypes(fileSet);
    invokeBuilderDelegates(fileSet, getCDICoreNature());
}

From source file:org.jboss.tools.cdi.internal.core.scanner.lib.BeanArchiveDetector.java

License:Open Source License

public static IPackageFragmentRoot findPackageFragmentRoot(String jar, IJavaProject jp) {
    IPackageFragmentRoot root = jp.getPackageFragmentRoot(jar);
    if (root != null && !root.exists()) {
        IFile f = EclipseResourceUtil.getFile(jar);
        if (f != null && f.exists()) {
            root = jp.getPackageFragmentRoot(f);
        } else {//  www.  ja v  a 2s.co  m
            IContainer c = ResourcesPlugin.getWorkspace().getRoot()
                    .getContainerForLocation(new Path(jar + "/META-INF").makeAbsolute());
            if (c != null && c.exists()) {
                root = jp.getPackageFragmentRoot(c.getParent());
            }
        }
    }
    return root;
}

From source file:org.jboss.tools.common.java.generation.JavaBeanGenerator.java

License:Open Source License

public static IPackageFragmentRoot getJavaProjectSrcRoot(IJavaProject javaProject) throws CoreException {
    IClasspathEntry[] es = javaProject.getResolvedClasspath(true);
    for (int i = 0; i < es.length; i++) {
        if (es[i].getEntryKind() != IClasspathEntry.CPE_SOURCE)
            continue;
        return javaProject
                .getPackageFragmentRoot(ModelPlugin.getWorkspace().getRoot().getFolder(es[i].getPath()));
    }//  w  ww  .j  a v  a 2  s  .  c o m
    return null;
}

From source file:org.jboss.tools.common.model.filesystems.impl.FileSystemImpl.java

License:Open Source License

public IContainer getResource() {
    if (getProject() == null || resource != null)
        return resource;
    if (!project.isOpen() || project.getLocation() == null)
        return resource;
    String prloc = project.getLocation().toString().replace('\\', '/');
    String thloc = XModelObjectUtil.getExpandedValue(this, XModelObjectConstants.ATTR_NAME_LOCATION, null);
    try {/*w w  w .  j  a  v a 2  s. com*/
        prloc = new File(prloc).getCanonicalPath().replace('\\', '/');
    } catch (IOException e) {
        //ignore
    }
    try {
        java.io.File f = new java.io.File(thloc);
        if (f.exists() || thloc.indexOf("/..") >= 0) { //$NON-NLS-1$
            thloc = f.getCanonicalPath().replace('\\', '/');
        } else {
            thloc = thloc.replace('\\', '/');
        }
    } catch (IOException e) {
        return null;
    }
    if (thloc.equalsIgnoreCase(prloc))
        return resource = project; ///
    if (prloc.toLowerCase().startsWith(thloc.toLowerCase()))
        return resource = null;
    if (thloc.toLowerCase().startsWith(prloc.toLowerCase())) {
        String relative = thloc.substring(prloc.length());
        IFolder f = project.getFolder(new Path(relative));
        if (!f.exists() && !f.isSynchronized(IResource.DEPTH_ONE)) {
            try {
                f.refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor());
            } catch (CoreException e) {
                ModelPlugin.getPluginLog().logError(e);
            }
        }
        return resource = f;
    }

    String wsloc = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString().replace('\\', '/');
    IContainer f = null;
    URI uri = URIUtil.toURI(thloc, true);
    IContainer[] cs = ResourcesPlugin.getWorkspace().getRoot().findContainersForLocationURI(uri);
    for (IContainer c : cs) {
        if (f == null || !c.isLinked()) {
            f = c;
        }
    }
    if (f != null && (!f.exists() && !f.isSynchronized(IResource.DEPTH_ONE))) {
        try {
            f.refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor());
        } catch (CoreException e) {
            ModelPlugin.getPluginLog().logError(e);
        }
    }

    if (f == null) {
        IJavaProject jp = EclipseResourceUtil.getJavaProject(getProject());
        if (jp != null) {
            IPackageFragmentRoot p = jp.getPackageFragmentRoot(thloc);
            if (p instanceof ExternalPackageFragmentRoot && p.exists()) {
                IResource r = ((PackageFragmentRoot) p).resource();
                if (r instanceof IContainer) {
                    f = (IContainer) r;
                }
            }
        }
    }

    resource = f;

    if (resource == null) {
        f = project.getFolder(
                new Path(XModelObjectConstants.SEPARATOR + getAttributeValue(XModelObjectConstants.ATTR_NAME)));
        if (!f.exists()) {
            // Do not try creating link 'on the fly'. It should be done  
            // by configuring project at creation/refresh/clean-build, 
            // that is as a single action.
        } else {
            resource = f;
        }
    }
    return resource;
}

From source file:org.jboss.tools.common.model.ui.attribute.editor.JavaHyperlinkLineFieldEditor.java

License:Open Source License

private IJavaSearchScope getScope(String javaProjectName) {
    IJavaElement[] elements = new IJavaElement[0];
    if (javaProjectName != null) {
        IPath path = new Path(javaProjectName);
        IResource res = ResourcesPlugin.getWorkspace().getRoot().findMember(path);
        IProject proj = res.getProject();
        IJavaProject jproject = JavaCore.create(proj);
        IPackageFragmentRoot fCurrRoot = jproject.getPackageFragmentRoot(res);
        elements = new IJavaElement[] { fCurrRoot.getJavaProject() };
    } else {//from   www.java2  s.  com
        IProject[] ps = ModelPlugin.getWorkspace().getRoot().getProjects();
        ArrayList<IJavaElement> l = new ArrayList<IJavaElement>();
        for (int i = 0; i < ps.length; i++) {
            if (EclipseResourceUtil.getJavaProject(ps[i]) != null)
                l.add(JavaCore.create(ps[i]));
        }
        elements = l.toArray(new IJavaElement[0]);
    }
    return SearchEngine.createJavaSearchScope(elements);
}

From source file:org.jboss.tools.common.model.ui.editor.ModelObjectStorageEditorInput.java

License:Open Source License

IJarEntryResource findJarEntryFile() {
    XModelObject o = object;// ww  w.ja va 2  s.  c om
    JarEntryFile f = null;
    JarEntryResource current = null;
    String packageName = "";
    List<String> parts = new ArrayList<String>();
    List<XModelObject> os = new ArrayList<XModelObject>();
    while (o != null && o.getFileType() != XModelObject.SYSTEM) {
        String part = o.getFileType() == XModelObject.FILE ? FileAnyImpl.toFileName(o)
                : o.getFileType() == XModelObject.FOLDER ? o.getAttributeValue(XModelObjectConstants.ATTR_NAME)
                        : null;
        if (part != null) {
            parts.add(0, part);
            os.add(0, o);
            if (f == null) {
                f = new JarEntryFile(part) {
                    public InputStream getContents() throws CoreException {
                        return storage.getContents();
                    }
                };
                current = f;
            } else {
                if (packageName.length() > 0) {
                    packageName = part + "." + packageName;
                } else {
                    packageName = part;
                }
                JarEntryDirectory d = new JarEntryDirectory(part);
                current.setParent(d);
                current = d;
            }

        }
        o = o.getParent();
    }
    //      if(!(o instanceof JarSystemImpl)) return null;
    String file = Paths.expand(o.get(XModelObjectConstants.ATTR_NAME_LOCATION), o.getModel().getProperties());

    IProject p = EclipseResourceUtil.getProject(o);
    IJavaProject jp = EclipseResourceUtil.getJavaProject(p);
    if (jp == null)
        return null;

    IPackageFragmentRoot root = null;

    try {
        IPackageFragmentRoot[] rs = jp.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot r : rs) {
            if (r.getResource() != null && r.getResource().exists()
                    && r.getResource().getLocation().toString().equals(file)) {
                root = r;
            } else if (r.getPath() != null && r.getPath().toString().equals(file)) {
                root = r;
            }
        }
    } catch (CoreException e) {
        ModelUIPlugin.getDefault().logError(e);
    }

    if (root == null) {
        root = jp.getPackageFragmentRoot(file);
    }

    if (root == null) {
        return null;
    }

    if (current != null && !"META-INF".equalsIgnoreCase(current.getName()) && packageName.length() > 0) {
        IPackageFragment pf = root.getPackageFragment(packageName);
        f.setParent(pf);
    } else {
        current.setParent(root);
        if (!(o instanceof JarSystemImpl)) {
            Object q = root;
            NonJavaResource nj = null;
            for (int i = 0; i < parts.size(); i++) {
                IResource ri = (IResource) os.get(i).getAdapter(IResource.class);
                if (ri == null) {
                    return f;
                }
                nj = new NonJavaResource(q, ri);
                q = nj;
            }
            if (nj != null) {
                return nj;
            }
        }
    }

    return f;
}

From source file:org.jboss.tools.common.model.ui.jarproperties.JarPropertiesTest.java

License:Open Source License

JarEntryFile getJarEntryFileForResource(IProject p, IResource file, String packageName, String fileName) {
    JarEntryFile f = new JarEntryFile(fileName);
    JarEntryResource current = f;/*w  w  w  .  jav a  2  s .  c  om*/

    IJavaProject jp = EclipseResourceUtil.getJavaProject(p);
    if (jp == null)
        return null;

    IPackageFragmentRoot root = jp.getPackageFragmentRoot(file);
    if (root == null)
        return null;

    if (current != null && !"META-INF".equalsIgnoreCase(current.getName()) && packageName.length() > 0) {
        IPackageFragment pf = root.getPackageFragment(packageName);
        f.setParent(pf);
    } else {
        current.setParent(root);
    }

    return f;
}