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:org.entirej.ide.ui.utils.PackageAssistProvider.java

License:Apache License

public IContentProposal[] getProposals(String currentContent, int position) {
    final List<TypeProposal> proposals = new ArrayList<TypeProposal>();

    if (currentContent.length() > position) {
        currentContent = currentContent.substring(0, position);
    }/*  w  ww  . ja va  2 s . c  om*/
    IJavaProject javaProject = projectProvider.getJavaProject();
    if (javaProject == null)
        return new IContentProposal[0];

    if (javaProject.exists()) {
        try {
            IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
            for (int i = 0; i < roots.length; i++) {
                if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
                    IPackageFragmentRoot sourceRoot = roots[i];
                    if (sourceRoot != null && sourceRoot.exists()) {
                        IJavaElement[] children = sourceRoot.getChildren();
                        for (IJavaElement element : children) {
                            if (element instanceof IPackageFragment) {

                                if (filterPkg(currentContent, position, element.getElementName())) {
                                    IPackageFragment fragment = (IPackageFragment) element;
                                    proposals.add(new TypeProposal(new Type(element.getElementName(),
                                            fragment.hasChildren() ? PKG_IMG : PKG_IMG_EMPTY), null));
                                }
                            }
                        }
                    }
                }
            }
        } catch (JavaModelException e) {
            EJCoreLog.logException(e);
        }
    }

    Collections.sort(proposals, new Comparator<TypeProposal>() {

        public int compare(TypeProposal o1, TypeProposal o2) {

            return o1.type.pkg.compareTo(o2.type.pkg);
        }
    });
    return proposals.toArray(new IContentProposal[0]);
}

From source file:org.evolizer.changedistiller.job.ChangeDistiller.java

License:Apache License

private IStatus processElement(IJavaElement element, IProgressMonitor group, int tick) {
    Job changeDistillerJob = null;/*from www.jav  a2  s . c o m*/
    try {
        // ICompilationUnit
        if (element.getElementType() == IJavaElement.COMPILATION_UNIT) {
            changeDistillerJob = new SourceDistiller("Process class " + element.getElementName());
            SourceDistiller job = (SourceDistiller) changeDistillerJob;
            List<Revision> revisions = ChangeDistillerPlugin.getPersistencyProvider()
                    .query("from Revision as r where r.file.path like '%/" + element.getElementName()
                            + "' and r.number not like '1.%.%'" + " order by r.report.creationTime asc",
                            Revision.class);
            job.setProject(element.getJavaProject().getProject());
            job.setRevisionsToDistill(revisions);

            // IPackageFragment; but only process source fragments (exclude binary Jars)
        } else if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
            IPackageFragment fragment = (IPackageFragment) element;

            if ((fragment.getKind() == IPackageFragmentRoot.K_SOURCE) && fragment.containsJavaResources()) {
                changeDistillerJob = new PackageFragmentDistiller(
                        "Process Package " + fragment.getElementName());
                ((PackageFragmentDistiller) changeDistillerJob).setPackageFragment(fragment);
            }

            // IJavaProject
        } else if (element.getElementType() == IJavaElement.JAVA_PROJECT) {

            changeDistillerJob = new ProjectDistiller("Process project " + element.getElementName());
            ((ProjectDistiller) changeDistillerJob).setJavaProject((IJavaProject) element);

        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    if (changeDistillerJob != null) {
        changeDistillerJob.setProgressGroup(group, tick);
        changeDistillerJob.setPriority(Job.LONG);
        changeDistillerJob.schedule();

        try {
            // wait until ChangeDistiller finished selected element
            changeDistillerJob.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return changeDistillerJob.getResult();
    }
    return Status.OK_STATUS;
}

From source file:org.evolizer.core.util.selectionhandling.JavaSelectionHelper.java

License:Apache License

/**
 * Returns the list of root package fragments of a given Java project.
 * /*from   w w w. jav  a2s.  c  o  m*/
 * @param project   The Java project.
 * @return  The list of root package fragments. 
 * @throws EvolizerException
 */
public static List<IJavaElement> getPackageFragmentRoots(IJavaProject project) throws EvolizerException {
    List<IJavaElement> sourceRootPagckages = new ArrayList<IJavaElement>();
    try {
        for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) {
            if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                sourceRootPagckages.add(root);
            }
        }
    } catch (JavaModelException jme) {
        throw new EvolizerException(jme);
    }

    return sourceRootPagckages;
}

From source file:org.evolizer.famix.importer.ProjectParser.java

License:Apache License

/**
 * Return the list of source packages of an Eclipse Java project.
 * /*w  w w .  ja v a  2s .c  o  m*/
 * @param project
 *            Eclipse Java project.
 * @return List of source packages.
 */
private List<IPackageFragment> getSourcePackages(IJavaProject project) {
    List<IPackageFragment> fragments = new LinkedList<IPackageFragment>();

    try {
        for (IPackageFragment lFragment : project.getPackageFragments()) {
            if (lFragment.getKind() == IPackageFragmentRoot.K_SOURCE) {
                fragments.add(lFragment);
            }
        }
    } catch (JavaModelException e) {
        sLogger.error("Error determining package fragments from Java project " + project.getElementName());
        e.printStackTrace();
    }

    return fragments;
}

From source file:org.evosuite.eclipse.popup.actions.TestGenerationAction.java

License:Open Source License

/**
 * If there already exists a test suite for the chosen target class, then
 * renaming the old test suite is one of the options the user can choose
 * //from   w ww . j  av a2 s  . c om
 * @param suite
 * @param packageName
 * @param suitePath
 */
public void renameSuite(final IResource suite, String packageName, String suitePath) {
    System.out.println("Renaming " + suitePath + " in package " + packageName);
    IPackageFragment[] packages;
    try {
        packages = JavaCore.create(suite.getProject()).getPackageFragments();
        System.out.println("Packages found: " + packages.length);
        for (IPackageFragment f : packages) {
            if ((f.getKind() == IPackageFragmentRoot.K_SOURCE) && (f.getElementName().equals(packageName))) {

                for (ICompilationUnit cu : f.getCompilationUnits()) {

                    String cuName = cu.getElementName();
                    System.out.println("targetPath = " + suitePath);
                    System.out.println("cuName = " + cuName);
                    if (cuName.equals(suitePath)) {
                        RefactoringContribution contribution = RefactoringCore
                                .getRefactoringContribution(IJavaRefactorings.RENAME_COMPILATION_UNIT);
                        RenameJavaElementDescriptor descriptor = (RenameJavaElementDescriptor) contribution
                                .createDescriptor();
                        descriptor.setProject(cu.getResource().getProject().getName());
                        String newName = getNewName(cuName, f.getCompilationUnits());
                        System.out.println("New name for Test Suite: " + newName);
                        descriptor.setNewName(newName); // new name for a Class
                        descriptor.setJavaElement(cu);

                        RefactoringStatus status = new RefactoringStatus();
                        try {
                            Refactoring refactoring = descriptor.createRefactoring(status);

                            IProgressMonitor monitor = new NullProgressMonitor();
                            refactoring.checkInitialConditions(monitor);
                            refactoring.checkFinalConditions(monitor);
                            Change change = refactoring.createChange(monitor);
                            change.perform(monitor);

                        } catch (CoreException e) {
                            e.printStackTrace();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    } catch (JavaModelException e1) {
        e1.printStackTrace();
    }
}

From source file:org.fusesource.ide.branding.wizards.NewCamelTestWizardPageOne.java

License:Open Source License

/**
 * Initialized the page with the current selection
 * // www .  ja v a2  s  .  c o m
 * @param selection
 *            The selection
 */
public void init(IStructuredSelection selection) {
    IJavaElement elem = getInitialJavaElement(selection);
    IJavaProject jproject = elem.getJavaProject();
    IPackageFragmentRoot testRoot = null;

    if (selection != null && !selection.isEmpty()) {
        Object selectedElement = selection.getFirstElement();
        IFile ifile = null;

        if (selectedElement instanceof IFile) {
            ifile = (IFile) selectedElement;
        } else if (selectedElement instanceof IAdaptable) {
            IAdaptable adaptable = (IAdaptable) selectedElement;
            ifile = (IFile) adaptable.getAdapter(IFile.class);
        }

        if (ifile != null) {
            setXmlFileUnderTest(ifile);
        }

        // now we determine the container for the test classes
        if (jproject != null && jproject.exists()) {
            try {
                IPackageFragmentRoot[] roots = jproject.getPackageFragmentRoots();
                for (int i = 0; i < roots.length; i++) {
                    if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
                        if (roots[i].getPath().toFile().getPath()
                                .contains(String.format("src%stest%sjava", File.separator, File.separator))) {
                            testRoot = roots[i];
                            break;
                        } else if (roots[i].getPath().toFile().getPath()
                                .contains(String.format("src%stest%sscala", File.separator, File.separator))) {
                            testRoot = roots[i];
                            // we will prefer the src/test/java folder, so we don't break here and search for it
                        }
                    }
                }
            } catch (Exception ex) {
                Activator.getLogger().error(ex);
            }
        }
    }

    if (elem != null) {
        initContainerPage(elem);

        // if we found a suitable test class container then we set it here
        if (testRoot != null) {
            // set the container correctly
            setPackageFragmentRoot(testRoot, true);
        }

        IJavaProject project = elem.getJavaProject();
        resourceContainer = project.getProject();

        // evaluate the enclosing type
        IPackageFragment pack = (IPackageFragment) elem.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
        if (pack != null) {
            setPackageFragment(pack, true);
        } else {
            File testFolderFile = project.getProject().getParent().getRawLocation()
                    .append(getPackageFragmentRoot().getPath().makeRelative()).toFile();
            File f = getBasePackage(testFolderFile);
            if (f != null && testRoot != null) {
                IPath p = new Path(f.getPath());
                p = p.makeRelativeTo(project.getProject().getParent().getRawLocation()
                        .append(getPackageFragmentRoot().getPath().makeRelative()));
                String name = "";
                StringTokenizer strTok = new StringTokenizer(p.toOSString(), File.separator);
                while (strTok.hasMoreTokens()) {
                    String tok = strTok.nextToken();
                    if (name.trim().length() > 0) {
                        name += ".";
                    }
                    name += tok;
                }
                try {
                    IPackageFragment pf = testRoot.createPackageFragment(name, true, new NullProgressMonitor());
                    setPackageFragment(pf, true);
                } catch (Exception ex) {
                    Activator.getLogger().error(ex);
                }
            }
        }

        if (fXmlFileUnderTest == null) {
            try {
                // if we have no file selected yet, lets see if there's a
                // single one available
                List<IFile> files = ResourceModelUtils.filter(resourceContainer,
                        new org.fusesource.ide.foundation.core.util.Filter<IFile>() {
                            @Override
                            public boolean matches(IFile file) {
                                if (Objects.equal(file.getFileExtension(), "xml")) {
                                    return camelXmlMatcher.matches(file);
                                }
                                return false;
                            }
                        });
                if (files.size() == 1) {
                    setXmlFileUnderTest(files.get(0));
                }
            } catch (Exception e) {
                Activator.getLogger().error("Failed to search for Camel XML files: " + e, e);
            }
        }
    }
    setJUnit4(true, true);
    updateStatus(getStatusList());
}

From source file:org.fusesource.ide.foundation.core.util.CamelUtils.java

License:Open Source License

/**
 * Fetch the list of files in the project that match the camel content type. 
 * This method looks at only the source folders if the project is a Java project.
 * @param project//from ww  w . j a v a2 s .c  o m
 * @return list of camel files with content-type org.fusesource.ide.camel.editor.camelContentType
 * @throws CoreException
 */
public static List<IFile> getFilesWithCamelContentType(IProject project) throws CoreException {
    final List<IFile> files = new ArrayList<IFile>();
    if (project.hasNature(JavaCore.NATURE_ID)) {
        //limit the search to source folders
        IJavaProject javaProject = JavaCore.create(project);
        if (javaProject != null) {
            for (IPackageFragmentRoot ifr : javaProject.getAllPackageFragmentRoots()) {
                if (ifr.getKind() == IPackageFragmentRoot.K_SOURCE) {
                    files.addAll(getFilesWithCamelContentTypeInResource(ifr.getCorrespondingResource()));
                }
            }
        }
    }
    if (project.hasNature(FacetedProjectNature.NATURE_ID)) {
        // TODO: search in deployed resources
    }

    if (files.isEmpty()) {// or should we throw an error?
        files.addAll(getFilesWithCamelContentTypeInResource(project));
    }
    return files;
}

From source file:org.fusesource.ide.jvmmonitor.internal.ui.properties.cpu.actions.AddPackageDialog.java

License:Open Source License

/**
 * Adds the package./*  w w w . j av a 2 s .  co m*/
 * 
 * @param packageElements
 *            The package elements into which package is added
 * @param element
 *            The element which contains package element to be added
 * @throws JavaModelException
 */
private void addPackage(Set<String> packageElements, IJavaElement element) throws JavaModelException {

    // java source folder
    if (element instanceof IPackageFragmentRoot) {
        int kind = ((IPackageFragmentRoot) element).getKind();
        if (kind == IPackageFragmentRoot.K_SOURCE) {
            IJavaElement[] children = ((IPackageFragmentRoot) element).getChildren();
            for (IJavaElement child : children) {
                addPackage(packageElements, child);
            }
        }
    }

    // java package
    if (element instanceof IPackageFragment) {
        IJavaElement[] children = ((IPackageFragment) element).getChildren();
        for (IJavaElement child : children) {
            if (IJavaElement.COMPILATION_UNIT == child.getElementType()) {
                packageElements.add(element.getElementName());
                break;
            }
        }
    }
}

From source file:org.grails.ide.eclipse.refactoring.util.RefactoringUtils.java

License:Open Source License

/**
 * Creates a default 'search scope' to search for references that need updating in a Grails project. The default scope includes all
 * source folders in the Grails project that actually 'belong' to the project (i.e. all source folders, but excluding 
 * the linked plugin source folders.//from ww w  .j  av  a  2s .c om
 * 
 * @throws JavaModelException 
 */
public static IJavaSearchScope getSearchScope(IJavaProject javaProject) throws JavaModelException {
    IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
    List<IPackageFragmentRoot> srcFolders = new ArrayList<IPackageFragmentRoot>();
    for (IPackageFragmentRoot root : roots) {
        if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
            if (!GrailsResourceUtil.isGrailsDependencyPackageFragmentRoot(root)) {
                srcFolders.add(root);
                //               System.out.println(root.getPath());
            }
        }
    }
    return SearchEngine.createJavaSearchScope(srcFolders.toArray(new IJavaElement[srcFolders.size()]));
}

From source file:org.grails.ide.eclipse.ui.contentassist.util.BeansJavaCompletionUtils.java

License:Open Source License

private static IPackageFragment getPackageFragment(IJavaProject project, String prefix)
        throws JavaModelException {
    int dot = prefix.lastIndexOf('.');
    if (dot > -1) {
        String packageName = prefix.substring(0, dot);
        for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) {
            IPackageFragment p = root.getPackageFragment(packageName);
            if (p != null && p.exists()) {
                return p;
            }/*  w  ww  . java2  s .c o m*/
        }
        IPackageFragment[] packages = project.getPackageFragments();
        for (IPackageFragment p : packages) {
            if (p.getElementName().equals(packageName)) {
                return p;
            }
        }
    } else {
        for (IPackageFragmentRoot p : project.getAllPackageFragmentRoots()) {
            if (p.getKind() == IPackageFragmentRoot.K_SOURCE) {
                return p.getPackageFragment("");
            }
        }
    }
    return project.getPackageFragments()[0];
}