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

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

Introduction

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

Prototype

Object[] getNonJavaResources() throws JavaModelException;

Source Link

Document

Returns an array of non-Java resources contained in this package fragment root.

Usage

From source file:com.redhat.ceylon.eclipse.code.navigator.NonEssentialElementsFilter.java

License:Open Source License

/**
 * Tells whether the given package has unfiltered resources.
 *
 * @param viewer the viewer/* w ww. j a v  a  2s  .c o m*/
 * @param pkg the package
 * @return <code>true</code> if the package has unfiltered resources
 * @throws JavaModelException if this element does not exist or if an exception occurs while
 *             accessing its corresponding resource
 */
protected boolean hasUnfilteredResources(Viewer viewer, IPackageFragment pkg) throws JavaModelException {
    Object[] resources = null;
    if (pkg.isDefaultPackage()) {
        IPackageFragmentRoot root = (IPackageFragmentRoot) pkg.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
        resources = root.getNonJavaResources();
    } else {
        resources = pkg.getNonJavaResources();
    }
    int length = resources.length;
    if (length == 0)
        return false;

    if (!(viewer instanceof StructuredViewer))
        return true;

    ViewerFilter[] filters = ((StructuredViewer) viewer).getFilters();
    resourceLoop: for (int i = 0; i < length; i++) {
        for (int j = 0; j < filters.length; j++) {
            if (!filters[j].select(viewer, pkg, resources[i]))
                continue resourceLoop;
        }
        return true;

    }
    return false;
}

From source file:it.unibz.instasearch.indexing.WorkspaceIndexerJDT.java

License:Open Source License

/**
 * Index non .class files /*  w  w  w .j  a v a  2  s .co m*/
 * 
 * @param indexWriter
 * @param jar
 * @param monitor
 * @throws CoreException
 * @throws IOException
 */
private void indexNonJavaResources(IndexWriter indexWriter, IPackageFragmentRoot jar, IProgressMonitor monitor)
        throws Exception {

    Object[] resources = jar.getNonJavaResources();

    if (resources == null || resources.length == 0)
        return;

    IJarEntryResource[] jarEntries = new IJarEntryResource[resources.length];
    System.arraycopy(resources, 0, jarEntries, 0, resources.length);

    indexNonJavaResources(indexWriter, jar, jarEntries, monitor);
}

From source file:it.unibz.instasearch.indexing.WorkspaceIndexerJDT.java

License:Open Source License

/**
 * @param jar//  ww  w .j a v  a2s  .c  o  m
 * @param filePath
 * @return
 * @throws JavaModelException 
 */
private IJarEntryResource findJarEntry(IPackageFragmentRoot jar, String filePath) throws JavaModelException {

    Object[] resources = jar.getNonJavaResources();

    if (resources == null || resources.length == 0)
        return null;

    IJarEntryResource[] jarEntries = new IJarEntryResource[resources.length];
    System.arraycopy(resources, 0, jarEntries, 0, resources.length);

    return findJarEntry(jarEntries, filePath);
}

From source file:net.officefloor.eclipse.classpath.ClasspathUtil.java

License:Open Source License

/**
 * Obtains the children of the {@link IJavaElement}.
 * //ww w  . j  a va  2 s  .  c om
 * @param javaElement
 *            {@link IJavaElement}.
 * @return Children.
 */
