/**
* Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.integration.marketdata.manipulator.dsl;
import java.util.List;
import org.threeten.bp.Period;
import com.google.common.collect.Lists;
import com.opengamma.util.ArgumentChecker;
/**
*
*/
/* package */ class VolatilitySurfaceShiftManipulatorBuilder {
private final VolatilitySurfaceSelector _selector;
private final Scenario _scenario;
private final ScenarioShiftType _shiftType;
private final List<VolatilitySurfaceShift> _shifts = Lists.newArrayList();
public VolatilitySurfaceShiftManipulatorBuilder(VolatilitySurfaceSelector selector,
Scenario scenario,
ScenarioShiftType shiftType) {
_selector = ArgumentChecker.notNull(selector, "selector");
_scenario = ArgumentChecker.notNull(scenario, "scenario");
_shiftType = ArgumentChecker.notNull(shiftType, "shiftType");
}
/**
*
* @param x The x co-ordinate of the point to shift, must be a {@link Period} or {@link Number}.
* @param y The x co-ordinate of the point to shift, must be a {@link Period} or {@link Number}.
* @param shift The amount to shift
*/
public void shift(Object x, Object y, Number shift) {
_shifts.add(new VolatilitySurfaceShift(x, y, shift));
}
public void build() {
VolatilitySurfaceShiftManipulator manipulator = VolatilitySurfaceShiftManipulator.create(_shiftType, _shifts);
_scenario.add(_selector, manipulator);
}
}