Class ClassInfo

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

public final class ClassInfo extends Object
Computes class information to determine data key name/value pairs associated with the class.

Implementation is thread-safe.

Since:
1.0
  • Field Details

    • CACHE

      private static final ConcurrentMap<Class<?>,ClassInfo> CACHE
      Class information cache, with case-sensitive field names.
    • CACHE_IGNORE_CASE

      private static final ConcurrentMap<Class<?>,ClassInfo> CACHE_IGNORE_CASE
      Class information cache, with case-insensitive fields names.
    • clazz

      private final Class<?> clazz
      Class.
    • ignoreCase

      private final boolean ignoreCase
      Whether field names are case sensitive.
    • nameToFieldInfoMap

      private final IdentityHashMap<String,FieldInfo> nameToFieldInfoMap
      Map from FieldInfo.getName() to the field information.
    • names

      final List<String> names
      Unmodifiable sorted (with any possible null member first) list (without duplicates) of FieldInfo.getName().
  • Constructor Details

    • ClassInfo

      private ClassInfo(Class<?> srcClass, boolean ignoreCase)
  • Method Details

    • of

      public static ClassInfo of(Class<?> underlyingClass)
      Returns the class information for the given underlying class.
      Parameters:
      underlyingClass - underlying class or null for null result
      Returns:
      class information or null for null input
    • of

      public static ClassInfo of(Class<?> underlyingClass, boolean ignoreCase)
      Returns the class information for the given underlying class.
      Parameters:
      underlyingClass - underlying class or null for null result
      ignoreCase - whether field names are case sensitive
      Returns:
      class information or null for null input
      Since:
      1.10
    • getUnderlyingClass

      public Class<?> getUnderlyingClass()
      Returns the underlying class.
      Since:
      1.4
    • getIgnoreCase

      public final boolean getIgnoreCase()
      Returns whether field names are case sensitive.
      Since:
      1.10
    • getFieldInfo

      public FieldInfo getFieldInfo(String name)
      Returns the information for the given FieldInfo.getName().
      Parameters:
      name - FieldInfo.getName() or null
      Returns:
      field information or null for none
    • getField

      public Field getField(String name)
      Returns the field for the given FieldInfo.getName().
      Parameters:
      name - FieldInfo.getName() or null
      Returns:
      field or null for none
    • isEnum

      public boolean isEnum()
      Returns the underlying class is an enum.
      Since:
      1.4
    • getNames

      public Collection<String> getNames()
      Returns an unmodifiable sorted set (with any possible null member first) of names.
    • getFieldInfos

      public Collection<FieldInfo> getFieldInfos()
      Returns an unmodifiable collection of the FieldInfos for this class, without any guarantee of order.

      If you need sorted order, instead use getNames() with getFieldInfo(String).

      Since:
      1.16