public class Reflection
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
Reflection.ReflectionException |
Constructor and Description |
---|
Reflection() |
Modifier and Type | Method and Description |
---|---|
static int |
arrayLength(java.lang.Object obj) |
static boolean |
classHasField(java.lang.Class<?> clz,
java.lang.String name)
Checks to see if a class has a field.
|
static boolean |
classHasStringField(java.lang.Class<?> clz,
java.lang.String name)
Checks to see if this class has a string field.
|
static <V> java.util.Map<java.lang.String,V> |
collectionToMap(java.lang.String propertyKey,
java.util.Collection<V> values) |
static <T> T |
copy(T item) |
static java.util.Collection<java.lang.Object> |
createCollection(java.lang.Class<?> type,
int size) |
static java.lang.Object |
fromMap(java.util.Map<java.lang.String,java.lang.Object> map) |
static <T> T |
fromMap(java.util.Map<java.lang.String,java.lang.Object> map,
java.lang.Class<T> clazz) |
static java.util.Map<java.lang.String,FieldAccess> |
getAllAccessorFields(java.lang.Class<? extends java.lang.Object> theClass) |
static java.util.Map<java.lang.String,FieldAccess> |
getAllAccessorFields(java.lang.Class<? extends java.lang.Object> theClass,
boolean useUnsafe) |
static java.util.List<java.lang.reflect.Field> |
getAllFields(java.lang.Class<? extends java.lang.Object> theClass) |
static java.lang.Class<?> |
getComponentType(java.util.Collection<?> value) |
static java.lang.Class<?> |
getComponentType(java.util.Collection<?> collection,
FieldAccess fieldAccess) |
static java.util.List<java.lang.reflect.Field> |
getFields(java.lang.Class<? extends java.lang.Object> theClass) |
static void |
getFields(java.lang.Class<? extends java.lang.Object> theClass,
java.util.List<java.lang.reflect.Field> list) |
static java.util.Map<java.lang.String,FieldAccess> |
getFieldsFromObject(java.lang.Object item)
Get fields from object or Map.
|
static java.lang.String |
getFirstComparableOrPrimitive(java.lang.Object value1)
This can be used for default sort.
|
static java.lang.String |
getFirstComparableOrPrimitiveFromClass(java.lang.Class<?> clz)
This can be used for default sort.
|
static java.lang.String |
getFirstStringFieldNameEndsWith(java.lang.Object value,
java.lang.String name)
getFirstStringFieldNameEndsWith
|
static java.lang.String |
getFirstStringFieldNameEndsWithFromClass(java.lang.Class<?> clz,
java.lang.String name)
getFirstStringFieldNameEndsWithFromClass
|
static java.lang.Object |
getProp(java.lang.Object object,
java.lang.String property)
This is one is forgiving of null paths.
|
static java.lang.Object |
getPropByPath(java.lang.Object item,
java.lang.String... path)
This method handles walking lists of lists.
|
static boolean |
getPropertyBoolean(java.lang.Object root,
java.lang.String... properties) |
static byte |
getPropertyByte(java.lang.Object root,
java.lang.String... properties) |
static char |
getPropertyChar(java.lang.Object root,
java.lang.String... properties) |
static double |
getPropertyDouble(java.lang.Object root,
java.lang.String... properties) |
static java.util.Map<java.lang.String,FieldAccess> |
getPropertyFieldAccessMap(java.lang.Class<?> clazz)
This returns getPropertyFieldFieldAccessMap(clazz, true, true);
|
static java.util.Map<java.lang.String,FieldAccess> |
getPropertyFieldAccessMap(java.lang.Class<?> clazz,
boolean useFieldFirst,
boolean useUnSafe)
Gets a list of fields merges with properties if field is not found.
|
static java.util.Map<java.lang.String,FieldAccess> |
getPropertyFieldAccessors(java.lang.Class<? extends java.lang.Object> theClass) |
static float |
getPropertyFloat(java.lang.Object root,
java.lang.String... properties) |
static int |
getPropertyInt(java.lang.Object root,
java.lang.String... properties)
Get an int property.
|
static long |
getPropertyLong(java.lang.Object root,
java.lang.String... properties) |
static java.util.Map<java.lang.String,Pair<java.lang.reflect.Method>> |
getPropertySetterGetterMethods(java.lang.Class<? extends java.lang.Object> theClass) |
static short |
getPropertyShort(java.lang.Object root,
java.lang.String... properties) |
static java.lang.Object |
getPropertyValue(java.lang.Object root,
java.lang.String... properties)
Get property value, loads nested properties
|
static java.lang.String |
getSortableField(java.lang.Object value1)
Gets the first sortable fields found.
|
static java.lang.String |
getSortableFieldFromClass(java.lang.Class<?> clazz)
Gets the first sortable field.
|
static boolean |
hasField(java.lang.Class<?> aClass,
java.lang.String name) |
static boolean |
hasField(java.lang.Object value1,
java.lang.String name)
Checks to if an instance has a field
|
static boolean |
hasStringField(java.lang.Object value1,
java.lang.String name)
Checks to see if we have a string field.
|
static java.lang.Object |
idx(java.lang.Object object,
int index) |
static void |
idx(java.lang.Object object,
int index,
java.lang.Object value) |
static java.lang.Object |
idx(java.lang.Object object,
java.lang.String path)
Get property value
|
static boolean |
idxBoolean(java.lang.Object object,
java.lang.String path) |
static byte |
idxByte(java.lang.Object object,
java.lang.String path) |
static char |
idxChar(java.lang.Object object,
java.lang.String path) |
static double |
idxDouble(java.lang.Object object,
java.lang.String path) |
static float |
idxFloat(java.lang.Object object,
java.lang.String path) |
static <T> T |
idxGeneric(java.lang.Class<T> t,
java.lang.Object object,
java.lang.String path) |
static int |
idxInt(java.lang.Object object,
java.lang.String path)
Get property value
|
static <T> java.util.List<T> |
idxList(java.lang.Class<T> cls,
java.lang.Object items,
java.lang.String... path) |
static long |
idxLong(java.lang.Object object,
java.lang.String path) |
static java.lang.Object |
idxRelax(java.lang.Object object,
java.lang.String path) |
static short |
idxShort(java.lang.Object object,
java.lang.String path) |
static boolean |
isArray(java.lang.Object obj) |
static java.util.Iterator |
iterator(java.lang.Object o) |
static java.lang.String |
joinBy(char delim,
java.lang.Object... args) |
static int |
len(java.lang.Object obj) |
static <T> T |
newInstance(java.lang.Class<T> clazz) |
static java.lang.Object |
newInstance(java.lang.String className) |
static java.util.Map<java.lang.String,java.lang.Object> |
toMap(java.lang.Object object) |
public static java.util.Map<java.lang.String,FieldAccess> getPropertyFieldAccessMap(java.lang.Class<?> clazz)
clazz
- gets the properties or fields of this class.getPropertyFieldAccessMap(Class, boolean, boolean)
public static java.util.Map<java.lang.String,FieldAccess> getPropertyFieldAccessMap(java.lang.Class<?> clazz, boolean useFieldFirst, boolean useUnSafe)
clazz
- get the properties or fieldsuseFieldFirst
- try to use the field first if this is setuseUnSafe
- use unsafe if it is available for speed.public static boolean hasStringField(java.lang.Object value1, java.lang.String name)
value1
- name
- public static boolean classHasStringField(java.lang.Class<?> clz, java.lang.String name)
clz
- name
- public static boolean hasField(java.lang.Object value1, java.lang.String name)
value1
- name
- public static boolean classHasField(java.lang.Class<?> clz, java.lang.String name)
clz
- name
- public static java.lang.String getFirstComparableOrPrimitive(java.lang.Object value1)
value1
- value we are analyzingpublic static java.lang.String getFirstComparableOrPrimitiveFromClass(java.lang.Class<?> clz)
clz
- class we are analyzingpublic static java.lang.String getFirstStringFieldNameEndsWith(java.lang.Object value, java.lang.String name)
value
- object we are looking atname
- namepublic static java.lang.String getFirstStringFieldNameEndsWithFromClass(java.lang.Class<?> clz, java.lang.String name)
clz
- class we are looking atname
- namepublic static java.lang.String getSortableField(java.lang.Object value1)
value1
- public static java.lang.String getSortableFieldFromClass(java.lang.Class<?> clazz)
clazz
- the class we are getting the sortable field from.public static java.util.Map<java.lang.String,FieldAccess> getFieldsFromObject(java.lang.Object item)
item
- public static java.lang.Object getPropertyValue(java.lang.Object root, java.lang.String... properties)
root
- properties
- public static <T> T idxGeneric(java.lang.Class<T> t, java.lang.Object object, java.lang.String path)
public static <T> java.util.List<T> idxList(java.lang.Class<T> cls, java.lang.Object items, java.lang.String... path)
public static java.lang.Object idx(java.lang.Object object, java.lang.String path)
object
- path
- in dotted notationpublic static java.lang.Object idxRelax(java.lang.Object object, java.lang.String path)
object
- path
- public static java.lang.Object getPropByPath(java.lang.Object item, java.lang.String... path)
item
- path
- public static java.lang.Object getProp(java.lang.Object object, java.lang.String property)
object
- property
- public static int getPropertyInt(java.lang.Object root, java.lang.String... properties)
public static int idxInt(java.lang.Object object, java.lang.String path)
object
- path
- in dotted notationpublic static byte getPropertyByte(java.lang.Object root, java.lang.String... properties)
root
- properties
- public static byte idxByte(java.lang.Object object, java.lang.String path)
object
- path
- public static float getPropertyFloat(java.lang.Object root, java.lang.String... properties)
root
- properties
- public static float idxFloat(java.lang.Object object, java.lang.String path)
object
- path
- public static short getPropertyShort(java.lang.Object root, java.lang.String... properties)
root
- properties
- public static short idxShort(java.lang.Object object, java.lang.String path)
object
- path
- public static char getPropertyChar(java.lang.Object root, java.lang.String... properties)
root
- properties
- public static char idxChar(java.lang.Object object, java.lang.String path)
object
- path
- public static double getPropertyDouble(java.lang.Object root, java.lang.String... properties)
root
- properties
- public static double idxDouble(java.lang.Object object, java.lang.String path)
object
- path
- public static long getPropertyLong(java.lang.Object root, java.lang.String... properties)
root
- properties
- public static long idxLong(java.lang.Object object, java.lang.String path)
object
- path
- public static boolean getPropertyBoolean(java.lang.Object root, java.lang.String... properties)
root
- properties
- public static boolean idxBoolean(java.lang.Object object, java.lang.String path)
public static boolean hasField(java.lang.Class<?> aClass, java.lang.String name)
public static boolean isArray(java.lang.Object obj)
public static int len(java.lang.Object obj)
public static int arrayLength(java.lang.Object obj)
public static java.lang.Object idx(java.lang.Object object, int index)
public static void idx(java.lang.Object object, int index, java.lang.Object value)
public static java.lang.Object newInstance(java.lang.String className)
public static <T> T newInstance(java.lang.Class<T> clazz)
public static <T> T fromMap(java.util.Map<java.lang.String,java.lang.Object> map, java.lang.Class<T> clazz)
public static java.lang.Object fromMap(java.util.Map<java.lang.String,java.lang.Object> map)
public static java.util.Collection<java.lang.Object> createCollection(java.lang.Class<?> type, int size)
public static java.util.Map<java.lang.String,java.lang.Object> toMap(java.lang.Object object)
public static java.lang.Class<?> getComponentType(java.util.Collection<?> collection, FieldAccess fieldAccess)
public static java.lang.Class<?> getComponentType(java.util.Collection<?> value)
public static java.util.Map<java.lang.String,FieldAccess> getAllAccessorFields(java.lang.Class<? extends java.lang.Object> theClass)
public static java.util.Map<java.lang.String,FieldAccess> getAllAccessorFields(java.lang.Class<? extends java.lang.Object> theClass, boolean useUnsafe)
public static <V> java.util.Map<java.lang.String,V> collectionToMap(java.lang.String propertyKey, java.util.Collection<V> values)
public static java.util.List<java.lang.reflect.Field> getAllFields(java.lang.Class<? extends java.lang.Object> theClass)
public static java.util.Map<java.lang.String,FieldAccess> getPropertyFieldAccessors(java.lang.Class<? extends java.lang.Object> theClass)
public static java.util.Map<java.lang.String,Pair<java.lang.reflect.Method>> getPropertySetterGetterMethods(java.lang.Class<? extends java.lang.Object> theClass)
public static void getFields(java.lang.Class<? extends java.lang.Object> theClass, java.util.List<java.lang.reflect.Field> list)
public static java.util.List<java.lang.reflect.Field> getFields(java.lang.Class<? extends java.lang.Object> theClass)
public static <T> T copy(T item)
public static java.util.Iterator iterator(java.lang.Object o)
public static java.lang.String joinBy(char delim, java.lang.Object... args)