Example usage for org.eclipse.jdt.core IJavaElementDelta REMOVED

List of usage examples for org.eclipse.jdt.core IJavaElementDelta REMOVED

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaElementDelta REMOVED.

Prototype

int REMOVED

To view the source code for org.eclipse.jdt.core IJavaElementDelta REMOVED.

Click Source Link

Document

Status constant indicating that the element has been removed.

Usage

From source file:com.blackducksoftware.integration.eclipseplugin.internal.listeners.ProjectDependenciesChangedListener.java

License:Apache License

private void visit(final IJavaElementDelta delta) {
    final IJavaElement el = delta.getElement();
    switch (el.getElementType()) {
    case IJavaElement.JAVA_MODEL: {
        visitChildren(delta);//w ww  .ja  v a2s. c  om
        break;
    }
    case IJavaElement.JAVA_PROJECT: {
        if (isClasspathChanged(delta.getFlags())) {
            visitChildren(delta);
        }
        break;
    }
    case IJavaElement.PACKAGE_FRAGMENT_ROOT: {
        if ((delta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) != 0
                || (delta.getKind() & IJavaElementDelta.REMOVED) != 0) {
            try {
                removeDependency(el);
            } catch (final CoreException | MalformedURLException e) {
                e.printStackTrace();
            }
        }
        if ((delta.getFlags() & IJavaElementDelta.F_ADDED_TO_CLASSPATH) != 0
                || (delta.getKind() & IJavaElementDelta.ADDED) != 0) {
            try {
                addDependency(el);
            } catch (final CoreException | MalformedURLException e) {
                e.printStackTrace();
            }
        }
        break;
    }
    default: {
        break;
    }
    }

}

From source file:com.cisco.yangide.core.indexing.DeltaProcessor.java

License:Open Source License

private boolean processJavaDeltas(IJavaElementDelta[] affectedChildren) {

    for (IJavaElementDelta d : affectedChildren) {
        IJavaElement element = d.getElement();
        if (element instanceof IPackageFragmentRoot) {
            IPath path = ((IPackageFragmentRoot) element).getPath();

            if (path != null && path.toFile().exists() && path.lastSegment().toLowerCase().endsWith(".jar")) {

                switch (d.getKind()) {
                case IJavaElementDelta.ADDED:
                case IJavaElementDelta.CHANGED:
                    this.manager.indexManager.addJarFile(element.getJavaProject().getProject(), path);
                    break;
                case IJavaElementDelta.REMOVED:
                    this.manager.indexManager.indexAll(element.getJavaProject().getProject());
                    return false;
                }// w  w  w  .j ava 2 s . com
            }
        }
        if (!processJavaDeltas(d.getAffectedChildren())) {
            return false;
        }
    }
    return true;
}

From source file:com.codenvy.ide.ext.java.server.internal.core.JavaElementDeltaBuilder.java

License:Open Source License

/**
 * Trims deletion deltas to only report the highest level of deletion
 *///  w  w w .  ja v  a2s .  c  om
private void trimDelta(JavaElementDelta elementDelta) {
    if (elementDelta.getKind() == IJavaElementDelta.REMOVED) {
        IJavaElementDelta[] children = elementDelta.getAffectedChildren();
        for (int i = 0, length = children.length; i < length; i++) {
            elementDelta.removeAffectedChild((JavaElementDelta) children[i]);
        }
    } else {
        IJavaElementDelta[] children = elementDelta.getAffectedChildren();
        for (int i = 0, length = children.length; i < length; i++) {
            trimDelta((JavaElementDelta) children[i]);
        }
    }
}

From source file:com.codenvy.ide.ext.java.server.internal.core.ModelUpdater.java

License:Open Source License

/**
 * Converts an <code>IResourceDelta</code> and its children into
 * the corresponding <code>IJavaElementDelta</code>s.
 * Return whether the delta corresponds to a resource on the classpath.
 * If it is not a resource on the classpath, it will be added as a non-java
 * resource by the sender of this method.
 *//*from w ww.  j a  v  a2 s .  c o m*/
