|
Oracle Fusion Middleware Java API Reference for Oracle Business Rules 11g Release 1 (11.1.1.7) E10663-11 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object oracle.rules.sdk2.dictionary.DictionaryObject oracle.rules.sdk2.dictionary.DictionaryComponent oracle.rules.sdk2.ruleset.RuleComponent oracle.rules.sdk2.ruleset.UnnamedRuleComponent oracle.rules.sdk2.decisiontable.DimensionNode
public class DimensionNode
A DimensionNode stores the dimension values for a "cell" in the decision table. A DimensionNode references one or more buckets from its Dimension's BucketSet.
A DimensionNode's parent can be either a Dimension or a DTRule. We call these nodes dimDNs and ruleDNs. In effect, Dimension nodes are duplicated, but the number of dimDNs is often less that the number of ruleDNs, because the dimDNs form a tree. A dimDN references its parent (a DimensionNode in the previous Dimension) and references its children using an IDTable<DimensionNode> containing dimDNs in the next Dimension in the dimension tree.
DimensionNodes with multiple buckets can be split into sibling nodes each with a single bucket. In an unordered rulesheet, dimDNs with multiple children can be split into sibling nodes each with a single child.
Sibling nodes can be merged by merging their bucket values and their children. The children are ordered by bucket value and duplicates are recursively merged, down to and including the action nodes. Sibling nodes can also be compacted. Compaction will not merge unequal action nodes. In an unordered rulesheet, nodes in the same dimension and in a contiguous range of rules can be merged by replacement with a single dimension node with merged bucket values and concatenated child lists.
In an ordered rulesheet, Dimension nodes are sorted according the the order of buckets in their bucketset. Don't know (?) sorts low. Don't care (-) sorts high. Single values sort lower than multi-values, e.g. 1 is less than 1,2 is less than 2.
Nested Class Summary | |
---|---|
class |
DimensionNode.ValuesProperty
A Values property is a translated settable String array-valued property. |
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 | |
---|---|
static java.lang.String |
ALL_VALUES_STRING
|
static java.lang.String |
UNKNOWN_VALUE_STRING
|
Method Summary | |
---|---|
boolean |
canMerge(DimensionNode sibling)
Test whether this node can be merged with its sibling. |
boolean |
canSpan(DimensionNode sibling)
Test if this node and its sibling can be spanned. |
boolean |
canSplit()
Test whether this node can be split |
boolean |
canUnspan()
Test whether this node can be unspanned. |
void |
compact()
Merge all child DimensionNodes but do not merge non-identical actions. |
void |
forceSync()
|
IDTable<Bucket> |
getBuckets()
Get DimensionNode Buckets. |
BucketSet |
getBucketSet()
Get BucketSet. |
IDTableProperty<Bucket> |
getBucketsProperty()
Get Buckets Property. |
DTActionNode |
getChildActionNode()
Deprecated. the returned DTActionNode is in the deprecated DTActionNodeTable of the first DTAction |
IDTable<DimensionNode> |
getChildDimensionNodes()
Get DimensionNode IDTable of child dimension nodes below this Dimension Node in the next Dimension. |
DimensionNode |
getDimDN()
|
Dimension |
getDimension()
Get Dimension to whom this DimensionNode belongs. |
DimensionNode |
getParentDimensionNode()
Get parent DimensionNode, i.e., the node above this DimensionNode from the previous Dimension |
int[] |
getSelected()
|
java.lang.String[] |
getValueOptions()
|
java.lang.String[] |
getValues()
Get dimension values of DimensionNode. |
java.lang.String |
getValuesAsString(java.lang.String[] values)
Get possibly multiple values as a comma separated String |
java.lang.String[] |
getValuesFromString(java.lang.String values)
Parse possibly multiple values from comma separated string |
java.lang.String[] |
getValuesFromString(java.lang.String values,
boolean translate)
Parse possibly multiple values from comma separated string |
void |
getValuesFromString(java.lang.String values,
java.util.List<java.lang.String> existingValues,
java.util.List<java.lang.String> newValues)
Parse possibly multiple values from comma separated string |
void |
getValuesFromString(java.lang.String values,
java.util.List<java.lang.String> existingValues,
java.util.List<java.lang.String> newValues,
boolean translate)
Parse possibly multiple values from comma separated string |
DimensionNode.ValuesProperty |
getValuesProperty()
Get Values Property |
int |
maxRuleIndex()
return maximum rule index of rules including this node. |
void |
merge()
Merge all child DimensionNodes and actions. |
void |
merge(boolean deep)
Deprecated. use DimensionNode.merge() , DimensionNode.compact() , or DimensionNode.span() |
void |
merge(DimensionNode sibling)
Merge with sibling DimensionNode. |
int |
minRuleIndex()
return minimum rule index of rules including this node. |
boolean |
removeActionlessRules()
Remove rules that include this dimension node with no actions selected |
boolean |
sameBuckets(DimensionNode dn)
Does this node have the same buckets as the given node? |
void |
setParentDimensionNode(DimensionNode parent)
set parent DimensionNode |
void |
setValues(java.lang.String... values)
Set dimension values of DimensionNode. |
void |
span()
Span all child DimensionNodes (must have sameBucket). |
void |
span(DimensionNode next)
Span DimensionNodes. |
void |
split()
split this DimensionNode into siblings such that this node and new siblings each have a single bucket value. |
void |
unspan()
split this DimensionNode into siblings such that each has one child. |
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.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, 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 |
Field Detail |
---|
public static final java.lang.String ALL_VALUES_STRING
public static final java.lang.String UNKNOWN_VALUE_STRING
Method Detail |
---|
public DimensionNode getDimDN()
public BucketSet getBucketSet()
public IDTableProperty<Bucket> getBucketsProperty()
public IDTable<Bucket> getBuckets()
public DimensionNode.ValuesProperty getValuesProperty()
public java.lang.String[] getValues()
public java.lang.String[] getValueOptions()
public java.lang.String[] getValuesFromString(java.lang.String values)
values
-
public java.lang.String[] getValuesFromString(java.lang.String values, boolean translate)
values
-
public void getValuesFromString(java.lang.String values, java.util.List<java.lang.String> existingValues, java.util.List<java.lang.String> newValues)
values
- existingValues
- returned existing bucket aliasesnewValues
- returned new bucket aliasespublic void getValuesFromString(java.lang.String values, java.util.List<java.lang.String> existingValues, java.util.List<java.lang.String> newValues, boolean translate)
values
- existingValues
- returned existing bucket aliasesnewValues
- returned new bucket aliasestranslate
- use translated valuespublic java.lang.String getValuesAsString(java.lang.String[] values)
values
-
public void setValues(java.lang.String... values)
values
- names of bucketspublic int[] getSelected()
public Dimension getDimension()
public DimensionNode getParentDimensionNode()
public void setParentDimensionNode(DimensionNode parent)
parent
- TODO: validate correct Dimensionpublic IDTable<DimensionNode> getChildDimensionNodes()
@Deprecated public DTActionNode getChildActionNode()
@Deprecated public void merge(boolean deep) throws SDKException
DimensionNode.merge()
, DimensionNode.compact()
, or DimensionNode.span()
SDKException
RuleSheet.merge(List, boolean).
public void merge()
RuleSheet.merge(List).
public void compact()
RuleSheet.compact(List).
public void span()
RuleSheet.span(List).
public void merge(DimensionNode sibling)
sibling
- the DimensionNode to merge with thisfor more merge options.
public void span(DimensionNode next)
next
- the DimensionNode to span with this
java.lang.IllegalArgumentException
- if DT is orderedpublic boolean canMerge(DimensionNode sibling)
sibling
- public boolean canSpan(DimensionNode sibling)
sibling
- public void split()
public void unspan()
java.lang.IllegalArgumentException
- if DT is orderedpublic boolean canSplit()
public boolean canUnspan()
public final int minRuleIndex()
public final int maxRuleIndex()
public boolean sameBuckets(DimensionNode dn)
dn
- a dimension node
public boolean removeActionlessRules()
public void forceSync()
forceSync
in class DictionaryComponent
|
Oracle Fusion Middleware Java API Reference for Oracle Business Rules 11g Release 1 (11.1.1.7) E10663-11 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |