Class FieldInfo

java.lang.Object
com.google.api.client.util.FieldInfo

public class FieldInfo extends Object
Parses field information to determine data key name/value pair associated with the field.

Implementation is thread-safe.

Since:
1.0
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final Map<Field,FieldInfo>
    Cached field information.
    private final Field
    Field.
    private final boolean
    Whether the field class is "primitive" as defined by Data.isPrimitive(Type).
    private final String
    Data key name associated with the field for a non-enum-constant with a Key annotation, or data key value associated with the enum constant with a Value annotation or null for an enum constant with a NullValue annotation.
  • Constructor Summary

    Constructors
    Constructor
    Description
    FieldInfo(Field field, String name)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    <T extends Enum<T>>
    T
     
    Returns the class information of the field's declaring class.
    Returns the field.
    static Object
    getFieldValue(Field field, Object obj)
    Returns the value of the given field in the given object instance using reflection.
    Returns the field's generic type, which is a class, parameterized type, generic array type, or type variable, but not a wildcard type.
    Returns the data key name associated with the field for a non-enum-constant with a Key annotation, or data key value associated with the enum constant with a Value annotation or null for an enum constant with a NullValue annotation.
    Returns the field's type.
    Returns the value of the field in the given object instance using reflection.
    boolean
    Returns whether the field is final.
    boolean
    Returns whether the field is primitive as defined by Data.isPrimitive(Type).
    static FieldInfo
    of(Enum<?> enumValue)
    Returns the field information for the given enum value.
    static FieldInfo
    of(Field field)
    Returns the field information for the given field.
    static void
    setFieldValue(Field field, Object obj, Object value)
    Sets to the given value of the given field in the given object instance using reflection.
    void
    setValue(Object obj, Object value)
    Sets to the given value of the field in the given object instance using reflection.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • CACHE

      private static final Map<Field,FieldInfo> CACHE
      Cached field information.
    • isPrimitive

      private final boolean isPrimitive
      Whether the field class is "primitive" as defined by Data.isPrimitive(Type).
    • field

      private final Field field
      Field.
    • name

      private final String name
      Data key name associated with the field for a non-enum-constant with a Key annotation, or data key value associated with the enum constant with a Value annotation or null for an enum constant with a NullValue annotation.

      This string is interned.

  • Constructor Details

  • Method Details

    • of

      public static FieldInfo of(Enum<?> enumValue)
      Returns the field information for the given enum value.
      Parameters:
      enumValue - enum value
      Returns:
      field information
      Throws:
      IllegalArgumentException - if the enum value has no value annotation
      Since:
      1.4
    • of

      public static FieldInfo of(Field field)
      Returns the field information for the given field.
      Parameters:
      field - field or null for null result
      Returns:
      field information or null if the field has no name or for null input
    • getField

      public Field getField()
      Returns the field.
      Since:
      1.4
    • getName

      public String getName()
      Returns the data key name associated with the field for a non-enum-constant with a Key annotation, or data key value associated with the enum constant with a Value annotation or null for an enum constant with a NullValue annotation.

      This string is interned.

      Since:
      1.4
    • getType

      public Class<?> getType()
      Returns the field's type.
      Since:
      1.4
    • getGenericType

      public Type getGenericType()
      Returns the field's generic type, which is a class, parameterized type, generic array type, or type variable, but not a wildcard type.
      Since:
      1.4
    • isFinal

      public boolean isFinal()
      Returns whether the field is final.
      Since:
      1.4
    • isPrimitive

      public boolean isPrimitive()
      Returns whether the field is primitive as defined by Data.isPrimitive(Type).
      Since:
      1.4
    • getValue

      public Object getValue(Object obj)
      Returns the value of the field in the given object instance using reflection.
    • setValue

      public void setValue(Object obj, Object value)
      Sets to the given value of the field in the given object instance using reflection.

      If the field is final, it checks that value being set is identical to the existing value.

    • getClassInfo

      public ClassInfo getClassInfo()
      Returns the class information of the field's declaring class.
    • enumValue

      public <T extends Enum<T>> T enumValue()
    • getFieldValue

      public static Object getFieldValue(Field field, Object obj)
      Returns the value of the given field in the given object instance using reflection.
    • setFieldValue

      public static void setFieldValue(Field field, Object obj, Object value)
      Sets to the given value of the given field in the given object instance using reflection.

      If the field is final, it checks that value being set is identical to the existing value.