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

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

Introduction

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

Prototype

int F_MODIFIERS

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

Click Source Link

Document

Change flag indicating that the modifiers of the element have changed.

Usage

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

License:Open Source License

/**
 * The elements are equivalent, but might have content changes.
 *//*from   ww w  .  j  a  v a2  s .  c  om*/
private void findContentChange(JavaElementInfo oldInfo, JavaElementInfo newInfo, IJavaElement newElement) {
    if (oldInfo instanceof MemberElementInfo && newInfo instanceof MemberElementInfo) {
        if (((MemberElementInfo) oldInfo).getModifiers() != ((MemberElementInfo) newInfo).getModifiers()) {
            this.delta.changed(newElement, IJavaElementDelta.F_MODIFIERS);
        }
        if (oldInfo instanceof AnnotatableInfo && newInfo instanceof AnnotatableInfo) {
            findAnnotationChanges(((AnnotatableInfo) oldInfo).annotations,
                    ((AnnotatableInfo) newInfo).annotations, newElement);
        }
        if (oldInfo instanceof SourceMethodElementInfo && newInfo instanceof SourceMethodElementInfo) {
            SourceMethodElementInfo oldSourceMethodInfo = (SourceMethodElementInfo) oldInfo;
            SourceMethodElementInfo newSourceMethodInfo = (SourceMethodElementInfo) newInfo;
            if (!CharOperation.equals(oldSourceMethodInfo.getReturnTypeName(),
                    newSourceMethodInfo.getReturnTypeName())
                    || !CharOperation.equals(oldSourceMethodInfo.getTypeParameterNames(),
                            newSourceMethodInfo.getTypeParameterNames())
                    || !equals(oldSourceMethodInfo.getTypeParameterBounds(),
                            newSourceMethodInfo.getTypeParameterBounds())) {
                this.delta.changed(newElement, IJavaElementDelta.F_CONTENT);
            }
        } else if (oldInfo instanceof SourceFieldElementInfo && newInfo instanceof SourceFieldElementInfo) {
            if (!CharOperation.equals(((SourceFieldElementInfo) oldInfo).getTypeName(),
                    ((SourceFieldElementInfo) newInfo).getTypeName())) {
                this.delta.changed(newElement, IJavaElementDelta.F_CONTENT);
            }
        } else if (oldInfo instanceof SourceTypeElementInfo && newInfo instanceof SourceTypeElementInfo) {
            SourceTypeElementInfo oldSourceTypeInfo = (SourceTypeElementInfo) oldInfo;
            SourceTypeElementInfo newSourceTypeInfo = (SourceTypeElementInfo) newInfo;
            if (!CharOperation.equals(oldSourceTypeInfo.getSuperclassName(),
                    newSourceTypeInfo.getSuperclassName())
                    || !CharOperation.equals(oldSourceTypeInfo.getInterfaceNames(),
                            newSourceTypeInfo.getInterfaceNames())) {
                this.delta.changed(newElement, IJavaElementDelta.F_SUPER_TYPES);
            }
            if (!CharOperation.equals(oldSourceTypeInfo.getTypeParameterNames(),
                    newSourceTypeInfo.getTypeParameterNames())
                    || !equals(oldSourceTypeInfo.getTypeParameterBounds(),
                            newSourceTypeInfo.getTypeParameterBounds())) {
                this.delta.changed(newElement, IJavaElementDelta.F_CONTENT);
            }
            HashMap oldTypeCategories = oldSourceTypeInfo.categories;
            HashMap newTypeCategories = newSourceTypeInfo.categories;
            if (oldTypeCategories != null) {
                // take the union of old and new categories elements (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=125675)
                Set elements;
                if (newTypeCategories != null) {
                    elements = new HashSet(oldTypeCategories.keySet());
                    elements.addAll(newTypeCategories.keySet());
                } else
                    elements = oldTypeCategories.keySet();
                Iterator iterator = elements.iterator();
                while (iterator.hasNext()) {
                    IJavaElement element = (IJavaElement) iterator.next();
                    String[] oldCategories = (String[]) oldTypeCategories.get(element);
                    String[] newCategories = newTypeCategories == null ? null
                            : (String[]) newTypeCategories.get(element);
                    if (!Util.equalArraysOrNull(oldCategories, newCategories)) {
                        this.delta.changed(element, IJavaElementDelta.F_CATEGORIES);
                    }
                }
            } else if (newTypeCategories != null) {
                Iterator elements = newTypeCategories.keySet().iterator();
                while (elements.hasNext()) {
                    IJavaElement element = (IJavaElement) elements.next();
                    this.delta.changed(element, IJavaElementDelta.F_CATEGORIES); // all categories for this element were removed
                }
            }
        }
    }
}

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

