
com.opengamma.strata.report.trade.TradeReportTemplateIniLoader Maven / Gradle / Ivy
/**
* 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