public static Object[] getChildren(IJavaElement javaElement) {
    try {
        // Children to return
        List<Object> children = new LinkedList<Object>();

        // Handle based on type of java element
        if (javaElement instanceof IJavaProject) {
            IJavaProject javaProject = (IJavaProject) javaElement;

            // Add the package fragment roots on the class path
            IClasspathEntry[] classPath = javaProject.getResolvedClasspath(true);
            for (IClasspathEntry entry : classPath) {
                // Obtain the Package Fragment Root of the class path entry
                IPath entryPath = entry.getPath();
                IPackageFragmentRoot fragmentRoot = javaProject.findPackageFragmentRoot(entryPath);

                // Add the package fragment root
                children.add(fragmentRoot);
            }

        } else if (javaElement instanceof IPackageFragmentRoot) {
            IPackageFragmentRoot fragmentRoot = (IPackageFragmentRoot) javaElement;

            // Add the package fragment root children
            children.addAll(Arrays.asList(fragmentRoot.getChildren()));
            children.addAll(Arrays.asList(fragmentRoot.getNonJavaResources()));

        } else if (javaElement instanceof IPackageFragment) {
            IPackageFragment fragment = (IPackageFragment) javaElement;

            // Add the fragment children
            children.addAll(Arrays.asList(fragment.getClassFiles()));
            children.addAll(Arrays.asList(fragment.getCompilationUnits()));
            children.addAll(Arrays.asList(fragment.getNonJavaResources()));

        } else if (javaElement instanceof ITypeRoot) {

            // No children of class file

        } else {
            // Unhandled java type
            MessageDialog.openWarning(null, "Unhandled java element type",
                    "Unhandled java element type " + javaElement.getClass().getName());
        }

        // Return the children
        return children.toArray();

    } catch (CoreException ex) {
        MessageDialog.openError(null, "Error", ex.getMessage());
        return new Object[0];
    }
}

From source file:net.sf.refactorit.eclipse.vfs.EclipseSourcePath.java

License:Open Source License

public List getNonJavaSources(WildcardPattern[] patterns) {
    // FIXME: overlook and user Source instead maybe?
    IJavaProject javaProject = getJavaProject();
    List result = new ArrayList();
    try {/*w  ww  .ja  va 2 s.c  om*/

        Source[] rootSources = getRootSources();

        for (int i = 0; i < rootSources.length; i++) {
            IResource resource = ((EclipseSource) rootSources[i]).getResource();
            IPackageFragmentRoot packageRoot = javaProject.getPackageFragmentRoot(resource);
            if (!packageRoot.exists()) {
                continue;
            }

            collectNonJavaResources(result, packageRoot.getNonJavaResources(), patterns);

            // must collect recursively
            collectNonJavaResources(result, packageRoot.getChildren(), patterns);
        }
        return result;
    } catch (JavaModelException e) {
        AppRegistry.getExceptionLogger().error(e, this);
        throw new SystemException(ErrorCodes.ECLIPSE_INTERNAL_ERROR, e);
    }
}

From source file:org.dev.toos.constcode.model.ConstModel.java

License:Apache License

/**?*/
private void iterateIJavaElement(IJavaElement atElement, String resourceName, Map<String, Object> findRes)
        throws CoreException {
    if (atElement.exists() == false)
        return;//  w ww. j av  a 2s  . c o m
    switch (atElement.getElementType()) {
    /*package root*/
    case IJavaElement.PACKAGE_FRAGMENT_ROOT: {
        IPackageFragmentRoot e = (IPackageFragmentRoot) atElement;
        Object[] resourcesItem = e.getNonJavaResources();
        if (resourcesItem != null)
            for (Object element : resourcesItem)
                iterateItem(element, resourceName, findRes);
        //            IJavaElement[] childs = e.getChildren();
        //            if (childs != null)
        //                for (IJavaElement elementItem : childs)
        //                    iterateItem(elementItem, resourceName);
        break;
    }
    /*package*/
    case IJavaElement.PACKAGE_FRAGMENT: {
        IPackageFragment e = (IPackageFragment) atElement;
        Object[] resourcesItem = e.getNonJavaResources();
        if (resourcesItem != null)
            for (Object element : resourcesItem)
                iterateItem(element, resourceName, findRes);
        //            IJavaElement[] childs = e.getChildren();
        //            if (childs != null)
        //                for (IJavaElement elementItem : childs)
        //                    iterateItem(elementItem, resourceName);
        break;
    }
    }
}

