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

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

Introduction

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

Prototype

int K_SOURCE

To view the source code for org.eclipse.jdt.core IPackageFragmentRoot K_SOURCE.

Click Source Link

Document

Kind constant for a source path root.

Usage

From source file:net.sf.jasperreports.eclipse.classpath.OutputFolderClassLoader.java

License:Open Source License

private byte[] loadClassData(String className, IJavaProject javaProject) throws Exception {
    IPath defaultLocationPath = javaProject.getOutputLocation();
    IWorkspaceRoot wsRoot = javaProject.getProject().getWorkspace().getRoot();
    IFolder folder = wsRoot.getFolder(defaultLocationPath);
    String prjDefaultLocation = folder.getLocation().toOSString();
    byte[] classBytes = loadClassFile(prjDefaultLocation + "/" + className.replaceAll("\\.", "/") + ".class");
    if (classBytes == null) {
        // Iterate over the (possible) output locations of the sourcefolder classpath entries
        IClasspathEntry[] classpathEntries = javaProject.getRawClasspath();
        for (IClasspathEntry e : classpathEntries) {
            if (e.getContentKind() == IPackageFragmentRoot.K_SOURCE) {
                IPath entryOutputLocation = e.getOutputLocation();
                if (entryOutputLocation != null) {
                    IFolder entryOutputFolder = wsRoot.getFolder(entryOutputLocation);
                    classBytes = loadClassFile(
                            entryOutputFolder + "/" + className.replaceAll("\\.", "/") + ".class");
                    if (classBytes != null)
                        break;
                }//from w  w  w. j a v  a2  s.co  m
            }
        }
    }
    return classBytes;
}

From source file:net.sf.spindle.core.eclipse.TapestryProject.java

License:Mozilla Public License

/**
 * @param candidate//  w ww.  ja  v a 2s  . co  m
 * @return
 */
public boolean isOnSourcePath(IPath candidate) {
    try {
        IPackageFragmentRoot[] roots = getJavaProject().getPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
                IPath rootpath = roots[i].getUnderlyingResource().getFullPath();
                if (pathCheck(rootpath, candidate))
                    return true;
            }

        }
    } catch (CoreException e) {
        TapestryCore.log(e);
    }
    return false;
}

From source file:no.javatime.inplace.bundleproject.ProjectProperties.java

License:Open Source License

/**
 * Finds all source class path entries and return the relative path of source folders
 * /*from  w w  w . ja va 2  s .c  om*/
 * @param project with source folders
 * @return source folders or an empty collection
 * @throws JavaModelException when accessing the project resource or the class path element does not exist
 * @throws InPlaceException if the project could not be accessed
 */
public static Collection<IPath> getJavaProjectSourceFolders(IProject project)
        throws JavaModelException, InPlaceException {
    ArrayList<IPath> paths = new ArrayList<IPath>();
    IJavaProject javaProject = getJavaProject(project);
    IClasspathEntry[] classpathEntries = javaProject.getResolvedClasspath(true);
    for (int i = 0; i < classpathEntries.length; i++) {
        IClasspathEntry entry = classpathEntries[i];
        if (entry.getContentKind() == IPackageFragmentRoot.K_SOURCE) {
            IPath path = entry.getPath();
            String segment = path.segment(path.segmentCount() - 1);
            if (null != segment) {
                paths.add(new Path(segment));
            }
        }
    }
    return paths;
}

From source file:org.apache.felix.sigil.eclipse.ui.internal.editors.project.ProjectLabelProvider.java

License:Apache License

public Image getImage(Object element) {
    Image result = null;//from ww w.  j  ava 2  s.  c  o m
    if (element instanceof ISigilBundle || element instanceof IRequiredBundle
            || element instanceof IBundleModelElement) {
        result = findBundle();
    } else if (element instanceof IPackageImport) {
        if (checker != null) {
            result = checker.isSatisfied((IPackageImport) element) ? findPackage() : findPackageError();
        } else {
            result = findPackage();
        }
    } else if (element instanceof IPackageExport) {
        result = findPackage();
    } else if (element instanceof IPackageFragmentRoot) {
        IPackageFragmentRoot root = (IPackageFragmentRoot) element;
        try {
            if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                result = findPackage();
            } else {
                result = findBundle();
            }
        } catch (JavaModelException e) {
            SigilCore.error("Failed to inspect package fragment root", e);
        }
    } else if (element instanceof IClasspathEntry) {
        result = findPackage();
    }

    return result;
}

From source file:org.apache.felix.sigil.eclipse.ui.util.ModelLabelProvider.java

License:Apache License

