public class NestedPropertyGetter extends BaseNativePropertyGetter implements BeanEventPropertyGetter
Constructor and Description |
---|
NestedPropertyGetter(List<EventPropertyGetter> getterChain,
EventAdapterService eventAdapterService,
Class finalPropertyType,
Class finalGenericType)
Ctor.
|
Modifier and Type | Method and Description |
---|---|
Object |
get(EventBean eventBean)
Return the value for the property in the event object specified when the instance was obtained.
|
Object |
getBeanProp(Object value)
Returns the property as an object.
|
boolean |
isBeanExistsProperty(Object value)
Returns true if the dynamic property exists.
|
boolean |
isExistsProperty(EventBean eventBean)
Returns true if the property exists, or false if the type does not have such a property.
|
getFragment, getFragmentDynamic
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getFragment
public NestedPropertyGetter(List<EventPropertyGetter> getterChain, EventAdapterService eventAdapterService, Class finalPropertyType, Class finalGenericType)
getterChain
- is the chain of getters to retrieve each nested propertyeventAdapterService
- is the cache and factory for event bean types and event wrappersfinalPropertyType
- type of the entry returnedfinalGenericType
- generic type parameter of the entry returned, if anypublic Object getBeanProp(Object value) throws PropertyAccessException
BeanEventPropertyGetter
getBeanProp
in interface BeanEventPropertyGetter
value
- to evaluatePropertyAccessException
- if access failedpublic boolean isBeanExistsProperty(Object value)
BeanEventPropertyGetter
isBeanExistsProperty
in interface BeanEventPropertyGetter
value
- to evaluatepublic Object get(EventBean eventBean) throws PropertyAccessException
EventPropertyGetter
get
in interface EventPropertyGetter
eventBean
- is the event to get the value of a property fromPropertyAccessException
- to indicate that property access failedpublic 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
isExistsProperty
in interface EventPropertyGetter
eventBean
- is the event to check if the dynamic property exists