/************************************************************************************** * Copyright (C) 2008 EsperTech, Inc. All rights reserved. * * http://esper.codehaus.org * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * **************************************************************************************/ package com.espertech.esper.client; import java.net.URI; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; /** * Provides configurations for an engine instance. */ public interface ConfigurationInformation { /** * Returns the service context factory class name * @return class name */ public String getEPServicesContextFactoryClassName(); /** * Returns the mapping of event type name to Java class name. * @return event type names for Java class names */ public Map<String, String> getEventTypeNames(); /** * Returns a map keyed by event type name, and values being the definition for the * Map event type of the property names and types that make up the event. * @return map of event type name and definition of event properties */ public Map<String, Properties> getEventTypesMapEvents(); /** * Returns a map keyed by event type name, and values being the definition for the * event type of the property names and types that make up the event, * for nestable, strongly-typed Map-based event representations. * @return map of event type name and definition of event properties */ public Map<String, Map<String, Object>> getEventTypesNestableMapEvents(); /** * Returns the mapping of event type name to XML DOM event type information. * @return event type name mapping to XML DOM configs */ public Map<String, ConfigurationEventTypeXMLDOM> getEventTypesXMLDOM(); /** * Returns the mapping of event type name to legacy java event type information. * @return event type name mapping to legacy java class configs */ public Map<String, ConfigurationEventTypeLegacy> getEventTypesLegacy(); /** * Returns the class and package imports. * @return imported names */ public List<String> getImports(); /** * Returns a map of string database names to database configuration options. * @return map of database configurations */ public Map<String, ConfigurationDBRef> getDatabaseReferences(); /** * Returns a list of configured plug-in views. * @return list of plug-in view configs */ public List<ConfigurationPlugInView> getPlugInViews(); /** * Returns a list of configured plug-in virtual data windows. * @return list of plug-in virtual data windows */ public List<ConfigurationPlugInVirtualDataWindow> getPlugInVirtualDataWindows(); /** * Returns a list of configured plugin loaders. * @return adapter loaders */ public List<ConfigurationPluginLoader> getPluginLoaders(); /** * Returns a list of configured plug-in aggregation functions. * @return list of configured aggregations */ public List<ConfigurationPlugInAggregationFunction> getPlugInAggregationFunctions(); /** * Returns a list of configured plug-in single-row functions. * @return list of configured single-row functions */ public List<ConfigurationPlugInSingleRowFunction> getPlugInSingleRowFunctions(); /** * Returns a list of configured plug-ins for pattern observers and guards. * @return list of pattern plug-ins */ public List<ConfigurationPlugInPatternObject> getPlugInPatternObjects(); /** * Returns engine default settings. * @return engine defaults */ public ConfigurationEngineDefaults getEngineDefaults(); /** * Returns the variables by name as key and type plus initialization value as value * @return map of variable name and variable configuration */ public Map<String, ConfigurationVariable> getVariables(); /** * Returns a map of class name and cache configurations, for use in * method invocations in the from-clause of methods provided by the class. * @return map of fully-qualified or simple class name and cache configuration */ public Map<String, ConfigurationMethodRef> getMethodInvocationReferences(); /** * Returns a set of Java package names that Java event classes reside in. * <p> * This setting allows an application to place all it's events into one or more Java packages * and then declare these packages via this method. The engine * attempts to resolve an event type name to a Java class residing in each declared package. * <p> * For example, in the statement "select * from MyEvent" the engine attempts to load class "javaPackageName.MyEvent" * and if successful, uses that class as the event type. * @return set of Java package names to look for events types when encountering a new event type name */ public Set<String> getEventTypeAutoNamePackages(); /** * Returns a map of plug-in event representation URI and their event representation class and initializer. * @return map of URI keys and event representation configuration */ public Map<URI, ConfigurationPlugInEventRepresentation> getPlugInEventRepresentation(); /** * Returns a map of event type name of those event types that will be supplied by a plug-in event representation, * and their configuration. * @return map of names to plug-in event type config */ public Map<String, ConfigurationPlugInEventType> getPlugInEventTypes(); /** * Returns the URIs that point to plug-in event representations that are given a chance to dynamically resolve an event * type name to an event type, when a new (unseen) event type name occurs in a new EPL statement. * <p> * The order of the URIs matters as event representations are asked in turn, to accept the name. * <p> * URIs can be child URIs of plug-in event representations and can add additional parameters or fragments * for use by the event representation. * @return URIs for resolving an event type name */ public URI[] getPlugInEventTypeResolutionURIs(); /** * Returns a map of revision event type name and revision event type configuration. Revision event types handle updates (new versions) * for past events. * @return map of name and revision event type config */ public Map<String, ConfigurationRevisionEventType> getRevisionEventTypes(); /** * Returns a map of variant stream name and variant configuration information. Variant streams allows handling * events of all sorts of different event types the same way. * @return map of name and variant stream config */ public Map<String, ConfigurationVariantStream> getVariantStreams(); /** * Returns for each Map event type name the set of supertype event type names (Map types only). * @return map of name to set of supertype names */ public Map<String, ConfigurationEventTypeMap> getMapTypeConfigurations(); /** * Returns the object-array event type configurations. * @return type configs */ public Map<String, ConfigurationEventTypeObjectArray> getObjectArrayTypeConfigurations(); /** * Returns the object-array event types. * @return object-array event types */ public Map<String, Map<String, Object>> getEventTypesNestableObjectArrayEvents(); }