public Image getImage(Object element) {
    boolean unresolved = (unresolvedElements == null) ? false : unresolvedElements.contains(element);

    if (element instanceof ISigilBundle || element instanceof IBundleModelElement) {
        return findBundle();
    } else if (element instanceof IRequiredBundle) {
        boolean optional = ((IRequiredBundle) element).isOptional();
        return findRequiredBundle(optional, unresolved);
    } else if (element instanceof IPackageImport) {
        boolean optional = ((IPackageImport) element).isOptional();
        return findPackageImport(optional, unresolved);
    } else if (element instanceof IPackageExport) {
        return findPackageExport();
    } else if (element instanceof IPackageFragmentRoot) {
        IPackageFragmentRoot root = (IPackageFragmentRoot) element;
        try {/*from   w w  w  .j  av a  2 s.c om*/
            if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                return findPackage();
            } else {
                return findBundle();
            }
        } catch (JavaModelException e) {
            SigilCore.error("Failed to inspect package fragment root", e);
        }
    } else if (element instanceof IClasspathEntry) {
        return findPackage();
    } else if (element instanceof IBundleRepository) {
        IBundleRepository rep = (IBundleRepository) element;
        IRepositoryModel config = SigilCore.getRepositoryModel(rep);
        return config.getType().getIcon();
    } else if (element instanceof Throwable) {
        return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
    }

    return null;
}

From source file:org.apache.felix.sigil.ui.eclipse.ui.util.ModelLabelProvider.java

License:Apache License

public Image getImage(Object element) {
    boolean unresolved = (unresolvedElements == null) ? false : unresolvedElements.contains(element);

    if (element instanceof ISigilBundle || element instanceof IBundleModelElement) {
        return findBundle();
    } else if (element instanceof IRequiredBundle) {
        boolean optional = ((IRequiredBundle) element).isOptional();
        return findRequiredBundle(optional, unresolved);
    } else if (element instanceof IPackageImport) {
        boolean optional = ((IPackageImport) element).isOptional();
        return findPackageImport(optional, unresolved);
    } else if (element instanceof IPackageExport) {
        return findPackageExport();
    } else if (element instanceof IPackageFragmentRoot) {
        IPackageFragmentRoot root = (IPackageFragmentRoot) element;
        try {/*from   w  w  w .  j a v a  2 s .c o  m*/
            if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                return findPackage();
            } else {
                return findBundle();
            }
        } catch (JavaModelException e) {
            SigilCore.error("Failed to inspect package fragment root", e);
        }
    } else if (element instanceof IClasspathEntry) {
        return findPackage();
    }
    if (element instanceof IBundleRepository) {
        IBundleRepository rep = (IBundleRepository) element;
        IRepositoryModel config = SigilCore.getRepositoryConfiguration().findRepository(rep.getId());
        return config.getType().getIcon();
    }

    return null;
}

From source file:org.asup.ui.pdm.e4.action.VisitMethodAction.java

License:Open Source License

private void analyseMethods(IProject project) throws JavaModelException {
    IPackageFragment[] packages = JavaCore.create(project).getPackageFragments();
    // parse(JavaCore.create(project));
    for (IPackageFragment mypackage : packages) {
        if (mypackage.getKind() == IPackageFragmentRoot.K_SOURCE) {
            createAST(mypackage);/*  w  w  w .j  a  v a2s. co m*/
        }

    }
}

From source file:org.codehaus.groovy.eclipse.launchers.GroovyConsoleLineTracker.java

License:Apache License

/**
 * @param groovyFileName// w w  w.  j a v  a2  s  .  c o m
 * @return
 * @throws JavaModelException
 */
private IFile[] searchForFileInLaunchConfig(String groovyFileName) throws JavaModelException {
    List<IFile> files = new LinkedList<IFile>();
    IJavaProject[] projects = JavaModelManager.getJavaModelManager().getJavaModel().getJavaProjects();
    for (IJavaProject javaProject : projects) {
        if (GroovyNature.hasGroovyNature(javaProject.getProject())) {
            for (IPackageFragmentRoot root : javaProject.getAllPackageFragmentRoots()) {
                if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                    IResource resource = root.getResource();
                    if (resource.isAccessible() && resource.getType() != IResource.FILE) {
                        IFile file = ((IContainer) resource).getFile(new Path(groovyFileName));
                        if (file.isAccessible()) {
                            files.add(file);
                        }
                    }
                }
            }
        }
    }
    return files.toArray(new IFile[files.size()]);
}

From source file:org.eclim.plugin.jdt.command.src.CompletePackageCommand.java

License:Open Source License

