public class StatementContainer extends Object
Statement container is not mandatory, but it has some useful features like loading, caching and takes care of compiling control scripts.
Statement files are loaded from classpath in order:
#databaseProductName
is null
this step is skipped).IllegalArgumentException
is thrown.
The default script engine for control scripts is used JavaScript. All scripts are compiled before first usage. It is
possible to use custom script engine by using StatementContainer(String)
constructor. In this case used
engine must implement Compilable interface.
For performance reasons caching is enabled by default. To disable it call setEnableCache(boolean)
. Disabling
cache is useful for development.
StatementParser
,
setEnableCache(boolean)
Constructor and Description |
---|
StatementContainer()
Creates instance of statement container with default settings.
|
StatementContainer(Compilable scriptEngine)
Creates instance of statement container with specified script engine.
|
StatementContainer(String scriptEngineName)
Creates instance of statement container with specified script engine.
|
Modifier and Type | Method and Description |
---|---|
Statement |
addStatement(Class<?> baseClass,
String name)
Loads statement and adds it to cache.
|
Statement |
addStatement(String statementName,
String statementText)
Parses statement text and adds it to cache if cache is enabled.
|
protected String |
constructFullName(Class<?> baseClass,
String name)
Constructs full statement name from base class and short name.
|
Statement |
getStatement(Class<?> baseClass,
String name)
Gets statement from cache.
|
Statement |
getStatement(ClassLoader classLoader,
String fullName)
Gets statement from cache.
|
void |
setDialect(DatabaseDialect dialect)
Sets database dialect.
|
void |
setEnableCache(boolean enableCache)
Enable statement caching.
|
public StatementContainer()
Using javascript as a default script engine.
public StatementContainer(String scriptEngineName)
scriptEngineName
- script engine nameScriptEngineManager
public StatementContainer(Compilable scriptEngine)
scriptEngine
- script enginepublic Statement addStatement(Class<?> baseClass, String name) throws StatementNotFoundException
baseClass
- base class (mandatory)name
- statement name (mandatory)StatementNotFoundException
- if statement file not foundStatementConfiguration
protected String constructFullName(Class<?> baseClass, String name)
baseClass
- base classname
- short namepublic Statement addStatement(String statementName, String statementText)
statementName
- statement name under which it should be cachedstatementText
- statement bodypublic Statement getStatement(Class<?> baseClass, String name) throws IllegalArgumentException
Statement is lazy loaded if not found in cache.
baseClass
- statement base classname
- statement simple nameIllegalArgumentException
public Statement getStatement(ClassLoader classLoader, String fullName) throws StatementNotFoundException
Statement is lazy loaded if not found in cache.
classLoader
- class loader to load statementfullName
- statement full file nameStatementNotFoundException
- if statement file not foundpublic void setEnableCache(boolean enableCache)
Caching is enabled by default.
enableCache
- true to enable statement caching, false to disablepublic void setDialect(DatabaseDialect dialect)
dialect
- database dialect or null
.Copyright © 2014–2015 Vracon s.r.o.. All rights reserved.