ILOG JRules User Guide > Customizing JRules > Concepts > Custom BOM Properties

Custom BOM properties allow you to attach information to business elements. A set of predefined custom properties that you can use for value management and dynamic domains is provided with ILOG Rule Studio.

Table 1 Predefined Custom BOM Properties 
Property 
Element 
Value 
Description 
domainValueProviderName 
Class 
String 
Name of the extension point defined to integrate a BOM domain value provider. This property must be set on a class that defines a dynamic domain. 
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. 
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
valueDescriptor 
Class 
String 
Key of a registered value descriptor for this class. 
valueEditor 
Class 
String 
Key of a registered value editor for this class. 
sortIndex 
Static Reference 
Number 
Allows setting an order among static references when used in business rule editors. 
Note that if the sorting is locale-specific, it should be specified in the vocabulary file. 
For example, Day of week Monday can be set in the first position in the boot vocabulary file as follows: 
ilog.rules.brl.DayOfWeek.Monday#label = Monday 
ilog.rules.brl.DayOfWeek.Monday#sortIndex = 1 
valueType 
Class 
Boolean 
Allows considering a BOM type as a pure value type. Pure value types are excluded from the rule language, so that you cannot define binding on them. It is the case of all predefined types, like Number, String, Date, and so on. 
valueTranslator 
Class 
String 
Key of a registered value translator for this class. 
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 ""
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>
alias 
Class 
String 
Used by decision table and trees to activate syntax checking and the automatic fill-in feature. 
On user types that behave like numbers, the possible values are integer or float
hiddenType 
Class 
Boolean 
Used to filter the class from IRL code completion. Usually used to tag a BOM class only used by the vocabulary. 
excludeFromPrediction 
Any 
Boolean 
Used to exclude the corresponding element from the completion menu of business rule editors. 
DecoratedValueDescriptor.suffix 
DecoratedValueDescriptor.prefix 
Class 
String 
When set on a class, allows you to 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;  
public class Days  
property valueDescriptor "ilog.rules.brl.Days#Decorated(ilog.rules.brl.Number)"  
property "DecoratedValueDescriptor.suffix" "d" 
valueTranslator 
Class 
String 
With or without the suffix .irl, attached to a class to specify a value translator class. 
translation 
Any 
String 
With or without the suffix .irl, specified on a class or a member to indicate a custom translation code template, or legacy translation properties. 
Style 
Any 
String 
Applies graphical styling in the BAL 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 (bold/italic/underline), and background and foreground colors. 
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 invoked from bottom to top and from left to right. 
A semantic action is an implementation of the abstract class ilog.rules.brl.semantic.IlrBRLSemanticAction and can be declared using semanticAction[arg]. You can attach a semantic action to the 'this' of this method by using the semanticAction[this] property. 
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 this semantic filter can be applied 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
propagateAssignableArgumentType 
Method 
Boolean 
This property applies to a method with at least one argument. Like propagateArgumentType, but there is 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). 
This property can be specified on Object.is(Object) to propagate the type 'this' to the method argument. 
propagateArgumentType 
Method 
Boolean 
This property must be attached to a method with at least one argument.  
Used for Business Rule languages, this property allows you to propagate the type of the first role (the 'this') to all arguments of the methods. Arguments of the method must be of 'this' type or a subclass.  
For example, if this property is attached to Object.is(Object), then arguments of this method must be an instance of a subclass of the object on which the method is called. 

Related Concepts

Business Object Model (BOM)

Related Tasks

Creating New Business Elements

Related Reference

BOM Editor

Related Samples and Tutorials

Tutorial: Defining a Vocabulary