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

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

Introduction

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

Prototype

IPackageFragmentRoot findPackageFragmentRoot(IPath path) throws JavaModelException;

Source Link

Document

Returns the existing package fragment root on this project's classpath whose path matches the given (absolute) path, or null if one does not exist.

Usage

From source file:es.bsc.servicess.ide.ProjectMetadata.java

License:Apache License

/** Get the Java Package root of the Service source folder 
 * @param project Java project where the service is implemented
 * @return/*from ww  w . j a  v a  2  s .  c  o  m*/
 * @throws JavaModelException
 */
public IPackageFragmentRoot getPackageFragmentRoot(IJavaProject project) throws JavaModelException {
    return project.findPackageFragmentRoot(project.getPath().append(getSourceDir()));
}

From source file:in.cypal.studio.gwt.ui.wizards.NewGwtRemoteServiceWizardPage.java

License:Apache License

public IPackageFragmentRoot getPackageFragmentRoot() {

    IPackageFragmentRoot root = null;/*from w ww  .  ja  va 2 s  .c  o m*/
    if (!projectText.equals("")) {//$NON-NLS-1$

        try {

            IJavaProject project = JavaCore.create(Util.getProject(projectText));
            IPath moduleXmlPath = new Path(moduleText);
            root = project.findPackageFragmentRoot(
                    new Path("/").append(projectText).append(moduleXmlPath.segment(0)));//$NON-NLS-1$

        } catch (JavaModelException e) {
            Activator.logException(e);
        }
    }
    return root;
}

From source file:kieker.develop.rl.ui.wizards.RecordLangNewWizardPage.java

License:Apache License

private IPackageFragmentRoot chooseSourceFolder() {
    final ISelectionStatusValidator validator = new ISelectionStatusValidator() {

        @Override//from   ww w  .j av a 2  s . c o  m
        public IStatus validate(final Object[] selection) { // NOCS
            if (selection.length == 1) {
                if (this.isSelectedValid(selection[0])) {
                    return Status.OK_STATUS;
                } else {
                    return Status.CANCEL_STATUS;
                }
            } else {
                return Status.CANCEL_STATUS;
            }
        }

        private boolean isSelectedValid(final Object element) {
            try {
                if (element instanceof IJavaProject) {
                    final IJavaProject jproject = (IJavaProject) element;
                    final IPath path = jproject.getProject().getFullPath();
                    return jproject.findPackageFragmentRoot(path) != null;
                } else if (element instanceof IPackageFragmentRoot) {
                    return ((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE;
                }
                return true;
            } catch (final JavaModelException e) {
                return false;
            }
        }

    };

    final ViewerFilter filter = new ViewerFilter() {
        private final Class<?>[] acceptedClasses = new Class<?>[] { IJavaModel.class,
                IPackageFragmentRoot.class, IJavaProject.class };

        @Override
        public boolean select(final Viewer viewer, final Object parent, final Object element) {
            if (element instanceof IPackageFragmentRoot) {
                try {
                    return ((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE;
                } catch (final JavaModelException e) {
                    return false;
                }
            }
            for (final Class<?> acceptedClasse : this.acceptedClasses) {
                if (acceptedClasse.isInstance(element)) {
                    return true;
                }
            }
            return false;
        }
    };

    final StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider();
    final ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);

    final ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(this.getShell(), labelProvider,
            provider);
    dialog.setValidator(validator);
    dialog.setComparator(new JavaElementComparator());
    dialog.setTitle("Select source folder");
    dialog.setMessage("Select a source folder");
    dialog.addFilter(filter);
    dialog.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot()));
    dialog.setInitialSelection(this.sourceFolder);
    dialog.setHelpAvailable(false);

    if (dialog.open() == Window.OK) {
        final Object element = dialog.getFirstResult();
        if (element instanceof IJavaProject) {
            final IJavaProject jproject = (IJavaProject) element;
            return jproject.getPackageFragmentRoot(jproject.getProject());
        } else if (element instanceof IPackageFragmentRoot) {
            return (IPackageFragmentRoot) element;
        }
        return null;
    }
    return null;
}

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

License:Open Source License

/**
 * Obtains the children of the {@link IJavaElement}.
 * /*  ww  w  . j  ava 2  s. c  o m*/
 * @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:org.bonitasoft.studio.common.repository.filestore.SourceFileStore.java

License:Open Source License

@Override
public void rename(String newQualifiedClassName) {
    IJavaProject project = RepositoryManager.getInstance().getCurrentRepository().getJavaProject();
    String packageName = "";
    String className = newQualifiedClassName;

    if (newQualifiedClassName.indexOf(".") != -1) {
        packageName = newQualifiedClassName.substring(0, newQualifiedClassName.lastIndexOf("."));
        className = newQualifiedClassName.substring(newQualifiedClassName.lastIndexOf(".") + 1,
                newQualifiedClassName.length());
    }//from   w ww .  j  a  v  a  2s. c  om

    try {
        final IRepositoryStore<?> store = getParentStore();
        IPackageFragmentRoot root = project.findPackageFragmentRoot(store.getResource().getFullPath());
        root.createPackageFragment(packageName, true, Repository.NULL_PROGRESS_MONITOR);
        IPackageFragment targetContainer = project
                .findPackageFragment(store.getResource().getFullPath().append(packageName.replace(".", "/")));
        IType type = project.findType(qualifiedClassName);
        if (type != null) {
            type.getCompilationUnit().move(targetContainer, null, className + ".java", true,
                    Repository.NULL_PROGRESS_MONITOR);
            qualifiedClassName = newQualifiedClassName;
        }
    } catch (Exception e) {
        BonitaStudioLog.error(e);
    }
}

From source file:org.bonitasoft.studio.groovy.GroovyCompilationUnitFactory.java

License:Open Source License

public ICompilationUnit newCompilationUnit(final String script, final IProgressMonitor monitor)
        throws JavaModelException {
    final IJavaProject javaProject = javaProject();
    if (javaProject != null) {
        final IPackageFragment packageFragment = javaProject
                .findPackageFragmentRoot(javaProject.getPath().append("src-providedGroovy"))
                .getPackageFragment("");//default package
        return packageFragment.createCompilationUnit(newScriptName(), script, true, monitor);
    }/*from  w w w  . jav a2 s  . co  m*/
    return null;
}

From source file:org.eclipse.ajdt.internal.buildpath.AJBuildPathAction.java

License:Open Source License

private static IFile getCandidate(IAdaptable element) throws JavaModelException {
    IResource resource = (IResource) element.getAdapter(IResource.class);
    if (!(resource instanceof IFile) || !ArchiveFileFilter.isArchivePath(resource.getFullPath(), true))
        return null;

    IJavaProject project = JavaCore.create(resource.getProject());
    if (project != null && project.exists()
            && (project.findPackageFragmentRoot(resource.getFullPath()) == null))
        return (IFile) resource;
    return null;//ww w .j  av  a2  s  .com
}

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

License:Open Source License

private IPackageFragmentRoot findPackageFragmentRoot(IJavaProject jProject, IPath path)
        throws JavaModelException {
    if (jProject == null || path == null || path.segmentCount() <= 0)
        return null;
    IPackageFragmentRoot pkgRoot = jProject.findPackageFragmentRoot(path);
    if (pkgRoot != null)
        return pkgRoot;
    else/* w  w w. jav  a  2  s.  c o m*/
        return findPackageFragmentRoot(jProject, path.removeLastSegments(1));
}

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

License:Open Source License

private Object[] getResources(IFolder folder) {
    try {/*w ww  . ja v  a 2s  .  com*/
        IResource[] members = folder.members();
        IJavaProject javaProject = JavaCore.create(folder.getProject());
        if (javaProject == null || !javaProject.exists())
            return members;
        boolean isFolderOnClasspath = javaProject.isOnClasspath(folder);
        List nonJavaResources = new ArrayList();
        // Can be on classpath but as a member of non-java resource folder
        for (int i = 0; i < members.length; i++) {
            IResource member = members[i];
            // A resource can also be a java element
            // in the case of exclusion and inclusion filters.
            // We therefore exclude Java elements from the list
            // of non-Java resources.
            if (isFolderOnClasspath) {
                if (javaProject.findPackageFragmentRoot(member.getFullPath()) == null) {
                    nonJavaResources.add(member);
                }
            } else if (!javaProject.isOnClasspath(member)) {
                nonJavaResources.add(member);
            }
        }
        return nonJavaResources.toArray();
    } catch (CoreException e) {
        return NO_CHILDREN;
    }
}

From source file:org.eclipse.andmore.wizards.buildingblocks.ElementTreeValidator.java

License:Apache License

@Override
public boolean isSelectedValid(Object element) {
    boolean isValid = false;
    try {/*ww w.j  ava  2  s  . c o m*/
        if (element instanceof IJavaProject) {
            IJavaProject jproject = (IJavaProject) element;
            IPath path = jproject.getProject().getFullPath();
            isValid = (jproject.findPackageFragmentRoot(path) != null);
        } else if (element instanceof IPackageFragmentRoot) {
            IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) element;

            boolean isSrc = (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE);
            boolean isGen = packageFragmentRoot.getElementName().equals(IAndroidConstants.GEN_SRC_FOLDER)
                    && (packageFragmentRoot.getParent() instanceof IJavaProject);

            isValid = isSrc && !isGen;
        } else {
            isValid = true;
        }
    } catch (JavaModelException e) {
        AndmoreLogger.error(ElementTreeValidator.class, e.getLocalizedMessage(), e);
    }
    return isValid;
}