change = c;
}
public void apply(State s)
{
MetricState ms = (MetricState) s;
BigDecimal dr = resource.getValue(ms);
BigDecimal dc = change.getValue(ms);
BigDecimal res = null;
if (type == MetricSymbolStore.ASSIGN) res = dc;
else if (type == MetricSymbolStore.INCREASE) res = dr.add(dc);
else if (type == MetricSymbolStore.DECREASE) res = dr.subtract(dc);
else if (type == MetricSymbolStore.SCALE_UP) res = dr.multiply(dc);
else if (type == MetricSymbolStore.SCALE_DOWN) res = dr.divide(dc, MetricSymbolStore.SCALE, MetricSymbolStore.ROUND);
ms.setValue(resource,res);
}