Example usage for org.eclipse.jdt.core.util IFieldInfo isDeprecated

List of usage examples for org.eclipse.jdt.core.util IFieldInfo isDeprecated

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.util IFieldInfo isDeprecated.

Prototype

boolean isDeprecated();

Source Link

Document

Return true if the field info has a deprecated attribute, false otherwise.

Usage

From source file:org.eclipse.pde.tools.internal.versioning.JavaClassVersionCompare.java

License:Open Source License

/**
 * compares two IFieldInfo instances to find any change from <code>field1</code> to <code>field2</code>
 * /*from  w ww . java  2s  .  c o m*/
 * @param className name of class to which <code>field1</code>(and <code>field2</code>) belongs
 * @param field1 IFieldInfo instance
 * @param field2 IFieldInfo instance
 */
private void compareFieldInfos(String className, IFieldInfo field1, IFieldInfo field2) {
    // compare AccessFlags (AccessFlags defines the modifiers of a field (e.g. public static final IVersionCompare.PLUGIN_ID = "org.eclipse.pde.tools.versioning")
    int accessFlag1 = field1.getAccessFlags();
    int accessFlag2 = field2.getAccessFlags();
    // we just care about field who was public or protected
    if (!(Flags.isPublic(accessFlag2) || Flags.isProtected(accessFlag2))) {
        return;
    }
    if (isModifierNarrowed(accessFlag1, accessFlag2)) {
        // get what modifiers have been changed
        int change = accessFlag1 ^ accessFlag2;
        // if the visibility of a field which was public or protected has been narrowed, it is a change should be caught 
        Object[] msg = { FIELD_TITLE, charsToString(field1.getName()),
                createChangedModifierString(accessFlag2, change),
                createChangedModifierString(accessFlag1, change), className };
        finalResult.merge(resultStatusHandler(IStatus.INFO,
                IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MAJOR_CHANGE,
                NLS.bind(Messages.JavaClassVersionCompare_ModifierChangedMsg, msg), null));
    }
    // compare Descriptor (Descriptor describes the type of a field)
    String descriptor1 = charsToString(field1.getDescriptor());
    String descriptor2 = charsToString(field2.getDescriptor());
    if (!descriptor1.equals(descriptor2)) {
        String[] msg = { charsToString(field1.getName()), Signature.toString(descriptor2),
                Signature.toString(descriptor1), className };
        finalResult.merge(resultStatusHandler(IStatus.INFO,
                IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MAJOR_CHANGE,
                NLS.bind(Messages.JavaClassVersionCompare_descriptorChangedMsg, msg), null));
    }
    // compare isDeprecated (if a field has been deprecated)
    if (field1.isDeprecated() && !field2.isDeprecated()) {
        Object[] msg = { FIELD_TITLE, charsToString(field1.getName()), className };
        finalResult.merge(resultStatusHandler(IStatus.INFO,
                IVersionCompare.CLASS_DETAIL_STATUS | IVersionCompare.MICRO_CHANGE,
                NLS.bind(Messages.JavaClassVersionCompare_deprecatedChangedMsg, msg), null));
    }
}