/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.math.curve;
import org.joda.convert.FromString;
import com.opengamma.financial.convention.AbstractNamedInstanceFactory;
/**
*
*/
public final class CurveSpreadFunctionFactory extends AbstractNamedInstanceFactory<CurveSpreadFunction> {
/**
* Singleton instance of {@code CurveSpreadFunctionFactory}.
*/
public static final CurveSpreadFunctionFactory INSTANCE = new CurveSpreadFunctionFactory();
/**
* Finds a spread function by name, ignoring case
* @param name The name of the instance to find, not null
* @return The instance
*/
@FromString
public static CurveSpreadFunction of(final String name) {
return INSTANCE.instance(name);
}
/**
* Adding spread function instances
*/
private CurveSpreadFunctionFactory() {
super(CurveSpreadFunction.class);
addInstance(AddCurveSpreadFunction.getInstance(), AddCurveSpreadFunction.NAME, "add", "plus");
addInstance(DivideCurveSpreadFunction.getInstance(), DivideCurveSpreadFunction.NAME, "divide");
addInstance(MultiplyCurveSpreadFunction.getInstance(), MultiplyCurveSpreadFunction.NAME, "multiply", "times");
addInstance(SubtractCurveSpreadFunction.getInstance(), SubtractCurveSpreadFunction.NAME, "subtract");
}
}