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

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

Introduction

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

Prototype

int getKind() throws JavaModelException;

Source Link

Document

Returns this package fragment root's kind encoded as an integer.

Usage

From source file:org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPASolver.java

License:Open Source License

private void unregisterDeltedEntity(IResourceChangeEvent event) {
    if ((event.getType() == IResourceChangeEvent.PRE_CLOSE)
            || (event.getType() == IResourceChangeEvent.PRE_DELETE))
        return;/*w ww .  ja va 2s . c o  m*/

    IResourceDelta changedDelta = event.getDelta();
    IResourceDelta[] deltas = changedDelta.getAffectedChildren();
    for (IResourceDelta delta : deltas) {
        final IResource resource = delta.getResource();
        if (resource != null && resource.exists()) {
            if (resource instanceof IProject) {
                IProject project = (IProject) resource;
                for (IResourceDelta deltaResource : delta.getAffectedChildren()) {
                    List<IResourceDelta> resources = new ArrayList<IResourceDelta>();
                    resources = findDeletedResource(deltaResource, resources);
                    for (IResourceDelta resourceDelta : resources) {
                        if (resourceDelta.getResource() instanceof File) {
                            IFile file = this.eclipseFacade.getWorkspace().getRoot()
                                    .getFile(((File) resourceDelta.getResource()).getFullPath());
                            if (!file.exists() && file.getFileExtension().equals("java")) { //$NON-NLS-1$
                                try {
                                    JpaProject jpaProject = JpaArtifactFactory.instance()
                                            .getJpaProject((IProject) resource);
                                    if (jpaProject != null) {
                                        IJavaProject javaProject = JavaCore.create(project);
                                        IPackageFragmentRoot[] fragmentRoots = javaProject
                                                .getAllPackageFragmentRoots();
                                        for (IPackageFragmentRoot fragmentRoot : fragmentRoots) {
                                            if ((fragmentRoot instanceof PackageFragmentRoot)
                                                    && fragmentRoot.getKind() == PackageFragmentRoot.K_SOURCE) {
                                                PackageFragmentRoot packageFragmentRoot = (PackageFragmentRoot) fragmentRoot;
                                                String sourcefolder = packageFragmentRoot.getResource()
                                                        .getName();
                                                String[] fq = file.getFullPath().toString().split(sourcefolder);
                                                String fqName = fq[1].replace("/", "."); //$NON-NLS-1$ //$NON-NLS-2$
                                                fqName = fqName.replaceFirst(".", "").replace(".java", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
                                                //JPAEditorUtil.createUnregisterEntityFromXMLJob(jpaProject, fqName);
                                            }
                                        }
                                    }
                                } catch (CoreException e) {
                                    JPADiagramEditorPlugin.logError(e);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

From source file:org.eclipse.jst.j2ee.internal.common.operations.JavaModelUtil.java

License:Open Source License

private static void addAllCus(HashSet/*<ICompilationUnit>*/ collector, IJavaElement javaElement)
        throws JavaModelException {
    switch (javaElement.getElementType()) {
    case IJavaElement.JAVA_PROJECT:
        IJavaProject javaProject = (IJavaProject) javaElement;
        IPackageFragmentRoot[] packageFragmentRoots = javaProject.getPackageFragmentRoots();
        for (int i = 0; i < packageFragmentRoots.length; i++)
            addAllCus(collector, packageFragmentRoots[i]);
        return;/*ww w.j av  a2s .c  o m*/

    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) javaElement;
        if (packageFragmentRoot.getKind() != IPackageFragmentRoot.K_SOURCE)
            return;
        IJavaElement[] packageFragments = packageFragmentRoot.getChildren();
        for (int j = 0; j < packageFragments.length; j++)
            addAllCus(collector, packageFragments[j]);
        return;

    case IJavaElement.PACKAGE_FRAGMENT:
        IPackageFragment packageFragment = (IPackageFragment) javaElement;
        collector.addAll(Arrays.asList(packageFragment.getCompilationUnits()));
        return;

    case IJavaElement.COMPILATION_UNIT:
        collector.add(javaElement);
        return;

    default:
        IJavaElement cu = javaElement.getAncestor(IJavaElement.COMPILATION_UNIT);
        if (cu != null)
            collector.add(cu);
    }
}

From source file:org.eclipse.jst.j2ee.internal.dialogs.TypeJavaSearchScope.java

License:Open Source License

public void add(IJavaElement element) throws JavaModelException {
    IPackageFragmentRoot root = null;
    switch (element.getElementType()) {
    case IJavaElement.JAVA_MODEL:
        // a workspace sope should be used
        break;//from   w w w. j a va 2 s .  c o  m
    case IJavaElement.JAVA_PROJECT:
        this.add((IJavaProject) element, true, new HashSet(2));
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        root = (IPackageFragmentRoot) element;
        this.add(root.getPath(), true);
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        root = (IPackageFragmentRoot) element.getParent();
        if (root.isArchive()) {
            this.add(root.getPath().append(new Path(element.getElementName().replace('.', '/'))), false);
        } else {
            IResource resource = element.getUnderlyingResource();
            if (resource != null && resource.isAccessible()) {
                this.add(resource.getFullPath(), false);
            }
        }
        break;
    default:
        // remember sub-cu (or sub-class file) java elements
        if (element instanceof IMember) {
            if (this.elements == null) {
                this.elements = new ArrayList();
            }
            this.elements.add(element);
        }
        this.add(this.fullPath(element), true);

        // find package fragment root including this java element
        IJavaElement parent = element.getParent();
        while (parent != null && !(parent instanceof IPackageFragmentRoot)) {
            parent = parent.getParent();
        }
        if (parent instanceof IPackageFragmentRoot) {
            root = (IPackageFragmentRoot) parent;
        }
    }

    if (root != null) {
        if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
            this.addEnclosingProjectOrJar(root.getPath());
        } else {
            this.addEnclosingProjectOrJar(root.getJavaProject().getProject().getFullPath());
        }
    }
}

From source file:org.eclipse.jst.j2ee.internal.project.WTPJETEmitter.java

License:Open Source License

/**
 * @param progressMonitor/*from   w ww.  j av a  2s.  c  o m*/
 * @param project
 * @param javaProject
 * @return
 * @throws JavaModelException
 */
protected IPackageFragmentRoot openJavaProjectIfNecessary(IProgressMonitor progressMonitor,
        final IProject project, IJavaProject javaProject) throws JavaModelException {
    progressMonitor.subTask(CodeGenPlugin.getPlugin().getString("_UI_JETOpeningJavaProject_message", //$NON-NLS-1$
            new Object[] { project.getName() }));
    javaProject.open(new SubProgressMonitor(progressMonitor, 1));

    IPackageFragmentRoot[] packageFragmentRoots = javaProject.getPackageFragmentRoots();
    IPackageFragmentRoot sourcePackageFragmentRoot = null;
    for (int j = 0; j < packageFragmentRoots.length; ++j) {
        IPackageFragmentRoot packageFragmentRoot = packageFragmentRoots[j];
        if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
            sourcePackageFragmentRoot = packageFragmentRoot;
            break;
        }
    }
    return sourcePackageFragmentRoot;
}

From source file:org.eclipse.jst.j2ee.internal.web.operations.WebPropertiesUtil.java

License:Open Source License

public static String validateWebContentName(String webContentName, IProject project, String javaSourceName) {

    String msg = validateFolderName(webContentName);
    if (msg != null)
        return msg;

    if (javaSourceName != null && webContentName.equals(javaSourceName))
        return ProjectSupportResourceHandler.Folder_names_cannot_be_equal_4;

    // If given a java project, check to make sure current package fragment
    // root folders do not overlap with new web content name
    if (project != null) {
        IJavaProject javaProject = JemProjectUtilities.getJavaProject(project);
        if (javaProject != null) {
            try {
                IPackageFragmentRoot roots[] = javaProject.getPackageFragmentRoots();
                for (int i = 0; i < roots.length; i++) {
                    IPackageFragmentRoot root = roots[i];
                    if (!root.isArchive()) {
                        IResource resource = root.getCorrespondingResource();
                        if (resource.getType() == IResource.FOLDER) {
                            IPath path = resource.getFullPath();
                            String rootFolder = path.segment(1);
                            if (webContentName.equals(rootFolder)) {
                                if (root.getKind() == IPackageFragmentRoot.K_SOURCE)
                                    return ProjectSupportResourceHandler.Folder_name_cannot_be_the_same_as_Java_source_folder_5;

                                return ProjectSupportResourceHandler.Folder_name_cannot_be_the_same_as_Java_class_folder_6;
                            }//from w ww.j  a v a  2  s . co m
                        }
                    }
                }
            } catch (JavaModelException e) {
                return null;
            }
        }
    }

    return null;
}

From source file:org.eclipse.jst.j2ee.refactor.listeners.J2EEElementChangedListener.java

License:Open Source License

private void getJavaSrcMappings(final IJavaElementDelta[] children, final boolean cpChanged,
        final IJavaProject jproject, final List pathsToAdd, final List pathsToRemove, final List changedPaths)
        throws CoreException {

    IVirtualComponent c = ComponentCore.createComponent(jproject.getProject());
    if (c == null)
        return;/* w  w w.  j a va2  s . c  om*/
    // get the default destination folder
    final IVirtualFolder defaultDestFolder = getDestinationFolder(c);

    for (int i = 0; i < children.length; i++) {
        final IJavaElementDelta delta = children[i];
        final IJavaElement element = delta.getElement();
        if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT) {
            final IPackageFragmentRoot root = (IPackageFragmentRoot) element;
            int cpeKind = IPackageFragmentRoot.K_SOURCE;
            boolean abortAdd = false;
            try {
                cpeKind = root.getKind();
            } catch (JavaModelException jme) {
                // this is thrown if the folder corresponding to the CPE has been deleted
                // since it could represent another error, we need to abort adding. 
                abortAdd = true;
            }
            // only update if we know it is a src folder
            if (cpeKind == IPackageFragmentRoot.K_SOURCE) {
                final int kind = delta.getKind();
                if (!cpChanged) {
                    // if the classpath is not changed, save modifications to the Java src path
                    if (kind == IJavaElementDelta.CHANGED || kind == IJavaElementDelta.REMOVED) {
                        changedPaths.add(root.getPath().removeFirstSegments(1));
                    }
                } else {

                    // kind and flags for CP additions are somewhat sporadic; either:
                    // -kind is ADDED and flags are 0
                    //   or
                    // -kind is CHANGED and flags are F_ADDED_TO_CLASSPATH
                    final int flags = delta.getFlags();

                    if (kind == IJavaElementDelta.ADDED || (flags
                            & IJavaElementDelta.F_ADDED_TO_CLASSPATH) == IJavaElementDelta.F_ADDED_TO_CLASSPATH) {
                        if (!abortAdd) {
                            final IPath pathToAdd = root.getPath().removeFirstSegments(1);
                            pathsToAdd.add(new Object[] { pathToAdd, defaultDestFolder });
                            // if the added src path was moved from another location, remove any mapping for that
                            // location
                            if ((flags & IJavaElementDelta.F_MOVED_FROM) == IJavaElementDelta.F_MOVED_FROM) {
                                final IJavaElement movedFromElement = delta.getMovedFromElement();
                                final IPath pathToRemove = movedFromElement.getPath().removeFirstSegments(1);
                                pathsToRemove.add(new Object[] { pathToRemove, defaultDestFolder });
                            }
                        }
                        // getting a kind = REMOVED and flags = 0 for removal of the folder (w/o removing the CPE), probably
                        // should not be generated
                    } else if (kind == IJavaElementDelta.REMOVED || (flags
                            & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) == IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) {
                        IPath path = root.getPath().removeFirstSegments(1);
                        pathsToRemove.add(new Object[] { path, defaultDestFolder });
                    }
                }
            }
        }
    }
}

From source file:org.eclipse.jst.jee.model.internal.common.AbstractAnnotationModelProvider.java

License:Open Source License

protected void visitJavaFiles(final Collection<ICompilationUnit> javaFiles, final IPackageFragmentRoot root)
        throws CoreException {
    if (root.getKind() != IPackageFragmentRoot.K_SOURCE)
        return;/*w  w w . java  2s.c  o m*/
    root.getCorrespondingResource().accept(new IResourceProxyVisitor() {
        public boolean visit(IResourceProxy proxy) throws CoreException {
            if (proxy.getType() == IResource.FILE) {
                if (proxy.getName().endsWith("." + JAVA_EXTENSION)) { //$NON-NLS-1$
                    IFile file = (IFile) proxy.requestResource();
                    if (!root.getJavaProject().isOnClasspath(file))
                        return false;
                    if (!file.isSynchronized(IResource.DEPTH_ONE))
                        return false;
                    javaFiles.add(JavaCore.createCompilationUnitFrom(file));
                }
                return false;
            }
            return true;
        }
    }, IContainer.NONE);

}

From source file:org.eclipse.jst.servlet.ui.internal.navigator.CompressedJavaProject.java

License:Open Source License

public List getNonExternalSourceFolders() {
    List nonExternalSourceFolders = null;
    IPackageFragmentRoot[] sourceFolders;
    try {//from  w  ww. j ava 2  s  .  c  om
        IJavaProject jProject = JavaCore.create(project);
        sourceFolders = jProject.getPackageFragmentRoots();
        nonExternalSourceFolders = new ArrayList(Arrays.asList(sourceFolders));
        for (Iterator iter = nonExternalSourceFolders.iterator(); iter.hasNext();) {
            IPackageFragmentRoot root = (IPackageFragmentRoot) iter.next();
            if (root.isExternal() || root.isArchive() || root.getKind() == IPackageFragmentRoot.K_BINARY)
                iter.remove();
        }
    } catch (JavaModelException e) {
        ServletUIPlugin.log(e);
    }
    return nonExternalSourceFolders != null ? nonExternalSourceFolders : Collections.EMPTY_LIST;
}

From source file:org.eclipse.libra.facet.OSGiBundleFacetInstallDelegate.java

License:Open Source License

private IPackageExportDescription[] getPackageExports(IProject project) throws CoreException {
    IBundleProjectService bundleProjectService = LibraFacetPlugin.getDefault().getBundleProjectService();
    List<IPackageExportDescription> list = new ArrayList<IPackageExportDescription>();

    if (isJavaProject(project)) {
        IJavaProject javaProject = JavaCore.create(project);
        IPackageFragmentRoot[] fragmentRoots = javaProject.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot fragmentRoot : fragmentRoots) {
            if (fragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE
                    && fragmentRoot.getParent().equals(javaProject)) {
                IJavaElement[] elements = fragmentRoot.getChildren();
                for (IJavaElement element : elements) {
                    IPackageFragment fragment = (IPackageFragment) element;
                    if (fragment.containsJavaResources()) {
                        list.add(bundleProjectService.newPackageExport(fragment.getElementName(), null, true,
                                null));//from   w w w  .ja va 2 s.c o m
                    }
                }
            }
        }
    }

    return list.toArray(new IPackageExportDescription[list.size()]);
}

From source file:org.eclipse.libra.facet.OSGiBundleFacetInstallDelegate.java

License:Open Source License

private IPath[] getJavaSourceFolderPaths(IJavaProject javaProject) throws JavaModelException {
    List<IPath> paths = new ArrayList<IPath>();

    IPackageFragmentRoot[] fragmentRoots = javaProject.getAllPackageFragmentRoots();
    for (IPackageFragmentRoot fragmentRoot : fragmentRoots) {
        if (fragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE
                && fragmentRoot.getParent().equals(javaProject)) {
            paths.add(fragmentRoot.getPath());
        }/*www  .j  ava2 s . c om*/
    }

    return paths.toArray(new IPath[paths.size()]);
}