public class DynamicMappedPropertyGetterByMethod extends DynamicPropertyGetterByMethodBase
beanEventTypeFactory, cache, eventBeanTypedEventFactory, sharableCode
EPTYPE, EPTYPEARRAY
Constructor and Description |
---|
DynamicMappedPropertyGetterByMethod(String fieldName,
String key,
EventBeanTypedEventFactory eventBeanTypedEventFactory,
BeanEventTypeFactory beanEventTypeFactory) |
Modifier and Type | Method and Description |
---|---|
protected Object |
call(DynamicPropertyDescriptorByMethod descriptor,
Object underlying)
Call the getter to obtains the return result object, or null if no such method exists.
|
protected CodegenExpression |
callCodegen(CodegenExpressionRef desc,
CodegenExpressionRef object,
CodegenMethodScope parent,
CodegenClassScope codegenClassScope) |
Method |
determineMethod(Class clazz)
To be implemented to return the method required, or null to indicate an appropriate method could not be found.
|
protected CodegenExpression |
determineMethodCodegen(CodegenExpressionRef clazz,
CodegenMethodScope parent,
CodegenClassScope codegenClassScope) |
static boolean |
dynamicMappedPropertyExists(DynamicPropertyDescriptorByMethod descriptor,
Object underlying,
String key)
NOTE: Code-generation-invoked method, method name and parameter order matters
|
static Object |
dynamicMappedPropertyGet(DynamicPropertyDescriptorByMethod descriptor,
Object underlying,
Object[] parameters)
NOTE: Code-generation-invoked method, method name and parameter order matters
|
static Method |
dynamicMapperPropertyDetermineMethod(Class clazz,
String getterMethodName)
NOTE: Code-generation-invoked method, method name and parameter order matters
|
boolean |
isExistsProperty(EventBean eventBean)
Returns true if the property exists, or false if the type does not have such a property.
|
CodegenExpression |
underlyingExistsCodegen(CodegenExpression underlyingExpression,
CodegenMethodScope parent,
CodegenClassScope codegenClassScope) |
cacheAndCall, cacheAndExists, cacheAndExistsCodegen, dynamicPropertyCacheAdd, dynamicPropertyCacheCheck, eventBeanExistsCodegen, eventBeanFragmentCodegen, eventBeanGetCodegen, get, getBeanProp, getBeanPropType, getFragment, getPopulateCache, getPopulateCacheCodegen, getTargetType, handleException, isBeanExistsProperty, underlyingFragmentCodegen, underlyingGetCodegen
public DynamicMappedPropertyGetterByMethod(String fieldName, String key, EventBeanTypedEventFactory eventBeanTypedEventFactory, BeanEventTypeFactory beanEventTypeFactory)
public Method determineMethod(Class clazz) throws PropertyAccessException
DynamicPropertyGetterByMethodBase
determineMethod
in class DynamicPropertyGetterByMethodBase
clazz
- to search for a matching methodPropertyAccessException
protected CodegenExpression determineMethodCodegen(CodegenExpressionRef clazz, CodegenMethodScope parent, CodegenClassScope codegenClassScope)
determineMethodCodegen
in class DynamicPropertyGetterByMethodBase
protected Object call(DynamicPropertyDescriptorByMethod descriptor, Object underlying)
DynamicPropertyGetterByMethodBase
call
in class DynamicPropertyGetterByMethodBase
descriptor
- provides method information for the classunderlying
- is the underlying object to ask for the property valueprotected CodegenExpression callCodegen(CodegenExpressionRef desc, CodegenExpressionRef object, CodegenMethodScope parent, CodegenClassScope codegenClassScope)
callCodegen
in class DynamicPropertyGetterByMethodBase
public CodegenExpression underlyingExistsCodegen(CodegenExpression underlyingExpression, CodegenMethodScope parent, CodegenClassScope codegenClassScope)
public boolean isExistsProperty(EventBean eventBean)
EventPropertyGetter
Useful for dynamic properties of the syntax "property?" and the dynamic nested/indexed/mapped versions. Dynamic nested properties follow the syntax "property?.nested" which is equivalent to "property?.nested?". If any of the properties in the path of a dynamic nested property return null, the dynamic nested property does not exists and the method returns false.
For non-dynamic properties, this method always returns true since a getter would not be available unless
eventBean
- is the event to check if the dynamic property existspublic static Method dynamicMapperPropertyDetermineMethod(Class clazz, String getterMethodName) throws PropertyAccessException
clazz
- classgetterMethodName
- methodPropertyAccessException
- for access expublic static Object dynamicMappedPropertyGet(DynamicPropertyDescriptorByMethod descriptor, Object underlying, Object[] parameters)
descriptor
- descriptorunderlying
- targetparameters
- paramspublic static boolean dynamicMappedPropertyExists(DynamicPropertyDescriptorByMethod descriptor, Object underlying, String key)
descriptor
- descriptorunderlying
- targetkey
- keyCopyright © 2005–2021. All rights reserved.