/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.marketdata.manipulator.function;
import org.fudgemsg.FudgeMsg;
import org.fudgemsg.MutableFudgeMsg;
import org.fudgemsg.mapping.FudgeDeserializer;
import org.fudgemsg.mapping.FudgeSerializer;
import com.opengamma.engine.function.FunctionExecutionContext;
import com.opengamma.engine.value.ValueSpecification;
import com.opengamma.util.ArgumentChecker;
/**
* @deprecated Use {@code MarketDataScaling} instead.
*/
@Deprecated
public class MarketDataPointScalingManipulator implements StructureManipulator<Double> {
private final Double _scalingFactor;
public MarketDataPointScalingManipulator(Double scalingFactor) {
ArgumentChecker.notNull(scalingFactor, "scalingFactor");
_scalingFactor = scalingFactor;
}
@Override
public Double execute(Double structure,
ValueSpecification valueSpecification,
FunctionExecutionContext executionContext) {
return structure * _scalingFactor;
}
@Override
public Class<Double> getExpectedType() {
return Double.class;
}
public MutableFudgeMsg toFudgeMsg(final FudgeSerializer serializer) {
final MutableFudgeMsg msg = serializer.newMessage();
msg.add("scalingFactor", _scalingFactor);
return msg;
}
public static MarketDataPointScalingManipulator fromFudgeMsg(final FudgeDeserializer deserializer, final FudgeMsg msg) {
return new MarketDataPointScalingManipulator(msg.getDouble("scalingFactor"));
}
}