//-------------------------------------------------------------------------
        public ReportRequirements requirements(TradeReportTemplate reportTemplate)
        {
//JAVA TO C# CONVERTER TODO TASK: Method reference arbitrary object instance method syntax is not converted by Java to C# Converter:
//JAVA TO C# CONVERTER TODO TASK: Most Java stream collectors are not converted by Java to C# Converter:
            IList <Column> measureRequirements = reportTemplate.Columns.Select(TradeReportColumn::getValue).flatMap(Guavate.stream).Select(ValuePathEvaluator.measure).flatMap(Guavate.stream).Select(Column.of).collect(toImmutableList());

            return(ReportRequirements.of(measureRequirements));
        }
Exemple #2
0
        private ReportCalculationResults runCalculationRequirements(ReportRequirements requirements)
        {
            IList <Column> columns = requirements.TradeMeasureRequirements;

            ExampleMarketDataBuilder marketDataBuilder = marketDataRoot == null?ExampleMarketData.builder() : ExampleMarketDataBuilder.ofPath(marketDataRoot.toPath());

            CalculationFunctions  functions   = StandardComponents.calculationFunctions();
            RatesMarketDataLookup ratesLookup = marketDataBuilder.ratesLookup(valuationDate);
            CalculationRules      rules       = CalculationRules.of(functions, ratesLookup);

            MarketData marketData = marketDataBuilder.buildSnapshot(valuationDate);

            IList <Trade> trades;

            if (Strings.nullToEmpty(idSearch).Trim().Empty)
            {
                trades = tradeList.Trades;
            }
            else
            {
//JAVA TO C# CONVERTER TODO TASK: Most Java stream collectors are not converted by Java to C# Converter:
                trades = tradeList.Trades.Where(t => t.Info.Id.Present).Where(t => t.Info.Id.get().Value.Equals(idSearch)).collect(toImmutableList());
                if (trades.Count > 1)
                {
                    throw new System.ArgumentException(Messages.format("More than one trade found matching ID: '{}'", idSearch));
                }
            }
            if (trades.Count == 0)
            {
                throw new System.ArgumentException("No trades found. Please check the input portfolio or trade ID filter.");
            }

            // the reference data, such as holidays and securities
            ReferenceData refData = ReferenceData.standard();

            // calculate the results
            CalculationTasks       tasks = CalculationTasks.of(rules, trades, columns, refData);
            MarketDataRequirements reqs  = tasks.requirements(refData);
            MarketData             calibratedMarketData = marketDataFactory().create(reqs, MarketDataConfig.empty(), marketData, refData);
            Results results = runner.TaskRunner.calculate(tasks, calibratedMarketData, refData);

            return(ReportCalculationResults.of(valuationDate, trades, requirements.TradeMeasureRequirements, results, functions, refData));
        }
Exemple #3
0
        //-------------------------------------------------------------------------
        private void run()
        {
            ReportRunner <ReportTemplate> reportRunner       = getReportRunner(template);
            ReportRequirements            requirements       = reportRunner.requirements(template);
            ReportCalculationResults      calculationResults = runCalculationRequirements(requirements);

            Report report = reportRunner.runReport(calculationResults, template);

            switch (format)
            {
            case ReportOutputFormat.ASCII_TABLE:
                report.writeAsciiTable(System.out);
                break;

            case ReportOutputFormat.CSV:
                report.writeCsv(System.out);
                break;
            }
        }
Exemple #4
0
 //-------------------------------------------------------------------------
 public ReportRequirements requirements(CashFlowReportTemplate reportTemplate)
 {
     return(ReportRequirements.of(Column.of(Measures.EXPLAIN_PRESENT_VALUE)));
 }