/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.integration.marketdata.manipulator.dsl.volsurface; import java.util.Objects; import org.fudgemsg.FudgeMsg; import org.fudgemsg.MutableFudgeMsg; import org.fudgemsg.mapping.FudgeDeserializer; import org.fudgemsg.mapping.FudgeSerializer; import com.opengamma.analytics.financial.model.volatility.surface.VolatilitySurface; import com.opengamma.engine.function.FunctionExecutionContext; import com.opengamma.engine.marketdata.manipulator.function.StructureManipulator; import com.opengamma.engine.value.ValueSpecification; import com.opengamma.integration.marketdata.manipulator.dsl.VolatilitySurfaceShiftManipulator; /** * @deprecated Replaced by {@link VolatilitySurfaceShiftManipulator}. */ @Deprecated public class VolatilitySurfaceSingleMultiplicativeShift implements StructureManipulator<VolatilitySurface> { private static final String SHIFT = "shift"; private static final String X = "x"; private static final String Y = "y"; private final double _x; private final double _y; private final double _shift; public VolatilitySurfaceSingleMultiplicativeShift(double x, double y, double shift) { _x = x; _y = y; _shift = shift; } @Override public VolatilitySurface execute(VolatilitySurface surface, ValueSpecification valueSpecification, FunctionExecutionContext executionContext) { return surface.withSingleMultiplicativeShift(_x, _y, _shift); } @Override public Class<VolatilitySurface> getExpectedType() { return VolatilitySurface.class; } public MutableFudgeMsg toFudgeMsg(final FudgeSerializer serializer) { MutableFudgeMsg msg = serializer.newMessage(); serializer.addToMessage(msg, SHIFT, null, _shift); serializer.addToMessage(msg, X, null, _x); serializer.addToMessage(msg, Y, null, _y); return msg; } public static VolatilitySurfaceSingleMultiplicativeShift fromFudgeMsg(FudgeDeserializer deserializer, FudgeMsg msg) { Double shift = deserializer.fieldValueToObject(Double.class, msg.getByName(SHIFT)); Double x = deserializer.fieldValueToObject(Double.class, msg.getByName(X)); Double y = deserializer.fieldValueToObject(Double.class, msg.getByName(Y)); return new VolatilitySurfaceSingleMultiplicativeShift(x, y, shift); } @Override public int hashCode() { return Objects.hash(_x, _y, _shift); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } final VolatilitySurfaceSingleMultiplicativeShift other = (VolatilitySurfaceSingleMultiplicativeShift) obj; return Objects.equals(this._x, other._x) && Objects.equals(this._y, other._y) && Objects.equals(this._shift, other._shift); } @Override public String toString() { return "VolatilitySurfaceSingleMultiplicativeShift [" + "_x=" + _x + ", _y=" + _y + ", _shift=" + _shift + "]"; } }