com.espertech.esper.event.bean
Class BeanEventType

java.lang.Object
  extended by com.espertech.esper.event.bean.BeanEventType
All Implemented Interfaces:
EventType, EventTypeSPI, NativeEventType

public class BeanEventType
extends java.lang.Object
implements EventTypeSPI, NativeEventType

Implementation of the EventType interface for handling JavaBean-type classes.


Nested Class Summary
static class BeanEventType.SimplePropertyInfo
          Descriptor caching the getter, class and property info.
 
Constructor Summary
BeanEventType(EventTypeMetadata metadata, int eventTypeId, java.lang.Class clazz, EventAdapterService eventAdapterService, ConfigurationEventTypeLegacy optionalLegacyDef)
          Constructor takes a java bean class as an argument.
 
Method Summary
 boolean equalsCompareType(EventType eventType)
           
 EventBeanCopyMethod getCopyMethod(java.lang.String[] properties)
          Returns the copy method, considering only the attached properties for a write operation onto the copy
 java.util.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.
 java.lang.String getEndTimestampPropertyName()
          Returns the property name of the property providing the end timestamp value.
 int getEventTypeId()
          Returns the event type id assigned to the event type.
 java.lang.String getFactoryMethodName()
          Returns the factory methods name, or null if none defined.
 net.sf.cglib.reflect.FastClass getFastClass()
          Returns the fast class reference, if code generation is used for this type, else null.
 FragmentEventType getFragmentType(java.lang.String propertyExpression)
          Returns the event type of the fragment that is the value of a property name or property expression.
 EventPropertyGetter getGetter(java.lang.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(java.lang.String indexedPropertyName)
          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.
 EventPropertyGetterMapped getGetterMapped(java.lang.String mappedPropertyName)
          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.
 InternalEventPropDescriptor getIndexedProperty(java.lang.String propertyName)
          Looks up and returns a cached indexed property's descriptor.
 InternalEventPropDescriptor getMappedProperty(java.lang.String propertyName)
          Looks up and returns a cached mapped property's descriptor.
 EventTypeMetadata getMetadata()
          Returns the type metadata.
 java.lang.String getName()
          Returns the type name or null if no type name is assigned.
 ConfigurationEventTypeLegacy getOptionalLegacyDef()
           
 EventPropertyDescriptor getPropertyDescriptor(java.lang.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.
 java.lang.String[] getPropertyNames()
          Get the property names for the event type.
 Configuration.PropertyResolutionStyle getPropertyResolutionStyle()
          Returns the property resolution style.
 java.lang.Class getPropertyType(java.lang.String propertyName)
          Get the type of an event property.
 EventBeanReader getReader()
          Returns a reader for reading all properties of an event.
 InternalEventPropDescriptor getSimpleProperty(java.lang.String propertyName)
          Looks up and returns a cached simple property's descriptor.
 java.lang.String getStartTimestampPropertyName()
          Returns the property name of the property providing the start timestamp value.
protected static void getSuper(java.lang.Class clazz, java.util.Set<java.lang.Class> result)
          Add the given class's implemented interfaces and superclasses to the result set of classes.
 EventType[] getSuperTypes()
          Returns an array of event types that are super to this event type, from which this event type inherited event properties.
 java.lang.Class getUnderlyingType()
          Get the class that represents the Java type of the event type.
 EventPropertyDescriptor getWritableProperty(java.lang.String propertyName)
          Returns the descriptor for a writable property.
 EventPropertyDescriptor[] getWriteableProperties()
          Returns the writable properties.
 BeanEventPropertyWriter getWriter(java.lang.String propertyName)
          Return a writer for writing a single property value.
 EventBeanWriter getWriter(java.lang.String[] properties)
          Returns the write for writing a set of properties.
 boolean isProperty(java.lang.String propertyName)
          Check that the given property name or property expression is valid for this event type, ie.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BeanEventType

public BeanEventType(EventTypeMetadata metadata,
                     int eventTypeId,
                     java.lang.Class clazz,
                     EventAdapterService eventAdapterService,
                     ConfigurationEventTypeLegacy optionalLegacyDef)
Constructor takes a java bean class as an argument.

Parameters:
clazz - is the class of a java bean or other POJO
optionalLegacyDef - optional configuration supplying legacy event type information
eventAdapterService - factory for event beans and event types
metadata - event type metadata
Method Detail

getStartTimestampPropertyName

public java.lang.String getStartTimestampPropertyName()
Description copied from interface: EventType
Returns the property name of the property providing the start timestamp value.

Specified by:
getStartTimestampPropertyName in interface EventType
Returns:
start timestamp property name

getEndTimestampPropertyName

public java.lang.String getEndTimestampPropertyName()
Description copied from interface: EventType
Returns the property name of the property providing the end timestamp value.

Specified by:
getEndTimestampPropertyName in interface EventType
Returns:
end timestamp property name

getOptionalLegacyDef

public ConfigurationEventTypeLegacy getOptionalLegacyDef()

getName

public java.lang.String getName()
Description copied from interface: EventType
Returns the type name or null if no type name is assigned.

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.

Specified by:
getName in interface EventType
Returns:
type name or null if none assigned

getPropertyDescriptor

public EventPropertyDescriptor getPropertyDescriptor(java.lang.String propertyName)
Description copied from interface: EventType
Get the property descriptor for a given property of the event, or null if a property by that name was not found.

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.

Specified by:
getPropertyDescriptor in interface EventType
Parameters:
propertyName - property name
Returns:
descriptor for the named property

getEventTypeId

public int getEventTypeId()
Description copied from interface: EventType
Returns the event type id assigned to the event type.

Specified by:
getEventTypeId in interface EventType
Returns:
event type id

getFactoryMethodName

public java.lang.String getFactoryMethodName()
Returns the factory methods name, or null if none defined.

Returns:
factory methods name

getPropertyType

public final java.lang.Class getPropertyType(java.lang.String propertyName)
Description copied from interface: EventType
Get the type of an event property.

Returns null if the property name or property expression is not valid against the event type. Can also return null 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.

Specified by:
getPropertyType in interface EventType
Parameters:
propertyName - is the property name or property expression
Returns:
type of the property, the unboxed or the boxed type.

isProperty

public boolean isProperty(java.lang.String propertyName)
Description copied from interface: EventType
Check that the given property name or property expression is valid for this event type, ie. that the property exists on 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.

Specified by:
isProperty in interface EventType
Parameters:
propertyName - is the property name or property expression to check
Returns:
true if exists, false if not

getUnderlyingType

public final java.lang.Class getUnderlyingType()
Description copied from interface: EventType
Get the class that represents the Java type of the event type. Returns a Java bean event class if the schema represents a Java bean event type. Returns java.util.Map is the schema represents a collection of values in a Map.

Specified by:
getUnderlyingType in interface EventType
Returns:
type of the event object

getPropertyResolutionStyle

public Configuration.PropertyResolutionStyle getPropertyResolutionStyle()
Returns the property resolution style.

Returns:
property resolution style

getGetter

public EventPropertyGetter getGetter(java.lang.String propertyName)
Description copied from interface: EventType
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.

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.

Specified by:
getGetter in interface EventType
Parameters:
propertyName - is the property name or property expression
Returns:
a getter that can be used to obtain property values for event instances of the same event type

getGetterMapped

public EventPropertyGetterMapped getGetterMapped(java.lang.String mappedPropertyName)
Description copied from interface: EventType
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.

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.

Specified by:
getGetterMapped in interface EventType
Parameters:
mappedPropertyName - is the property name
Returns:
a getter that can be used to obtain property values for event instances of the same event type

getGetterIndexed

public EventPropertyGetterIndexed getGetterIndexed(java.lang.String indexedPropertyName)
Description copied from interface: EventType
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.

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.

Specified by:
getGetterIndexed in interface EventType
Parameters:
indexedPropertyName - is the property name
Returns:
a getter that can be used to obtain property values for event instances of the same event type

getSimpleProperty

public final InternalEventPropDescriptor getSimpleProperty(java.lang.String propertyName)
Looks up and returns a cached simple property's descriptor.

Parameters:
propertyName - to look up
Returns:
property descriptor

getMappedProperty

public final InternalEventPropDescriptor getMappedProperty(java.lang.String propertyName)
Looks up and returns a cached mapped property's descriptor.

Parameters:
propertyName - to look up
Returns:
property descriptor

getIndexedProperty

public final InternalEventPropDescriptor getIndexedProperty(java.lang.String propertyName)
Looks up and returns a cached indexed property's descriptor.

Parameters:
propertyName - to look up
Returns:
property descriptor

getPropertyNames

public java.lang.String[] getPropertyNames()
Description copied from interface: EventType
Get the property names for the event type.

Note that properties do not have a defined order. Your application should not rely on the order of properties returned by this method.

The method does not return property names of inner or nested types.

Specified by:
getPropertyNames in interface EventType
Returns:
A string array containing the property names of this typed event data object.

getSuperTypes

public EventType[] getSuperTypes()
Description copied from interface: EventType
Returns an array of event types that are super to this event type, from which this event type inherited event properties.

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.

Specified by:
getSuperTypes in interface EventType
Returns:
an array of event types

getDeepSuperTypes

public java.util.Iterator<EventType> getDeepSuperTypes()
Description copied from interface: EventType
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.

Specified by:
getDeepSuperTypes in interface EventType
Returns:
iterator of event types represeting all superclasses and implemented interfaces, all the way up to java.lang.Object but excluding java.lang.Object itself

getFastClass

public net.sf.cglib.reflect.FastClass getFastClass()
Returns the fast class reference, if code generation is used for this type, else null.

Returns:
fast class, or null if no code generation

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getSuper

protected static void getSuper(java.lang.Class clazz,
                               java.util.Set<java.lang.Class> result)
Add the given class's implemented interfaces and superclasses to the result set of classes.

Parameters:
clazz - to introspect
result - to add classes to

getMetadata

public EventTypeMetadata getMetadata()
Description copied from interface: EventTypeSPI
Returns the type metadata.

Specified by:
getMetadata in interface EventTypeSPI
Returns:
type metadata

getPropertyDescriptors

public EventPropertyDescriptor[] getPropertyDescriptors()
Description copied from interface: EventType
Get property descriptors for the event type.

Note that properties do not have a defined order. Your application should not rely on the order of properties returned by this method.

The method does not return property information of inner or nested types.

Specified by:
getPropertyDescriptors in interface EventType
Returns:
descriptors for all known properties of the event type.

getFragmentType

public FragmentEventType getFragmentType(java.lang.String propertyExpression)
Description copied from interface: EventType
Returns the event type of the fragment that is the value of a property name or property expression.

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.

Specified by:
getFragmentType in interface EventType
Parameters:
propertyExpression - is the name of the property to return the fragment event type
Returns:
fragment event type of the property

getWriter

public BeanEventPropertyWriter getWriter(java.lang.String propertyName)
Description copied from interface: EventTypeSPI
Return a writer for writing a single property value.

Specified by:
getWriter in interface EventTypeSPI
Parameters:
propertyName - to write to
Returns:
null or writer if writable

getWritableProperty

public EventPropertyDescriptor getWritableProperty(java.lang.String propertyName)
Description copied from interface: EventTypeSPI
Returns the descriptor for a writable property.

Specified by:
getWritableProperty in interface EventTypeSPI
Parameters:
propertyName - to get descriptor for
Returns:
descriptor

getWriteableProperties

public EventPropertyDescriptor[] getWriteableProperties()
Description copied from interface: EventTypeSPI
Returns the writable properties.

Specified by:
getWriteableProperties in interface EventTypeSPI
Returns:
properties that can be written

getReader

public EventBeanReader getReader()
Description copied from interface: EventTypeSPI
Returns a reader for reading all properties of an event. This is completely optional and need only be implemented for performance.

Specified by:
getReader in interface EventTypeSPI
Returns:
reader

getCopyMethod

public EventBeanCopyMethod getCopyMethod(java.lang.String[] properties)
Description copied from interface: EventTypeSPI
Returns the copy method, considering only the attached properties for a write operation onto the copy

Specified by:
getCopyMethod in interface EventTypeSPI
Parameters:
properties - to write after copy
Returns:
copy method

getWriter

public EventBeanWriter getWriter(java.lang.String[] properties)
Description copied from interface: EventTypeSPI
Returns the write for writing a set of properties.

Specified by:
getWriter in interface EventTypeSPI
Parameters:
properties - to write
Returns:
writer

equalsCompareType

public boolean equalsCompareType(EventType eventType)
Specified by:
equalsCompareType in interface EventTypeSPI

© 2006-2015 EsperTech Inc.
All rights reserved.
Visit us at espertech.com