Package de.intarsys.tools.reflect
Class ObjectTools
- java.lang.Object
-
- de.intarsys.tools.reflect.ObjectTools
-
public class ObjectTools extends java.lang.Object
A tool class for convenient object related tasks.This tool contains some simple reflection implementations.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
GET_PREFIX
static java.lang.String
IS_PREFIX
-
Constructor Summary
Constructors Constructor Description ObjectTools()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description protected static java.lang.Object
basicGet(java.lang.Object object, java.lang.String name)
protected static java.lang.Object
basicInsert(java.lang.Object object, java.lang.String name, java.lang.Object value)
protected static java.lang.Object
basicInvoke(java.lang.Object object, java.lang.String name, java.lang.Object... values)
protected static java.lang.Object
basicRemove(java.lang.Object object, java.lang.String name, java.lang.Object value)
protected static java.lang.Object
basicSet(java.lang.Object object, java.lang.String name, java.lang.Object value)
protected static boolean
checkCandidate(java.lang.reflect.Method method, java.lang.String methodName, java.lang.Class[] pClasses)
protected static boolean
checkCandidateClass(java.lang.Class mClass, java.lang.Class pClass)
protected static boolean
checkCandidateClasses(java.lang.Class[] mClasses, java.lang.Class[] pClasses)
static <T> T
createObject(java.lang.Class clazz, java.lang.Class<T> expectedClass)
Create a new instance of Class "class"static <T> T
createObject(java.lang.Class clazz, java.lang.Class<T> expectedClass, java.lang.Class[] parameterTypes, java.lang.Object[] parameters)
Create a new instance of Class "class"static <T> T
createObject(java.lang.String className, java.lang.Class<T> expectedClass, java.lang.ClassLoader classLoader)
Create a new instance of Class "className" via "classLoader".protected static java.lang.reflect.Method
findAnyMethod(java.lang.Class clazz, java.lang.String name, java.lang.Class... classes)
static java.lang.reflect.Method
findGetter(java.lang.Object object, java.lang.String name)
static java.lang.reflect.Method
findInserter(java.lang.Object object, java.lang.String attribute, java.lang.Object value)
protected static java.lang.reflect.Method
findMatchingMethod(java.lang.Class clazz, java.lang.String name, java.lang.Class[] classes)
static java.lang.reflect.Method
findMethod(java.lang.Object object, java.lang.String methodName, java.lang.Object... parameters)
static java.lang.reflect.Method
findRemover(java.lang.Object object, java.lang.String attribute, java.lang.Object value)
static java.lang.reflect.Method
findSetter(java.lang.Object object, java.lang.String attribute, java.lang.Object value)
protected static java.lang.reflect.Method
findSimpleMethod(java.lang.Class clazz, java.lang.String name, java.lang.Class... classes)
static java.lang.Object
get(java.lang.Object object, java.lang.String name)
Get the value for fieldname
inobject
.static java.lang.Object
insert(java.lang.Object object, java.lang.String name, java.lang.Object value)
Insertvalue
in the relation fieldname
inobject
.static java.lang.Object
invoke(java.lang.Object object, java.lang.String name, java.lang.Object... values)
Invoke methodname
inobject
.static java.lang.Object
remove(java.lang.Object object, java.lang.String name, java.lang.Object value)
Removevalue
in the relation fieldname
inobject
.static java.lang.Object
set(java.lang.Object object, java.lang.String name, java.lang.Object value)
Set fieldname
inobject
tovalue
.
-
-
-
Field Detail
-
GET_PREFIX
public static final java.lang.String GET_PREFIX
- See Also:
- Constant Field Values
-
IS_PREFIX
public static final java.lang.String IS_PREFIX
- See Also:
- Constant Field Values
-
-
Method Detail
-
basicGet
protected static java.lang.Object basicGet(java.lang.Object object, java.lang.String name) throws FieldException
- Throws:
FieldException
-
basicInsert
protected static java.lang.Object basicInsert(java.lang.Object object, java.lang.String name, java.lang.Object value) throws FieldException
- Throws:
FieldException
-
basicInvoke
protected static java.lang.Object basicInvoke(java.lang.Object object, java.lang.String name, java.lang.Object... values) throws MethodException
- Throws:
MethodException
-
basicRemove
protected static java.lang.Object basicRemove(java.lang.Object object, java.lang.String name, java.lang.Object value) throws FieldException
- Throws:
FieldException
-
basicSet
protected static java.lang.Object basicSet(java.lang.Object object, java.lang.String name, java.lang.Object value) throws FieldException
- Throws:
FieldException
-
checkCandidate
protected static boolean checkCandidate(java.lang.reflect.Method method, java.lang.String methodName, java.lang.Class[] pClasses)
-
checkCandidateClass
protected static boolean checkCandidateClass(java.lang.Class mClass, java.lang.Class pClass)
-
checkCandidateClasses
protected static boolean checkCandidateClasses(java.lang.Class[] mClasses, java.lang.Class[] pClasses)
-
createObject
public static <T> T createObject(java.lang.Class clazz, java.lang.Class<T> expectedClass) throws ObjectCreationException
Create a new instance of Class "class"- Parameters:
clazz
-expectedClass
-- Returns:
- The new instance
- Throws:
ObjectCreationException
-
createObject
public static <T> T createObject(java.lang.Class clazz, java.lang.Class<T> expectedClass, java.lang.Class[] parameterTypes, java.lang.Object[] parameters) throws ObjectCreationException
Create a new instance of Class "class"- Parameters:
className
-expectedClass
-parameterTypes
-parameters
-- Returns:
- The new instance
- Throws:
ObjectCreationException
-
createObject
public static <T> T createObject(java.lang.String className, java.lang.Class<T> expectedClass, java.lang.ClassLoader classLoader) throws ObjectCreationException
Create a new instance of Class "className" via "classLoader".- Parameters:
className
-expectedClass
-classLoader
-- Returns:
- The new instance
- Throws:
ObjectCreationException
-
findAnyMethod
protected static java.lang.reflect.Method findAnyMethod(java.lang.Class clazz, java.lang.String name, java.lang.Class... classes) throws MethodException
- Throws:
MethodException
-
findGetter
public static java.lang.reflect.Method findGetter(java.lang.Object object, java.lang.String name) throws MethodException
- Throws:
MethodException
-
findInserter
public static java.lang.reflect.Method findInserter(java.lang.Object object, java.lang.String attribute, java.lang.Object value) throws MethodException
- Throws:
MethodException
-
findMatchingMethod
protected static java.lang.reflect.Method findMatchingMethod(java.lang.Class clazz, java.lang.String name, java.lang.Class[] classes) throws MethodException
- Throws:
MethodException
-
findMethod
public static java.lang.reflect.Method findMethod(java.lang.Object object, java.lang.String methodName, java.lang.Object... parameters) throws MethodException
- Throws:
MethodException
-
findRemover
public static java.lang.reflect.Method findRemover(java.lang.Object object, java.lang.String attribute, java.lang.Object value) throws MethodException
- Throws:
MethodException
-
findSetter
public static java.lang.reflect.Method findSetter(java.lang.Object object, java.lang.String attribute, java.lang.Object value) throws MethodException
- Throws:
MethodException
-
findSimpleMethod
protected static java.lang.reflect.Method findSimpleMethod(java.lang.Class clazz, java.lang.String name, java.lang.Class... classes) throws MethodException
- Throws:
MethodException
-
get
public static java.lang.Object get(java.lang.Object object, java.lang.String name) throws FieldException
Get the value for fieldname
inobject
.- Parameters:
object
-name
-- Returns:
- the value for field
name
inobject
. - Throws:
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
java.lang.NoSuchFieldException
FieldException
-
insert
public static java.lang.Object insert(java.lang.Object object, java.lang.String name, java.lang.Object value) throws FieldException
Insertvalue
in the relation fieldname
inobject
. The value that was really inserted is returned (if supported by the underlying object implementation). To be exact, the result of the insert method invoked is returned.- Parameters:
object
-name
-value
-- Returns:
- the result of the insert method invoked is returned.
- Throws:
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
java.lang.NoSuchFieldException
FieldException
-
invoke
public static java.lang.Object invoke(java.lang.Object object, java.lang.String name, java.lang.Object... values) throws MethodException
Invoke methodname
inobject
. The result of the invocation is returned.- Parameters:
object
-name
-values
-- Returns:
- The result of the invocation is returned.
- Throws:
MethodException
-
remove
public static java.lang.Object remove(java.lang.Object object, java.lang.String name, java.lang.Object value) throws FieldException
Removevalue
in the relation fieldname
inobject
. The value that was removed is returned (if supported by the underlying object implementation). To be exact, the result of the remove method invoked is returned.- Parameters:
object
-name
-value
-- Returns:
- the result of the remove method invoked is returned.
- Throws:
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
java.lang.NoSuchFieldException
FieldException
-
set
public static java.lang.Object set(java.lang.Object object, java.lang.String name, java.lang.Object value) throws FieldException
Set fieldname
inobject
tovalue
. The old value is returned (if supported by the underlying object implementation). To be exact, the result of the setter method invoked is returned.- Parameters:
object
-name
-value
-- Returns:
- the result of the setter method invoked is returned.
- Throws:
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
java.lang.NoSuchFieldException
FieldException
-
-