Now that all of the objects are in the knowledge session, we can start writing some transformation rules. Let's imagine that in the legacy system, there are many duplicate addresses. We can write a rule that removes such duplication:
rule twoEqualAddressesDifferentInstance when $addressMap1 : Map( this["_type_"] == "Address" ) $addressMap2 : Map( this["_type_"] == "Address", eval( $addressMap1 != $addressMap2 ), this == $addressMap1 ) then retract( $addressMap2 ); validationReport.addMessage( reportFactory.createMessage(Message.Type.WARNING, kcontext.getRule().getName(), $addressMap2)); end
Code listing 5: Rule that removes redundant address (
The rule matches two addresses. It checks that ...