/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.financial.schedule;
import java.util.HashMap;
import java.util.Map;
/**
*
*/
public class TimeSeriesSamplingFunctionFactory {
/** No padding */
public static final String NO_PADDING = "NoPadding";
/** Pad with previous value */
public static final String PREVIOUS_VALUE_PADDING = "PreviousValuePadding";
/** Pad with previous value, pad with first value in series if there is insufficient data */
public static final String PREVIOUS_AND_FIRST_VALUE_PADDING = "PreviousAndFirstValuePadding";
/** No padding calculator */
public static final NoPaddingTimeSeriesSamplingFunction NO_PADDING_FUNCTION = new NoPaddingTimeSeriesSamplingFunction();
/** Previous value padding calculator */
public static final PreviousValuePaddingTimeSeriesSamplingFunction PREVIOUS_VALUE_FUNCTION = new PreviousValuePaddingTimeSeriesSamplingFunction();
/** Pad with previous value, pad with first value in series if there is insufficient data */
public static final PreviousAndFirstValuePaddingTimeSeriesSamplingFunction PREVIOUS_AND_FIRST_VALUE_FUNCTION = new PreviousAndFirstValuePaddingTimeSeriesSamplingFunction();
private static Map<String, TimeSeriesSamplingFunction> s_instances = new HashMap<>();
static {
s_instances.put(NO_PADDING, NO_PADDING_FUNCTION);
s_instances.put(PREVIOUS_VALUE_PADDING, PREVIOUS_VALUE_FUNCTION);
s_instances.put(PREVIOUS_AND_FIRST_VALUE_PADDING, PREVIOUS_AND_FIRST_VALUE_FUNCTION);
}
public static TimeSeriesSamplingFunction getFunction(final String name) {
final TimeSeriesSamplingFunction function = s_instances.get(name);
if (function == null) {
throw new IllegalArgumentException("Could not get function with name " + name);
}
return function;
}
}