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

Visu Nageswaran visu.nageswaran at in.ibm.com
Sat Jul 11 02:17:35 EDT 2009


better still using in-line eval:
when $c: Computer(memory!=null && memory.value == "128") then doSomething();

The owners / contributers to the drools-expert code base can comment: 
Is the check for null necessary when using nested accessors??? Is this
something that the engine can take care during evaluation ???

-Visu


Visu Nageswaran wrote:
> 
> Modifying the eval expression to include a check for NULL got it working:
> 
> when
> $c: Computer()
> eval( $c.getMemory()!=null && $c.getMemory().getValue().equals("512") )
> then
> System.out.println("XXXXXXXX THIS IS IT XXXXXXXXXXX" );
> end
> 
> 
> 
> 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-tp24391112p24437611.html
Sent from the drools - user mailing list archive at Nabble.com.




More information about the rules-users mailing list