org.eclipse.jdt.core

## 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
`static int` `K_ANNOTATION` Constant indicating that the value kind is an annotation represented by an instance of `IAnnotation`.
`static int` `K_BOOLEAN` Constant indicating that the value kind is a `boolean` represented by an instance of `Boolean`.
`static int` `K_BYTE` Constant indicating that the value kind is a `byte` represented by an instance of `Byte`.
`static int` `K_CHAR` Constant indicating that the value kind is a `char` represented by an instance of `Character`.
`static int` `K_CLASS` Constant indicating that the value kind is a `Class` represented by the name of the class (i.e. a `String`.
`static int` `K_DOUBLE` Constant indicating that the value kind is a `double` represented by an instance of `Double`.
`static int` `K_FLOAT` Constant indicating that the value kind is a `float` represented by an instance of `Float`.
`static int` `K_INT` Constant indicating that the value kind is an `int` represented by an instance of `Integer`.
`static int` `K_LONG` Constant indicating that the value kind is a `long` represented by an instance of `Long`.
`static int` `K_QUALIFIED_NAME` Constant indicating that the value is a qualified name represented by a `String`.
`static int` `K_SHORT` Constant indicating that the value kind is a `short` represented by an instance of `Short`.
`static int` `K_SIMPLE_NAME` Constant indicating that the value is a simple name represented by a `String`.
`static int` `K_STRING` Constant indicating that the value kind is a `String` represented by the corresponding `String`.
`static int` `K_UNKNOWN` Constant indicating that the value kind is unknown at this stage.

### Method Summary

All Methods Instance Methods Abstract Methods
`String` `getMemberName()` Returns the member's name of this member-value pair.
`Object` `getValue()` Returns the value of this member-value pair.
`int` `getValueKind()` Returns the value kind of this member-value pair.

### Field Detail

#### K_INT

    static final int K_INT

Constant indicating that the value kind is an `int` represented by an instance of `Integer`.

See Also:
  Constant Field Values

#### K_BYTE

    static final int K_BYTE

Constant indicating that the value kind is a `byte` represented by an instance of `Byte`.

See Also:
  Constant Field Values

#### K_SHORT

    static final int K_SHORT

Constant indicating that the value kind is a `short` represented by an instance of `Short`.

See Also:
  Constant Field Values

#### K_CHAR

    static final int K_CHAR

Constant indicating that the value kind is a `char` represented by an instance of `Character`.

See Also:
  Constant Field Values

#### K_FLOAT

    static final int K_FLOAT

Constant indicating that the value kind is a `float` represented by an instance of `Float`.

See Also:
  Constant Field Values

#### K_DOUBLE

    static final int K_DOUBLE

Constant indicating that the value kind is a `double` represented by an instance of `Double`.

See Also:
  Constant Field Values

#### K_LONG

    static final int K_LONG

Constant indicating that the value kind is a `long` represented by an instance of `Long`.

See Also:
  Constant Field Values

#### K_BOOLEAN

    static final int K_BOOLEAN

Constant indicating that the value kind is a `boolean` represented by an instance of `Boolean`.

See Also:
  Constant Field Values

#### K_STRING

    static final int K_STRING

Constant indicating that the value kind is a `String` represented by the corresponding `String`.

See Also:
  Constant Field Values

#### K_ANNOTATION

    static final int K_ANNOTATION

Constant indicating that the value kind is an annotation represented by an instance of `IAnnotation`.

See Also:
  Constant Field Values

#### 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:
  Constant Field Values

#### 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:
  Constant Field Values

#### 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:
  Constant Field Values

#### 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 `Object`s and/or `null`s for unknown elements.

See Also:
  Constant Field Values

### Method Detail

#### 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 `Object`s and/or `null`s 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