[
https://issues.jboss.org/browse/JBRULES-3144?page=com.atlassian.jira.plug...
]
Mark Proctor commented on JBRULES-3144:
---------------------------------------
For now I've added an internal interface listener that can be used for compensation
actions. This can be used a temporary messure until we formalise a final interface for
this.
UnMatch Listener for Compensation Actions
-----------------------------------------
Key: JBRULES-3144
URL:
https://issues.jboss.org/browse/JBRULES-3144
Project: Drools
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Components: drools-core (expert)
Reporter: Geoffrey De Smet
Assignee: Mark Proctor
Priority: Critical
Here's what I'd like to be able to do:
{code}
rule "serviceConflict"
when
$leftProcessAssignment : MrProcessAssignment($service : service, $machine :
machine, $leftId : id)
$rightProcessAssignment : MrProcessAssignment(service == $service, machine ==
$machine, id > $leftId)
then
scoreCalculator.addToHardScore(1); // No insertLogical or accumulate of those
ConstraintOccurence's needed
undo-then
scoreCalculator.substractFromHardScore(1);
end
{code}
And here's a more complex example where the weight isn't a static "1":
{code}
rule "serviceLocationSpread"
when
$service : MrService($locationSpread : locationSpread)
$spreadCount : Number(intValue < $locationSpread) from accumulate(
$location : MrLocation()
and exists MrProcessAssignment(service == $service, location ==
$location),
count($location)
)
then
scoreCalculator.addToHardScore($locationSpread - $spreadCount.intValue());
undo-then
scoreCalculator.substractFromHardScore($locationSpread -
$spreadCount.intValue());
// $spreadCount should still be the same as it used to be
end
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira