[rules-users] Using field values of an ENUM in the decision table

Visu Nageswaran visu.nageswaran at in.ibm.com
Wed Jul 8 12:50:16 EDT 2009


I was able to achieve this using a join-column in the decision table
equivalent to the below rule:
WHEN $m: Memory(value == "512") $c: Computer(memory == $m)
THEN modify($c){ setPrice(100) };

However, a Memory instance needs to be inserted into the session. For every
discrete valued field, it would then be required for them to be inserted
into the session to be considered in rule propogation. If there is a better
way / simpler way, I am very interested. Thanks in advance..


Visu Nageswaran wrote:
> 
> Hello, I am posting a simpler version of the actual requirement: 
> Class Computer has a field 'memory' of the enum type 'Memory' which is
> defined over integer values 
> - - - - - - - - - - 
> public enum Memory{ 
> MEM1(512), MEM2(1024), MEM3(2048); 
> public int value; 
> Memory(int i){this.value = i;} 
> public int getValue(){return value;} 
> } 
> - - - - - - - - - - 
> There is a requirement to model a decision table between memory and price 
> I am looking for the field constraint on the memory field to match to the
> values:
>  
> memory.???--> Price 
> 512 --> 100 
> 1024 --> 200 
> 2048 --> 300 
> 
> I tried memory.name, memory.name(), memory.value, memory.getValue(); Does
> this have to be done using template expressions say something like memory
> == Memory.reverseLookupEnum($param)
> 
> Any help, pointers in this regard would be appreciated. thanks. 
> -Visu
> 

-- 
View this message in context: http://www.nabble.com/Using-field-values-of-an-ENUM-in-the-decision-table-tp24391112p24395233.html
Sent from the drools - user mailing list archive at Nabble.com.




More information about the rules-users mailing list