net.esper.event
Class EventAdapterServiceBase

java.lang.Object
  extended by net.esper.event.EventAdapterServiceBase
All Implemented Interfaces:
EventAdapterService
Direct Known Subclasses:
EventAdapterServiceImpl

public abstract class EventAdapterServiceBase
extends Object
implements EventAdapterService

Implementation for resolving event name to event type.

The implementation assigned a unique identifier to each event type. For Class-based event types, only one EventType instance and one event type id exists for the same class.

Alias names must be unique, that is an alias name must resolve to a single event type.

Each event type can have multiple aliases defined for it. For example, expressions such as "select * from A" and "select * from B" in which A and B are aliases for the same class X the select clauses each fireStatementStopped for events of type X. In summary, aliases A and B point to the same underlying event type and therefore event type id.


Constructor Summary
EventAdapterServiceBase()
          Ctor.
 
Method Summary
 EventBean adapterForBean(Object event, Object eventId)
          Create an event bean given an event of object id.
 EventBean adapterForCompositeEvent(EventType eventType, Map<String,EventBean> taggedEvents)
          Creates a wrapper for a composite event type.
 EventBean adapterForDOM(Node node)
          Returns an adapter for the XML DOM document that exposes it's data as event properties for use in statements.
 EventBean adapterForMap(Map event, String eventTypeAlias)
          Wrap the Map-type event returning an EventBean using the event type alias name to identify the EventType that the event should carry.
 EventType addBeanTypeByAliasAndClassName(String eventTypeAlias, String fullyQualClassName)
          Add an event type for the given Java class name.
 EventType addBeanTypeByAliasAndClazz(String eventTypeAlias, Class clazz)
          Add an alias and class as an event type.
 EventType addMapType(String eventTypeAlias, Map<String,Class> propertyTypes)
          Add an event type with the given alias and a given set of properties.
 EventType addWrapperType(String eventTypeAlias, EventType underlyingEventType, Map<String,Class> propertyTypes)
          Add an event type with the given alias and the given underlying event type, as well as the additional given properties.
 EventType addXMLDOMType(String eventTypeAlias, ConfigurationEventTypeXMLDOM configurationEventTypeXMLDOM)
          Add a configured XML DOM event type.
 EventType createAddToEventType(EventType originalType, String[] fieldNames, Class[] fieldTypes)
          Create an event type based on the original type passed in adding one or more properties.
 EventType createAnonymousCompositeType(Map<String,EventType> taggedEventTypes)
          Creates an unnamed composite event type with event properties that are name-value pairs with values being other event types.
 EventType createAnonymousMapType(Map<String,Class> propertyTypes)
          Creates a new anonymous EventType instance for an event type that contains a map of name value pairs.
 EventType createAnonymousMapTypeUnd(Map<String,EventType> propertyTypes)
          Creates a new anonymous EventType instance for an event type that contains a map of name value pairs.
 EventType createAnonymousWrapperType(EventType underlyingEventType, Map<String,Class> propertyTypes)
          Create a new anonymous event type with the given underlying event type, as well as the additional given properties.
 EventBean createMapFromUnderlying(Map<String,EventBean> events, EventType eventType)
          Create an aggregate event wrapper bean from a set of named events stored in a Map.
 EventBean createMapFromValues(Map<String,Object> properties, EventType eventType)
          Create an event wrapper bean from a set of event properties (name and value objectes) stored in a Map.
 EventBean createWrapper(EventBean event, Map<String,Object> properties, EventType eventType)
          Creata a wrapper around an event and some additional properties
 String getAliasById(String eventTypeID)
          Returns the first event type alias for a given event type id.
 EventType getExistsTypeByAlias(String eventTypeAlias)
          Return the event type for a given event name, or null if none is registered for that name.
 String getIdByAlias(String eventTypeAlias)
          Returns the event type id given an event type alias.
 String getIdByType(EventType eventType)
          Returns the event type id given the event type, with the type expected to exist.
 EventType getTypeById(String eventTypeID)
          Returns the event type given an event type id.
 void setClassLegacyConfigs(Map<String,ConfigurationEventTypeLegacy> classToLegacyConfigs)
          Set the legacy Java class type information.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.esper.event.EventAdapterService
adapterForBean, addBeanType, addBeanType
 

Constructor Detail

EventAdapterServiceBase

public EventAdapterServiceBase()
Ctor.

Method Detail

setClassLegacyConfigs

public void setClassLegacyConfigs(Map<String,ConfigurationEventTypeLegacy> classToLegacyConfigs)
Set the legacy Java class type information.

Parameters:
classToLegacyConfigs - is the legacy class configs

getIdByAlias

public String getIdByAlias(String eventTypeAlias)
Description copied from interface: EventAdapterService
Returns the event type id given an event type alias. The alias is expected to exist.

Use getExistsTypeByAlias to check if an alias exists.

Specified by:
getIdByAlias in interface EventAdapterService
Parameters:
eventTypeAlias - is the event name
Returns:
event type id

getTypeById

public EventType getTypeById(String eventTypeID)
Description copied from interface: EventAdapterService
Returns the event type given an event type id. The id is expected to exist.

Specified by:
getTypeById in interface EventAdapterService
Parameters:
eventTypeID - is the tyoe id
Returns:
event type

getExistsTypeByAlias

public EventType getExistsTypeByAlias(String eventTypeAlias)
Description copied from interface: EventAdapterService
Return the event type for a given event name, or null if none is registered for that name.

Specified by:
getExistsTypeByAlias in interface EventAdapterService
Parameters:
eventTypeAlias - is the event type alias name to return type for
Returns:
event type for named event, or null if unknown/unnamed type

getIdByType

public String getIdByType(EventType eventType)
Description copied from interface: EventAdapterService
Returns the event type id given the event type, with the type expected to exist.

Specified by:
getIdByType in interface EventAdapterService
Parameters:
eventType - to return the id for
Returns:
event type id

getAliasById

public String getAliasById(String eventTypeID)
Description copied from interface: EventAdapterService
Returns the first event type alias for a given event type id.

Specified by:
getAliasById in interface EventAdapterService
Parameters:
eventTypeID - is the type id
Returns:
the very first alias registered for an event type

addBeanTypeByAliasAndClazz

public EventType addBeanTypeByAliasAndClazz(String eventTypeAlias,
                                            Class clazz)
                                     throws EventAdapterException
Add an alias and class as an event type.

Parameters:
eventTypeAlias - is the alias
clazz - is the Java class to add
Returns:
event type
Throws:
EventAdapterException - to indicate an error constructing the type

adapterForBean

public EventBean adapterForBean(Object event,
                                Object eventId)
Create an event bean given an event of object id.

Parameters:
event - is the event class
eventId - is the event id
Returns:
event

addBeanTypeByAliasAndClassName

public EventType addBeanTypeByAliasAndClassName(String eventTypeAlias,
                                                String fullyQualClassName)
                                         throws EventAdapterException
Add an event type for the given Java class name.

Parameters:
eventTypeAlias - is the alias
fullyQualClassName - is the Java class name
Returns:
event type
Throws:
EventAdapterException - if the Class name cannot resolve or other error occured

addMapType

public EventType addMapType(String eventTypeAlias,
                            Map<String,Class> propertyTypes)
                     throws EventAdapterException
Description copied from interface: EventAdapterService
Add an event type with the given alias and a given set of properties.

If the alias already exists with the same event property information, returns the existing EventType instance.

If the alias already exists with different event property information, throws an exception.

If the alias does not already exists, adds the alias and constructs a new MapEventType.

Specified by:
addMapType in interface EventAdapterService
Parameters:
eventTypeAlias - is the alias name for the event type
propertyTypes - is the names and types of event properties
Returns:
event type is the type added
Throws:
EventAdapterException - if alias already exists and doesn't match property type info

createAnonymousMapType

public EventType createAnonymousMapType(Map<String,Class> propertyTypes)
                                 throws EventAdapterException
Description copied from interface: EventAdapterService
Creates a new anonymous EventType instance for an event type that contains a map of name value pairs. The method accepts a Map that contains the property names as keys and Class objects as the values. The Class instances represent the property types.

New instances are createdStatement by this method on every invocation. Clients to this method need to cache the returned EventType instance to reuse EventType's for same-typed events.

Specified by:
createAnonymousMapType in interface EventAdapterService
Parameters:
propertyTypes - is a map of String to Class objects
Returns:
EventType implementation for map field names and value types
Throws:
EventAdapterException

createAnonymousWrapperType

public EventType createAnonymousWrapperType(EventType underlyingEventType,
                                            Map<String,Class> propertyTypes)
                                     throws EventAdapterException
Description copied from interface: EventAdapterService
Create a new anonymous event type with the given underlying event type, as well as the additional given properties.

Specified by:
createAnonymousWrapperType in interface EventAdapterService
Parameters:
underlyingEventType - is the event type for the event type that this wrapper wraps
propertyTypes - is the names and types of any additional properties
Returns:
eventType is the type createdStatement
Throws:
EventAdapterException - if alias already exists and doesn't match this type's info

adapterForMap

public EventBean adapterForMap(Map event,
                               String eventTypeAlias)
                        throws EventAdapterException
Description copied from interface: EventAdapterService
Wrap the Map-type event returning an EventBean using the event type alias name to identify the EventType that the event should carry.

Specified by:
adapterForMap in interface EventAdapterService
Parameters:
event - to be wrapped
eventTypeAlias - alias for the event type of the event
Returns:
event bean wrapping native underlying event
Throws:
EventAdapterException - if the alias has not been declared, or the event cannot be wrapped using that alias's event type

createMapFromValues

public EventBean createMapFromValues(Map<String,Object> properties,
                                     EventType eventType)
Description copied from interface: EventAdapterService
Create an event wrapper bean from a set of event properties (name and value objectes) stored in a Map.

Specified by:
createMapFromValues in interface EventAdapterService
Parameters:
properties - is key-value pairs for the event properties
eventType - is the type metadata for any maps of that type
Returns:
EventBean instance

createMapFromUnderlying

public EventBean createMapFromUnderlying(Map<String,EventBean> events,
                                         EventType eventType)
Description copied from interface: EventAdapterService
Create an aggregate event wrapper bean from a set of named events stored in a Map.

Specified by:
createMapFromUnderlying in interface EventAdapterService
Parameters:
events - is key-value pairs where the key is the event name and the value is the event
eventType - is the type metadata for any maps of that type
Returns:
EventBean instance

createAddToEventType

public EventType createAddToEventType(EventType originalType,
                                      String[] fieldNames,
                                      Class[] fieldTypes)
Description copied from interface: EventAdapterService
Create an event type based on the original type passed in adding one or more properties.

Specified by:
createAddToEventType in interface EventAdapterService
Parameters:
originalType - - event type to add property to
fieldNames - - names of properties
fieldTypes - - types of properties
Returns:
new event type

adapterForDOM

public EventBean adapterForDOM(Node node)
Description copied from interface: EventAdapterService
Returns an adapter for the XML DOM document that exposes it's data as event properties for use in statements.

Specified by:
adapterForDOM in interface EventAdapterService
Parameters:
node - is the node to wrap
Returns:
event wrapper for document

createAnonymousCompositeType

public EventType createAnonymousCompositeType(Map<String,EventType> taggedEventTypes)
Description copied from interface: EventAdapterService
Creates an unnamed composite event type with event properties that are name-value pairs with values being other event types. Pattern statement generate events of such type.

Specified by:
createAnonymousCompositeType in interface EventAdapterService
Parameters:
taggedEventTypes - is a map of name keys and event type values
Returns:
event type representing a composite event

adapterForCompositeEvent

public EventBean adapterForCompositeEvent(EventType eventType,
                                          Map<String,EventBean> taggedEvents)
Description copied from interface: EventAdapterService
Creates a wrapper for a composite event type. The wrapper wraps an event that consists of name-value pairs in which the values are other already-wrapped events.

Specified by:
adapterForCompositeEvent in interface EventAdapterService
Parameters:
eventType - is the composite event type
taggedEvents - is the name-event map
Returns:
wrapper for composite event

addXMLDOMType

public EventType addXMLDOMType(String eventTypeAlias,
                               ConfigurationEventTypeXMLDOM configurationEventTypeXMLDOM)
Add a configured XML DOM event type.

Specified by:
addXMLDOMType in interface EventAdapterService
Parameters:
eventTypeAlias - is the alias name of the event type
configurationEventTypeXMLDOM - configures the event type schema and namespace and XPath property information.
Returns:
event type

addWrapperType

public EventType addWrapperType(String eventTypeAlias,
                                EventType underlyingEventType,
                                Map<String,Class> propertyTypes)
                         throws EventAdapterException
Description copied from interface: EventAdapterService
Add an event type with the given alias and the given underlying event type, as well as the additional given properties.

Specified by:
addWrapperType in interface EventAdapterService
Parameters:
eventTypeAlias - is the alias name for the event type
underlyingEventType - is the event type for the event type that this wrapper wraps
propertyTypes - is the names and types of any additional properties
Returns:
eventType is the type added
Throws:
EventAdapterException - if alias already exists and doesn't match this type's info

createWrapper

public EventBean createWrapper(EventBean event,
                               Map<String,Object> properties,
                               EventType eventType)
Description copied from interface: EventAdapterService
Creata a wrapper around an event and some additional properties

Specified by:
createWrapper in interface EventAdapterService
Parameters:
event - is the wrapped event
properties - are the additional properties
eventType - os the type metadata for any wrappers of this type
Returns:
wrapper event bean

createAnonymousMapTypeUnd

public EventType createAnonymousMapTypeUnd(Map<String,EventType> propertyTypes)
Description copied from interface: EventAdapterService
Creates a new anonymous EventType instance for an event type that contains a map of name value pairs. The method accepts a Map that contains the property names as keys and EventType objects as the values. The EventType instances represent the property types whose underlying class is used to set the type, via method createAnonymousMapType.

Specified by:
createAnonymousMapTypeUnd in interface EventAdapterService
Parameters:
propertyTypes - is a map of String to EventType objects
Returns:
EventType implementation for map field names and value types which are the underlying types to the event type passed in