public class DOMMapGetter extends Object implements EventPropertyGetterSPI, DOMPropertyGetter
Constructor and Description |
---|
DOMMapGetter(String propertyName,
String mapKey,
FragmentFactory fragmentFactory)
Ctor.
|
Modifier and Type | Method and Description |
---|---|
CodegenExpression |
eventBeanExistsCodegen(CodegenExpression beanExpression,
CodegenContext context) |
CodegenExpression |
eventBeanFragmentCodegen(CodegenExpression beanExpression,
CodegenContext context) |
CodegenExpression |
eventBeanGetCodegen(CodegenExpression beanExpression,
CodegenContext context) |
Object |
get(EventBean eventBean)
Return the value for the property in the event object specified when the instance was obtained.
|
Object |
getFragment(EventBean eventBean)
|
static Node |
getNodeValue(Node node,
String propertyMap,
String mapKey)
NOTE: Code-generation-invoked method, method name and parameter order matters
|
static boolean |
getNodeValueExists(Node node,
String propertyMap,
String mapKey)
NOTE: Code-generation-invoked method, method name and parameter order matters
|
Object |
getValueAsFragment(Node node)
Returns a property value as a fragment.
|
CodegenExpression |
getValueAsFragmentCodegen(CodegenExpression value,
CodegenContext context) |
Node |
getValueAsNode(Node node)
Returns a property value as a node.
|
Node[] |
getValueAsNodeArray(Node node)
Returns a property value that is indexed as a node array.
|
CodegenExpression |
getValueAsNodeArrayCodegen(CodegenExpression value,
CodegenContext context) |
CodegenExpression |
getValueAsNodeCodegen(CodegenExpression value,
CodegenContext context) |
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,
CodegenContext context) |
CodegenExpression |
underlyingFragmentCodegen(CodegenExpression underlyingExpression,
CodegenContext context) |
CodegenExpression |
underlyingGetCodegen(CodegenExpression underlyingExpression,
CodegenContext context) |
public DOMMapGetter(String propertyName, String mapKey, FragmentFactory fragmentFactory)
propertyName
- property namemapKey
- key in mapfragmentFactory
- for creating fragmentspublic static Node getNodeValue(Node node, String propertyMap, String mapKey)
node
- nodepropertyMap
- propertymapKey
- keypublic static boolean getNodeValueExists(Node node, String propertyMap, String mapKey)
node
- nodepropertyMap
- propertymapKey
- keypublic Node[] getValueAsNodeArray(Node node)
DOMPropertyGetter
getValueAsNodeArray
in interface DOMPropertyGetter
node
- to evaluatepublic Object getValueAsFragment(Node node)
DOMPropertyGetter
getValueAsFragment
in interface DOMPropertyGetter
node
- to evaluatepublic Node getValueAsNode(Node node)
DOMPropertyGetter
getValueAsNode
in interface DOMPropertyGetter
node
- 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 existspublic Object getFragment(EventBean eventBean)
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
eventBean
- is the event to get the fragment value of a propertypublic CodegenExpression eventBeanGetCodegen(CodegenExpression beanExpression, CodegenContext context)
eventBeanGetCodegen
in interface EventPropertyGetterSPI
public CodegenExpression eventBeanExistsCodegen(CodegenExpression beanExpression, CodegenContext context)
eventBeanExistsCodegen
in interface EventPropertyGetterSPI
public CodegenExpression eventBeanFragmentCodegen(CodegenExpression beanExpression, CodegenContext context)
eventBeanFragmentCodegen
in interface EventPropertyGetterSPI
public CodegenExpression underlyingGetCodegen(CodegenExpression underlyingExpression, CodegenContext context)
underlyingGetCodegen
in interface EventPropertyGetterSPI
public CodegenExpression underlyingExistsCodegen(CodegenExpression underlyingExpression, CodegenContext context)
underlyingExistsCodegen
in interface EventPropertyGetterSPI
public CodegenExpression underlyingFragmentCodegen(CodegenExpression underlyingExpression, CodegenContext context)
underlyingFragmentCodegen
in interface EventPropertyGetterSPI
public CodegenExpression getValueAsNodeCodegen(CodegenExpression value, CodegenContext context)
getValueAsNodeCodegen
in interface DOMPropertyGetter
public CodegenExpression getValueAsNodeArrayCodegen(CodegenExpression value, CodegenContext context)
getValueAsNodeArrayCodegen
in interface DOMPropertyGetter
public CodegenExpression getValueAsFragmentCodegen(CodegenExpression value, CodegenContext context)
getValueAsFragmentCodegen
in interface DOMPropertyGetter