Package mondrian.calc
Class ExpCompiler.Factory
- java.lang.Object
-
- mondrian.util.ObjectFactory<ExpCompiler>
-
- mondrian.calc.ExpCompiler.Factory
-
- Enclosing interface:
- ExpCompiler
public static final class ExpCompiler.Factory extends ObjectFactory<ExpCompiler>
TheExpCompiler.Factoryis used to accessExpCompilerimplementations. Each call returns a new instance. This factory supports overriding the default instance by use of aThreadLocaland by defining aSystemproperty with theExpCompilerclass name.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classExpCompiler.Factory.ContextTheExpCompileronly has two override mechanisms: theThreadLocalandSystemProperties.-
Nested classes/interfaces inherited from class mondrian.util.ObjectFactory
ObjectFactory.Singleton<T>
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static voidclearThreadLocalClassName()Clears the class name (regardless of whether a class name was set).protected StringgetClassName()Get the class name set in theThreadLocalor null.protected ExpCompilergetDefault(Class[] parameterTypes, Object[] parameterValues)TheExpCompiler.Factory's implementation of theObjectFactory's abstract method which returns the defaultExpCompilerinstance.static ExpCompilergetExpCompiler(Evaluator evaluator, Validator validator)Create aExpCompilerinstance, each call returns a new compiler.static ExpCompilergetExpCompiler(Evaluator evaluator, Validator validator, List<ResultStyle> resultStyles)static ExpCompiler.FactorygetFactory()Get the underlying Factory object.protected org.eigenbase.util.property.StringPropertygetStringProperty()Return theExpCompiler.Factorystatic StringgetThreadLocalClassName()Get the class name of aExpCompilerimplementation or null.ObjectremoveContext()Get the current override contect.voidrestoreContext(Object context)Restore the current overrides.static voidsetThreadLocalClassName(String className)Sets the class name of aExpCompilerimplementation.-
Methods inherited from class mondrian.util.ObjectFactory
getClassName, getObject, getObject, getObject, getObject, getObject
-
-
-
-
Method Detail
-
getExpCompiler
public static ExpCompiler getExpCompiler(Evaluator evaluator, Validator validator) throws CreationException
Create aExpCompilerinstance, each call returns a new compiler.- Parameters:
evaluator- theEvaluatorto use with the compilervalidator- theValidatorto use with the compiler- Returns:
- the new
ExpCompilercompiler - Throws:
CreationException- if the compiler can not be created
-
getExpCompiler
public static ExpCompiler getExpCompiler(Evaluator evaluator, Validator validator, List<ResultStyle> resultStyles) throws CreationException
- Parameters:
evaluator- theEvaluatorto use with the compilervalidator- theValidatorto use with the compilerresultStyles- the initialResultStylearray for the compiler- Returns:
- the new
ExpCompilercompiler - Throws:
CreationException- if the compiler can not be created
-
getThreadLocalClassName
public static String getThreadLocalClassName()
Get the class name of aExpCompilerimplementation or null.- Returns:
- the class name or null.
-
setThreadLocalClassName
public static void setThreadLocalClassName(String className)
Sets the class name of aExpCompilerimplementation. This should be called (obviously) before calling theExpCompiler.FactorygetExpCompilermethod to get theExpCompilerimplementation. Generally, this is only used for testing.- Parameters:
className- Class name
-
clearThreadLocalClassName
public static void clearThreadLocalClassName()
Clears the class name (regardless of whether a class name was set). When a class name is set usingsetThreadLocalClassName, the setting whould be done in a try-block and a call to this clear method should be in the finally-clause of that try-block.
-
getClassName
protected String getClassName()
Get the class name set in theThreadLocalor null.- Overrides:
getClassNamein classObjectFactory<ExpCompiler>- Returns:
- class name or null.
-
getStringProperty
protected org.eigenbase.util.property.StringProperty getStringProperty()
Return theExpCompiler.Factory- Specified by:
getStringPropertyin classObjectFactory<ExpCompiler>- Returns:
ExpCompiler.Factoryproperty name
-
getDefault
protected ExpCompiler getDefault(Class[] parameterTypes, Object[] parameterValues) throws CreationException
TheExpCompiler.Factory's implementation of theObjectFactory's abstract method which returns the defaultExpCompilerinstance.- Specified by:
getDefaultin classObjectFactory<ExpCompiler>- Parameters:
parameterTypes- array of classes: Evaluator, Validator and ResultStyleparameterValues- the Evaluator, Validator and ResultStyle values- Returns:
ExpCompilerinstance- Throws:
CreationException- if theExpCompilercan not be created.
-
getFactory
public static ExpCompiler.Factory getFactory()
Get the underlying Factory object.This is for testing only.
- Returns:
- the
ExpCompiler.Factoryobject
-
removeContext
public Object removeContext()
Get the current override contect.This is for testing only.
- Overrides:
removeContextin classObjectFactory<ExpCompiler>- Returns:
- the override context object.
-
restoreContext
public void restoreContext(Object context)
Restore the current overrides.This is for testing only.
- Overrides:
restoreContextin classObjectFactory<ExpCompiler>- Parameters:
context- the current override object.
-
-