@Override public ConstantNodalCurve build() { return new ConstantNodalCurve( metadata, xValue, yValue); }
@Override public ConstantNodalCurve withMetadata(CurveMetadata metadata) { return new ConstantNodalCurve(metadata, xValue, yValue); }
/** * Creates a constant nodal curve with metadata. * <p> * The curve is defined by a single x and y value. * * @param metadata the curve metadata * @param xValue the x-value * @param yValue the y-value * @return the curve */ public static ConstantNodalCurve of(CurveMetadata metadata, double xValue, double yValue) { return new ConstantNodalCurve(metadata, xValue, yValue); }
private Object readResolve() { return new ConstantNodalCurve(metadata, xValue, yValue); }
@Override public ConstantNodalCurve withParameter(int parameterIndex, double newValue) { ArgChecker.isTrue(parameterIndex == 0, "single parameter"); return new ConstantNodalCurve(metadata, xValue, newValue); }
@Override public ConstantNodalCurve withNode(double x, double y, ParameterMetadata paramMetadata) { ArgChecker.isTrue(x == xValue, "x should be equal to the existing x-value"); CurveMetadata md = metadata.withParameterMetadata(ImmutableList.of(paramMetadata)); return new ConstantNodalCurve(md, x, y); }
@Override public ConstantNodalCurve withPerturbation(ParameterPerturbation perturbation) { double perturbedValue = perturbation.perturbParameter(0, yValue, getParameterMetadata(0)); return new ConstantNodalCurve(metadata, xValue, perturbedValue); }
@Override public ConstantNodalCurve withYValues(DoubleArray yValues) { ArgChecker.isTrue(yValues.size() == 1, "Invalid number of parameters, only one allowed"); return new ConstantNodalCurve(metadata, xValue, yValues.get(0)); }
@Override public ConstantNodalCurve withValues(DoubleArray xValues, DoubleArray yValues) { ArgChecker.isTrue(xValues.size() == 1 && yValues.size() == 1, "Invalid number of parameters, only one allowed"); return new ConstantNodalCurve(metadata, xValues.get(0), yValues.get(0)); }