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.DiffTypeNested 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
BUILTINFields 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 TypeMethodDescriptionbooleancanSpan()Test whether (nodes in) this dimension can be spanned.booleanTest 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.intString[]getValue()String[]inScopeVariables(boolean includeAggregates, VariableScope.ExprLocation loc) By default, pass the request to the containerbooleanIs the BucketSet sharedbooleanA child calls this method in the parent to see if it must have a value !voidmerge()Merge all DimensionNodes in this Dimension so that no node has a sibling.Generic property setter.voidSet default bucketset based on expression.voidsetSharedBucketSet(BucketSet bucketSet) Set SharedBucketSet and BucketSet shared flag Null bucketSet clears shared flag.voidsetSharedBucketSetByAlias(String alias) voidsetShowVariables(boolean showVariables) voidvoidspan()Span all consecutive DimensionNodes in this Dimension with same buckets.voidsplit()Split the Dimension in the same way split(true)voidsplit(boolean expanded) Split the Dimension such that each sibling group has all values in the bucketset.voidunspan()Unspan all nodes in this dimension.voidvalidate(List<SDKException> errors, List<SDKWarning> warnings) Validate dimension.Methods inherited from class oracle.rules.sdk2.ruleset.UnnamedRuleComponent
getDiffMatchValue, init, isAliasDistinct, isNameDistinctMethods 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, toStringMethods 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, 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, validate, validateMethods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAllMethods 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:
getPropertyNamesin interfaceUnnamedComponent- Overrides:
getPropertyNamesin classUnnamedRuleComponent<Dimension>- Returns:
- Array of property names available.
-
getStoredPropertyNames
- Overrides:
getStoredPropertyNamesin 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:
validatein classDictionaryComponent<Dimension>- Parameters:
errors-warnings-- See Also:
-
put
Description copied from class:DictionaryComponentGeneric 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:DictionaryComponentGeneric 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:RuleComponentBy default, pass the request to the container- Specified by:
inScopeVariablesin interfaceVariableScope- Overrides:
inScopeVariablesin classRuleComponent<Dimension>
-
getMatchTypeIDs
A Dimension Expression's type is unconstrained. TODO this could be improved to allow only bucketset compatible types- Specified by:
getMatchTypeIDsin interfaceExpressionContext
-
getMatchOp
The semantics of "match" is "=="- Specified by:
getMatchOpin interfaceExpressionContext
-
isValueRequired
Description copied from interface:ExpressionContextA child calls this method in the parent to see if it must have a value != ""- Specified by:
isValueRequiredin interfaceExpressionContext
-
DTRule.getDimensionNodeTableProperty()