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.
| 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:
|
| 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:
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. |