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

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

Introduction

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

Prototype

IPackageFragmentRoot[] getAllPackageFragmentRoots() throws JavaModelException;

Source Link

Document

Returns all of the existing package fragment roots that exist on the classpath, in the order they are defined by the classpath.

Usage

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

License:Open Source License

IJarEntryResource findJarEntryFile() {
    XModelObject o = object;/*from  w  ww .  ja v a 2 s  .com*/
    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.text.ext.hyperlink.xml.FaceletSourceTagHyperlink.java

License:Open Source License

/**
 * /*from   w ww.ja  v  a2 s.  c  o m*/
 * @param project project from which we are going to open File
 * @param classPathResource resource relativy to class path
 * @param xmodelPath xmodel path to file
 * @return
 */
private static JarEntryEditorInput seachResourceInClassPath(IProject project, IPath classPathResource,
        IPath xmodelPath) {
    IJavaProject javaProject = JavaCore.create(project);
    try {
        for (IPackageFragmentRoot fragmentRoot : javaProject.getAllPackageFragmentRoots()) {
            if (fragmentRoot instanceof JarPackageFragmentRoot) {
                JarPackageFragmentRoot jarPackageFragmentRoot = (JarPackageFragmentRoot) fragmentRoot;
                ZipEntry zipEntry = jarPackageFragmentRoot.getJar().getEntry(classPathResource.toString());
                //the name of jar file shoul be in xmodel path
                //for now if model have following
                if (zipEntry != null && xmodelPath.toString().contains(fragmentRoot.getElementName())) {
                    JarEntryFile fileInJar = new JarEntryFile(classPathResource.lastSegment());
                    Object parent = null;
                    String parentName = classPathResource.removeLastSegments(1).toString();
                    if (parentName.length() == 0) {
                        parent = jarPackageFragmentRoot;
                    } else {
                        parent = jarPackageFragmentRoot
                                .getPackageFragment(classPathResource.removeLastSegments(1).toString());
                    }
                    fileInJar.setParent(parent);
                    JarEntryEditorInput jarEditorInput = new JarEntryEditorInput(fileInJar);
                    return jarEditorInput;
                }
            }
        }
    } catch (JavaModelException e) {
        ExtensionsPlugin.getDefault().logError(e);
    } catch (CoreException e) {
        ExtensionsPlugin.getDefault().logError(e);
    }
    return null;
}

From source file:org.jboss.tools.hibernate.jpt.core.internal.context.HibernatePersistenceUnit.java

License:Open Source License

@Override
protected void validateProperties(List<IMessage> messages, IReporter reporter) {
    String configFile = this.hibernateProperties.getConfigurationFile();
    if (configFile != null && configFile.length() > 0) {
        IPath path = new Path(configFile);

        try {/*from w w w  .  j av a 2  s  . com*/
            IJavaProject jp = getJpaProject().getJavaProject();
            IPackageFragmentRoot[] pfrs = jp.getPackageFragmentRoots();
            for (int i = 0; i < pfrs.length; i++) {
                if (pfrs[i].isArchive())
                    continue;
                if (((IContainer) pfrs[i].getResource()).findMember(path) != null) {
                    return;
                }
            }
        } catch (JavaModelException e) {
            HibernateJptPlugin.logException(e);
        }

        IJavaProject jProject = getJpaProject().getJavaProject();
        IResource res = null;
        if (jProject != null) {
            try {
                IPackageFragmentRoot[] allPackageFragmentRoots = jProject.getAllPackageFragmentRoots();
                for (IPackageFragmentRoot iPackageFragmentRoot : allPackageFragmentRoots) {
                    if (!iPackageFragmentRoot.isArchive()) {
                        IResource sourceFolder = iPackageFragmentRoot.getResource();
                        if (sourceFolder instanceof IContainer) {
                            IContainer folder = (IContainer) sourceFolder;
                            if ((res = folder.findMember(path)) != null) {
                                break;
                            }
                        }
                    }
                }
            } catch (JavaModelException e) {
                //ignore
            }
        }
        if (res != null) {
            int resType = res.getType();
            if (resType != IResource.FILE) {
                Property prop = getProperty(BasicHibernateProperties.HIBERNATE_CONFIG_FILE);
                IMessage message = HibernateJpaValidationMessage.buildMessage(IMessage.HIGH_SEVERITY,
                        NOT_A_FILE, new String[] { configFile }, getResource());
                message.setLineNo(prop.getValidationTextRange().getLineNumber());
                messages.add(message);
            }
        } else {
            Property prop = getProperty(BasicHibernateProperties.HIBERNATE_CONFIG_FILE);
            IMessage message = HibernateJpaValidationMessage.buildMessage(IMessage.HIGH_SEVERITY,
                    CONFIG_FILE_NOT_FOUND, new String[] { configFile }, getResource());
            message.setLineNo(prop.getValidationTextRange().getLineNumber());
            messages.add(message);
        }
    }
}

From source file:org.jboss.tools.hibernate.jpt.ui.internal.persistence.details.HibernatePropertiesComposite.java

License:Open Source License

public IPackageFragmentRoot[] getSourcePackageFragmentRoots() {
    BasicHibernateProperties props = getSubject();
    if (props != null) {
        IProject project = props.getJpaProject().getProject();
        IJavaProject jProject = JavaCore.create(project);
        if (jProject != null) {
            try {
                IPackageFragmentRoot[] allPackageFragmentRoots = jProject.getAllPackageFragmentRoots();
                List<IPackageFragmentRoot> sources = new LinkedList<IPackageFragmentRoot>();
                for (IPackageFragmentRoot iPackageFragmentRoot : allPackageFragmentRoots) {
                    if (!iPackageFragmentRoot.isArchive() && iPackageFragmentRoot.isOpen()) {
                        sources.add(iPackageFragmentRoot);
                    }//from   ww  w. jav  a  2s  . c  om
                }
                return sources.toArray(new IPackageFragmentRoot[0]);
            } catch (JavaModelException e) {
                //ignore
            }
        }
    }
    return new IPackageFragmentRoot[0];
}

From source file:org.jboss.tools.hibernate.jpt.ui.wizard.GenerateEntitiesWizard.java

License:Open Source License

/**
 * @param projectName/*from   w  w w . j  a  va2 s.  c o m*/
 */
public NewJavaFilesListener(IJavaProject project) {
    try {
        IPackageFragmentRoot[] allPackageFragmentRoots = project.getAllPackageFragmentRoots();
        for (int j = 0; j < allPackageFragmentRoots.length; j++) {
            if (!allPackageFragmentRoots[j].isArchive()) {
                sourceRoots.add(allPackageFragmentRoots[j]);
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
}

From source file:org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil.java

License:Open Source License

private static JarEntryResource searchInClassPath(IProject project, String classPathResource,
        int jarResourceType) {
    IJavaProject javaProject = JavaCore.create(project);
    try {//from ww w. j a va  2 s  .  c  o m
        for (IPackageFragmentRoot fragmentRoot : javaProject.getAllPackageFragmentRoots()) {
            if (fragmentRoot instanceof JarPackageFragmentRoot) {
                JarPackageFragmentRoot jarPackageFragmentRoot = (JarPackageFragmentRoot) fragmentRoot;
                ZipEntry zipEntry = jarPackageFragmentRoot.getJar().getEntry(classPathResource);
                if (zipEntry != null) {
                    if (jarResourceType == JAR_FILE_RESOURCE_TYPE) {
                        JarEntryFile fileInJar = new JarEntryFile(classPathResource);
                        fileInJar.setParent(jarPackageFragmentRoot);
                        return fileInJar;
                    }
                    if (jarResourceType == JAR_DIRECTORY_RESOURCE_TYPE) {
                        JarEntryDirectory directoryInJar = new JarEntryDirectory(classPathResource);
                        directoryInJar.setParent(jarPackageFragmentRoot);
                        return directoryInJar;
                    }
                }
            }
        }
    } catch (JavaModelException e) {
        JSFModelPlugin.getPluginLog().logError(e);
    } catch (CoreException e) {
        JSFModelPlugin.getPluginLog().logError(e);
    }
    return null;
}

From source file:org.jboss.tools.jsf.jsf2.util.JSF2ResourceUtil.java

License:Open Source License

private static IResource searchInClassPath2(IProject project, String classPathResource, int jarResourceType) {
    IJavaProject javaProject = JavaCore.create(project);
    try {/*from www . java2 s  .c  o  m*/
        for (IPackageFragmentRoot fragmentRoot : javaProject.getAllPackageFragmentRoots()) {
            IResource r = fragmentRoot.getResource();
            if (fragmentRoot instanceof ExternalPackageFragmentRoot) {
                r = ((ExternalPackageFragmentRoot) fragmentRoot).resource();
            }
            if (r instanceof IFolder && r.exists()) {
                IFolder f = (IFolder) r;
                IFile f1 = f.getFile(classPathResource);
                if (f1.exists()) {
                    return f1;
                }
                IFolder f2 = f.getFolder(classPathResource);
                if (f2.exists()) {
                    return f2;
                }
            }
        }
    } catch (JavaModelException e) {
        JSFModelPlugin.getPluginLog().logError(e);
    } catch (CoreException e) {
        JSFModelPlugin.getPluginLog().logError(e);
    }
    return null;
}

From source file:org.jboss.tools.jsf.project.JSF2Util.java

License:Open Source License

/**
 * Returns root object of Java Model for selected jar file;
 * returns null if jar file is not found in the class path.    * 
 * /*from w w  w. j  av  a 2s .c o  m*/
 * @param project
 * @param jarName
 * @return
 * @throws JavaModelException
 */
public static IPackageFragmentRoot findLibrary(IProject project, String jarName) throws JavaModelException {
    if (project == null || !project.isAccessible()) {
        return null;
    }
    IJavaProject javaProject = JavaCore.create(project);
    if (javaProject == null || !javaProject.exists()) {
        return null;
    }
    for (IPackageFragmentRoot fragmentRoot : javaProject.getAllPackageFragmentRoots()) {
        IPath resource = fragmentRoot.getPath();
        if (resource != null && resource.lastSegment().equals(jarName)) {
            return fragmentRoot;
        }
    }
    return null;
}

From source file:org.jboss.tools.smooks.configuration.editors.utils.SmooksUIUtils.java

License:Open Source License

public static IPackageFragmentRoot[] getNonJRERoots(IJavaProject project) {
    ArrayList<Object> result = new ArrayList<Object>();
    try {// w  w  w .  j av a2s . c  o m
        IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            if (!isJRELibrary(roots[i])) {
                result.add(roots[i]);
            }
        }
    } catch (JavaModelException e) {
    }
    return (IPackageFragmentRoot[]) result.toArray(new IPackageFragmentRoot[result.size()]);
}

From source file:org.jboss.tools.vpe.editor.util.FileUtil.java

License:Open Source License

/**
 * Function search into project class path resource, if resource founded in jar file, make a 
 * temp copy of this resource and return path to copy.
 * @author mareshkau//from w  w  w. ja v a2 s.co  m
 * @param pageContext
 * @param classPathResource
 * @return path to file
 */
private static String seachResourceInClassPath(VpePageContext pageContext, String classPathResource) {
    final IJavaProject javaProject = getJavaProject(pageContext);
    if (javaProject == null) {
        return null;
    }

    String result = null;
    try {
        for (IPackageFragmentRoot fragmentRoot : javaProject.getAllPackageFragmentRoots()) {
            if (fragmentRoot instanceof JarPackageFragmentRoot) {
                JarPackageFragmentRoot jarPackageFragmentRoot = (JarPackageFragmentRoot) fragmentRoot;
                ZipEntry zipEntry = jarPackageFragmentRoot.getJar().getEntry(classPathResource);
                if (zipEntry != null) {
                    InputStream inputStream = jarPackageFragmentRoot.getJar().getInputStream(zipEntry);
                    IPath stateLocation = VpePlugin.getDefault().getStateLocation();

                    String fileName = null;
                    String fileExtension = null;
                    if (classPathResource.lastIndexOf(".") != -1) { //$NON-NLS-1$ //added by mareshkau, fix for JBIDE-4954
                        fileName = classPathResource.substring(classPathResource.lastIndexOf("/") + 1, //$NON-NLS-1$
                                classPathResource.lastIndexOf(".")); //$NON-NLS-1$
                        fileExtension = classPathResource.substring(classPathResource.lastIndexOf("."), //$NON-NLS-1$
                                classPathResource.length());
                    }
                    if (fileName != null && fileName.length() > 0 && fileExtension != null
                            && fileExtension.length() > 0) {
                        File temporaryFile = File.createTempFile(fileName, fileExtension,
                                new File(stateLocation.toOSString()));
                        temporaryFile.deleteOnExit();
                        OutputStream out = new FileOutputStream(temporaryFile, false);
                        byte[] buf = new byte[1024];
                        int len;
                        while ((len = inputStream.read(buf)) > 0) {
                            out.write(buf, 0, len);
                        }
                        inputStream.close();
                        out.close();
                        result = temporaryFile.getAbsolutePath();
                    }
                }
            } else if (fragmentRoot instanceof JavaElement) {
                IResource resource = ((JavaElement) fragmentRoot).resource();
                if (resource instanceof IContainer && resource.exists()) {
                    IFile f = ((IContainer) resource).getFile(new Path(classPathResource));
                    if (f.exists()) {
                        result = f.getLocation().toFile().getAbsolutePath();
                    }
                }
            }
        }
    } catch (JavaModelException e) {
        VpePlugin.reportProblem(e);
    } catch (IllegalStateException e) {
        VpePlugin.reportProblem(e);
    } catch (FileNotFoundException e) {
        VpePlugin.reportProblem(e);
    } catch (CoreException e) {
        VpePlugin.reportProblem(e);
    } catch (IOException e) {
        VpePlugin.reportProblem(e);
    }
    return result;
}