Example usage for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT_ROOT

List of usage examples for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT_ROOT

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT_ROOT.

Prototype

int PACKAGE_FRAGMENT_ROOT

To view the source code for org.eclipse.jdt.core IJavaElement PACKAGE_FRAGMENT_ROOT.

Click Source Link

Document

Constant representing a package fragment root.

Usage

From source file:org.eclipse.jpt.jpa.core.internal.InternalJpaProjectManager.java

License:Open Source License

/**
 * We recurse back here from {@link #handleJavaDeltaChildren(IJavaElementDelta)}.
 *///from  w  w  w.  j  a  v a  2  s.  c o  m
protected boolean handleJavaDelta(IJavaElementDelta delta) {
    switch (delta.getElement().getElementType()) {
    case IJavaElement.JAVA_MODEL:
        return this.handleJavaModelDelta(delta);
    case IJavaElement.JAVA_PROJECT:
        return this.handleJavaProjectDelta(delta);
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        return this.handleJavaPackageFragmentRootDelta(delta);
    case IJavaElement.PACKAGE_FRAGMENT:
        return this.processJavaPackageFragmentDelta(delta);
    case IJavaElement.COMPILATION_UNIT:
        return this.handleJavaCompilationUnitDelta(delta);
    default:
        break; // ignore the elements inside a compilation unit
    }
    return false;
}

From source file:org.eclipse.jpt.jpa.core.internal.refactoring.JpaDeletePackageOrFolderParticipant.java

License:Open Source License

/**
 * This is used when multiple IPackageFraments/IFolders are deleted.
 * RefactoringParticipant#initialize(Object) is called for the first deleted IPackageFragment/IFolder.
 * RefactoringParticipant#getArguments() only applies to the first deleted IPackageFragment/IFolder
 *//*w  w w  .  j a  va  2 s  .  com*/
public void addElement(Object element, RefactoringArguments arguments) {
    if (element instanceof IFolder) {
        IJavaElement javaElement = JavaCore.create((IFolder) element);
        if (javaElement != null) {
            if (javaElement.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT) {
                this.addPackageFragmentRoot((IPackageFragmentRoot) javaElement);
            } else {
                this.addPackageFragment((IPackageFragment) javaElement);
            }
        } else {
            this.addFolder((IFolder) element);
        }
    } else {
        this.addPackageFragment((IPackageFragment) element);
    }
}

From source file:org.eclipse.jpt.jpa.ui.internal.handlers.MakePersistentHandler.java

License:Open Source License

/**
 * Return a map containing lists of types, keyed by project.
 * <p>//  w  w  w.  j a  v a  2  s  .  c o  m
 * The action is contributed for:<ul>
 * <li>{@link IType}
 * <li>{@link ICompilationUnit}
 * <li>{@link IPackageFragment}
 * <li>{@link IPackageFragmentRoot} that is a source folder
 * </ul>
 */