From source file:org.eclipse.ajdt.internal.ui.wizards.exports.StandardJavaElementContentProvider.java

License:Open Source License

private Object[] getPackageFragments(IPackageFragmentRoot root) throws JavaModelException {
    IJavaElement[] fragments = root.getChildren();
    Object[] nonJavaResources = root.getNonJavaResources();
    if (nonJavaResources == null)
        return fragments;
    return concatenate(fragments, nonJavaResources);
}

From source file:org.eclipse.che.jdt.refactoring.RefactoringTest.java

License:Open Source License

private static void tryDeletingAllNonJavaChildResources(IPackageFragmentRoot root) throws CoreException {
    Object[] nonJavaKids = root.getNonJavaResources();
    for (int i = 0; i < nonJavaKids.length; i++) {
        if (nonJavaKids[i] instanceof IResource) {
            IResource resource = (IResource) nonJavaKids[i];
            JavaProjectHelper.delete(resource);
        }//from   ww w.  j a v a  2s .  co  m
    }
}

From source file:org.eclipse.che.plugin.java.server.JavaNavigation.java

License:Open Source License

public List<JarEntry> getChildren(IJavaProject project, int rootId, String path) throws JavaModelException {
    IPackageFragmentRoot root = getPackageFragmentRoot(project, rootId);
    if (root == null) {
        return NO_ENTRIES;
    }/*  w  w  w.j a  v a  2s . c om*/

    if (path.startsWith("/")) {
        // jar file and folders
        Object[] resources = root.getNonJavaResources();
        for (Object resource : resources) {
            if (resource instanceof JarEntryDirectory) {
                JarEntryDirectory directory = (JarEntryDirectory) resource;
                Object[] children = findJarDirectoryChildren(directory, path);
                if (children != null) {
                    return convertToJarEntry(children, root);
                }
            }
        }

    } else {
        // packages and class files
        IPackageFragment fragment = root.getPackageFragment(path);
        if (fragment == null) {
            return NO_ENTRIES;
        }
        return convertToJarEntry(getPackageContent(fragment), root);
    }
    return NO_ENTRIES;
}

From source file:org.eclipse.che.plugin.java.server.JavaNavigation.java

License:Open Source License

public ClassContent getContent(IJavaProject project, int rootId, String path) throws CoreException {
    IPackageFragmentRoot root = getPackageFragmentRoot(project, rootId);
    if (root == null) {
        return null;
    }//from  w  w  w .j  a  v a 2s  .  c om

    if (path.startsWith("/")) {
        //non java file
        if (root instanceof JarPackageFragmentRoot) {
            JarPackageFragmentRoot jarPackageFragmentRoot = (JarPackageFragmentRoot) root;
            ZipFile jar = null;
            try {
                jar = jarPackageFragmentRoot.getJar();
                ZipEntry entry = jar.getEntry(path.substring(1));
                if (entry != null) {
                    try (InputStream stream = jar.getInputStream(entry)) {
                        return createContent(IoUtil.readStream(stream), false);
                    } catch (IOException e) {
                        LOG.error("Can't read file content: " + entry.getName(), e);
                    }
                }
            } finally {
                if (jar != null) {
                    JavaModelManager.getJavaModelManager().closeZipFile(jar);
                }
            }
        }
        Object[] resources = root.getNonJavaResources();

        for (Object resource : resources) {
            if (resource instanceof JarEntryFile) {
                JarEntryFile file = (JarEntryFile) resource;
                if (file.getFullPath().toOSString().equals(path)) {
                    return readFileContent(file);
                }
            }
            if (resource instanceof JarEntryDirectory) {
                JarEntryDirectory directory = (JarEntryDirectory) resource;
                JarEntryFile file = findJarFile(directory, path);
                if (file != null) {
                    return readFileContent(file);
                }
            }
        }
    } else {
        return getContent(project, path);
    }
    return null;
}