Oracle Fusion Middleware Java API Reference for Oracle Business Rules
11g Release 1 (11.1.1.7)

E10663-11

oracle.rules.sdk2.decisiontable
Class DTRule

java.lang.Object
  extended by oracle.rules.sdk2.dictionary.DictionaryObject
      extended by oracle.rules.sdk2.dictionary.DictionaryComponent
          extended by oracle.rules.sdk2.ruleset.RuleComponent
              extended by oracle.rules.sdk2.ruleset.UnnamedRuleComponent
                  extended by oracle.rules.sdk2.decisiontable.DTRule
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map<java.lang.String,java.lang.Object>, UnnamedComponent

public class DTRule
extends UnnamedRuleComponent

A DTRule contains conflict resolution information and provides methods for accessing the DimensionNodes and DTActionNodes for the rule.

Rules are ordered by their position in the RuleSheet's DTRuleTable. DTRule does not contain references to DimensionNodes and DTActionNodes because the DTActionNodes for the ith rule in the sheet are in the ith position of the DTActionNodeTables, and the DimensionNode for the last Dimension is in the ith position of the DimensionNodeTable. Remaining DimensionNodes can be obtained by following the parent link in the dimension tree.

Rules whose dimension values overlap this rule and contain non-identical actions should appear on one of the conflict resolution lists (override, runBefore, noConflict) or they will be reported when the sheet is checked for conflicts.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class oracle.rules.sdk2.dictionary.DictionaryComponent
DictionaryComponent.Diff, DictionaryComponent.DiffType
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Field Summary
 
Fields inherited from class oracle.rules.sdk2.dictionary.DictionaryComponent
PROP_ACCESS, PROP_ACTION_SELECTED, PROP_ACTION_TABLE, PROP_ACTIVE, 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_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_CUSTOMIZABLE, PROP_CUSTOMIZABLE_TEMPLATE, PROP_DATA_MODEL, PROP_DATA_SOURCE, PROP_DECISION_FUNCTION, PROP_DECISION_FUNCTION_INPUT_TABLE, PROP_DECISION_FUNCTION_OUTPUT_TABLE, PROP_DECISION_FUNCTION_RULESET_TABLE, PROP_DECISION_FUNCTION_TABLE, PROP_DESCRIPTION, PROP_DICTIONARY_LINK_TABLE, PROP_DIMENSION_NODE_TABLE, PROP_DIMENSION_TABLE, 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_EXPRESSION, PROP_EXPRESSION_TABLE, PROP_FACT_PATH, PROP_FACT_PATH_IDS, PROP_FACT_TYPE, PROP_FACT_TYPE_ID, PROP_FACT_TYPE_TABLE, 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_ID, 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_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_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_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_PREFIX_LINKED_NAMES, PROP_PRIORITY, PROP_PRIVATE_BUCKET_SET, PROP_PROPERTIES, PROP_PROPERTY_TABLE, PROP_READABLE, PROP_REF_ID, PROP_REPORT_BYUSE_NAMES, PROP_REPORT_PATTERNS, PROP_RESOLVED_TARGET, PROP_RESOLVED_VALUE, PROP_RESOURCE_BUNDLE, PROP_RETURN_TYPE, PROP_RIGHT, PROP_RIGHT_SEPARATOR, 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_SYSTEM, PROP_TARGET, PROP_TARGET_PACKAGE, PROP_TEST_FORM, PROP_TIMESTAMP, PROP_TOKEN_UNDER_CURSOR, PROP_TRANSLATED_ALIAS, PROP_TRANSLATED_DESCRIPTION, PROP_TRANSLATED_PARAMETER_LIST, PROP_TRANSLATED_VARIABLE, PROP_TREE, PROP_TREE_MODE, PROP_TYPE, PROP_TYPE_ID, PROP_TYPE_IDS, PROP_TYPES, PROP_UNSAVED_TRANSLATED_ALIAS, PROP_UNSAVED_TRANSLATED_DESCRIPTION, PROP_UPDATE_NUMBER, PROP_UPDATE_TIME, PROP_VALIDATION_UPDATE_NUMBER, PROP_VALUE, PROP_VALUES, PROP_VARIABLE, PROP_VARIABLE_TABLE, PROP_VERSION, PROP_VISIBILITY_FILTER, PROP_VISIBILITY_FILTER_ENABLED, PROP_VISIBLE, PROP_WEB_SERVICE, PROP_WRITABLE, PROP_XML_NAME
 
Method Summary
 boolean conflict(DTRule conflict)
          Move the conflicting rule to the Conflict list.
 IDTable<DTRule> getConflict()
          Get Conflict.
 IDTableProperty<DTRule> getConflictProperty()
          Get Conflict Property (list of rules that this rule conflicts with)
 DimensionNode getDimensionNode(int index)
          Get DimensionNode from the Dimension structure by dimension index.
 DimensionNodeTable getDimensionNodeTable()
          Get the dimension node table.
 TableProperty<DimensionNode> getDimensionNodeTableProperty()
          Get the dimension node table property.
 DTActionNode getDTActionNode(int index)
          Get DTActionNode from rule by Action index.
 DTActionNodeTable getDTActionNodeTable()
          Get the DT action node table
 TableProperty<DTActionNode> getDTActionNodeTableProperty()
          Get the DT action node table property The DT action node table is locked; actoin nodes may be neither added nor removed from the table.
 DimensionNode getLastDimensionNode()
          Get last DimensionNode from the Dimension structure.
 IDTable<DTRule> getNoConflict()
          Get NoConflict.
 IDTableProperty<DTRule> getNoConflictProperty()
          Get NoConflict Property (list of rules that this rule doesn't logically conflict with)
 IDTable<DTRule> getOverriddenBy()
          Get OverriddenBy.
 IDTableProperty<DTRule> getOverriddenByProperty()
          Get OverriddenBy Property
 IDTable<DTRule> getOverride()
          Get Override.
 IDTableProperty<DTRule> getOverrideProperty()
          Get Override Property (list of rules that this rule overrides)
 IDTable<DTRule> getRunAfter()
          Get RunAfter.
 IDTableProperty<DTRule> getRunAfterProperty()
          Get RunAfter Property (list of rules that this rule runs after)
 IDTable<DTRule> getRunBefore()
          Get RunBefore.
 IDTableProperty<DTRule> getRunBeforeProperty()
          Get RunBefore Property (list of rules that this rule runs before)
 boolean isLatest()
          Is this rule the latest (last one added to the decision table)?
 boolean noConflict(DTRule conflict)
          Move the conflicting rule to the noConflicts list.
 boolean overriddenBy(DTRule conflict)
          Move the conflicting rule to the OverriddenBy list.
 boolean override(DTRule conflict)
          Move the conflicting rule to the Override list.
 boolean runAfter(DTRule conflict)
          Move the conflicting rule to the RunAfter list.
 boolean runBefore(DTRule conflict)
          Move the conflicting rule to the RunBefore list.
 
Methods inherited from class oracle.rules.sdk2.ruleset.UnnamedRuleComponent
init, isAliasDistinct, isNameDistinct
 
Methods inherited from class oracle.rules.sdk2.ruleset.RuleComponent
get, getParent, getParentTable, parentAction, parentActionContext, parentFunction, parentPattern, parentRule, parentRuleCommon, parentRuleSheet, parentVariable, RHSRuleVariables
 
Methods inherited from class oracle.rules.sdk2.dictionary.DictionaryComponent
clear, containsKey, containsValue, entrySet, get, getAlias, getAlias, getAlias, getAlias, getAliasProperty, getAllReferences, getCustom, getDependents, getDescription, getDescription, getDescriptionProperty, getDiff, getDiffProperties, getDiffs, getFullyQualifiedAlias, getFullyQualifiedName, getIndex, getIndex, getName, getNameProperty, getNext, getObjectPath, getOptions, getPrevious, getProperties, getProperty, getReferences, getSelected, getTranslatedAlias, getTranslatedAlias, getTranslatedDescription, hasDiff, init, isEmpty, isFullyQualifiedName, isSystemProperty, isUnsavedTranslatedAlias, isUnsavedTranslatedDescription, keySet, put, putAll, remove, setAlias, setAlias, setCustom, setDescription, setDescription, setName, setTranslatedAlias, setTranslatedDescription, size, validate, validate, values
 
Methods inherited from class oracle.rules.sdk2.dictionary.DictionaryObject
equals, exists, getAEReferences, getCombinedDataModel, getContainedIDs, getContainedIDs, getDataModel, getDictionary, getID, getIndent, getLevel, getObjectType, getParentByClass, getParentComponent, getParentComponentTable, getParentObject, getRuleSet, getState, getWarnings, hashCode, isModified, validate
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface oracle.rules.sdk2.dictionary.UnnamedComponent
getAlias, getName, getPropertyNames, setAlias, setName
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Method Detail

isLatest

public boolean isLatest()
Is this rule the latest (last one added to the decision table)?

Returns:
boolean

getDimensionNode

public DimensionNode getDimensionNode(int index)
Get DimensionNode from the Dimension structure by dimension index. The returned node may be shared by more than one rule. Equivalent to getDimensionNodeTable().get(index).getDimDN()

Parameters:
index - index of the Dimension
Returns:
DimensionNode in Dimension given by index of the DTRule

getLastDimensionNode

public DimensionNode getLastDimensionNode()
Get last DimensionNode from the Dimension structure. The returned node is never shared by more than one rule, but you can use DimensionNode.getParentDimensionNode() to walk up the dimension tree and likely run into shared DimensionNodes.

Returns:
DimensionNode in last Dimension for this DTRule index

getDimensionNodeTableProperty

public TableProperty<DimensionNode> getDimensionNodeTableProperty()
Get the dimension node table property. The dimension node table is locked; dimension nodes may be neither added nor removed from the table. Dimension nodes are not shared by any other rule. Updating the bucket values in a DimensionNode in this table affects only this DTRule.

Returns:
TableProperty of DimensionNode

getDimensionNodeTable

public DimensionNodeTable getDimensionNodeTable()
Get the dimension node table.

Returns:
DimensionNodeTable
See Also:
DTRule.getDimensionNodeTableProperty()

getDTActionNodeTableProperty

public TableProperty<DTActionNode> getDTActionNodeTableProperty()
Get the DT action node table property The DT action node table is locked; actoin nodes may be neither added nor removed from the table.

Returns:
TableProperty of DTActionNode

getDTActionNodeTable

public DTActionNodeTable getDTActionNodeTable()
Get the DT action node table

Returns:
DTActionNodeTable
See Also:
DTRule.getDTActionNodeTableProperty()

getDTActionNode

public DTActionNode getDTActionNode(int index)
Get DTActionNode from rule by Action index.

Parameters:
index - index of the DTAction. 0 is first action in rule.
Returns:
DTActionNode at given index in the DTRule

getOverrideProperty

public IDTableProperty<DTRule> getOverrideProperty()
Get Override Property (list of rules that this rule overrides)

Returns:
Property containing a list of rules

getOverride

public IDTable<DTRule> getOverride()
Get Override. This is an IDTable of rules on the sheet that this rule overrides (runs instead of) Please do not modify the returned IDTable. Instead, use DTRule.conflict(oracle.rules.sdk2.decisiontable.DTRule), DTRule.noConflict(oracle.rules.sdk2.decisiontable.DTRule), DTRule.runBefore(oracle.rules.sdk2.decisiontable.DTRule), DTRule.runAfter(oracle.rules.sdk2.decisiontable.DTRule), DTRule.override(oracle.rules.sdk2.decisiontable.DTRule), or DTRule.overriddenBy(oracle.rules.sdk2.decisiontable.DTRule) to move a given DTRule to the correct IDTable.

Returns:
IDTable of DTRules

override

public boolean override(DTRule conflict)
Move the conflicting rule to the Override list. "Override" means this rule has higher priority than the conflict, and the two are mutually exclusive.

Parameters:
conflict - conflicting rule
Returns:
true if the rule was moved, false if the "conflict" is not a conflicting rule
See Also:
DTRule.getOverride()

getRunBeforeProperty

public IDTableProperty<DTRule> getRunBeforeProperty()
Get RunBefore Property (list of rules that this rule runs before)

Returns:
Property containing a list of rules

getRunBefore

public IDTable<DTRule> getRunBefore()
Get RunBefore. This is an IDTable of rules on the sheet that may run in addition to this rule, but with lower priority. Please do not modify the returned IDTable. Instead, use DTRule.conflict(oracle.rules.sdk2.decisiontable.DTRule), DTRule.noConflict(oracle.rules.sdk2.decisiontable.DTRule), DTRule.runBefore(oracle.rules.sdk2.decisiontable.DTRule), DTRule.runAfter(oracle.rules.sdk2.decisiontable.DTRule), DTRule.override(oracle.rules.sdk2.decisiontable.DTRule), or DTRule.overriddenBy(oracle.rules.sdk2.decisiontable.DTRule) to move a given DTRule to the correct IDTable.

Returns:
IDTable of DTRules

runBefore

public boolean runBefore(DTRule conflict)
Move the conflicting rule to the RunBefore list. "RunBefore" means this rule has higher priority than the conflict.

Parameters:
conflict - conflicting rule
Returns:
true if the rule was moved, false if the "conflict" is not a conflicting rule
See Also:
DTRule.getRunBefore()

getNoConflictProperty

public IDTableProperty<DTRule> getNoConflictProperty()
Get NoConflict Property (list of rules that this rule doesn't logically conflict with)

Returns:
Property containing a list of rules

getNoConflict

public IDTable<DTRule> getNoConflict()
Get NoConflict. This is an IDTable of rules on the sheet that (according to the user) don't actually conflict and thus may be run in addition to this rule, in arbitrary order. Please do not modify the returned IDTable. Instead, use DTRule.conflict(oracle.rules.sdk2.decisiontable.DTRule), DTRule.noConflict(oracle.rules.sdk2.decisiontable.DTRule), DTRule.runBefore(oracle.rules.sdk2.decisiontable.DTRule), DTRule.runAfter(oracle.rules.sdk2.decisiontable.DTRule), DTRule.override(oracle.rules.sdk2.decisiontable.DTRule), or DTRule.overriddenBy(oracle.rules.sdk2.decisiontable.DTRule) to move a given DTRule to the correct IDTable.

Returns:
IDTable of DTRules

noConflict

public boolean noConflict(DTRule conflict)
Move the conflicting rule to the noConflicts list. "NoConflict" means the rules run at the same priority and are not mutually exclusive.

Parameters:
conflict - conflicting rule
Returns:
true if the rule was moved, false if the "conflict" is not a conflicting rule
See Also:
DTRule.getNoConflict()

getOverriddenByProperty

public IDTableProperty<DTRule> getOverriddenByProperty()
Get OverriddenBy Property

Returns:
Property containing a list of rules

getOverriddenBy

public IDTable<DTRule> getOverriddenBy()
Get OverriddenBy. This is an IDTable of rules on the sheet that override this rule Please do not modify the returned IDTable. Instead, use DTRule.conflict(oracle.rules.sdk2.decisiontable.DTRule), DTRule.noConflict(oracle.rules.sdk2.decisiontable.DTRule), DTRule.runBefore(oracle.rules.sdk2.decisiontable.DTRule), DTRule.runAfter(oracle.rules.sdk2.decisiontable.DTRule), DTRule.override(oracle.rules.sdk2.decisiontable.DTRule), or DTRule.overriddenBy(oracle.rules.sdk2.decisiontable.DTRule) to move a given DTRule to the correct IDTable.

Returns:
IDTable of DTRules

overriddenBy

public boolean overriddenBy(DTRule conflict)
Move the conflicting rule to the OverriddenBy list. "OverriddenBy" means this rule has lower priority than the conflict, and the two are mutually exclusive.

Parameters:
conflict - conflicting rule
Returns:
true if the rule was moved, false if the "conflict" is not a conflicting rule
See Also:
DTRule.getOverriddenBy()

getRunAfterProperty

public IDTableProperty<DTRule> getRunAfterProperty()
Get RunAfter Property (list of rules that this rule runs after)

Returns:
Property containing a list of rules

getRunAfter

public IDTable<DTRule> getRunAfter()
Get RunAfter. This is an IDTable of rules on the sheet that may run in addition to this rule, but with higher priority. Please do not modify the returned IDTable. Instead, use DTRule.conflict(oracle.rules.sdk2.decisiontable.DTRule), DTRule.noConflict(oracle.rules.sdk2.decisiontable.DTRule), DTRule.runBefore(oracle.rules.sdk2.decisiontable.DTRule), DTRule.runAfter(oracle.rules.sdk2.decisiontable.DTRule), DTRule.override(oracle.rules.sdk2.decisiontable.DTRule), or DTRule.overriddenBy(oracle.rules.sdk2.decisiontable.DTRule) to move a given DTRule to the correct IDTable.

Returns:
IDTable of DTRules

runAfter

public boolean runAfter(DTRule conflict)
Move the conflicting rule to the RunAfter list. "RunAfter" means this rule has lower priority than the conflict.

Parameters:
conflict - conflicting rule
Returns:
true if the rule was moved, false if the "conflict" is not a conflicting rule
See Also:
DTRule.getRunAfter()

getConflictProperty

public IDTableProperty<DTRule> getConflictProperty()
Get Conflict Property (list of rules that this rule conflicts with)

Returns:
Property containing a list of rules

getConflict

public IDTable<DTRule> getConflict()
Get Conflict. This is an IDTable of rules on the sheet that conflict but have not been resolved (have not been placed in one of the other IDTables). Please do not modify the returned IDTable. Instead, use DTRule.conflict(oracle.rules.sdk2.decisiontable.DTRule), DTRule.noConflict(oracle.rules.sdk2.decisiontable.DTRule), DTRule.runBefore(oracle.rules.sdk2.decisiontable.DTRule), DTRule.runAfter(oracle.rules.sdk2.decisiontable.DTRule), DTRule.override(oracle.rules.sdk2.decisiontable.DTRule), or DTRule.overriddenBy(oracle.rules.sdk2.decisiontable.DTRule) to move a given DTRule to the correct IDTable.

Returns:
IDTable of DTRules

conflict

public boolean conflict(DTRule conflict)
Move the conflicting rule to the Conflict list. "Conflict" means a validation warning will occur until the conflict is moved to another list.

Parameters:
conflict - conflicting rule
Returns:
true if the rule was moved, false if the "conflict" is not a conflicting rule
See Also:
DTRule.getConflict()

Oracle Fusion Middleware Java API Reference for Oracle Business Rules
11g Release 1 (11.1.1.7)

E10663-11

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.