/* *************************************************************************************** * Copyright (C) 2006 EsperTech, Inc. All rights reserved. * * http://www.espertech.com/esper * * 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.event.bean; import com.espertech.esper.client.Configuration; /** * Interface for a factory for obtaining {@link BeanEventType} instances. */ public interface BeanEventTypeFactory { /** * Returns the bean event type for a given class assigning the given name. * * @param name is the name * @param clazz is the class for which to generate an event type * @param isConfigured if the class is a configuration value, false if discovered * @param isPreconfigured if configured before use * @param isPreconfiguredStatic if from static engine config * @return is the event type for the class */ public BeanEventType createBeanType(String name, Class clazz, boolean isPreconfiguredStatic, boolean isPreconfigured, boolean isConfigured); /** * Returns the bean event type for a given class assigning the given name. * * @param clazz is the class for which to generate an event type * @return is the event type for the class */ public BeanEventType createBeanTypeDefaultName(Class clazz); /** * Returns the default property resolution style. * * @return property resolution style */ public Configuration.PropertyResolutionStyle getDefaultPropertyResolutionStyle(); public BeanEventType[] getCachedTypes(); }