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:ccw.ClojureProject.java

License:Open Source License

public static List<IFolder> sourceFolders(IJavaProject jp) {
    List<IFolder> ret = new ArrayList<IFolder>();
    try {//from   w  w w  . j  a  v  a  2  s .  c o m
        for (IPackageFragmentRoot root : jp.getAllPackageFragmentRoots())
            if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                // System.err.println("SOURCE: " + root + " " +
                // root.getClass());
                if (root.getResource() instanceof IFolder
                        && root.getParent().getAdapter(IProject.class) == jp.getProject()) {
                    ret.add((IFolder) root.getResource());
                }
            }
    } catch (JavaModelException e) {
        CCWPlugin.logError(e);
    }
    return ret;
}

From source file:cfgrecognition.loader.SootClassLoader.java

License:Open Source License

/**
 * The method traverses all of the project types in depth-first order
 * including inner and anonymous types and loads them in Soot.
 * //from  w  w  w .ja v  a2s . co m
 * 
 * @param monitor
 *            The progress monitor.
 * @throws Exception
 *             Propagated from JDT APIs.
 */
public void process() throws Exception {
    IJavaProject project = Activator.getIJavaProject();
    IPackageFragmentRoot[] packageFragmentRoots = project.getPackageFragmentRoots();
    //      subMonitor.beginTask("Loading " + project.getElementName() + " ...", 2);
    //
    //      SubProgressMonitor monitor = new SubProgressMonitor(subMonitor, 1);
    //      monitor.beginTask("Loading packages ... ",
    //            packageFragmentRoots.length + 1);

    for (IPackageFragmentRoot pkgFragRoot : packageFragmentRoots) {
        if (pkgFragRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
            IJavaElement[] pkgFrags = (IJavaElement[]) pkgFragRoot.getChildren();
            for (IJavaElement pkgFrag : pkgFrags) {
                //               if (monitor.isCanceled())
                //                  return;
                //
                //               monitor.subTask("Loading classes in "
                //                     + pkgFrag.getElementName());

                if (pkgFrag.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                    IPackageFragment pkgFragment = (IPackageFragment) pkgFrag;
                    IJavaElement[] children = pkgFragment.getChildren();
                    for (IJavaElement anElement : children) {
                        //                     if (monitor.isCanceled())
                        //                        return;

                        // Make sure its a java file
                        if (anElement.getElementType() == IJavaElement.COMPILATION_UNIT) {
                            this.dfsDomTree(anElement);
                            //                        this.dfsDomTree(anElement, monitor);
                        }
                    }
                }
            }
        }
        //         monitor.worked(1);
    }

    // Load the necessary classes after all of the classes have been loaded.
    Scene.v().loadNecessaryClasses();
    //      monitor.done();

    // Create an instance of Interpreter before we process anything further
    // Interpreter.instance();

    //      monitor = new SubProgressMonitor(subMonitor, 1);
    //      monitor.beginTask("Configuring entry points ... ", this
    //            .getAllSootClasses().size());

    //      for (SootClass c : this.getAllSootClasses()) {
    //         // ExtensionManager manager = ExtensionManager.instance();
    //         // Configure entry methods for extension plugin
    //         for (SootMethod method : c.getMethods()) {
    //            if (monitor.isCanceled())
    //               return;
    //            // TODO: later down the road, this specifies the entry points
    //            // (characteristics for different algorithms)
    //            // manager.checkEntryMethod(method, monitor);
    //            monitor.worked(1);
    //         }
    //      }
    //      monitor.done();
}

From source file:ch.mlutz.plugins.t4e.tapestry.TapestryModule.java

License:Open Source License

