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

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

Introduction

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

Prototype

int F_SUPER_TYPES

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

Click Source Link

Document

Change flag indicating that one of the supertypes of an IType has 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 w  w w . j  av  a  2 s.  c  o m
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 superTypes() {
    changed(IJavaElementDelta.F_SUPER_TYPES);
}

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;/*  w  w w . j a v a  2  s.  c  om*/
    }
    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:org.eclipse.jst.jsp.core.internal.taglib.TaglibHelperManager.java

License:Open Source License

/**
 * Update classpath for appropriate loader.
 * @see org.eclipse.jdt.core.IElementChangedListener#elementChanged(org.eclipse.jdt.core.ElementChangedEvent)
 *///from   w  w w  .  j av  a 2  s  . co m
public void elementChanged(ElementChangedEvent event) {
    // handle classpath changes
    IJavaElementDelta delta = event.getDelta();
    if (delta.getElement().getElementType() == IJavaElement.JAVA_MODEL) {
        IJavaElementDelta[] changed = delta.getChangedChildren();
        for (int i = 0; i < changed.length; i++) {
            if ((changed[i].getFlags() & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0
                    || (changed[i].getFlags() & IJavaElementDelta.F_REORDER) != 0
                    || (changed[i].getFlags() & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0
                    || (changed[i].getFlags() & IJavaElementDelta.F_PRIMARY_RESOURCE) != 0) {
                IJavaElement proj = changed[i].getElement();
                handleClasspathChange(changed, i, proj);
            }
        }
    } else if (delta.getElement().getElementType() == IJavaElement.COMPILATION_UNIT) {
        IJavaElementDelta[] changed = delta.getChangedChildren();
        for (int i = 0; i < changed.length; i++) {
            if ((changed[i].getFlags() & IJavaElementDelta.F_SUPER_TYPES) != 0) {
                IJavaElement element = changed[i].getElement();
                handleSuperTypeChange(element);
            }
        }
    }
}

From source file:org.eclipse.objectteams.otdt.internal.ui.callinmarkers.RoleBindingChangedListener.java

License:Open Source License

private void updateCallinMarkers(IJavaElementDelta[] deltas, Set<ICompilationUnit> invalidatedCUs) {
    if (deltas != null) {
        //          if (deltas.length > 0)
        //              _CallinMarkerCreator2.reset();
        Set<IOTType> invalidatedRoles = new HashSet<IOTType>();
        Set<IMember> addedBaseMembers = new HashSet<IMember>();
        ICompilationUnit curCU = null;/*ww w.  ja v  a  2 s .  co  m*/

        for (int idx = 0; idx < deltas.length; idx++) {
            IJavaElementDelta curDelta = deltas[idx];

            final IJavaElement curElem = curDelta.getElement();

            // check for nested deltas
            if (curElem instanceof IParent) {
                // visit child's deltas recursively            
                updateCallinMarkers(curDelta.getAffectedChildren(), invalidatedCUs);
            }
            // addition/removal of role types:
            if (curElem instanceof IType && (curDelta.getKind() == IJavaElementDelta.REMOVED
                    || curDelta.getKind() == IJavaElementDelta.ADDED
                    || curDelta.getFlags() == IJavaElementDelta.F_SUPER_TYPES)) {
                IType roleType = (IType) curElem;
                IOTType otType = OTModelManager.getOTElement(roleType);
                if (otType != null && otType.isRole()) {
                    if (invalidatedRoles.add(otType)) // only if not already handled
                        invalidateRole((IRoleType) otType, roleType);
                }
            }
            // changes of base methods & fields:
            if (curElem instanceof IMethod || curElem instanceof IField) {
                handleDeltaKind(curDelta, (IMember) curElem, addedBaseMembers);
                curCU = ((IMember) curElem).getCompilationUnit();
            }
            // any changes in method mappings:
            if (curElem instanceof IMethodMapping) {
                // changes in method mappings invalidate the current role's baseclass:
                IJavaElement parent = curElem.getParent();
                if (parent instanceof IRoleType) {
                    IRoleType roleParent = (IRoleType) parent;
                    if (invalidatedRoles.add(roleParent)) // only if not already handled
                        invalidateRole(roleParent, (IType) roleParent.getCorrespondingJavaElement());
                }
            }
        }
        if (!addedBaseMembers.isEmpty()) {
            if (addedBaseMembers.size() < 3 && !invalidatedCUs.contains(curCU))
                for (IMember baseMember : addedBaseMembers)
                    baseMemberAdded(baseMember);
            else
                invalidatedCUs.add(curCU);
        }
    }
}