int targetPrecision = targetInstance.attribute(DecimalAttribute.PRECISION);
int inputScale = inputInstance.attribute(DecimalAttribute.SCALE);
int targetScale = targetInstance.attribute(DecimalAttribute.SCALE);
if ( (inputPrecision != targetPrecision) || (inputScale != targetScale) ) {
BigDecimalWrapper bdw = new BigDecimalWrapperImpl().set(getWrapper(source, inputInstance));
bdw.round(targetScale);
target.putObject(bdw);
}
else if (source.hasCacheValue()) {
target.putObject(source.getObject());
}