Class FieldMetaData

java.lang.Object
org.apache.thrift.meta_data.FieldMetaData
All Implemented Interfaces:
Serializable

public class FieldMetaData extends Object implements Serializable
This class is used to store meta data about thrift fields. Every field in a a struct should have a corresponding instance of this class describing it.

The meta data is registered by ALL Thrift struct classes via a static {...} initializer block in the generated Thrift code.

Since different threads could be initializing different Thrift classes, calls to the public static methods of this class could be racy.

All methods of this class should be made thread safe.

See Also:
  • Field Details

    • fieldName

      public final String fieldName
    • requirementType

      public final byte requirementType
    • valueMetaData

      public final FieldValueMetaData valueMetaData
  • Constructor Details

  • Method Details

    • getFieldAnnotations

      public Map<String,String> getFieldAnnotations()
      Returns:
      an unmodifiable view of the annotations for this field, empty if no annotations present or code gen param is not turned on
    • addStructMetaDataMap

      public static <T extends TBase<T, F>, F extends TFieldIdEnum> void addStructMetaDataMap(Class<T> sClass, Map<F,FieldMetaData> map)
    • getStructMetaDataMap

      public static <T extends TBase<T, F>, F extends TFieldIdEnum> Map<F,FieldMetaData> getStructMetaDataMap(Class<T> sClass)
      Returns a map with metadata (i.e. instances of FieldMetaData) that describe the fields of the given class.
      Parameters:
      sClass - The TBase class for which the metadata map is requested. It is not guaranteed that sClass will have been statically initialized before this method is called. A racy call to addStructMetaDataMap(Class, Map) from a different thread during static initialization of the Thrift class is possible.