@Override
public Object execute(CommandLine commandLine) throws Exception {
    String project = commandLine.getValue(Options.PROJECT_OPTION);
    String name = commandLine.getValue(Options.NAME_OPTION);

    IJavaProject javaProject = JavaUtils.getJavaProject(project);
    IPackageFragment[] packs = javaProject.getPackageFragments();
    ArrayList<String> results = new ArrayList<String>();
    for (IPackageFragment pack : packs) {
        if (pack.getKind() != IPackageFragmentRoot.K_SOURCE) {
            continue;
        }/*from  w  w w .  j  a v a  2 s  . com*/
        String packName = pack.getElementName();
        if (packName.length() > 0 && !results.contains(packName)
                && (name == null || packName.startsWith(name))) {
            results.add(packName);
        }
    }
    Collections.sort(results, Collator.getInstance());
    return results;
}

From source file:org.eclim.plugin.jdt.command.src.NewCommand.java

License:Open Source License

@Override
public Object execute(CommandLine commandLine) throws Exception {
    String projectName = commandLine.getValue(Options.PROJECT_OPTION);
    String type = commandLine.getValue(Options.TYPE_OPTION);
    String name = commandLine.getValue(Options.NAME_OPTION);
    String srcRoot = commandLine.getValue(Options.ROOT_OPTION);

    // handle someone typing a file path instead of a fully qualified class name
    if (name.endsWith(".java")) {
        name = name.substring(0, name.length() - 5);
    }/*from  w  w w . ja  v a 2s .  c o m*/
    name = name.replace('/', '.');

    int classStart = name.lastIndexOf('.');
    final String packageName = classStart >= 0 ? name.substring(0, classStart) : name;
    final String typeName = classStart >= 0 ? name.substring(classStart + 1) : name;
    final String fileName = typeName + ".java";

    IJavaProject javaProject = JavaUtils.getJavaProject(projectName);

    ArrayList<IPackageFragmentRoot> roots = new ArrayList<IPackageFragmentRoot>();

    // find all roots the requested package is found in.
    for (IPackageFragment f : javaProject.getPackageFragments()) {
        if (f.getElementName().equals(packageName)) {
            IJavaElement parent = f.getParent();
            while (parent != null) {
                if (parent instanceof IPackageFragmentRoot) {
                    IPackageFragmentRoot root = (IPackageFragmentRoot) parent;
                    if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                        roots.add(root);
                    }
                    break;
                }
                parent = parent.getParent();
            }
        }
    }

    // the package isn't found in any roots
    if (roots.size() == 0) {
        // no root supplied, so we have to add all src roots to a list for the
        // user to choose from.
        for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) {
            if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                roots.add(root);
            }
        }
    }

    // still no source roots, so we have to fail
    if (roots.size() == 0) {
        throw new RuntimeException("No project source directories found.");
    }

    if (roots.size() > 1) {
        // user chosen root supplied, so grab that one.
        if (srcRoot != null) {
            roots.clear();
            for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) {
                if (root.getKind() == IPackageFragmentRoot.K_SOURCE && getPath(root).equals(srcRoot)) {
                    roots.add(root);
                    break;
                }
            }

            if (roots.size() == 0) {
                throw new RuntimeException("Unable to find project source directory: " + srcRoot);
            }
        }

        if (roots.size() > 1) {
            ArrayList<String> srcRoots = new ArrayList<String>();
            for (IPackageFragmentRoot root : roots) {
                srcRoots.add(getPath(root));
            }
            return srcRoots;
        }
    }

    IPackageFragmentRoot root = roots.get(0);
    IPackageFragment fragment = root.createPackageFragment(packageName, false, null);

    // locate the to-be created file
    File fragmentPath = fragment.getUnderlyingResource().getLocation().toFile();
    final File file = new File(fragmentPath, fileName);

    // make sure eclipse is up to date, in case the user
    //  deleted the file outside of eclipse's knowledge
    fragment.getUnderlyingResource().refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor());

    // create!
    final String content = String.format(TEMPLATE, packageName, getType(type), typeName);

    // NB: If we delete the file outside of Eclipse'
    //  awareness, it will whine if we then try to
    //  recreate it. So, if we *know* the file doesn't
    //  exist, force it.
    ICompilationUnit unit = fragment.createCompilationUnit(fileName, content, false, new NullProgressMonitor());

    if (unit == null || !file.exists()) {
        throw new RuntimeException("Could not create " + file);
    }

    JavaUtils.format(unit, CodeFormatter.K_COMPILATION_UNIT, 0, unit.getBuffer().getLength());

    return file.getAbsolutePath();
}