protected void traverseDelta(IJavaElementDelta delta, IPackageFragmentRoot root, IJavaProject project) {

    boolean processChildren = true;

    Openable element = (Openable) delta.getElement();
    switch (element.getElementType()) {
    case IJavaElement.JAVA_PROJECT:
        project = (IJavaProject) element;
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        root = (IPackageFragmentRoot) element;
        break;
    case IJavaElement.COMPILATION_UNIT:
        // filter out working copies that are not primary (we don't want to add/remove them to/from the package fragment
        CompilationUnit cu = (CompilationUnit) element;
        if (cu.isWorkingCopy() && !cu.isPrimary()) {
            return;
        }
        // $FALL-THROUGH$
    case IJavaElement.CLASS_FILE:
        processChildren = false;
        break;
    }

    switch (delta.getKind()) {
    case IJavaElementDelta.ADDED:
        elementAdded(element);
        break;
    case IJavaElementDelta.REMOVED:
        elementRemoved(element);
        break;
    case IJavaElementDelta.CHANGED:
        if ((delta.getFlags() & IJavaElementDelta.F_CONTENT) != 0) {
            elementChanged(element);
        }
        break;
    }
    if (processChildren) {
        IJavaElementDelta[] children = delta.getAffectedChildren();
        for (int i = 0; i < children.length; i++) {
            IJavaElementDelta childDelta = children[i];
            traverseDelta(childDelta, root, project);
        }
    }
}

From source file:com.codenvy.ide.ext.java.server.internal.core.search.JavaWorkspaceScope.java

License:Open Source License

public void processDelta(IJavaElementDelta delta, int eventType) {
    if (this.enclosingPaths == null)
        return;//from  w  w  w  .  java  2 s  .  co m
    IJavaElement element = delta.getElement();
    switch (element.getElementType()) {
    case IJavaElement.JAVA_MODEL:
        IJavaElementDelta[] children = delta.getAffectedChildren();
        for (int i = 0, length = children.length; i < length; i++) {
            IJavaElementDelta child = children[i];
            processDelta(child, eventType);
        }
        break;
    case IJavaElement.JAVA_PROJECT:
        int kind = delta.getKind();
        switch (kind) {
        case IJavaElementDelta.ADDED:
        case IJavaElementDelta.REMOVED:
            this.enclosingPaths = null;
            break;
        case IJavaElementDelta.CHANGED:
            int flags = delta.getFlags();
            if ((flags & IJavaElementDelta.F_CLOSED) != 0 || (flags & IJavaElementDelta.F_OPENED) != 0) {
                this.enclosingPaths = null;
            } else {
                children = delta.getAffectedChildren();
                for (int i = 0, length = children.length; i < length; i++) {
                    IJavaElementDelta child = children[i];
                    processDelta(child, eventType);
                }
            }
            break;
        }
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        kind = delta.getKind();
        switch (kind) {
        case IJavaElementDelta.ADDED:
        case IJavaElementDelta.REMOVED:
            this.enclosingPaths = null;
            break;
        case IJavaElementDelta.CHANGED:
            int flags = delta.getFlags();
            if ((flags & IJavaElementDelta.F_ADDED_TO_CLASSPATH) > 0
                    || (flags & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) > 0) {
                this.enclosingPaths = null;
            }
            break;
        }
        break;
    }
}

From source file:com.codenvy.ide.ext.java.server.internal.core.SimpleDelta.java

License:Open Source License

public void removed() {
    this.kind = IJavaElementDelta.REMOVED;
    this.changeFlags = 0;
}

From source file:com.codenvy.ide.ext.java.server.internal.core.SimpleDelta.java

License:Open Source License