private Map<IProject, Set<IType>> buildSelectedTypes(ISelection currentSelection) {
    if (!(currentSelection instanceof StructuredSelection)) {
        return Collections.emptyMap();
    }
    HashMap<IProject, Set<IType>> types = new HashMap<IProject, Set<IType>>();
    for (Object sel : ((StructuredSelection) currentSelection).toList()) {
        switch (((IJavaElement) sel).getElementType()) {
        case IJavaElement.PACKAGE_FRAGMENT_ROOT:
            this.addSelectedTypes((IPackageFragmentRoot) sel, types);
            break;
        case IJavaElement.PACKAGE_FRAGMENT:
            this.addSelectedTypes((IPackageFragment) sel, types);
            break;
        case IJavaElement.COMPILATION_UNIT:
            this.addSelectedTypes((ICompilationUnit) sel, types);
            break;
        case IJavaElement.TYPE:
            this.addSelectedType((IType) sel, types);
            break;
        default:
            break;
        }
    }
    return types;
}

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;/*from  w  w  w  .j av  a 2 s.com*/

    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;//from w w w.  java2  s.co  m
    switch (element.getElementType()) {
    case IJavaElement.JAVA_MODEL:
        // a workspace sope should be used
        break;
    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.wizard.NewJavaClassWizardPage.java

License:Open Source License

private IPackageFragmentRoot getSelectedPackageFragmentRoot() {
    IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    if (window == null)
        return null;
    ISelection selection = window.getSelectionService().getSelection();
    if (selection == null)
        return null;
    // StructuredSelection stucturedSelection = (StructuredSelection)
    // selection;
    IJavaElement element = getInitialJavaElement(selection);
    if (element != null) {
        if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT)
            return (IPackageFragmentRoot) element;
    }/*from  w  ww  . ja v  a 2  s.  co  m*/
    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;// www .  j a v a  2s .c  o  m
    // 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.jsf.common.internal.types.TypeInfoCache.java

License:Open Source License

/**Removes all cached info that may be affected by the given change.
 * @param delta - the change in the java model
 *//*from ww w . j a  v  a2 s  .  co m*/
protected void updateChangedJavaElement(IJavaElementDelta delta) {
    IJavaElement element = delta.getElement();
    switch (element.getElementType()) {
    case IJavaElement.JAVA_MODEL:
        updateChangedJavaModel(delta, element);
        break;
    case IJavaElement.JAVA_PROJECT:
        updateChangedJavaProject(delta, element);
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        updateChangedPackageFragmentRoot(delta, element);
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        updateChangedPackageFragment(delta, (IPackageFragment) element);
        break;
    case IJavaElement.CLASS_FILE:
    case IJavaElement.COMPILATION_UNIT:
        updateChangedOpenable(delta, element);
        break;
    }
}

From source file:org.eclipse.jst.jsp.core.taglib.ProjectDescription.java

License:Open Source License

void handleElementChanged(IJavaElementDelta delta) {
    if (fBuildPathIsDirty) {
        return;/* w  w  w .  j  a  v a 2  s .com*/
    }

    // Logger.log(Logger.INFO_DEBUG, "IJavaElementDelta: " + delta);
    IJavaElement element = delta.getElement();
    if (element.getElementType() == IJavaElement.JAVA_PROJECT) {
        IJavaElementDelta[] affectedChildren = delta.getAffectedChildren();
        for (int i = 0; i < affectedChildren.length; i++) {
            handleElementChanged(affectedChildren[i]);
        }
    }
    if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT
            && ((IPackageFragmentRoot) element).isArchive()) {
        time0 = System.currentTimeMillis();
        if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT
                && ((IPackageFragmentRoot) element).isExternal()) {
        }
        String libLocation = null;
        int taglibRecordEventKind = -1;
        if ((delta.getFlags() & IJavaElementDelta.F_ADDED_TO_CLASSPATH) > 0
                || (delta.getFlags() & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) > 0
                || (delta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) > 0) {
            taglibRecordEventKind = ITaglibIndexDelta.CHANGED;
            if ((delta.getFlags() & IJavaElementDelta.F_ADDED_TO_CLASSPATH) > 0) {
                taglibRecordEventKind = ITaglibIndexDelta.ADDED;
            } else if ((delta.getFlags() & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) > 0) {
                taglibRecordEventKind = ITaglibIndexDelta.CHANGED;
            } else if ((delta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) > 0) {
                taglibRecordEventKind = ITaglibIndexDelta.REMOVED;
            }
            IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(element.getPath());
            if (file.isAccessible() && file.getLocation() != null)
                libLocation = file.getLocation().toString();
            else
                libLocation = element.getPath().toString();
        }
        if (libLocation != null) {
            boolean fragmentisExported = true;
            try {
                IClasspathEntry rawClasspathEntry = ((IPackageFragmentRoot) element).getRawClasspathEntry();
                /*
                 * null may also be returned for deletions depending on
                 * resource/build path notification order. If it's null,
                 * it's been deleted and whether it's exported won't
                 * really matter
                 */
                if (rawClasspathEntry != null) {
                    fragmentisExported = rawClasspathEntry.isExported();
                }
            } catch (JavaModelException e) {
                // IPackageFragmentRoot not part of the build path
            }
            if ((delta.getFlags() & IJavaElementDelta.F_ADDED_TO_CLASSPATH) > 0) {
                fBuildPathEntryCount++;
            } else if ((delta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) > 0) {
                fBuildPathEntryCount--;
            }
            updateClasspathLibrary(libLocation, taglibRecordEventKind, fragmentisExported);
        }
        if (_debugIndexTime)
            Logger.log(Logger.INFO, "processed build path delta for " + fProject.getName() + "(" //$NON-NLS-1$//$NON-NLS-2$
                    + element.getPath() + ") in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$
    }
}

From source file:org.eclipse.jst.jsp.core.taglib.ProjectDescription.java

License:Open Source License

void queueElementChanged(IJavaElementDelta delta) {
    try {/*w  w w .  ja v a 2 s . c o m*/
        LOCK.acquire();
        IJavaElement element = delta.getElement();
        if (element.getElementType() == IJavaElement.JAVA_PROJECT) {
            IJavaElementDelta[] affectedChildren = delta.getAffectedChildren();
            for (int i = 0; i < affectedChildren.length; i++) {
                queueElementChanged(affectedChildren[i]);
            }
        }
        if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT
                && ((IPackageFragmentRoot) element).isArchive()) {
            IPath path = element.getPath();
            boolean fragmentisExported = true;
            try {
                IClasspathEntry rawClasspathEntry = ((IPackageFragmentRoot) element).getRawClasspathEntry();
                /*
                 * null may also be returned for deletions depending on
                 * resource/build path notification order. If it's null,
                 * it's been deleted and whether it's exported won't
                 * really matter
                 */
                if (rawClasspathEntry != null) {
                    fragmentisExported = rawClasspathEntry.isExported();
                }
            } catch (JavaModelException e) {
                // IPackageFragmentRoot not part of the build path
            }
            String key = path.toString();
            if ((delta.getFlags() & IJavaElementDelta.F_ADDED_TO_CLASSPATH) > 0) {
                fPackageFragmentRootsAdded.put(key,
                        new PackageFragmentRootDelta(path, ITaglibIndexDelta.ADDED, fragmentisExported));
                fPackageFragmentRootsChanged.remove(key);
                fPackageFragmentRootsRemoved.remove(key);
                fBuildPathEntryCount++;
            } else if ((delta.getFlags() & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) > 0) {
                fPackageFragmentRootsChanged.put(key,
                        new PackageFragmentRootDelta(path, ITaglibIndexDelta.CHANGED, fragmentisExported));
            } else if (((delta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) > 0)
                    && ((delta.getFlags() & IJavaElementDelta.F_REORDER) == 0)) {
                fPackageFragmentRootsAdded.remove(key);
                fPackageFragmentRootsChanged.remove(key);
                fPackageFragmentRootsRemoved.put(key,
                        new PackageFragmentRootDelta(path, ITaglibIndexDelta.REMOVED, fragmentisExported));
                fBuildPathEntryCount--;
            }
        }
    } finally {
        LOCK.release();
    }

    fBuildPathJob.cancel();
    fBuildPathJob.schedule(2000);
}