public abstract class MapNestedEntryPropertyGetterBase extends Object implements MapEventPropertyGetter
Modifier and Type | Field and Description |
---|---|
protected EventAdapterService |
eventAdapterService |
protected EventType |
fragmentType |
protected String |
propertyMap |
Constructor and Description |
---|
MapNestedEntryPropertyGetterBase(String propertyMap,
EventType fragmentType,
EventAdapterService eventAdapterService)
Ctor.
|
protected final String propertyMap
protected final EventType fragmentType
protected final EventAdapterService eventAdapterService
public MapNestedEntryPropertyGetterBase(String propertyMap, EventType fragmentType, EventAdapterService eventAdapterService)
propertyMap
- the property to look ateventAdapterService
- factory for event beans and event typesfragmentType
- type of the entry returnedpublic abstract CodegenExpression handleNestedValueCodegen(CodegenExpression name, CodegenContext context)
public abstract CodegenExpression handleNestedValueFragmentCodegen(CodegenExpression name, CodegenContext context)
public Object getMap(Map<String,Object> map) throws PropertyAccessException
MapEventPropertyGetter
getMap
in interface MapEventPropertyGetter
map
- to interrogatePropertyAccessException
- for property access errorspublic boolean isMapExistsProperty(Map<String,Object> map)
MapEventPropertyGetter
isMapExistsProperty
in interface MapEventPropertyGetter
map
- to interrogatepublic Object get(EventBean obj)
EventPropertyGetter
get
in interface EventPropertyGetter
obj
- is the event to get the value of a property frompublic 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 existspublic Object getFragment(EventBean obj)
EventPropertyGetter
EventBean
or array of EventBean
for a property name or property expression.
For use with properties whose value is itself an event or whose value can be represented as an event by the underlying event representation.
The EventType
of the EventBean
instance(s) returned by this method can be determined by
EventType.getFragmentType(String)
. Use EventPropertyDescriptor
to
obtain a list of properties that return fragments from an event type.
Returns null if the property value is null or the property value cannot be represented as a fragment by the underlying representation.
getFragment
in interface EventPropertyGetter
obj
- is the event to get the fragment value of a propertypublic CodegenExpression codegenEventBeanGet(CodegenExpression beanExpression, CodegenContext context)
codegenEventBeanGet
in interface EventPropertyGetterSPI
public CodegenExpression codegenEventBeanExists(CodegenExpression beanExpression, CodegenContext context)
codegenEventBeanExists
in interface EventPropertyGetterSPI
public CodegenExpression codegenEventBeanFragment(CodegenExpression beanExpression, CodegenContext context)
codegenEventBeanFragment
in interface EventPropertyGetterSPI
public CodegenExpression codegenUnderlyingGet(CodegenExpression underlyingExpression, CodegenContext context)
codegenUnderlyingGet
in interface EventPropertyGetterSPI
public CodegenExpression codegenUnderlyingExists(CodegenExpression underlyingExpression, CodegenContext context)
codegenUnderlyingExists
in interface EventPropertyGetterSPI
public CodegenExpression codegenUnderlyingFragment(CodegenExpression underlyingExpression, CodegenContext context)
codegenUnderlyingFragment
in interface EventPropertyGetterSPI