protected void toDebugString(StringBuffer buffer) {
    buffer.append("["); //$NON-NLS-1$
    switch (getKind()) {
    case IJavaElementDelta.ADDED:
        buffer.append('+');
        break;//from ww w  . ja  va2  s.c o  m
    case IJavaElementDelta.REMOVED:
        buffer.append('-');
        break;
    case IJavaElementDelta.CHANGED:
        buffer.append('*');
        break;
    default:
        buffer.append('?');
        break;
    }
    buffer.append("]: {"); //$NON-NLS-1$
    toDebugString(buffer, getFlags());
    buffer.append("}"); //$NON-NLS-1$
}

From source file:com.ifedorenko.m2e.sourcelookup.internal.JavaProjectSources.java

License:Open Source License

private void processDelta(final IJavaElementDelta delta, Set<IJavaProject> remove, Set<IJavaProject> add)
        throws CoreException {
    final IJavaElement element = delta.getElement();
    final int kind = delta.getKind();
    switch (element.getElementType()) {
    case IJavaElement.JAVA_MODEL:
        processChangedChildren(delta, remove, add);
        break;/*from ww  w . j av  a  2  s . c  o m*/
    case IJavaElement.JAVA_PROJECT:
        switch (kind) {
        case IJavaElementDelta.REMOVED:
            remove.add((IJavaProject) element);
            break;
        case IJavaElementDelta.ADDED:
            add.add((IJavaProject) element);
            break;
        case IJavaElementDelta.CHANGED:
            switch (delta.getFlags()) {
            case IJavaElementDelta.F_CLOSED:
                remove.add((IJavaProject) element);
                break;
            case IJavaElementDelta.F_OPENED:
                add.add((IJavaProject) element);
                break;
            }
            break;
        }
        processChangedChildren(delta, remove, add);
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        remove.add(element.getJavaProject());
        add.add(element.getJavaProject());
        break;
    }
}

From source file:com.redhat.ceylon.eclipse.code.explorer.PackageExplorerContentProvider.java

License:Open Source License

/**
 * Processes a delta recursively. When more than two children are affected the
 * tree is fully refreshed starting at this node.
 *
 * @param delta the delta to process/*from  w ww  . j a  v  a  2  s  .  com*/
 * @param runnables the resulting view changes as runnables (type {@link Runnable})
 * @return true is returned if the conclusion is to refresh a parent of an element. In that case no siblings need
 * to be processed
 * @throws JavaModelException thrown when the access to an element failed
 */
