Package oracle.rules.sdk2.datamodel
Class Function
- All Implemented Interfaces:
Serializable,Cloneable,Map<String,,Object> Callable,ActionContext
Represent a RL function
In addition to the usual getters and setters for designing the function,
there is also
isTestEnabled() and test(java.lang.StringBuilder) methods for providing
a "Test" button in the UI that when pressed, actually invokes the defined function
in a RuleSession and returns the result for the UI to display.
See details for each method.- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class oracle.rules.sdk2.dictionary.DictionaryComponent
DictionaryComponent.Diff<T extends DictionaryComponent>, DictionaryComponent.DiffSummary, DictionaryComponent.DiffType -
Field Summary
FieldsFields inherited from class oracle.rules.sdk2.dictionary.DictionaryComponent
PROP_ACCESS, PROP_ACTION_SELECTED, PROP_ACTION_TABLE, PROP_ACTIVE, PROP_ACTUAL_TEST_OUTPUT_TABLE, PROP_ADHOC_TEST_VALIDATION, PROP_ADVANCED_MODE, PROP_AGGREGATE, PROP_AGGREGATE_TABLE, PROP_ALIAS, PROP_ALLOW_GAPS, PROP_ALWAYS_SELECTED, PROP_ARRAY, PROP_ARRAY_COMPONENT_TYPE, PROP_ARRAY_COMPONENT_TYPE_ID, PROP_ARRAY_FACT_TYPE_TABLE, PROP_AUTO_CONFLICT_RESOLUTION, PROP_AUTO_PATTERN_PROPERTY, PROP_AUTO_SYNC, PROP_BODY, PROP_BUCKET_ID_TABLE, PROP_BUCKET_SET, PROP_BUCKET_SET_ID, PROP_BUCKET_SET_TABLE, PROP_BUCKET_TABLE, PROP_CALENDAR_FORM, PROP_CHECK_RULE_FLOW, PROP_CHILD_DIMENSION_NODES, PROP_CONFLICT, PROP_CONFLICT_POLICY, PROP_CONNECTIVE, PROP_CONSTANT, PROP_CONSTRUCTOR, PROP_CONSTRUCTOR_TABLE, PROP_CREATION_UPDATE_NUMBER, PROP_CURSOR_POSITION, PROP_CUSTOM_BINDING, PROP_DATA_MODEL, PROP_DATA_SOURCE, PROP_DECISION_FUNCTION, PROP_DECISION_FUNCTION_ID, PROP_DECISION_FUNCTION_INPUT_TABLE, PROP_DECISION_FUNCTION_OUTPUT_TABLE, PROP_DECISION_FUNCTION_RULESET_TABLE, PROP_DECISION_FUNCTION_TABLE, PROP_DECISION_MODEL, PROP_DESCRIPTION, PROP_DF_FACT, PROP_DF_FACT_ID, PROP_DICT_LOADING_EXTENSION, PROP_DICTIONARY_LINK_TABLE, PROP_DIMENSION_NODE_TABLE, PROP_DIMENSION_TABLE, PROP_DISALLOW_ERROR_SUPPRESSION, PROP_DRAFT, PROP_DSL_ID, PROP_DSL_PARAMETER_TABLE, PROP_DSL_TABLE, PROP_DSL_VALUE, PROP_DT_ACTION_NODE_TABLE, PROP_DT_ACTION_PARAMETER_NAME, PROP_DTACTION_TABLE, PROP_DTRULE_TABLE, PROP_EFFECTIVE_END_DATE, PROP_EFFECTIVE_START_DATE, PROP_ENUM, PROP_ENUM_BUCKET_SET, PROP_ENUM_BUCKET_SET_ID, PROP_ENUM_TYPE, PROP_EXCEPTION_IDS, PROP_EXCEPTIONS, PROP_EXCLUDED, PROP_EXPECTED_TEST_OUTPUT_TABLE, PROP_EXPRESSION, PROP_EXPRESSION_TABLE, PROP_FACT_PATH, PROP_FACT_PATH_IDS, PROP_FACT_TABLE, PROP_FACT_TYPE, PROP_FACT_TYPE_ID, PROP_FACT_TYPE_IDS, PROP_FACT_TYPE_TABLE, PROP_FACT_TYPES, PROP_FIELD_TABLE, PROP_FINAL, PROP_FORM, PROP_FORMAL_PARAMETER_TABLE, PROP_FUNCTION, PROP_FUNCTION_ID, PROP_FUNCTION_SIGNATURE, PROP_FUNCTION_TABLE, PROP_GENERATED_FROM, PROP_GLOBAL_ALIAS, PROP_ID, PROP_INCLUDE_CHAINED_EXPR, PROP_INCLUDED, PROP_INTERFACE, PROP_INTERFACE_IDS, PROP_INTERFACES, PROP_IS_ABSTRACT, PROP_IS_CONSTANT, PROP_IS_ENUM, PROP_IS_FINAL, PROP_IS_JAXB2, PROP_IS_PRIMARY_KEY, PROP_IS_STATIC, PROP_IS_TOPLEVEL_VIEW_OBJECT, PROP_LEFT, PROP_LIFECYCLE, PROP_LIFECYCLE_DESCRIPTION, PROP_LINK_PATH, PROP_LIST, PROP_LIST_CONTENT_TYPE, PROP_LIST_CONTENT_TYPE_ID, PROP_LOCAL, PROP_LOGICAL, PROP_METHOD_TABLE, PROP_MODIFIERS, PROP_NAME, PROP_NAMESPACE, PROP_NESTED_TABLE, PROP_NO_CONFLICT, PROP_NO_RULE_FIRED_IS_ERROR, PROP_NODE_NAME, PROP_OPERATOR, PROP_OPERATOR_ID, PROP_ORDER_RULES_BY_BUCKET, PROP_OTHERWISE, PROP_OUTPUT_TYPES, PROP_OVERLOADED_PARAMETER_TABLE, PROP_OVERRIDDEN_BY, PROP_OVERRIDE, PROP_PACKAGE, PROP_PARAM, PROP_PARAM_EXPRESSION, PROP_PARAMETER_ALIAS, PROP_PARAMETER_ID, PROP_PARAMETER_LIST, PROP_PARAMETER_NAME, PROP_PARAMETER_REQUIRED, PROP_PARAMETER_TYPE_IDS, PROP_PARAMETER_TYPES, PROP_PARENT_DIMENSION_NODE, PROP_PATTERN_TABLE, PROP_PHRASE_SUGGESTION_FORM, PROP_PREFERENCES, PROP_PREFIX_LINKED_NAMES, PROP_PRIORITY, PROP_PRIVATE_BUCKET_SET, PROP_PROPERTIES, PROP_PROPERTY, PROP_PROPERTY_ID, PROP_PROPERTY_TABLE, PROP_PROPERTY_VALUE_TABLE, PROP_QUALIFIER_PATTERN, PROP_READABLE, PROP_REF_ID, PROP_REPORT_BYUSE_NAMES, PROP_REPORT_PATTERNS, PROP_RESOLVED_TARGET, PROP_RESOLVED_VALUE, PROP_RESOURCE_BUNDLE, PROP_RESTRICT_AUTO_SUGGESTIONS, PROP_RETURN_TYPE, PROP_RIGHT, PROP_RIGHT_SEPARATOR, PROP_RULE_EXEC_ALGORITHM, PROP_RULE_FIRING_LIMIT, PROP_RULE_FIRING_LIMIT_ERROR, PROP_RULE_REPORT_TABLE, PROP_RULE_SET_TABLE, PROP_RULE_SHEET_TABLE, PROP_RULE_TABLE, PROP_RULESET, PROP_RUN_AFTER, PROP_RUN_BEFORE, PROP_SERVICE_CONFIGURATION, PROP_SERVICE_NAME, PROP_SERVICE_NAMESPACE, PROP_SHARED_BUCKET_SET, PROP_SHARED_BUCKET_SET_ID, PROP_SHOW_CONSTANTS, PROP_SHOW_FUNCTIONS, PROP_SHOW_VARIABLES, PROP_SIMPLE_TEST_TABLE, PROP_SOURCE, PROP_STATELESS, PROP_STATIC, PROP_SUPER_CLASS, PROP_SUPER_CLASS_ID, PROP_SUPPORT_XPATH, PROP_SUPPORTS_XPATH_ENABLED, PROP_SYNC_MARK, PROP_SYSTEM, PROP_TARGET, PROP_TARGET_PACKAGE, PROP_TEST_CASE_TABLE, PROP_TEST_FORM, PROP_TEST_INPUT_TABLE, PROP_TEST_MODEL, PROP_TEST_RESULT_TABLE, PROP_TEST_SUITE_TABLE, PROP_TEST_TEMPLATE_TABLE, PROP_TIMESTAMP, PROP_TOKEN_UNDER_CURSOR, PROP_TRANSLATED_ALIAS, PROP_TRANSLATED_DESCRIPTION, PROP_TRANSLATED_GLOBAL_ALIAS, PROP_TRANSLATED_PARAMETER_LIST, PROP_TRANSLATED_QUALIFIER_PATTERN, PROP_TRANSLATED_VALUE, PROP_TRANSLATED_VARIABLE, PROP_TREE, PROP_TREE_MODE, PROP_TYPE, PROP_TYPE_ID, PROP_TYPE_IDS, PROP_TYPES, PROP_UNIQUE_RULESETS, PROP_UNSAVED_TRANSLATED_ALIAS, PROP_UNSAVED_TRANSLATED_DESCRIPTION, PROP_UNSAVED_TRANSLATED_GLOBAL_ALIAS, PROP_UNSAVED_TRANSLATED_QUALIFIER_PATTERN, PROP_UNSAVED_TRANSLATED_VALUE, PROP_UPDATE_NUMBER, PROP_UPDATE_TIME, PROP_VALIDATION, PROP_VALIDATION_UPDATE_NUMBER, PROP_VALUE, PROP_VALUES, PROP_VARIABLE, PROP_VARIABLE_TABLE, PROP_VERBAL_RULE_TABLE, PROP_VERSION, PROP_VERTICAL_ORIENTATION, PROP_VISIBILITY_FILTER, PROP_VISIBILITY_FILTER_ENABLED, PROP_VISIBLE, PROP_WEB_SERVICE, PROP_WRITABLE, PROP_XML_NAME -
Method Summary
Modifier and TypeMethodDescriptionvoidgeneration of RL scoped varsOverride hashtable get method.Retrieve the ActionTable used to create Function body (in place of Body parameter)Get ActionTable Property.getBody()Deprecated.DOID[]String[]Get all the exceptions of the functiongetForm()Deprecated.Get all the parameters of the functionGet FormalParameterTable Property.String[]Deprecated.intDeprecated.voidGet parameter list as a StringgetParameterList(boolean translate) Get optionally translated parameter list as a StringGet all the parameters of the callable interface (Function/Method/Constructor) Function returns FormalParameterTable and Method/Constructor return OverloadedParameterTableString[]intString[]booleanWhether the funtion is a RL built-in function or user-defined functionbooleanare the names in the containing DictionaryComponentTable distinct?booleanWhether the return type of the function is primitive (i.e. int, char, double etc.)?booleanShould the UI enable the "Test" button?Override hashtable put method.voidDeprecated.voidsetExceptions(String[] exps) Set all the exceptions of the functionvoidDeprecated.booleantest(StringBuilder stdout) Deprecated.booleantest(StringBuilder stdout, ClassLoader parent) Execute this function in a new RuleSession, and return its result.test(StringBuilder stdout, ClassLoader parent, Integer level, Integer limit) voidvalidate(List<SDKException> errors, List<SDKWarning> warnings) Validate and append errors and warnings.voidvalidate(List<SDKException> errors, List<SDKWarning> warnings, int modelChangeLowerBound, int ruleChangeLowerBound) Validate the RuleDictionary object.Methods inherited from class oracle.rules.sdk2.datamodel.ConstrainableComponent
getBucketSet, getBucketSetAlias, getBucketSetOptions, getBucketSetProperty, setBucketSet, setBucketSetByAliasMethods inherited from class oracle.rules.sdk2.datamodel.TypedComponent
_getTypeID, getFullyQualifiedTypeName, getListContentType, getListContentTypeFullName, getListContentTypeID, getListContentTypeName, getListContentTypeOptions, getListContentTypeProperty, getType, getTypeID, getTypeName, getTypeOptions, getTypeProperty, getTypeSelected, isChainable, isCollection, isPrimitiveType, setListContentType, setListContentTypeID, setListContentTypeName, setType, setTypeID, setTypeNameMethods inherited from class oracle.rules.sdk2.datamodel.ModelComponent
getCreationUpdateNumber, getParent, getParentTable, getVisibleProperty, isVisible, setVisibleMethods inherited from class oracle.rules.sdk2.dictionary.DictionaryComponent
_get, _put, clear, containsKey, containsValue, entrySet, forceSync, getAEReferences, getAlias, getAlias, getAlias, getAlias, getAliasProperty, getAllReferences, getContainedDiffs, getCustom, getDependents, getDescription, getDescription, getDescriptionProperty, getDiff, getDiffMatchValue, getDiffProperties, getDiffs, getExprParserReferences, getFullyQualifiedAlias, getFullyQualifiedName, getIndex, getIndex, getName, getNameProperty, getNext, getNext, getObjectPath, getOptions, getPrevious, getPrevious, getProperties, getProperty, getReferences, getSelected, getTranslatedAlias, getTranslatedAlias, getTranslatedDescription, hasConflict, hasDiff, init, init, isAliasDistinct, isEmpty, isFullyQualifiedName, isModifiable, isSystemProperty, isUnsavedTranslatedAlias, isUnsavedTranslatedDescription, keySet, putAll, remove, removeDiff, setAlias, setAlias, setCustom, setDescription, setDescription, setName, setTranslatedAlias, setTranslatedDescription, size, validate, valuesMethods inherited from class oracle.rules.sdk2.dictionary.DictionaryObject
_clearID, equals, exists, getAEReferenceCount, getCombinedDataModel, getContainedIDs, getContainedIDs, getDataModel, getDictionary, getID, getIndent, getObjectType, getParentByClass, getParentComponent, getParentComponentTable, getParentObject, getRuleSet, getState, getWarnings, hashCode, isModified, setID, validateMethods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface oracle.rules.sdk2.datamodel.Callable
_getTypeID, getDescription, getFullyQualifiedName, getID, getType, getTypeID, isVisible, setDescription, setVisibleMethods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Field Details
-
FORM_STRUCTURED
Deprecated.- See Also:
-
FORM_FREE
Deprecated.- See Also:
-
-
Method Details
-
getForm
Deprecated. -
setForm
Deprecated. -
getFormOptions
Deprecated. -
getFormSelected
Deprecated. -
isBuiltIn
public boolean isBuiltIn()Whether the funtion is a RL built-in function or user-defined function- Returns:
- true if the funtion is a RL built-in function
-
getFormalParameterTableProperty
Get FormalParameterTable Property.- Returns:
- FormalParameter TableProperty
-
getFormalParameterTable
Get all the parameters of the function- Returns:
- The list of parameters of the funciton.
-
getActionTableProperty
Get ActionTable Property.- Returns:
- Action TableProperty
-
getActionTable
Retrieve the ActionTable used to create Function body (in place of Body parameter) -
getParameters
Description copied from interface:CallableGet all the parameters of the callable interface (Function/Method/Constructor) Function returns FormalParameterTable and Method/Constructor return OverloadedParameterTable- Specified by:
getParametersin interfaceCallable- Returns:
- all the formal parameters of the callable interface
-
getExceptions
Get all the exceptions of the function- Returns:
- The list of exceptions of the function.
-
setExceptions
Set all the exceptions of the function- Parameters:
exps- The list of exceptions of the function.
-
getActions
-
getReturnExpressionTableSize
public int getReturnExpressionTableSize()- Specified by:
getReturnExpressionTableSizein interfaceActionContext
-
getBody
Deprecated.Get function body as a String- Returns:
- Body of the function
-
setBody
Deprecated.Set function body- Parameters:
body- A string represeting body of the function
-
isReturnTypePrimitive
public boolean isReturnTypePrimitive()Whether the return type of the function is primitive (i.e. int, char, double etc.)?- Returns:
- true if return type is primitive; false if return type is java or RL class
-
getParameterList
Get parameter list as a String- Specified by:
getParameterListin interfaceCallable- Returns:
- return the method's parameter list in the format paramType, paramType ...
-
getParameterList
Get optionally translated parameter list as a String- Specified by:
getParameterListin interfaceCallable- Returns:
- return the method's parameter list in the format paramType, paramType ...
-
validate
Description copied from class:DictionaryComponentValidate and append errors and warnings.- Overrides:
validatein classConstrainableComponent<Function>- Parameters:
errors- a List of error exceptions to append to.warnings- a List of warning exceptions to append to.- See Also:
-
validate
public void validate(List<SDKException> errors, List<SDKWarning> warnings, int modelChangeLowerBound, int ruleChangeLowerBound) Description copied from class:DictionaryObjectValidate the RuleDictionary object. Append error and warning exceptions. Errors will causeRuleDictionary.update(java.util.List<oracle.rules.sdk2.exception.SDKWarning>)to throw an exception. A dictionary with warnings but no errors can be persisted.- Overrides:
validatein classDictionaryObject- Parameters:
errors- a List of error exceptions to append to.warnings- a List of warning exceptions to append to.modelChangeLowerBound- smallest ModelComponent.CreationUpdateNumber modified in thix tx.ruleChangeLowerBound- smallest RuleComponent.CreationUpdateNumber modified in thix tx. Rulesets and rules with UpdateNumber >= modelChangeLowerBound will be revalidated. a value of 0 will force revalidation of all rulesets. A value of Integer.MAX_VALUE will skip validation of all rulesets.
-
get
Override hashtable get method. -
put
Description copied from class:ConstrainableComponentOverride hashtable put method. For property "bucketset" we store both alias and ID and sync them -
getPropertyNames
- Overrides:
getPropertyNamesin classConstrainableComponent<Function>- Returns:
- Array of property names available.
-
getStoredPropertyNames
- Overrides:
getStoredPropertyNamesin classConstrainableComponent<Function>- Returns:
- Array of property names which are persisted in the order in which they appear in the schema.
-
isNameDistinct
public boolean isNameDistinct()Description copied from class:DictionaryComponentare the names in the containing DictionaryComponentTable distinct?- Overrides:
isNameDistinctin classDictionaryComponent<Function>- See Also:
-
genRLBindVars
public void genRLBindVars()generation of RL scoped vars- Specified by:
genRLBindVarsin interfaceActionContext
-
getAssertedTypeIDs
-
isTestEnabled
public boolean isTestEnabled()Should the UI enable the "Test" button? The "Test" button is used to actually invoke the function in a new RuleSession and return whether it passed or failed. To be enabled, the function must take no parameters and return boolean, and the containing RuleDictionary must be valid.- Returns:
- boolean indicating the "Test" button is enabled
- See Also:
-
test
Deprecated.- Throws:
RLExceptionSDKException
-
test
Execute this function in a new RuleSession, and return its result. The UI should call this when the user presses the "Test" button. The "Test" button should be enabled whenisTestEnabled()is true. The UI should invoke test() as follows:Function f; StringBuilder output = new StringBuilder(); try { boolean testPassed = f.test(output); // display Test Passed or Test Failed } catch (Exception e) { // display information about e, including stacktrace } // display output- Parameters:
stdout- the output StringBuilder- Returns:
- success or failure of executing the function
- Throws:
RLExceptionSDKException
-
getOutputTypeIDs
-
getModifiers
- Specified by:
getModifiersin interfaceCallable
-
getExceptionIDs
- Specified by:
getExceptionIDsin interfaceCallable
-
test
public Function.TestResult test(StringBuilder stdout, ClassLoader parent, Integer level, Integer limit) throws RLException, SDKException - Throws:
RLExceptionSDKException
-