//change an before producers back
Set u = getBeforeOperators(a);
Iterator uit = u.iterator();
while (uit.hasNext())
{
ResourceOperator ro = (ResourceOperator) uit.next();
if (ro.change instanceof DurationFunction)
{
DurationFunction df = (DurationFunction) ro.change;
DurativeAction da = df.durativeAction;
if (ro.type == MetricSymbolStore.INCREASE || ro.type == MetricSymbolStore.SCALE_UP) stn.decreaseMax(da, diff);
else if (ro.type == MetricSymbolStore.DECREASE || ro.type == MetricSymbolStore.SCALE_DOWN) stn.increaseMin(da, diff);
change = true;
break;
}
}
}
}
else if (bc.type == MetricSymbolStore.GREATER_THAN || bc.type == MetricSymbolStore.GREATER_THAN_EQUAL)
{
BigDecimal value = findBeforeMin(a);
if (value.compareTo(comp) < 0)
{
BigDecimal diff = comp.subtract(value);
//change an before producers back
Set u = getBeforeOperators(a);
Iterator uit = u.iterator();
while (uit.hasNext())
{
ResourceOperator ro = (ResourceOperator) uit.next();
if (ro.change instanceof DurationFunction)
{
DurationFunction df = (DurationFunction) ro.change;
DurativeAction da = df.durativeAction;
if (ro.type == MetricSymbolStore.INCREASE || ro.type == MetricSymbolStore.SCALE_UP) stn.increaseMin(da, diff);