public static ICompilationUnit findCompilationUnit(IProject project, String fullyQualifiedName) {

    IPackageFragment fragment;/*w  w w .j a v a2s  . c o  m*/
    ICompilationUnit compilationUnit;
    IPackageFragmentRoot[] fragmentRoots;
    try {
        fragmentRoots = getPackageFragmentRoots(project);
    } catch (JavaModelException e) {
        log.warn("Could not get packageFragmentRoots of project " + project.getName(), e);
        return null;
    } catch (CoreException e) {
        log.warn("Could not get packageFragmentRoots of project " + project.getName(), e);
        return null;
    }

    // split fullyQualifiedName into package and simple name
    // int lastDotIndex= fullyQualifiedName.lastIndexOf('.');
    String packageName;
    String compilationUnitName;

    Pattern pattern = Pattern.compile("(?:(.*)\\.)?([^.]+\\.[^.]+)");
    Matcher matcher = pattern.matcher(fullyQualifiedName);
    if (matcher.matches()) {
        packageName = matcher.group(1);
        if (packageName == null) {
            packageName = ""; // default package
        }
        compilationUnitName = matcher.group(2);
    } else {
        return null;
    }

    /*
    if (lastDotIndex != -1) {
       packageName= fullyQualifiedName.substring(0, lastDotIndex);
       compilationUnitName= fullyQualifiedName.substring(lastDotIndex + 1,
       fullyQualifiedName.length());
    } else {
       // no dot found ==> try to retrieve class in default package
       packageName= "";
       compilationUnitName= fullyQualifiedName;
    }
    */

    for (IPackageFragmentRoot root : fragmentRoots) {
        try {
            // only take into account source roots
            if (root.getKind() != IPackageFragmentRoot.K_SOURCE) {
                continue;
            }
        } catch (JavaModelException e) {
            log.warn("Could not get kind of packageFragmentRoot " + project.getName(), e);
            continue;
        }

        fragment = root.getPackageFragment(packageName);
        if (fragment == null) {
            continue;
        }

        /*
        log.info("Trying package fragment: "
              + fragment.getPath());
        */

        compilationUnit = fragment.getCompilationUnit(compilationUnitName);
        if (compilationUnit != null && compilationUnit.exists()) {
            return compilationUnit;
        }
    }
    return null;
}

From source file:ch.mlutz.plugins.t4e.tapestry.TapestryModule.java

License:Open Source License

public static ICompilationUnit findCompilationUnitInClassPackages(IProject project,
        Iterable<String> classPackages, String packageSuffix, String resourceName) {

    IPackageFragment fragment;// w ww.  java 2 s.co m
    ICompilationUnit compilationUnit;
    IPackageFragmentRoot[] fragmentRoots;
    try {
        fragmentRoots = getPackageFragmentRoots(project);
    } catch (JavaModelException e) {
        log.warn("Could not get packageFragmentRoots of project " + project.getName(), e);
        return null;
    } catch (CoreException e) {
        log.warn("Could not get packageFragmentRoots of project " + project.getName(), e);
        return null;
    }

    if (classPackages == null) {
        // add empty string as classPackage if none supplied
        classPackages = Arrays.asList(new String[] { "" });
    }

    // loop through class package names
    for (String packageName : classPackages) {
        for (IPackageFragmentRoot root : fragmentRoots) {
            try {
                // only take into account source roots
                if (root.getKind() != IPackageFragmentRoot.K_SOURCE) {
                    continue;
                }
            } catch (JavaModelException e) {
                log.warn("Could not get kind of packageFragmentRoot " + project.getName(), e);
                continue;
            }

            fragment = root.getPackageFragment(packageName + packageSuffix);
            if (fragment == null) {
                continue;
            }

            /*
            log.info("Trying package fragment: "
                  + fragment.getPath());
            */

            compilationUnit = fragment.getCompilationUnit(resourceName);
            if (compilationUnit != null && compilationUnit.exists()) {
                return compilationUnit;
            }
        }
    }
    return null;
}

From source file:ch.mlutz.plugins.t4e.tools.EclipseTools.java

License:Open Source License

/**
 * @param project//w w w. j a v  a 2  s. c om
 * @return
 * @throws CoreException
 * @throws JavaModelException
 */
public static IPackageFragmentRoot[] getPackageFragmentRoots(IProject project)
        throws CoreException, JavaModelException {
    IPackageFragmentRoot[] packageFragmentRoots = null;
    IJavaProject javaProject = null;
    if (project.hasNature(JavaCore.NATURE_ID)) {
        // Cast the IProject to IJavaProject.
        javaProject = JavaCore.create(project);

        // Get the array of IPackageFragmentRoot using getAllPackageFragmentRoots()
        packageFragmentRoots = javaProject.getAllPackageFragmentRoots();

        // Get the one(s) which have getKind() == IPackageFragmentRoot.K_SOURCE
        for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) {
            if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
                System.out.println("Source Folder: " + packageFragmentRoot.getPath());
            }
        }
    }

    return packageFragmentRoots;
}

From source file:cn.ieclipse.adt.ext.jdt.JavaSelection.java

License:Apache License

private void iterate(IJavaElement element) throws JavaModelException {
    if (project == null) {
        project = element.getJavaProject();
    }/*from  w ww .j  a  v  a  2 s  .  c o  m*/
    if (element instanceof IJavaProject) {
        IJavaProject prj = (IJavaProject) element;
        IPackageFragmentRoot[] roots = prj.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot root : roots) {
            iterate(root);
        }
        return;
    } else if (element instanceof IPackageFragmentRoot) {
        IPackageFragmentRoot root = (IPackageFragmentRoot) element;
        if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
            IJavaElement[] children = root.getChildren();
            for (IJavaElement child : children) {
                iterate(child);
            }
        }
    } else if (element instanceof IPackageFragment) {
        IPackageFragment pkg = (IPackageFragment) element;
        if (pkg.getKind() == IPackageFragmentRoot.K_SOURCE) {
            ICompilationUnit[] units = pkg.getCompilationUnits();
            for (ICompilationUnit unit : units) {
                this.units.add(unit);
            }
            IJavaElement[] children = pkg.getChildren();
            for (IJavaElement child : children) {
                iterate(child);
            }
        }
    } else if (element instanceof ICompilationUnit) {
        ICompilationUnit unit = (ICompilationUnit) element;
        this.units.add(unit);
    }
}

From source file:com.alex.example.fixlicense.actions.SampleAction.java

License:Open Source License

private void processProject(IProject project) throws Exception {
    if (project.isNatureEnabled("org.eclipse.jdt.core.javanature")) {
        IJavaProject javaProject = JavaCore.create(project);
        IPackageFragment[] packages = javaProject.getPackageFragments();
        for (IPackageFragment mypackage : packages) {
            if (mypackage.getKind() == IPackageFragmentRoot.K_SOURCE) {
                for (ICompilationUnit unit : mypackage.getCompilationUnits()) {
                    sum = sum + 1;//  w  w  w.  j a  v a 2  s  .com
                    processJavaSource(unit);
                }
            }
        }
    }
}

From source file:com.android.ide.eclipse.adt.internal.lint.UnusedResourceDetector.java

License:Open Source License

@Override
public void checkJavaSources(Context context, List<File> sourceFolders) {
    IProject project = getProject(context);
    if (project == null) {
        return;//from w  w w  .  j a  v a 2 s .c  om
    }
    IJavaProject javaProject;
    try {
        javaProject = BaseProjectHelper.getJavaProject(project);
    } catch (CoreException e) {
        context.log(e, null);
        return;
    }
    if (javaProject == null) {
        return;
    }

    // Scan Java code in project for R.field references
    try {
        IPackageFragment[] packages = javaProject.getPackageFragments();
        for (IPackageFragment pkg : packages) {
            if (pkg.getKind() == IPackageFragmentRoot.K_SOURCE) {
                for (ICompilationUnit unit : pkg.getCompilationUnits()) {

                    ASTParser parser = ASTParser.newParser(AST.JLS3);
                    parser.setKind(ASTParser.K_COMPILATION_UNIT);
                    parser.setSource(unit);
                    parser.setResolveBindings(true);
                    CompilationUnit parse = (CompilationUnit) parser.createAST(null); // parse

                    // In the R file, look for known declarations
                    if ("R.java".equals(unit.getResource().getName())) { //$NON-NLS-1$
                        ResourceDeclarationVisitor visitor = new ResourceDeclarationVisitor();
                        parse.accept(visitor);
                        mDeclarations.addAll(visitor.getDeclarations());
                    } else {
                        ResourceRefCollector visitor = new ResourceRefCollector();
                        parse.accept(visitor);
                        List<String> refs = visitor.getRefs();
                        mReferences.addAll(refs);
                    }
                }
            }
        }
    } catch (CoreException e) {
        context.log(e, null);
    }
}

