All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.opengamma.strata.report.trade.TradeReportTemplateIniLoader Maven / Gradle / Ivy

There is a newer version: 2.12.56
Show newest version
/**
 * Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies
 * 
 * Please see distribution for license.
 */
package com.opengamma.strata.report.trade;

import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

import com.opengamma.strata.collect.io.IniFile;
import com.opengamma.strata.collect.io.PropertySet;
import com.opengamma.strata.report.ReportTemplateIniLoader;

/**
 * Loads a trade report template from the standard INI file format.
 * 

* In a trade report template, the sections in the INI file (other than the special settings * section) correspond to the columns in the report, in the order they are declared. *

* Each section can specify the following properties: *

    *
  • value - identifies the value to display in the column's cells *
  • ignoreFailures - optional boolean flag to disable failure messages in this column *
*/ public class TradeReportTemplateIniLoader implements ReportTemplateIniLoader { /** * The report type. */ private static final String REPORT_TYPE = "trade"; /** * The value property name. */ private static final String VALUE_PROPERTY = "value"; /** * The ignore-failures property name. */ private static final String IGNORE_FAILURES_PROPERTY = "ignoreFailures"; //------------------------------------------------------------------------- @Override public String getReportType() { return REPORT_TYPE; } @Override public TradeReportTemplate load(IniFile iniFile) { List reportColumns = new ArrayList(); for (String columnName : iniFile.sections()) { if (columnName.toLowerCase(Locale.ENGLISH).equals(SETTINGS_SECTION)) { continue; } PropertySet properties = iniFile.section(columnName); reportColumns.add(parseColumn(columnName, properties)); } return TradeReportTemplate.builder() .columns(reportColumns) .build(); } private TradeReportColumn parseColumn(String columnName, PropertySet properties) { TradeReportColumn.Builder columnBuilder = TradeReportColumn.builder(); columnBuilder.header(columnName); if (properties.contains(VALUE_PROPERTY)) { columnBuilder.value(properties.value(VALUE_PROPERTY)); } if (properties.contains(IGNORE_FAILURES_PROPERTY)) { String ignoreFailuresValue = properties.value(IGNORE_FAILURES_PROPERTY); boolean ignoresFailure = Boolean.valueOf(ignoreFailuresValue); columnBuilder.ignoreFailures(ignoresFailure); } return columnBuilder.build(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy