// populate the result with failures
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: private java.util.Map<com.opengamma.strata.calc.Measure, com.opengamma.strata.collect.result.Result<?>> handleMissing(java.util.Set<com.opengamma.strata.calc.Measure> requestedMeasures, java.util.Set<com.opengamma.strata.calc.Measure> supportedMeasures, java.util.Map<com.opengamma.strata.calc.Measure, com.opengamma.strata.collect.result.Result<?>> calculatedResults)
        private IDictionary <Measure, Result <object> > handleMissing <T1>(ISet <Measure> requestedMeasures, ISet <Measure> supportedMeasures, IDictionary <T1> calculatedResults)
        {
            // need to add missing measures
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: java.util.Map<com.opengamma.strata.calc.Measure, com.opengamma.strata.collect.result.Result<?>> updated = new java.util.HashMap<>(calculatedResults);
            IDictionary <Measure, Result <object> > updated = new Dictionary <Measure, Result <object> >(calculatedResults);
            string fnName = function.GetType().Name;

            foreach (Measure requestedMeasure in requestedMeasures)
            {
                if (!calculatedResults.ContainsKey(requestedMeasure))
                {
                    if (supportedMeasures.Contains(requestedMeasure))
                    {
                        string msg = function.identifier(target).map(v => "for ID '" + v + "'").orElse("for target '" + target.ToString() + "'");
                        updated[requestedMeasure] = Result.failure(FailureReason.CALCULATION_FAILED, "Function '{}' did not return requested measure '{}' {}", fnName, requestedMeasure, msg);
                    }
                    else
                    {
                        updated[requestedMeasure] = Result.failure(FailureReason.UNSUPPORTED, "Measure '{}' is not supported by function '{}'", requestedMeasure, fnName);
                    }
                }
            }
            return(updated);
        }
 public override Optional <string> identifier(T target)
 {
     return(@delegate.identifier(target));
 }