//-------------------------------------------------------------------------
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: @Override public java.util.Map<com.opengamma.strata.calc.Measure, com.opengamma.strata.collect.result.Result<?>> calculate(T target, java.util.Set<com.opengamma.strata.calc.Measure> measures, com.opengamma.strata.calc.runner.CalculationParameters parameters, com.opengamma.strata.data.scenario.ScenarioMarketData scenarioMarketData, com.opengamma.strata.basics.ReferenceData refData)
        public virtual IDictionary <Measure, Result <object> > calculate(T target, ISet <Measure> measures, CalculationParameters parameters, ScenarioMarketData scenarioMarketData, ReferenceData refData)
        {
            // resolve the trade once for all measures and all scenarios
            ResolvedBondFutureOptionTrade resolved = target.resolve(refData);

            // use lookup to query market data
            LegalEntityDiscountingMarketDataLookup   ledLookup        = parameters.getParameter(typeof(LegalEntityDiscountingMarketDataLookup));
            LegalEntityDiscountingScenarioMarketData ledMarketData    = ledLookup.marketDataView(scenarioMarketData);
            BondFutureOptionMarketDataLookup         optionLookup     = parameters.getParameter(typeof(BondFutureOptionMarketDataLookup));
            BondFutureOptionScenarioMarketData       optionMarketData = optionLookup.marketDataView(scenarioMarketData);

            // loop around measures, calculating all scenarios for one measure
//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<?>> results = new java.util.HashMap<>();
            IDictionary <Measure, Result <object> > results = new Dictionary <Measure, Result <object> >();

            foreach (Measure measure in measures)
            {
                results[measure] = calculate(measure, resolved, ledMarketData, optionMarketData);
            }
            return(results);
        }