BOM properties

Rule Designer provides a set of BOM properties that you can use for value management and dynamic domains.

You use BOM properties to attach information to business elements. Rule Designer provides a set of properties that you can use for value management and dynamic domains.

Table 1. BOM properties 
Property Element Value Description
alias Class String

Used by decision tables and decision trees to activate syntax checking and the automatic fill-in feature.

For user types that behave like numbers, the possible values are integer or float.

dataio.addMethod Attribute add method name (a string) Used to read an object's readonly attribute.
dataio.default Constructor true Indicates that this constructor will be used for BOM serialization.
dataio.fromString Method true Used on a method to indicate that it can be used to create a value of the declaring class from a string. The method should be static and only have a string parameter, and it should return a type that can be assigned to its declaring class. This works only with Decision Engine.
dataio.getMethod Attribute get method name (a string) Used to write an object's writeonly attribute.
dataio.ignore Class or attribute true To prevent BOM serialization of a class or attribute.

When the execution class of a BOM class is a java class, for example a BigDecimal or a String, then, you need to add the property dataio.ignore to this BOM class so that it is not serialized. This is necessary to prevent that all instances of the java class be considered as member of the BOM class.

For information about business to execution class mapping, see Execution class mapping.

dataio.provided Class true This property is used on a class to indicate that its converter is provided. It is not meant to be used on custom classes, but it may be used if you redefine boot bom classes, in which case this property should be copied from the boot.bom.
dataio.toString Method true Used on a method to indicate that it can be used to get a string that represents the value of the current object. The method should not be static and should have no parameter, and it should return a string. This works only with Decision Engine.
constraint[arg] Method Number Expresses a constraint between two value infos associated with two arguments of a method. The placeholder for arg1 is constrained by the placeholder arg2.

DecoratedValueDescriptor.suffix

DecoratedValueDescriptor.prefix

Class String

When set on a class, you can specify a suffix or a prefix to a value. Must be used with a decorated value descriptor, designated by the following property:

property valueDescriptor "<type>#Decorated(<decorated type>)"

In the following example, literal values of Day types are Numbers with a suffix of d:

package ilog.rules.brl;

property valueDescriptor "ilog.rules.brl.Days#Decorated(ilog.rules.brl.Number)"

public class Days

property "DecoratedValueDescriptor.suffix" "d"

defaultValue Class String

Defines the text to be displayed when this member is inserted into the Intellirule editor.

For example, the defaultValue for a String is double quotes ““.

domainValueProviderName Class String Name of the extension point defined to integrate a BOM domain value provider. You must set this property on a class that defines a dynamic domain.
excludeFromPrediction Any Boolean Used to exclude the corresponding element from the completion menu of business rule editors.
hiddenType Class Boolean Used to filter the class from IRL code completion. Normally used to tag a BOM class used only by the vocabulary.
leadingThisSemanticFilter Method String

A type of semantic filter (see semanticFilter) invoked on a sentence that has a place holder in the first position.

For example: <object> is null

The sentence has a place holder in the first position, so you can apply this semantic filter to check if the sentence is null can be predicted on the object in the first position.

For example, if you do not want to predict is null on a value type. The syntax tree node that represents the object is given in the context of the filter.

This property is an implementation of ilog.rules.brl.semantic.IlrBRLLeadingSemanticFilter.

noTruncation Method Boolean

When set to true, phrases in the Guided editor drop-down lists are not truncated.

For example, the phrase is between becomes is between <a number> and <a number>.

ownershipRelation Class String

Declares an ownership relation between two classes. This relation allows to refer to the owned elements in rules without specifying the owner element nor setting variables in the definitions part of the rule.

For example, you can declare that the class Vehicle is owner of the class Coverage by setting the value of ownershipRelation to com.ibm.rules.Vehicle.coverages. You can then access elements that correspond to a coverage in the coverages of 'the vehicle' directly in a rule:

if
    the limit of 'the coverage' is at least 120
propagateArgumentType Method Boolean

You must attach this property to a method with at least one argument.

Used for business rule languages. You use this property to propagate the type of the first role (the this) to all arguments of the methods. Method arguments must be of this type or a subclass.

For example, if you attach this property to Object.is(Object), arguments of this method must be an instance of a subclass of the object on which the method is called.

propagateAssignableArgumentType Method Boolean

This property applies to a method with at least one argument. It is similar to propagateArgumentType, but has no assigned order to the propagation. The property implies that arguments of a sentence must be subtypes.

For example, if you apply the property to the sentence <object1> is <object2>, the <object2> type is a subtype of the <object1> type, or the <object1> type is a subtype of the <object2> type. In this case, the property is applied to all the roles of the sentence (from the first, to all).

You can specify this property on Object.is(Object) to propagate the type 'this' to the method argument.

semanticAction[arg] Member String

An action applied when building the syntax tree. The action is invoked to fill the syntax tree with semantic information.

When building the syntax tree, the actions are called from bottom to top and from side to side.

A semantic action is an implementation of the abstract class ilog.rules.brl.semantic.IlrBRLSemanticAction You can declare a semantic action using semanticAction[arg]. You can attach a semantic action to the this of the method by using the semanticAction[this] property.

Style Any String

Applies graphical styling in the rule editor.

Used as follows:

  • When set on a class, you can apply a style to literal values of this class.

  • When set on a method or an attribute, the style is applied on the phrase mapped to the element. Possible values are: marker, keyword, separator, target, variable, placeHolder, string, number, constant.

The graphical rendering of a style is specified in the language properties files (bal.properties for the BAL language). A style defines a combination of font, font attributes (such as bold, italic, and underline), and background and foreground colors.

valueDescriptor Class String Key of a registered value descriptor for this class.
valueEditor Class String Key of a registered value editor for this class.
valueInfo Attribute String

Key of a registered value info.

The value info is associated with the navigation phrase and the argument placeholder of the action phrase associated with this attribute in the vocabulary.

valueInfo[arg] Method String Key of a registered value info. This value info is associated with the argument arg of the method.
valueTranslator Class String Key of a registered value translator for this class. This property can have a .irl suffix added to indicate that this value translator is used only in the BAL-to-IRL translation.
valueType Class Boolean Use this property to consider a BOM type as a pure value type. Pure value types are excluded from the rule language, so you cannot define binding on them. This is true for all predefined types, such as Number, String, and Date.
vocabularyClass Class String

Private and for internal use only.

This property is set to all boot types that support the vocabulary in the boot.bom (like ilog.rules.brl.String, ilog.rules.brl.Date, and so on). This property tells the debugger to ignore these types as they are never used at runtime.