Interface AnnotationEncodedValue

All Superinterfaces:
BasicAnnotation, Comparable<EncodedValue>, EncodedValue
All Known Implementing Classes:
BaseAnnotationEncodedValue, BuilderEncodedValues.BuilderAnnotationEncodedValue, DexBackedAnnotationEncodedValue, EncodedValueRewriter.RewrittenAnnotationEncodedValue, ImmutableAnnotationEncodedValue

public interface AnnotationEncodedValue extends EncodedValue, BasicAnnotation
This class represents an encoded annotation value.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Compare this AnnotationEncodedValue to another EncodedValue.
    boolean
    Compares this AnnotationEncodedValue to another AnnotationEncodedValue for equality.
    Gets a set of the name/value elements associated with this annotation.
    Gets the type of this annotation.
    int
    Returns a hashcode for this AnnotationEncodedValue.

    Methods inherited from interface org.jf.dexlib2.iface.value.EncodedValue

    getValueType
  • Method Details

    • getType

      @Nonnull String getType()
      Gets the type of this annotation. This will be the type descriptor of the class that defines this annotation.
      Specified by:
      getType in interface BasicAnnotation
      Returns:
      The type of this annotation
    • getElements

      @Nonnull Set<? extends AnnotationElement> getElements()
      Gets a set of the name/value elements associated with this annotation. The elements in the returned set will be unique by name.
      Specified by:
      getElements in interface BasicAnnotation
      Returns:
      A set of AnnotationElements
    • hashCode

      int hashCode()
      Returns a hashcode for this AnnotationEncodedValue. This hashCode is defined to be the following:
       
       int hashCode = getType().hashCode();
       hashCode = hashCode*31 + getElements().hashCode();
       
      Overrides:
      hashCode in class Object
      Returns:
      The hash code value for this AnnotationEncodedValue
    • equals

      boolean equals(@Nullable Object o)
      Compares this AnnotationEncodedValue to another AnnotationEncodedValue for equality. This AnnotationEncodedValue is equal to another AnnotationEncodedValue if all of it's "fields" are equal. That is, if the return values getType() and getElements() are both equal.
      Overrides:
      equals in class Object
      Parameters:
      o - The object to be compared for equality with this AnnotationEncodedValue
      Returns:
      true if the specified object is equal to this AnnotationEncodedValue
    • compareTo

      int compareTo(@Nonnull EncodedValue o)
      Compare this AnnotationEncodedValue to another EncodedValue. The comparison is based on the value of getType() and getElements(), in that order. When comparing the set of elements, the comparison is done with the semantics of org.jf.util.CollectionUtils.compareAsSet(), using the natural ordering of AnnotationElement.
      Specified by:
      compareTo in interface Comparable<EncodedValue>
      Parameters:
      o - The EncodedValue to compare with this AnnotationEncodedValue
      Returns:
      An integer representing the result of the comparison