public class VariantEventType extends Object implements EventTypeSPI
Caches properties after having resolved a property via a resolution strategy.
Modifier and Type | Field and Description |
---|---|
static EPTypeClass |
EPTYPE |
EPTYPEARRAY
Constructor and Description |
---|
VariantEventType(EventTypeMetadata metadata,
VariantSpec variantSpec)
Ctor.
|
Modifier and Type | Method and Description |
---|---|
ExprValidationException |
equalsCompareType(EventType eventType) |
EventType |
eventTypeForNativeObject(Object event)
NOTE: Code-generation-invoked method, method name and parameter order matters
|
EventBeanCopyMethod |
getCopyMethod(String[] properties) |
EventBeanCopyMethodForge |
getCopyMethodForge(String[] properties)
Returns the copy method, considering only the attached properties for a write operation onto the copy
|
Iterator<EventType> |
getDeepSuperTypes()
Returns iterator over all super types to event type, going up the hierarchy and including all
Java interfaces (and their extended interfaces) and superclasses as EventType instances.
|
Set<EventType> |
getDeepSuperTypesAsSet()
Returns the set of deep supertypes
|
String |
getEndTimestampPropertyName()
Returns the property name of the property providing the end timestamp value.
|
FragmentEventType |
getFragmentType(String property)
Returns the event type of the fragment that is the value of a property name or property expression.
|
EventPropertyGetter |
getGetter(String propertyName)
Get the getter of an event property or property expression: Getters are useful when an application
receives events of the same event type multiple times and requires fast access
to an event property or nested, indexed or mapped property.
|
EventPropertyGetterIndexed |
getGetterIndexed(String indexedProperty)
Get the getter of an event property that is a indexed event property: Getters are useful when an application
receives events of the same event type multiple times and requires fast access
to a indexed property.
|
EventPropertyGetterIndexedSPI |
getGetterIndexedSPI(String propertyName) |
EventPropertyGetterMapped |
getGetterMapped(String mappedProperty)
Get the getter of an event property that is a mapped event property: Getters are useful when an application
receives events of the same event type multiple times and requires fast access
to a mapped property.
|
EventPropertyGetterMappedSPI |
getGetterMappedSPI(String mappedProperty) |
EventPropertyGetterSPI |
getGetterSPI(String property) |
EventTypeMetadata |
getMetadata()
Returns the type metadata.
|
String |
getName()
Returns the type name or null if no type name is assigned.
|
EventPropertyDescriptor |
getPropertyDescriptor(String propertyName)
Get the property descriptor for a given property of the event, or null
if a property by that name was not found.
|
EventPropertyDescriptor[] |
getPropertyDescriptors()
Get property descriptors for the event type.
|
EPType |
getPropertyEPType(String property)
Get the type of an event property with type parameters and null-type indication.
|
String[] |
getPropertyNames()
Get the property names for the event type.
|
Class |
getPropertyType(String propertyName)
Get the type of an event property.
|
String |
getStartTimestampPropertyName()
Returns the property name of the property providing the start timestamp value.
|
EventType[] |
getSuperTypes()
Returns an array of event types that are super to this event type, from which this event type inherited event properties.
|
EPTypeClass |
getUnderlyingEPType()
Get the full type information, including type parameters, that represents the Java type of the event type.
|
Class |
getUnderlyingType()
Get the class that represents the Java type of the event type.
|
EventBean |
getValueAddEventBean(EventBean theEvent)
NOTE: Code-generation-invoked method, method name and parameter order matters
|
VariantPropertyGetterCache |
getVariantPropertyGetterCache() |
EventType[] |
getVariants() |
EventPropertyDescriptor |
getWritableProperty(String propertyName)
Returns the descriptor for a writable property.
|
EventPropertyDescriptor[] |
getWriteableProperties()
Returns the writable properties.
|
EventPropertyWriterSPI |
getWriter(String propertyName)
Return a writer for writing a single property value.
|
EventBeanWriter |
getWriter(String[] properties)
Returns the write for writing a set of properties.
|
boolean |
isProperty(String property)
Check that the given property name or property expression is valid for this event type, ie.
|
boolean |
isVariantAny() |
void |
setMetadataId(long publicId,
long protectedId) |
void |
validateInsertedIntoEventType(EventType eventType) |
public static final EPTypeClass EPTYPE
public VariantEventType(EventTypeMetadata metadata, VariantSpec variantSpec)
variantSpec
- the variant specificationmetadata
- event type metadatapublic String getStartTimestampPropertyName()
EventType
getStartTimestampPropertyName
in interface EventType
public String getEndTimestampPropertyName()
EventType
getEndTimestampPropertyName
in interface EventType
public final Class getPropertyType(String propertyName)
EventType
Returns null if the property name or property expression is not valid against the event type. Can also return null for null-value type i.e. if a select-clause selects a constant null value.
The method takes a property name or property expression as a parameter. Property expressions may include indexed properties via the syntax "name[index]", mapped properties via the syntax "name('key')", nested properties via the syntax "outer.inner" or combinations thereof.
Returns unboxed (such as 'int.class') as well as boxed (java.lang.Integer) type.
Use EventType.getPropertyEPType(String)
instead for type parameters.
The implementation uses EventType.getPropertyEPType(String)
under the hoods.
getPropertyType
in interface EventType
propertyName
- is the property name or property expressionpublic EPType getPropertyEPType(String property)
EventType
Returns null if the property name or property expression is not valid against the event type.
Returns EPTypeNull
for null-value type.
The method takes a property name or property expression as a parameter. Property expressions may include indexed properties via the syntax "name[index]", mapped properties via the syntax "name('key')", nested properties via the syntax "outer.inner" or combinations thereof.
Returns unboxed (such as 'int.class') as well as boxed (java.lang.Integer) type.
getPropertyEPType
in interface EventType
property
- is the property name or property expressionpublic EventType[] getVariants()
public Class getUnderlyingType()
EventType
EventType.getUnderlyingEPType()
to receive the parameterized type.getUnderlyingType
in interface EventType
public EPTypeClass getUnderlyingEPType()
EventType
getUnderlyingEPType
in interface EventType
public String getName()
EventType
A type name is available for application-configured event types and for event types that represent events of a stream populated by insert-into.
No type name is available for anonymous statement-specific event type.
public EventPropertyGetterSPI getGetterSPI(String property)
getGetterSPI
in interface EventTypeSPI
public VariantPropertyGetterCache getVariantPropertyGetterCache()
public EventPropertyGetter getGetter(String propertyName)
EventType
Returns null if the property name or property expression is not valid against the event type.
The method takes a property name or property expression as a parameter. Property expressions may include indexed properties via the syntax "name[index]", mapped properties via the syntax "name('key')", nested properties via the syntax "outer.inner" or combinations thereof.
public String[] getPropertyNames()
EventType
Note that the order of property names depends on the underlying event type.
The method does not return property names of inner or nested types.
getPropertyNames
in interface EventType
public boolean isProperty(String property)
EventType
The method takes a property name or property expression as a parameter. Property expressions may include indexed properties via the syntax "name[index]", mapped properties via the syntax "name('key')", nested properties via the syntax "outer.inner" or combinations thereof.
isProperty
in interface EventType
property
- is the property name or property expression to checkpublic EventType[] getSuperTypes()
EventType
For Java bean instances underlying the event this method returns the event types for all superclasses extended by the Java bean and all interfaces implemented by the Java bean.
getSuperTypes
in interface EventType
public Iterator<EventType> getDeepSuperTypes()
EventType
getDeepSuperTypes
in interface EventType
public EventTypeMetadata getMetadata()
EventType
getMetadata
in interface EventType
public EventPropertyDescriptor[] getPropertyDescriptors()
EventType
Note that the order of property names depends on the underlying event type.
The method does not return property information of inner or nested types.
getPropertyDescriptors
in interface EventType
public EventPropertyDescriptor getPropertyDescriptor(String propertyName)
EventType
The property name parameter does accept a property expression. It therefore does not allow the indexed, mapped or nested property expression syntax and only returns the descriptor for the event type's known properties.
The method does not return property information of inner or nested types.
For returning a property descriptor for nested, indexed or mapped properties
use EventTypeUtility
.
getPropertyDescriptor
in interface EventType
propertyName
- property namepublic FragmentEventType getFragmentType(String property)
EventType
Returns null if the property name or property expression is not valid or does not return a fragment for the event type.
The EventPropertyDescriptor
provides a flag that indicates which properties
provide fragment events.
This is useful for navigating properties that are itself events or other well-defined types that the underlying event representation may represent as an event type. It is up to each event representation to determine what properties can be represented as event types themselves.
The method takes a property name or property expression as a parameter. Property expressions may include indexed properties via the syntax "name[index]", mapped properties via the syntax "name('key')", nested properties via the syntax "outer.inner" or combinations thereof.
The underlying event representation may not support providing fragments or therefore fragment event types for any or all properties, in which case the method returns null.
Use the EventType.getPropertyDescriptors()
method to obtain a list of properties for which a fragment event type
may be retrieved by this method.
getFragmentType
in interface EventType
property
- is the name of the property to return the fragment event typepublic EventPropertyWriterSPI getWriter(String propertyName)
EventTypeSPI
getWriter
in interface EventTypeSPI
propertyName
- to write topublic EventPropertyDescriptor getWritableProperty(String propertyName)
EventTypeSPI
getWritableProperty
in interface EventTypeSPI
propertyName
- to get descriptor forpublic EventPropertyDescriptor[] getWriteableProperties()
EventTypeSPI
getWriteableProperties
in interface EventTypeSPI
public EventBeanCopyMethod getCopyMethod(String[] properties)
public EventBeanWriter getWriter(String[] properties)
EventTypeSPI
getWriter
in interface EventTypeSPI
properties
- to writepublic EventPropertyGetterMapped getGetterMapped(String mappedProperty)
EventType
Returns null if the property name is not valid against the event type or the property is not a mapped property.
The method takes a mapped property name (and not a property expression) as a parameter.
getGetterMapped
in interface EventType
mappedProperty
- is the property namepublic EventPropertyGetterMappedSPI getGetterMappedSPI(String mappedProperty)
getGetterMappedSPI
in interface EventTypeSPI
public EventPropertyGetterIndexed getGetterIndexed(String indexedProperty)
EventType
Returns null if the property name is not valid against the event type or the property is not an indexed property.
The method takes a indexed property name (and not a property expression) as a parameter.
getGetterIndexed
in interface EventType
indexedProperty
- is the property namepublic EventPropertyGetterIndexedSPI getGetterIndexedSPI(String propertyName)
getGetterIndexedSPI
in interface EventTypeSPI
public ExprValidationException equalsCompareType(EventType eventType)
equalsCompareType
in interface EventTypeSPI
public EventBeanCopyMethodForge getCopyMethodForge(String[] properties)
EventTypeSPI
getCopyMethodForge
in interface EventTypeSPI
properties
- to write after copypublic void setMetadataId(long publicId, long protectedId)
setMetadataId
in interface EventTypeSPI
public Set<EventType> getDeepSuperTypesAsSet()
EventType
getDeepSuperTypesAsSet
in interface EventType
public boolean isVariantAny()
public void validateInsertedIntoEventType(EventType eventType) throws ExprValidationException
ExprValidationException
public EventBean getValueAddEventBean(EventBean theEvent)
theEvent
- eventCopyright © 2005–2021. All rights reserved.