}
final Object forwardCurveObject = inputs.getValue(getForwardCurveRequirement(target, forwardCurveCalculationMethod, forwardCurveName));
if (forwardCurveObject == null) {
throw new OpenGammaRuntimeException("Forward curve was null");
}
final ForwardCurve forwardCurve = (ForwardCurve) forwardCurveObject;
final BlackVolatilitySurface<?> impliedVolatilitySurface = (BlackVolatilitySurface<?>) impliedVolatilitySurfaceObject;
final ValueProperties properties = getResultProperties(surfaceName, surfaceType, xAxis, yAxis, yAxisType, forwardCurveCalculationMethod, forwardCurveName, hName);
final DupireLocalVolatilityCalculator calculator = new DupireLocalVolatilityCalculator(h);
final LocalVolatilitySurface<?> localVolatilitySurface = calculator.getLocalVolatilitySurface(impliedVolatilitySurface, forwardCurve);
final ValueSpecification spec = new ValueSpecification(ValueRequirementNames.LOCAL_VOLATILITY_SURFACE, target.toSpecification(), properties);