public class OpenRulesEngine
extends java.lang.Object
public OpenRulesEngine(String xlsMainFileName)
The first parameter xlsMainFileName defines a data source that points to the main xls file with business rulesInMemory associated with this engine. This parameter can be presented using special prefixes in a way similar to the following samples:
You may use other variants of the OpenRulesEngine constructor to define the main method inside xlsMainFileName to be executed during OpenRulesEngine's run. You may also specify the method later on using setMethod() or directly in
run(methodName,businessObjects)
Before any run, OpenRulesEngine checks if the main xls file has been changed, and if "yes", it re-initializes the engine. You can shut down this check using
setCheckRuleUpdates(false)
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
OPENRULES_MODE |
static java.lang.String |
OPENRULES_MODE_EXECUTE |
static java.lang.String |
OPENRULES_MODE_SOLVE |
static java.lang.String |
OPENRULES_MODE_VALIDATE |
Constructor and Description |
---|
OpenRulesEngine(java.util.Properties dbProperties,
java.lang.String xlsMainFileName) |
OpenRulesEngine(java.lang.String xlsMainFileName)
This is the main constructor.
|
OpenRulesEngine(java.lang.String xlsMainFileName,
java.lang.Class clazz)
The first parameter xlsMainFileName defines a data source that points to the
main xls file with business rulesInMemory associated with this engine.
|
OpenRulesEngine(java.lang.String xlsMainFileName,
java.lang.Class clazz,
ExternalRules externalRules) |
OpenRulesEngine(java.lang.String xlsMainFileName,
ExternalRules externalRules) |
OpenRulesEngine(java.lang.String xlsMainFileName,
java.lang.String methodName) |
OpenRulesEngine(java.lang.String xlsMainFileName,
java.lang.String methodName,
java.lang.Class clazz) |
OpenRulesEngine(java.lang.String xlsMainFileName,
java.lang.String methodName,
java.lang.Class clazz,
ExternalRules externalRules,
java.util.Properties dbProperties)
A constructor for ExternalRules from a database
|
Modifier and Type | Method and Description |
---|---|
RuleMethod |
checkAndSetRuleMethod(java.lang.String methodName) |
boolean |
doesMethodExist(java.lang.String methodName) |
java.lang.Object |
getAttachment() |
java.lang.Object[] |
getBusinessObjects() |
java.lang.Object[] |
getData(java.lang.String dataName)
Returns an array of objects defined in Excel Data table "name"
|
com.openrules.datasource.IDataSource |
getDataSource(java.lang.String path,
org.openl.conf.IUserContext ucxt) |
static java.util.Properties |
getDbProperties() |
ExternalRules |
getExternalRules() |
java.util.Iterator |
getMethodIterator() |
java.lang.String |
getMethodName() |
java.lang.String |
getNotFoundMethod() |
static java.lang.String |
getRelease()
Return the current OpenRules Release #
|
java.net.URL |
getSourceURL(java.lang.String path,
org.openl.conf.IUserContext ucxt)
Deprecated - use getDataSource
|
java.lang.Object |
getVariable(java.lang.String variableName)
Returns an object defined in Excel Variable table "name"
|
java.lang.String |
getVersion() |
java.lang.String |
getXlsMainFileName() |
boolean |
isCheckRuleUpdates() |
boolean |
isNonDefinedMethodsAllowed() |
boolean |
isNotDefinedWarning() |
void |
log(java.lang.String text)
Logs a text using Log.info(text)
|
java.lang.Object |
run()
Run the engine with already defined methods and business objects
|
java.lang.Object |
run(Decision decision)
This method is equivalent to run(decision.getName(), decision);
|
java.lang.Object |
run(java.lang.Object[] objects)
Run the engine with already define method applied to the array of
business objects provided as a parameter
|
java.lang.Object |
run(java.lang.String methodName)
Run the engine with the method "methodName" without parameters.
|
java.lang.Object |
run(java.lang.String methodName,
boolean mayNotDefined)
Run the engine with the method "methodName" that does not
have parameters.
|
java.lang.Object |
run(java.lang.String methodName,
java.lang.Object object)
Run the engine with the method "methodName" applied to only one
business object provided as a parameter "object".
|
java.lang.Object |
run(java.lang.String methodName,
java.lang.Object[] objects)
Run the engine with the method "methodName" applied to the array of
business objects provided as a parameter "objects".
|
java.lang.Object |
run(java.lang.String methodName,
java.lang.Object[] objects,
boolean mayNotDefined) |
java.lang.Object |
run(java.lang.String methodName,
java.lang.Object object,
boolean mayNotDefined) |
void |
setAttachment(java.lang.Object attachment) |
void |
setBusinessObjects(java.lang.Object[] businessObjects) |
void |
setCheckRuleUpdates(boolean checkRuleUpdates) |
static void |
setCurrentUserPassword(java.lang.String password)
Sets the POI BIFF8 encryption/decryption password for the current thread.
|
void |
setExternalRules(ExternalRules externalRules) |
void |
setMethod(java.lang.String methodName)
Defines a method inside xlsMainFile to run
|
void |
setMethodName(java.lang.String methodName) |
void |
setNonDefinedMethodsAllowed(boolean nonDefinedMethodsAllowed) |
void |
setNotDefinedWarning(boolean notDefinedWarning)
Allows or disallows "not defined" warnings
|
void |
setNotFoundMethod(java.lang.String notFoundMethod) |
void |
setXlsMainFileName(java.lang.String fileName) |
void |
turnOffNotDefinedWarning()
Suppresses "not defined" warnings
|
public static java.lang.String OPENRULES_MODE
public static java.lang.String OPENRULES_MODE_EXECUTE
public static java.lang.String OPENRULES_MODE_VALIDATE
public static java.lang.String OPENRULES_MODE_SOLVE
public OpenRulesEngine(java.lang.String xlsMainFileName, java.lang.String methodName, java.lang.Class clazz, ExternalRules externalRules, java.util.Properties dbProperties)
xlsMainFileName
- methodName
- clazz
- externalRules
- dbProperties
- public OpenRulesEngine(java.util.Properties dbProperties, java.lang.String xlsMainFileName)
public OpenRulesEngine(java.lang.String xlsMainFileName)
public OpenRulesEngine(java.lang.String xlsMainFileName, ExternalRules externalRules)
public OpenRulesEngine(java.lang.String xlsMainFileName, java.lang.String methodName)
public OpenRulesEngine(java.lang.String xlsMainFileName, java.lang.Class clazz)
public OpenRulesEngine(java.lang.String xlsMainFileName, java.lang.Class clazz, ExternalRules externalRules)
public OpenRulesEngine(java.lang.String xlsMainFileName, java.lang.String methodName, java.lang.Class clazz)
public java.lang.String getVersion()
public static void setCurrentUserPassword(java.lang.String password)
password
- pass null
to clear user password (and use default)public static java.lang.String getRelease()
public void log(java.lang.String text)
text
- public void setMethod(java.lang.String methodName)
methodName
- public java.lang.Object run()
public java.lang.Object run(java.lang.String methodName, boolean mayNotDefined)
public java.lang.Object run(java.lang.String methodName)
public java.lang.Object run(java.lang.Object[] objects)
public java.lang.Object run(Decision decision)
public void turnOffNotDefinedWarning()
public final boolean isNotDefinedWarning()
public final void setNotDefinedWarning(boolean notDefinedWarning)
notDefinedWarning
- public final boolean isNonDefinedMethodsAllowed()
public final void setNonDefinedMethodsAllowed(boolean nonDefinedMethodsAllowed)
public java.lang.Object run(java.lang.String methodName, java.lang.Object[] objects, boolean mayNotDefined)
public java.lang.Object run(java.lang.String methodName, java.lang.Object[] objects)
public boolean doesMethodExist(java.lang.String methodName)
public RuleMethod checkAndSetRuleMethod(java.lang.String methodName)
public java.lang.Object run(java.lang.String methodName, java.lang.Object object)
public java.lang.Object run(java.lang.String methodName, java.lang.Object object, boolean mayNotDefined)
public java.net.URL getSourceURL(java.lang.String path, org.openl.conf.IUserContext ucxt) throws java.net.MalformedURLException
java.net.MalformedURLException
public static java.util.Properties getDbProperties()
public com.openrules.datasource.IDataSource getDataSource(java.lang.String path, org.openl.conf.IUserContext ucxt) throws java.net.MalformedURLException
java.net.MalformedURLException
public java.lang.String getXlsMainFileName()
public void setXlsMainFileName(java.lang.String fileName)
fileName
- The fileName to set.public java.lang.String getMethodName()
public void setMethodName(java.lang.String methodName)
methodName
- The methodName to set.public java.lang.Object[] getBusinessObjects()
public void setBusinessObjects(java.lang.Object[] businessObjects)
businessObjects
- The businessObjects to set.public boolean isCheckRuleUpdates()
public void setCheckRuleUpdates(boolean checkRuleUpdates)
checkRuleUpdates
- The checkRuleUpdates to set.public final java.lang.Object getAttachment()
public final void setAttachment(java.lang.Object attachment)
public ExternalRules getExternalRules()
public void setExternalRules(ExternalRules externalRules)
public java.util.Iterator getMethodIterator()
public java.lang.String getNotFoundMethod()
public void setNotFoundMethod(java.lang.String notFoundMethod)
public java.lang.Object[] getData(java.lang.String dataName)
name
- a string with the name of the Excel Data table (e.g. "employees")public java.lang.Object getVariable(java.lang.String variableName)
name
- a string with the name of the Excel Variable table (e.g. "employee")