private boolean processDelta(IJavaElementDelta delta, Collection<Runnable> runnables)
        throws JavaModelException {

    int kind = delta.getKind();
    int flags = delta.getFlags();
    IJavaElement element = delta.getElement();
    int elementType = element.getElementType();

    if (elementType != IJavaElement.JAVA_MODEL && elementType != IJavaElement.JAVA_PROJECT) {
        IJavaProject proj = element.getJavaProject();
        if (proj == null || !proj.getProject().isOpen()) // TODO: Not needed if parent already did the 'open' check!
            return false;
    }

    if (elementType == IJavaElement.PACKAGE_FRAGMENT) {
        if ((flags & (IJavaElementDelta.F_CONTENT
                | IJavaElementDelta.F_CHILDREN)) == IJavaElementDelta.F_CONTENT) {
            // TODO: This should never be true for folders (F_CONTENT is only for files)
            if (!fIsFlatLayout) {
                Object parent = getHierarchicalPackageParent((IPackageFragment) element);
                if (!(parent instanceof IPackageFragmentRoot)) {
                    postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables);
                    return true;
                }
            }
            // content change, without children info (for example resource added/removed to class folder package)
            postRefresh(internalGetParent(element), PARENT, element, runnables);
            return true;
        }

        if (!fIsFlatLayout) {
            if (kind == IJavaElementDelta.REMOVED) {
                final Object parent = getHierarchicalPackageParent((IPackageFragment) element);
                if (parent instanceof IPackageFragmentRoot) {
                    postRemove(element, runnables);
                    return false;
                } else {
                    postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables);
                    return true;
                }
            } else if (kind == IJavaElementDelta.ADDED) {
                final Object parent = getHierarchicalPackageParent((IPackageFragment) element);
                if (parent instanceof IPackageFragmentRoot) {
                    if (fFoldPackages) {
                        postRefresh(parent, PARENT, element, runnables);
                        return true;
                    } else {
                        postAdd(parent, element, runnables);
                        return false;
                    }
                } else {
                    postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables);
                    return true;
                }
            }
            handleAffectedChildren(delta, element, runnables);
            return false;
        }
    }

    if (elementType == IJavaElement.COMPILATION_UNIT) {
        ICompilationUnit cu = (ICompilationUnit) element;
        if (!JavaModelUtil.isPrimary(cu)) {
            return false;
        }

        if (!getProvideMembers() && cu.isWorkingCopy() && kind == IJavaElementDelta.CHANGED) {
            return false;
        }

        if (kind == IJavaElementDelta.CHANGED && !isStructuralCUChange(flags)) {
            return false; // test moved ahead
        }

        if (!isOnClassPath(cu)) { // TODO: isOnClassPath expensive! Should be put after all cheap tests
            return false;
        }

    }

    if (elementType == IJavaElement.JAVA_PROJECT) {
        // handle open and closing of a project
        if ((flags & (IJavaElementDelta.F_CLOSED | IJavaElementDelta.F_OPENED)) != 0) {
            postRefresh(element, ORIGINAL, element, runnables);
            return false;
        }
        // if the class path has changed we refresh the entire project
        if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) {
            postRefresh(element, ORIGINAL, element, runnables);
            return false;
        }
        // if added it could be that the corresponding IProject is already shown. Remove it first.
        // bug 184296
        if (kind == IJavaElementDelta.ADDED) {
            postRemove(element.getResource(), runnables);
            postAdd(element.getParent(), element, runnables);
            return false;
        }
    }

    if (kind == IJavaElementDelta.REMOVED) {
        Object parent = internalGetParent(element);
        if (element instanceof IPackageFragment) {
            // refresh package fragment root to allow filtering empty (parent) packages: bug 72923
            if (fViewer.testFindItem(parent) != null)
                postRefresh(parent, PARENT, element, runnables);
            return true;

        } else if (element instanceof IPackageFragmentRoot) {
            // libs and class folders can show up twice (in library container and as resource at original location)
            IResource resource = element.getResource();
            if (resource != null && !resource.exists())
                postRemove(resource, runnables);
        }

        postRemove(element, runnables);
        if (parent instanceof IPackageFragment)
            postUpdateIcon((IPackageFragment) parent, runnables);
        // we are filtering out empty subpackages, so we
        // a package becomes empty we remove it from the viewer.
        if (isPackageFragmentEmpty(element.getParent())) {
            if (fViewer.testFindItem(parent) != null)
                postRefresh(internalGetParent(parent), GRANT_PARENT, element, runnables);
            return true;
        }
        return false;
    }

    if (kind == IJavaElementDelta.ADDED) {
        Object parent = internalGetParent(element);
        // we are filtering out empty subpackages, so we
        // have to handle additions to them specially.
        if (parent instanceof IPackageFragment) {
            Object grandparent = internalGetParent(parent);
            // 1GE8SI6: ITPJUI:WIN98 - Rename is not shown in Packages View
            // avoid posting a refresh to an invisible parent
            if (parent.equals(fInput)) {
                postRefresh(parent, PARENT, element, runnables);
            } else {
                // refresh from grandparent if parent isn't visible yet
                if (fViewer.testFindItem(parent) == null)
                    postRefresh(grandparent, GRANT_PARENT, element, runnables);
                else {
                    postRefresh(parent, PARENT, element, runnables);
                }
            }
            return true;
        } else {
            if (element instanceof IPackageFragmentRoot
                    && ((IPackageFragmentRoot) element).getKind() != IPackageFragmentRoot.K_SOURCE) {
                // libs and class folders can show up twice (in library container or under project, and as resource at original location)
                IResource resource = element.getResource();
                if (resource != null) {
                    Object resourceParent = super.internalGetParent(resource);
                    if (resourceParent != null) {
                        IJavaProject proj = element.getJavaProject();
                        if (fShowLibrariesNode || !resourceParent.equals(proj)) {
                            postAdd(resourceParent, resource, runnables);
                        }
                    }
                }
            }
            postAdd(parent, element, runnables);
        }
    }

    if (elementType == IJavaElement.COMPILATION_UNIT || elementType == IJavaElement.CLASS_FILE) {
        if (kind == IJavaElementDelta.CHANGED) {
            // isStructuralCUChange already performed above
            postRefresh(element, ORIGINAL, element, runnables);
        }
        return false;
    }

    if (elementType == IJavaElement.PACKAGE_FRAGMENT_ROOT) {
        // the contents of an external JAR has changed
        if ((flags & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) != 0) {
            postRefresh(element, ORIGINAL, element, runnables);
            return false;
        }
        if ((flags & (IJavaElementDelta.F_CONTENT
                | IJavaElementDelta.F_CHILDREN)) == IJavaElementDelta.F_CONTENT) {
            // TODO: This should never be true for folders (F_CONTENT is only for files)
            // content change, without children info (for example resource added/removed to class folder package)
            postRefresh(internalGetParent(element), PARENT, element, runnables);
            return true;
        }

        // the source attachment of a JAR has changed
        if ((flags & (IJavaElementDelta.F_SOURCEATTACHED | IJavaElementDelta.F_SOURCEDETACHED)) != 0)
            postUpdateIcon(element, runnables);

        if (isClassPathChange(delta)) {
            // throw the towel and do a full refresh of the affected java project.
            postRefresh(element.getJavaProject(), PROJECT, element, runnables);
            return true;
        }
    }

    handleAffectedChildren(delta, element, runnables);
    return false;
}

