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...
Sent from the drools - user mailing list archive at
Nabble.com.