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

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

Introduction

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

Prototype

public IJavaElement getElement();

Source Link

Document

Returns the element that this delta describes a change to.

Usage

From source file:at.bestsolution.efxclipse.tooling.model.internal.ModelUpdater.java

License:Open Source License

@Override
public void reconcile(ReconcileContext context) {
    IJavaElementDelta delta = context.getDelta();
    if (delta != null) {
        if (delta.getElement() instanceof ICompilationUnit) {

            ICompilationUnit u = (ICompilationUnit) delta.getElement();
            try {
                for (IType t : u.getTypes()) {
                    FXPlugin.getClassmodel().clearCache(t);
                }//from   www.  j  a va  2 s.  co  m
            } catch (JavaModelException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    super.reconcile(context);
}

From source file:com.amazonaws.eclipse.lambda.project.listener.JavaElementDeltaAcceptor.java

License:Open Source License

public static void accept(IJavaElementDelta delta, Visitor visitor) {
    if (visitor.visit(delta.getElement())) {
        accept(delta.getAffectedChildren(), visitor);
    }// w ww.j a v a  2 s  .  co  m
}

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);//from  www. j  a  va 2  s.  co  m
        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  av  a 2s.  co  m*/
            }
        }
        if (!processJavaDeltas(d.getAffectedChildren())) {
            return false;
        }
    }
    return true;
}

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.
 *//* w ww . ja va2  s  .c om*/
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   www.j  a  v  a  2  s  .  c o 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.crispico.flower.mp.codesync.code.java.JavaElementChangedListener.java

License:Open Source License

private void processDelta(IJavaElementDelta deltaToProcess) {
    for (IJavaElementDelta delta : deltaToProcess.getAffectedChildren()) {
        processDelta(delta);// www.j  a v a  2s . c  om
    }

    IJavaProject project = deltaToProcess.getElement().getJavaProject();
    if (project != null) {
        String path = project.getPath().toString();
        EditorStatefulService service = (EditorStatefulService) CommunicationPlugin.getInstance()
                .getServiceRegistry().getService(CodeSyncEditorStatefulService.SERVICE_ID);
        EditableResource editableResource = service.getEditableResource(path);
        if (editableResource != null) {
            for (EditableResourceClient client : editableResource.getClients()) {
                //               try {
                //                  CodeSyncPlugin.getInstance().getDragOnDiagramHandler().handleDragOnDiagram(Arrays.asList(deltaToProcess.getElement().getCorrespondingResource()), null, null, null, client.getCommunicationChannel());
                //               } catch (JavaModelException e) {
                //                  e.printStackTrace();
                //               }
            }
        }
    }
}

From source file:com.google.gdt.eclipse.core.java.ClasspathChangedListener.java

License:Open Source License

public void elementChanged(ElementChangedEvent event) {
    for (IJavaElementDelta delta : event.getDelta().getChangedChildren()) {
        int flags = delta.getFlags();
        if ((flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) {
            IJavaElement element = delta.getElement();
            if (element.getElementType() != IJavaElement.JAVA_PROJECT) {
                continue;
            }//from w w  w . j  a va  2 s . c  om

            classpathChanged((IJavaProject) element);
        }
    }
}

From source file:com.google.gdt.eclipse.core.reference.ElementChangeListener.java

License:Open Source License

public void elementChanged(ElementChangedEvent event) {
    final Map<IJavaElement, IJavaElementDelta> changedElements = new HashMap<IJavaElement, IJavaElementDelta>();

    JavaModelSearch.visitJavaElementDelta(event.getDelta(), new IJavaElementDeltaVisitor() {
        public boolean visit(IJavaElementDelta delta) {
            IJavaElement element = delta.getElement();

            /*/* w  w w  .j  a  v a2s.com*/
             * We care about packages being only added or removed because if we
             * called the change listeners on a change to a package, any change
             * to any file in that package will cause all ui.xml files that
             * reference that package (say with xmlns urn imports) to be
             * revalidated. Some projects end up having hundreds of ui.xml files
             * referencing a package, and then saving any change in that package
             * ends up taking tens of seconds.
             */
            int type = element.getElementType();
            if (type == IJavaElement.PACKAGE_FRAGMENT && delta.getKind() == IJavaElementDelta.CHANGED) {
                return true;
            }

            Set<IReference> references = referenceManager.getReferencesWithMatchingJavaElement(element,
                    EnumSet.of(ReferenceLocationType.TARGET));
            if (references != null && references.size() > 0) {
                changedElements.put(element, delta);
            }
            return true;
        }
    });

    if (changedElements.size() > 0) {
        callReferenceChangeListeners(changedElements);
    }
}

From source file:com.google.gdt.eclipse.managedapis.impl.ManagedApiChangeListener.java

License:Open Source License

/**
 * Implements the standard elementChanged method defined by the
 * IElementChangedListener, this method identifies events of importance to a
 * specific ManagedApiProject and calls the appropriate abstract method on a
 * match./*from  www  . j a  v a  2 s.co m*/
 */
public void elementChanged(ElementChangedEvent event) {
    if (managedApiProject == null) {
        throw new IllegalStateException("managedApiProject must be set prior to registering the listener");
    }

    for (IJavaElementDelta delta : event.getDelta().getRemovedChildren()) {
        int flags = delta.getFlags();
        if (flags == 0) {
            IJavaElement element = delta.getElement();
            IJavaProject javaProject = (IJavaProject) element.getAdapter(IJavaProject.class);
            if (javaProject != null) {
                IProject project = javaProject.getProject();
                if (project.equals(managedApiProject.getJavaProject().getProject())) {
                    managedApiProjectRemoved();
                }
            }
        }
    }

    for (IJavaElementDelta delta : event.getDelta().getChangedChildren()) {
        int flags = delta.getFlags();
        if ((flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) {
            IJavaElement element = delta.getElement();
            if (element.getElementType() == IJavaElement.JAVA_PROJECT
                    && element.equals(managedApiProject.getJavaProject())) {
                Set<ManagedApi> managedApiRemovalSet = new HashSet<ManagedApi>(
                        delta.getChangedChildren().length);
                List<String> managedApiFolderNames = new ArrayList();
                for (IJavaElementDelta childDelta : delta.getChangedChildren()) {
                    if ((childDelta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) != 0) {
                        IJavaElement childElement = childDelta.getElement();
                        if (childElement.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT
                                && managedApiProject.isPackageFragmentRootInManagedApi(
                                        (IPackageFragmentRoot) childElement)) {
                            String managedApiFolderName = managedApiProject
                                    .getPathRelativeToManagedApiRoot((IPackageFragmentRoot) childElement);
                            if (!managedApiFolderNames.contains(managedApiFolderName)) {
                                managedApiFolderNames.add(managedApiFolderName);
                                managedApiRemovalSet
                                        .add(managedApiProject.createManagedApi(managedApiFolderName));
                            }
                        }
                    }
                }
                if (managedApiRemovalSet.size() > 0) {
                    managedApiRemoved(
                            managedApiRemovalSet.toArray(new ManagedApiImpl[managedApiRemovalSet.size()]));
                }
            }
        } else if ((flags & IJavaElementDelta.F_CLOSED) != 0) {
            IJavaElement element = delta.getElement();
            if (element.getElementType() == IJavaElement.JAVA_PROJECT
                    && element.equals(managedApiProject.getJavaProject())) {
                managedApiProjectClosed();
            }
        }
    }
}