From source file:com.redhat.ceylon.eclipse.code.explorer.PackageExplorerContentProvider.java

License:Open Source License

void handleAffectedChildren(IJavaElementDelta delta, IJavaElement element,
        Collection<Runnable> runnables) throws JavaModelException {
    int count = 0;

    IResourceDelta[] resourceDeltas = delta.getResourceDeltas();
    if (resourceDeltas != null) {
        for (int i = 0; i < resourceDeltas.length; i++) {
            int kind = resourceDeltas[i].getKind();
            if (kind == IResourceDelta.ADDED || kind == IResourceDelta.REMOVED) {
                count++;//from w w w. ja v a 2  s. c  o m
            }
        }
    }
    IJavaElementDelta[] affectedChildren = delta.getAffectedChildren();
    for (int i = 0; i < affectedChildren.length; i++) {
        int kind = affectedChildren[i].getKind();
        if (kind == IJavaElementDelta.ADDED || kind == IJavaElementDelta.REMOVED) {
            count++;
        }
    }

    if (count > 1) {
        // more than one child changed, refresh from here downwards
        if (element instanceof IPackageFragment) {
            // a package fragment might become non empty refresh from the parent
            IJavaElement parent = (IJavaElement) internalGetParent(element);
            // 1GE8SI6: ITPJUI:WIN98 - Rename is not shown in Packages View
            // avoid posting a refresh to an invisible parent
            if (element.equals(fInput)) {
                postRefresh(element, ORIGINAL, element, runnables);
            } else {
                postRefresh(parent, PARENT, element, runnables);
            }
        } else if (element instanceof IPackageFragmentRoot) {
            Object toRefresh = internalGetParent(element);
            postRefresh(toRefresh, ORIGINAL, toRefresh, runnables);
        } else {
            postRefresh(element, ORIGINAL, element, runnables);
        }
        return;
    }
    if (resourceDeltas != null) {
        for (int i = 0; i < resourceDeltas.length; i++) {
            if (processResourceDelta(resourceDeltas[i], element, runnables)) {
                return; // early return, element got refreshed
            }
        }
    }
    for (int i = 0; i < affectedChildren.length; i++) {
        if (processDelta(affectedChildren[i], runnables)) {
            return; // early return, element got refreshed
        }
    }
}