Package com.google.api.client.util
Class ClassInfo
- java.lang.Object
-
- com.google.api.client.util.ClassInfo
-
public final class ClassInfo extends java.lang.Object
Computes class information to determine data key name/value pairs associated with the class.Implementation is thread-safe.
- Since:
- 1.0
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Map<java.lang.Class<?>,ClassInfo>
CACHE
Class information cache, with case-sensitive field names.private static java.util.Map<java.lang.Class<?>,ClassInfo>
CACHE_IGNORE_CASE
Class information cache, with case-insensitive fields names.private java.lang.Class<?>
clazz
Class.private boolean
ignoreCase
Whether field names are case sensitive.(package private) java.util.List<java.lang.String>
names
Unmodifiable sorted (with any possiblenull
member first) list (without duplicates) ofFieldInfo.getName()
.private java.util.IdentityHashMap<java.lang.String,FieldInfo>
nameToFieldInfoMap
Map fromFieldInfo.getName()
to the field information.
-
Constructor Summary
Constructors Modifier Constructor Description private
ClassInfo(java.lang.Class<?> srcClass, boolean ignoreCase)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.reflect.Field
getField(java.lang.String name)
Returns the field for the givenFieldInfo.getName()
.FieldInfo
getFieldInfo(java.lang.String name)
Returns the information for the givenFieldInfo.getName()
.java.util.Collection<FieldInfo>
getFieldInfos()
Returns an unmodifiable collection of theFieldInfo
s for this class, without any guarantee of order.boolean
getIgnoreCase()
Returns whether field names are case sensitive.java.util.Collection<java.lang.String>
getNames()
Returns an unmodifiable sorted set (with any possiblenull
member first) ofnames
.java.lang.Class<?>
getUnderlyingClass()
Returns the underlying class.boolean
isEnum()
Returns the underlying class is an enum.static ClassInfo
of(java.lang.Class<?> underlyingClass)
Returns the class information for the given underlying class.static ClassInfo
of(java.lang.Class<?> underlyingClass, boolean ignoreCase)
Returns the class information for the given underlying class.
-
-
-
Field Detail
-
CACHE
private static final java.util.Map<java.lang.Class<?>,ClassInfo> CACHE
Class information cache, with case-sensitive field names.
-
CACHE_IGNORE_CASE
private static final java.util.Map<java.lang.Class<?>,ClassInfo> CACHE_IGNORE_CASE
Class information cache, with case-insensitive fields names.
-
clazz
private final java.lang.Class<?> clazz
Class.
-
ignoreCase
private final boolean ignoreCase
Whether field names are case sensitive.
-
nameToFieldInfoMap
private final java.util.IdentityHashMap<java.lang.String,FieldInfo> nameToFieldInfoMap
Map fromFieldInfo.getName()
to the field information.
-
names
final java.util.List<java.lang.String> names
Unmodifiable sorted (with any possiblenull
member first) list (without duplicates) ofFieldInfo.getName()
.
-
-
Method Detail
-
of
public static ClassInfo of(java.lang.Class<?> underlyingClass)
Returns the class information for the given underlying class.- Parameters:
underlyingClass
- underlying class ornull
fornull
result- Returns:
- class information or
null
fornull
input
-
of
public static ClassInfo of(java.lang.Class<?> underlyingClass, boolean ignoreCase)
Returns the class information for the given underlying class.- Parameters:
underlyingClass
- underlying class ornull
fornull
resultignoreCase
- whether field names are case sensitive- Returns:
- class information or
null
fornull
input - Since:
- 1.10
-
getUnderlyingClass
public java.lang.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(java.lang.String name)
Returns the information for the givenFieldInfo.getName()
.- Parameters:
name
-FieldInfo.getName()
ornull
- Returns:
- field information or
null
for none
-
getField
public java.lang.reflect.Field getField(java.lang.String name)
Returns the field for the givenFieldInfo.getName()
.- Parameters:
name
-FieldInfo.getName()
ornull
- Returns:
- field or
null
for none
-
isEnum
public boolean isEnum()
Returns the underlying class is an enum.- Since:
- 1.4
-
getNames
public java.util.Collection<java.lang.String> getNames()
Returns an unmodifiable sorted set (with any possiblenull
member first) ofnames
.
-
getFieldInfos
public java.util.Collection<FieldInfo> getFieldInfos()
Returns an unmodifiable collection of theFieldInfo
s for this class, without any guarantee of order.If you need sorted order, instead use
getNames()
withgetFieldInfo(String)
.- Since:
- 1.16
-
-