License:Open Source License

public void modifiers() {
    changed(IJavaElementDelta.F_MODIFIERS);
}

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

License:Open Source License

protected boolean toDebugString(StringBuffer buffer, int flags) {
    boolean prev = false;
    if ((flags & IJavaElementDelta.F_MODIFIERS) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("MODIFIERS CHANGED"); //$NON-NLS-1$
        prev = true;/*from ww w. java2s .  c  o m*/
    }
    if ((flags & IJavaElementDelta.F_SUPER_TYPES) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("SUPER TYPES CHANGED"); //$NON-NLS-1$
        prev = true;
    }
    return prev;
}

From source file:edu.buffalo.cse.green.JavaModelListener.java

License:Open Source License

/**
 * Updates the display when some change occurs to a Java element that
 * doesn't involve removal, addition, or movement.
 * //from   ww  w  .j  a v a2  s .  c  om
 * @param elementDelta - The delta of the element that changed.
 */
private void handleElementChange(IJavaElementDelta elementDelta) {
    IJavaElement element = elementDelta.getElement();

    // update the modifiers of the element (if they changed)
    if ((elementDelta.getFlags() & IJavaElementDelta.F_MODIFIERS) != 0) {
        for (DiagramEditor editor : DiagramEditor.getEditors()) {
            RootPart rootEditPart = editor.getRootPart();
            RootModel root = (RootModel) rootEditPart.getModel();
            AbstractModel abstractModel = root.getModelFromElement(element);

            if (abstractModel != null) {
                if (abstractModel instanceof FieldModel) {
                    FieldModel fModel = (FieldModel) abstractModel;
                    FieldPart fEditPart = (FieldPart) rootEditPart.getPartFromModel(fModel);
                    fEditPart.updateIcon();
                } else if (abstractModel instanceof MethodModel) {
                    MethodModel mModel = (MethodModel) abstractModel;
                    MethodPart mEditPart = (MethodPart) rootEditPart.getPartFromModel(mModel);
                    mEditPart.updateIcon();
                }
            }
        }
    }
}

From source file:org.eclipse.objectteams.otdt.core.OTModelReconcileListener.java

License:Open Source License

/**
 * Removes from JavaModel changes affected OTM elements. Actually it removes
 * ITypes only which have been removed in the JavaModel.
 * NOTE: recursive method//from w  w w  .  j av a 2  s .c o  m
 * PRE: deltas != null
 */
private void removeAffectedModelElements(IJavaElementDelta[] deltas) {
    assert (deltas != null);

    for (int idx = 0; idx < deltas.length; idx++) {
        IJavaElementDelta delta = deltas[idx];
        IJavaElement elem = delta.getElement();

        // check for nested deltas
        if (elem instanceof IParent) {
            // visit child deltas            
            removeAffectedModelElements(delta.getAffectedChildren());
        }

        // remove corresponding OTM elements if JavaModel IType has been changed/removed
        if (elem instanceof IType) {
            // check for changed modifiers on element-changed deltas because
            // this means that the JavaModel IType element has been recreated
            // and old instances need to be removed from the OTM 
            if ((delta.getKind() == IJavaElementDelta.CHANGED)
                    && ((delta.getFlags() & IJavaElementDelta.F_MODIFIERS) != 0)) {
                OTModelManager.removeOTElement((IType) elem, true);
            } else if (delta.getKind() == IJavaElementDelta.REMOVED) {
                OTModelManager.removeOTElement((IType) elem);
            }
        }
        // TODO (carp): do we need special support for WorkingCopies, e.g. when creating
        // or discarding them?
        //         checkWorkingCopies(delta, elem);
    }
}