Package oracle.rules.sdk2.decisiontable
Class Dimension
java.lang.Object
- All Implemented Interfaces:
Serializable
,Cloneable
,Map<String,
,Object> UnnamedComponent
,ExpressionContext
,VariableScope
A Dimension defines a top-level ANDed term in the condition part of every rule
in a decision table.
A Dimension contains
- an Expression
- a BucketSet, or a reference to a datamodel BucketSet
- a table of DimensionNodes. For the last Dimension, the table contains a node per rule in the sheet.
Dimensions are ordered by their position in the DimensionTable of the containing RuleSheet.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class oracle.rules.sdk2.dictionary.DictionaryComponent
DictionaryComponent.Diff<T extends DictionaryComponent>, DictionaryComponent.DiffSummary, DictionaryComponent.DiffType
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K extends Object,
V extends Object> Nested classes/interfaces inherited from interface oracle.rules.sdk2.ruleset.VariableScope
VariableScope.ExprLocation
-
Field Summary
Fields inherited from class oracle.rules.sdk2.ruleset.RuleComponent
BUILTIN
Fields 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 TypeMethodDescriptionboolean
canSpan()
Test whether (nodes in) this dimension can be spanned.boolean
Test whether (nodes in) this dimension can be unspanned.Generic property getter.Get BucketSet of the dimension.String[]
Get DimensionNodeTableDeprecated.get Expression of the dimension.Get Expression Property.String[]
String[]
The semantics of "match" is "=="DOID[]
A Dimension Expression's type is unconstrained.String[]
String[]
Get PrivateBucketSet Property.String[]
String[]
Get SharedBucketSet Property.int
String[]
getValue()
String[]
inScopeVariables
(boolean includeAggregates, VariableScope.ExprLocation loc) By default, pass the request to the containerboolean
Is the BucketSet sharedboolean
A child calls this method in the parent to see if it must have a value !void
merge()
Merge all DimensionNodes in this Dimension so that no node has a sibling.Generic property setter.void
Set default bucketset based on expression.void
setSharedBucketSet
(BucketSet bucketSet) Set SharedBucketSet and BucketSet shared flag Null bucketSet clears shared flag.void
setSharedBucketSetByAlias
(String alias) void
setShowVariables
(boolean showVariables) void
void
span()
Span all consecutive DimensionNodes in this Dimension with same buckets.void
split()
Split the Dimension in the same way split(true)void
split
(boolean expanded) Split the Dimension such that each sibling group has all values in the bucketset.void
unspan()
Unspan all nodes in this dimension.void
validate
(List<SDKException> errors, List<SDKWarning> warnings) Validate dimension.Methods inherited from class oracle.rules.sdk2.ruleset.UnnamedRuleComponent
getDiffMatchValue, init, isAliasDistinct, isNameDistinct
Methods inherited from class oracle.rules.sdk2.ruleset.RuleComponent
get, getParent, getParentTable, getParentVariableScope, inScopeVariables, parentAction, parentActionContext, parentAutoBindingContext, parentFunction, parentPattern, parentRule, parentRuleBase, parentRuleCommon, parentRuleSheet, parentTest, parentVariable, parentVerbalRule, RHSRuleVariables, toString, toString
Methods 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, 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, isEmpty, isFullyQualifiedName, isModifiable, isSystemProperty, isUnsavedTranslatedAlias, isUnsavedTranslatedDescription, keySet, putAll, remove, removeDiff, setAlias, setAlias, setCustom, setDescription, setDescription, setName, setTranslatedAlias, setTranslatedDescription, size, validate, values
Methods 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, validate, validate
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
Methods inherited from interface oracle.rules.sdk2.dictionary.UnnamedComponent
getAlias, getName, setAlias, setName
-
Method Details
-
getPrivateBucketSetProperty
Get PrivateBucketSet Property.- Returns:
- DictionaryProperty of type BucketSet
-
getExpressionProperty
Get Expression Property.- Returns:
- DictionaryProperty of type Expression
-
getDimensionNodeTableProperty
Deprecated.Get DimensionNodeTable Property.- Returns:
- DimensionNode Table
-
getExpression
get Expression of the dimension. -
getValueProperty
-
getValue
-
setValue
-
getValueOptions
-
getResultTypeID
-
getMutableVariableOptions
-
getFunctionOptions
-
getConstructorOptions
-
getOperatorOptions
-
getImmutableVariableOptions
-
setShowVariables
public void setShowVariables(boolean showVariables) -
getBucketSet
Get BucketSet of the dimension. If #setSharedBucketSet has been called with a non-null argument, that argument is returned if it still exists (has not been deleted). If #setSharedBucketSet has been called with a null argument, the private bucketset is returned.- Returns:
- BucketSet of the Dimension
-
setDefaultBucketSet
public void setDefaultBucketSet()Set default bucketset based on expression. This also sets the shared BucketSet associated with the expression, if any. -
getDimensionNodeTable
Get DimensionNodeTable- Returns:
- DimensionNodeTable of DimensionNodes in this Dimension
-
merge
Merge all DimensionNodes in this Dimension so that no node has a sibling. In an ordered rulesheet, this may decrease the number rules in the sheet, and may create invalid DTActionNodes if conflicting actions parameter values are merged.- Throws:
SDKException
-
span
public void span()Span all consecutive DimensionNodes in this Dimension with same buckets. -
canSpan
public boolean canSpan()Test whether (nodes in) this dimension can be spanned. -
split
Split the Dimension in the same way split(true)- Throws:
SDKException
-
split
Split the Dimension such that each sibling group has all values in the bucketset. This split method never splits existing dimension nodes. Use splitExisting if that that is the desired behavior. if expanded is false, then for each sibling group, only one Dimension Node is added and this new node contains all of the previously unrepresented buckets. if expanded is true, then for each sibling group, one Dimension Node is added for each previously unrepresented bucket for subsequent rows in the DimensionTable, a "don't care" is added for each new node in this Dimension. These Dimensions must then be split if one wishes to have a rule combinations of buckets.- Throws:
SDKException
-
unspan
public void unspan()Unspan all nodes in this dimension. Afterward, all nodes in this dimension have at most one child. -
canUnspan
public boolean canUnspan()Test whether (nodes in) this dimension can be unspanned. -
getPropertyNames
- Specified by:
getPropertyNames
in interfaceUnnamedComponent
- Overrides:
getPropertyNames
in classUnnamedRuleComponent<Dimension>
- Returns:
- Array of property names available.
-
getStoredPropertyNames
- Overrides:
getStoredPropertyNames
in classUnnamedRuleComponent<Dimension>
- Returns:
- Array of property names which are persisted in the order in which they appear in the schema.
-
validate
Validate dimension. Validate the expression, local bucketset, and dimension nodes. Not all nodes can be set to "don't care" unless the bucketset is a LOV with no otherwise bucket and not boolean.Type check of bucketset and expression datatype via expression typecheck TODO: Need better error message for this case.
- Overrides:
validate
in classDictionaryComponent<Dimension>
- Parameters:
errors
-warnings
-- See Also:
-
put
Description copied from class:DictionaryComponent
Generic property setter. Throws runtime exceptions for incorrect arguments. Please see the specific bean class for a list of properties, their types, and permissible values.A put() with either null key or null value throws a NullPointerException.
A put() with a key that is not a String throws a ClassCastException
A put() of a value that is not of the correct type for the key throws a ClassCastException.
Bean properties which have no set() method are read only, and cannot be modified using the put(). Attempting to do so throws a runtime IllegalArgumentException. PROP_ID, and PROP_*_SELECTED are always read only.
-
get
Description copied from class:DictionaryComponent
Generic property getter.Please see the specific bean class for a list of properties.
-
inScopeVariables
public List<ScopedVariable> inScopeVariables(boolean includeAggregates, VariableScope.ExprLocation loc) Description copied from class:RuleComponent
By default, pass the request to the container- Specified by:
inScopeVariables
in interfaceVariableScope
- Overrides:
inScopeVariables
in classRuleComponent<Dimension>
-
getMatchTypeIDs
A Dimension Expression's type is unconstrained. TODO this could be improved to allow only bucketset compatible types- Specified by:
getMatchTypeIDs
in interfaceExpressionContext
-
getMatchOp
The semantics of "match" is "=="- Specified by:
getMatchOp
in interfaceExpressionContext
-
isValueRequired
Description copied from interface:ExpressionContext
A child calls this method in the parent to see if it must have a value != ""- Specified by:
isValueRequired
in interfaceExpressionContext
-
DTRule.getDimensionNodeTableProperty()