Package org.sqlproc.engine.plugin
Class DefaultBeanUtilsPlugin
- java.lang.Object
-
- org.sqlproc.engine.plugin.DefaultBeanUtilsPlugin
-
- All Implemented Interfaces:
BeanUtilsPlugin
public class DefaultBeanUtilsPlugin extends Object implements BeanUtilsPlugin
Standard bean utilities implementation.- Author:
- Vladimir Hudec
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.sqlproc.engine.plugin.BeanUtilsPlugin
BeanUtilsPlugin.GetterType
-
-
Field Summary
Fields Modifier and Type Field Description protected ConcurrentHashMap<String,Constructor<?>>
constructors
protected ConcurrentHashMap<String,PropertyDescriptor[]>
descriptors
protected ConcurrentHashMap<String,Method>
enumsIn
protected ConcurrentHashMap<String,Method>
enumsOut
protected ConcurrentHashMap<String,Method>
getters
(package private) org.slf4j.Logger
logger
The internal slf4j logger.protected ConcurrentHashMap<String,Method>
methods
protected ConcurrentHashMap<String,Class<?>[]>
parameterizedTypes
protected ConcurrentHashMap<String,Method>
setters
protected ConcurrentHashMap<String,BeanUtilsPlugin.GetterType>
typeGetters
protected ConcurrentHashMap<String,Class<?>>
types
-
Constructor Summary
Constructors Constructor Description DefaultBeanUtilsPlugin()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
areTheSameParameters(Class<?> methodParameterType, Class<?> parameterType)
protected String
attrTypes2String(Class<?>... attrTypes)
boolean
checkAttribute(SqlRuntimeContext runtimeCtx, Object bean, String attrName)
Checks the attribute getter method existence.boolean
checkMethod(SqlRuntimeContext runtimeCtx, Class<?> clazz, String methodName, Class<?>... argTypes)
Checks the class method existence.boolean
checkMethod(SqlRuntimeContext runtimeCtx, Object bean, String methodName, Object... args)
Checks the bean method existence.protected String
debugInfo(String msg, Object bean, Method method, Object... args)
Object
getAttribute(SqlRuntimeContext runtimeCtx, Object bean, String attrName)
Returns the value of the specified simple attribute of the specified bean.protected PropertyDescriptor
getAttributeDescriptor(Class<?> clazz, String attrName)
Class<?>[]
getAttributeParameterizedTypes(SqlRuntimeContext runtimeCtx, Class<?> clazz, String attrName)
Returns the Java parameterized type info for the attribute, if there is one.Class<?>
getAttributeType(SqlRuntimeContext runtimeCtx, Class<?> clazz, String attrName)
Returns the Java type info for the attribute, if there is one.protected PropertyDescriptor[]
getDescriptors(Class<?> clazz)
Class<?>
getEnumToClass(SqlRuntimeContext runtimeCtx, Class<?> clazz)
Returns the bean enumeration type.Object
getEnumToValue(SqlRuntimeContext runtimeCtx, Object bean)
Returns the bean enumeration value.protected Method
getGetter(SqlRuntimeContext runtimeCtx, Class<?> clazz, String attrName, boolean onlyCheck)
BeanUtilsPlugin.GetterType
getGetterType(SqlRuntimeContext runtimeCtx, Class<?> clazz, String attrName)
Returns the attribute getter method types, if there is one.BeanUtilsPlugin.GetterType
getGetterType(SqlRuntimeContext runtimeCtx, Object bean, String attrName)
Returns the attribute getter method types, if there is one.Object
getInstance(SqlRuntimeContext runtimeCtx, Class<?> clazz)
Returns the new class instanceprotected Constructor<?>
getInstanceConstructor(SqlRuntimeContext runtimeCtx, Class<?> clazz)
protected Method
getInterfaceMethod(Class<?> clazz, String methodName, Class<?>[] parameterTypes)
protected Method
getMethod(Class<?> clazz, Method method, boolean onlyCheck)
protected Method
getMethod(Class<?> clazz, String methodName, boolean onlyCheck, Class<?>... parameterTypes)
protected Class<?>
getPrimitiveWrapper(Class<?> primitiveType)
protected Method
getSetter(SqlRuntimeContext runtimeCtx, Class<?> clazz, String attrName, boolean onlyCheck, Class<?>... attrTypes)
protected Method
getSetter(SqlRuntimeContext runtimeCtx, Object bean, String attrName, boolean onlyCheck, Class<?>... attrTypes)
protected Method
getSuperclassMethod(Class<?> clazz, String methodName, Class<?>[] parameterTypes)
Object
getValueToEnum(SqlRuntimeContext runtimeCtx, Class<?> clazz, Object val)
Returns the enumeration instance for the enumeration valueprotected Object
invokeMethod(SqlRuntimeContext runtimeCtx, Class<?> clazz, Object bean, String methodName, Object... args)
Object
invokeMethod(SqlRuntimeContext runtimeCtx, Class<?> clazz, String methodName, Object... args)
Invokes the class method with the specified name and parameters.protected Object
invokeMethod(SqlRuntimeContext runtimeCtx, Object bean, Method method, Object... args)
Object
invokeMethod(SqlRuntimeContext runtimeCtx, Object bean, String methodName, Object... args)
Invokes the bean method with the specified name and parameters.void
setAttribute(SqlRuntimeContext runtimeCtx, Object bean, String attrName, Object attrValue)
Sets the value of the specified simple attribute of the specified bean.boolean
simpleSetAttribute(SqlRuntimeContext runtimeCtx, Object bean, String attrName, Object attrValue, Class<?>... attrTypes)
Sets the value of the specified simple attribute of the specified bean, if there is one.protected Object[]
toArray(Object arg)
protected Class<?>[]
toParameterTypes(Object arg)
protected Class<?>[]
toParameterTypes(Object[] args)
-
-
-
Field Detail
-
constructors
protected ConcurrentHashMap<String,Constructor<?>> constructors
-
descriptors
protected ConcurrentHashMap<String,PropertyDescriptor[]> descriptors
-
types
protected ConcurrentHashMap<String,Class<?>> types
-
parameterizedTypes
protected ConcurrentHashMap<String,Class<?>[]> parameterizedTypes
-
getters
protected ConcurrentHashMap<String,Method> getters
-
typeGetters
protected ConcurrentHashMap<String,BeanUtilsPlugin.GetterType> typeGetters
-
setters
protected ConcurrentHashMap<String,Method> setters
-
methods
protected ConcurrentHashMap<String,Method> methods
-
enumsIn
protected ConcurrentHashMap<String,Method> enumsIn
-
enumsOut
protected ConcurrentHashMap<String,Method> enumsOut
-
logger
final org.slf4j.Logger logger
The internal slf4j logger.
-
-
Method Detail
-
getInstanceConstructor
protected Constructor<?> getInstanceConstructor(SqlRuntimeContext runtimeCtx, Class<?> clazz)
-
getInstance
public Object getInstance(SqlRuntimeContext runtimeCtx, Class<?> clazz)
Returns the new class instance- Specified by:
getInstance
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextclazz
- the class to be constructed- Returns:
- the new class instance. Null in the case of any error.
-
getDescriptors
protected PropertyDescriptor[] getDescriptors(Class<?> clazz)
-
getAttributeDescriptor
protected PropertyDescriptor getAttributeDescriptor(Class<?> clazz, String attrName)
-
getAttributeType
public Class<?> getAttributeType(SqlRuntimeContext runtimeCtx, Class<?> clazz, String attrName)
Description copied from interface:BeanUtilsPlugin
Returns the Java type info for the attribute, if there is one.- Specified by:
getAttributeType
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextclazz
- the class for which the attribute type is requestedattrName
- the name of the attribute which type is requested- Returns:
- the object that represents the Java type info. Null in the case there's no such attribute.
-
getAttributeParameterizedTypes
public Class<?>[] getAttributeParameterizedTypes(SqlRuntimeContext runtimeCtx, Class<?> clazz, String attrName)
Description copied from interface:BeanUtilsPlugin
Returns the Java parameterized type info for the attribute, if there is one.- Specified by:
getAttributeParameterizedTypes
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextclazz
- the class for which the attribute type is requestedattrName
- the name of the attribute which type is requested- Returns:
- the object that represents the Java parameterized type info. Null in the case there's no such attribute.
-
getGetter
protected Method getGetter(SqlRuntimeContext runtimeCtx, Class<?> clazz, String attrName, boolean onlyCheck)
-
getGetterType
public BeanUtilsPlugin.GetterType getGetterType(SqlRuntimeContext runtimeCtx, Class<?> clazz, String attrName)
Returns the attribute getter method types, if there is one.- Specified by:
getGetterType
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextclazz
- the class for which the getter is requestedattrName
- the name of the attribute which getter is requested- Returns:
- The method that should be used to read the property value. Null in the case there's no such attribute's getter.
-
getGetterType
public BeanUtilsPlugin.GetterType getGetterType(SqlRuntimeContext runtimeCtx, Object bean, String attrName)
Returns the attribute getter method types, if there is one.- Specified by:
getGetterType
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextbean
- the bean for which the getter is requestedattrName
- the name of the attribute which getter is requested- Returns:
- The getter method types that should be used to read the property value. Null in the case there's no such attribute's getter.
-
checkAttribute
public boolean checkAttribute(SqlRuntimeContext runtimeCtx, Object bean, String attrName)
Checks the attribute getter method existence.- Specified by:
checkAttribute
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextbean
- the bean for which the getter is checkedattrName
- the name of the attribute which getter is checked- Returns:
- True if there's the attribute getter method
-
getAttribute
public Object getAttribute(SqlRuntimeContext runtimeCtx, Object bean, String attrName) throws SqlRuntimeException
Returns the value of the specified simple attribute of the specified bean.- Specified by:
getAttribute
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextbean
- the bean for which the attribute value is requestedattrName
- the name of the attribute which value is requested- Returns:
- the attribute value
- Throws:
SqlRuntimeException
- in the case of any error
-
getSetter
protected Method getSetter(SqlRuntimeContext runtimeCtx, Class<?> clazz, String attrName, boolean onlyCheck, Class<?>... attrTypes)
-
getSetter
protected Method getSetter(SqlRuntimeContext runtimeCtx, Object bean, String attrName, boolean onlyCheck, Class<?>... attrTypes)
-
simpleSetAttribute
public boolean simpleSetAttribute(SqlRuntimeContext runtimeCtx, Object bean, String attrName, Object attrValue, Class<?>... attrTypes)
Sets the value of the specified simple attribute of the specified bean, if there is one.- Specified by:
simpleSetAttribute
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextbean
- the bean for which the attribute value is to be modifiedattrName
- the name of the attribute to be modifiedattrValue
- the value to which the attribute should be setattrTypes
- the possible attribute types- Returns:
- True if the attribute was successfully modified
-
setAttribute
public void setAttribute(SqlRuntimeContext runtimeCtx, Object bean, String attrName, Object attrValue) throws SqlRuntimeException
Sets the value of the specified simple attribute of the specified bean.- Specified by:
setAttribute
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextbean
- the bean for which the attribute value is to be modifiedattrName
- the name of the attribute to be modifiedattrValue
- the value to which the attribute should be set- Throws:
SqlRuntimeException
- in the case of any error
-
getInterfaceMethod
protected Method getInterfaceMethod(Class<?> clazz, String methodName, Class<?>[] parameterTypes)
-
getSuperclassMethod
protected Method getSuperclassMethod(Class<?> clazz, String methodName, Class<?>[] parameterTypes)
-
getMethod
protected Method getMethod(Class<?> clazz, String methodName, boolean onlyCheck, Class<?>... parameterTypes)
-
areTheSameParameters
protected final boolean areTheSameParameters(Class<?> methodParameterType, Class<?> parameterType)
-
invokeMethod
protected Object invokeMethod(SqlRuntimeContext runtimeCtx, Object bean, Method method, Object... args)
-
checkMethod
public boolean checkMethod(SqlRuntimeContext runtimeCtx, Class<?> clazz, String methodName, Class<?>... argTypes)
Checks the class method existence.- Specified by:
checkMethod
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextclazz
- the class for which the method existence is checkedmethodName
- the name of the method to be checkedargTypes
- the method parameters types- Returns:
- True if there's such a method
-
checkMethod
public boolean checkMethod(SqlRuntimeContext runtimeCtx, Object bean, String methodName, Object... args)
Checks the bean method existence.- Specified by:
checkMethod
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextbean
- the bean for which the method existence is checkedmethodName
- the name of the method to be checkedargs
- the method parameters- Returns:
- True if there's such a method
-
invokeMethod
public Object invokeMethod(SqlRuntimeContext runtimeCtx, Class<?> clazz, String methodName, Object... args) throws SqlRuntimeException
Invokes the class method with the specified name and parameters. The method can be a static one.- Specified by:
invokeMethod
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextclazz
- the class which method is going to be invokedmethodName
- the requested method nameargs
- the method parameters- Returns:
- the result of the method invocation
- Throws:
SqlRuntimeException
- in the case of any error
-
invokeMethod
public Object invokeMethod(SqlRuntimeContext runtimeCtx, Object bean, String methodName, Object... args) throws SqlRuntimeException
Invokes the bean method with the specified name and parameters.- Specified by:
invokeMethod
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextbean
- the bean which method is going to be invokedmethodName
- the requested method nameargs
- the method parameters- Returns:
- the result of the method invocation
- Throws:
SqlRuntimeException
- in the case of any error
-
invokeMethod
protected Object invokeMethod(SqlRuntimeContext runtimeCtx, Class<?> clazz, Object bean, String methodName, Object... args) throws SqlRuntimeException
- Throws:
SqlRuntimeException
-
getEnumToValue
public Object getEnumToValue(SqlRuntimeContext runtimeCtx, Object bean)
Returns the bean enumeration value.- Specified by:
getEnumToValue
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextbean
- the bean of the enumeration type- Returns:
- the enumeration value. Null in the case of any error.
-
getEnumToClass
public Class<?> getEnumToClass(SqlRuntimeContext runtimeCtx, Class<?> clazz)
Returns the bean enumeration type.- Specified by:
getEnumToClass
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextclazz
- the class of the enumeration type- Returns:
- the enumeration type. Null in the case of any error.
-
getValueToEnum
public Object getValueToEnum(SqlRuntimeContext runtimeCtx, Class<?> clazz, Object val)
Returns the enumeration instance for the enumeration value- Specified by:
getValueToEnum
in interfaceBeanUtilsPlugin
- Parameters:
runtimeCtx
- the public runtime contextclazz
- the class of the enumeration typeval
- the enumeration value- Returns:
- the enumeration instance. Null in the case of any error.
-
-