Interface IMemberValuePair


public interface IMemberValuePair
Represents a member-value pair of an annotation. The value is represented by an Object. To get the exact type of this object, use its value kind. If this value is an array, getValue() returns an instance of Object[] and the value kind returns the kind of the elements in this array.

This interface is not intended to be implemented or extended by clients.

Since:
3.4
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Constant indicating that the value kind is an annotation represented by an instance of IAnnotation.
    static final int
    Constant indicating that the value kind is a boolean represented by an instance of Boolean.
    static final int
    Constant indicating that the value kind is a byte represented by an instance of Byte.
    static final int
    Constant indicating that the value kind is a char represented by an instance of Character.
    static final int
    Constant indicating that the value kind is a Class represented by the name of the class (i.e. a String.
    static final int
    Constant indicating that the value kind is a double represented by an instance of Double.
    static final int
    Constant indicating that the value kind is a float represented by an instance of Float.
    static final int
    Constant indicating that the value kind is an int represented by an instance of Integer.
    static final int
    Constant indicating that the value kind is a long represented by an instance of Long.
    static final int
    Constant indicating that the value is a qualified name represented by a String.
    static final int
    Constant indicating that the value kind is a short represented by an instance of Short.
    static final int
    Constant indicating that the value is a simple name represented by a String.
    static final int
    Constant indicating that the value kind is a String represented by the corresponding String.
    static final int
    Constant indicating that the value kind is unknown at this stage.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the member's name of this member-value pair.
    Returns the value of this member-value pair.
    int
    Returns the value kind of this member-value pair.
  • Field Details

    • K_INT

      static final int K_INT
      Constant indicating that the value kind is an int represented by an instance of Integer.
      See Also:
    • K_BYTE

      static final int K_BYTE
      Constant indicating that the value kind is a byte represented by an instance of Byte.
      See Also:
    • K_SHORT

      static final int K_SHORT
      Constant indicating that the value kind is a short represented by an instance of Short.
      See Also:
    • K_CHAR

      static final int K_CHAR
      Constant indicating that the value kind is a char represented by an instance of Character.
      See Also:
    • K_FLOAT

      static final int K_FLOAT
      Constant indicating that the value kind is a float represented by an instance of Float.
      See Also:
    • K_DOUBLE

      static final int K_DOUBLE
      Constant indicating that the value kind is a double represented by an instance of Double.
      See Also:
    • K_LONG

      static final int K_LONG
      Constant indicating that the value kind is a long represented by an instance of Long.
      See Also:
    • K_BOOLEAN

      static final int K_BOOLEAN
      Constant indicating that the value kind is a boolean represented by an instance of Boolean.
      See Also:
    • K_STRING

      static final int K_STRING
      Constant indicating that the value kind is a String represented by the corresponding String.
      See Also:
    • K_ANNOTATION

      static final int K_ANNOTATION
      Constant indicating that the value kind is an annotation represented by an instance of IAnnotation.
      See Also:
    • K_CLASS

      static final int K_CLASS
      Constant indicating that the value kind is a Class represented by the name of the class (i.e. a String. If the member-value pair is coming from a compilation unit, this is either a simple name (e.g. for MyType.class, the name is "MyType"), or a qualified name (e.g. for x.y.MyType.MyNestedType.class, the name is "x.y.MyType.MyNestedType"). If the member-value pair is coming from a class file, this is always a fully qualified name.

      Note that one can use IType.resolveType(String) and e.g. IJavaProject.findType(String, String, org.eclipse.core.runtime.IProgressMonitor) to find the corresponding IType.

      See Also:
    • K_QUALIFIED_NAME

      static final int K_QUALIFIED_NAME
      Constant indicating that the value is a qualified name represented by a String. The qualified name refers to an enum constant or another compile-time constant if the code is correct (e.g. "MyEnum.FIRST").
      See Also:
    • K_SIMPLE_NAME

      static final int K_SIMPLE_NAME
      Constant indicating that the value is a simple name represented by a String. The simple name refers to an enum constant or another compile-time constant if the code is correct (e.g. "FIRST" when there is a static import for "MyEnum.FIRST").
      See Also:
    • K_UNKNOWN

      static final int K_UNKNOWN
      Constant indicating that the value kind is unknown at this stage. The value is unknown in the following cases:
      • the value is an expression that would need to be further analyzed to determine its kind. For example, in @MyAnnot(1 + 2.3) the kind of the expression "1 + 2.3" is unknown
      • the value is an array of size 0, e.g. @MyAnnot({})
      • the value is an array that contains at least one expression that would need to be further analyzed to determine its kind. For example, in @MyAnnot({3.4, 1 + 2.3}), the kind of the second element "1 + 2.3" is unknown.
      • the value is an array that contains heterogeneous values, e.g. @MyAnnot({1, 2.3, "abc"})
      If the value kind is unknown, the returned value is always either null, or an array containing Objects and/or nulls for unknown elements.
      See Also:
  • Method Details

    • getMemberName

      String getMemberName()
      Returns the member's name of this member-value pair.
      Returns:
      the member's name of this member-value pair.
    • getValue

      Object getValue()
      Returns the value of this member-value pair. The type of this value is function of this member-value pair's value kind. It is an instance of Object[] if the value is an array.

      If the value kind is K_UNKNOWN and the value is not an array, then the value is null. If the value kind is K_UNKNOWN and the value is an array, then the value is an array containing Objects and/or nulls for unknown elements. See K_UNKNOWN for more details.

      Returns:
      the value of this member-value pair.
    • getValueKind

      int getValueKind()
      Returns the value kind of this member-value pair. This indicates the instance of the returned value, or the instance of the elements if the value is an array. The value kind is one of the following constants: K_ANNOTATION, K_BOOLEAN, K_BYTE, K_CHAR, K_CLASS, K_DOUBLE, K_FLOAT, K_INT, K_LONG, K_QUALIFIED_NAME, K_SIMPLE_NAME, K_SHORT, K_STRING, K_UNKNOWN.
      Returns:
      the value kind of this member-value pair