From source file:com.android.ide.eclipse.adt.internal.refactorings.extractstring.ExtractStringRefactoring.java

License:Open Source License

/**
 * Returns a foreach compatible iterator over all ICompilationUnit in the project.
 *///from  ww  w .ja  va2s .  c  om
private Iterable<ICompilationUnit> findAllJavaUnits() {
    final IJavaProject javaProject = JavaCore.create(mProject);

    return new Iterable<ICompilationUnit>() {
        @Override
        public Iterator<ICompilationUnit> iterator() {
            return new Iterator<ICompilationUnit>() {
                final Queue<ICompilationUnit> mUnits = new LinkedList<ICompilationUnit>();
                final Queue<IPackageFragment> mFragments = new LinkedList<IPackageFragment>();
                {
                    try {
                        IPackageFragment[] tmpFrags = javaProject.getPackageFragments();
                        if (tmpFrags != null && tmpFrags.length > 0) {
                            mFragments.addAll(Arrays.asList(tmpFrags));
                        }
                    } catch (JavaModelException e) {
                        // pass
                    }
                }

                @Override
                public boolean hasNext() {
                    if (!mUnits.isEmpty()) {
                        return true;
                    }

                    while (!mFragments.isEmpty()) {
                        try {
                            IPackageFragment fragment = mFragments.poll();
                            if (fragment.getKind() == IPackageFragmentRoot.K_SOURCE) {
                                ICompilationUnit[] tmpUnits = fragment.getCompilationUnits();
                                if (tmpUnits != null && tmpUnits.length > 0) {
                                    mUnits.addAll(Arrays.asList(tmpUnits));
                                    return true;
                                }
                            }
                        } catch (JavaModelException e) {
                            // pass
                        }
                    }
                    return false;
                }

                @Override
                public ICompilationUnit next() {
                    ICompilationUnit unit = mUnits.poll();
                    hasNext();
                    return unit;
                }

                @Override
                public void remove() {
                    throw new UnsupportedOperationException("This iterator does not support removal"); //$NON-NLS-1$
                }
            };
        }
    };
}

From source file:com.android.ide.eclipse.adt.internal.wizards.exportgradle.ProjectSetupBuilder.java

License:Open Source License

@NonNull
private static List<IJavaProject> getReferencedProjects(IJavaProject javaProject)
        throws JavaModelException, InternalException {

    List<IJavaProject> projects = Lists.newArrayList();

    IClasspathEntry entries[] = javaProject.getRawClasspath();
    for (IClasspathEntry classpathEntry : entries) {
        if (classpathEntry.getContentKind() == IPackageFragmentRoot.K_SOURCE
                && classpathEntry.getEntryKind() == IClasspathEntry.CPE_PROJECT) {
            // found required project on build path
            String subProjectRoot = classpathEntry.getPath().toString();
            IJavaProject subProject = getJavaProject(subProjectRoot);
            // is project available in workspace?
            if (subProject != null) {
                projects.add(subProject);
            } else {
                throw new InternalException(String.format(
                        "Project '%s' is missing project dependency '%s' in Eclipse workspace.\n"
                                + "Make sure all dependencies are opened.",
                        javaProject.getProject().getName(), classpathEntry.getPath().toString()));
            }/* ww  w  . j  a v  a  2s .  c  o  m*/
        }
    }

    return projects;
}