use of org.openforis.collect.io.data.csv.AutomaticColumnProvider in project collect by openforis.
the class CSVDataExportColumnProviderGenerator method generateColumnProviderChain.
public ColumnProviderChain generateColumnProviderChain(EntityDefinition entityDefn) {
List<ColumnProvider> columnProviders = new ArrayList<ColumnProvider>();
// entity children columns
AutomaticColumnProvider entityColumnProvider = createEntityColumnProvider(entityDefn);
// ancestor columns
columnProviders.addAll(createAncestorsColumnsProvider(entityDefn));
// position column
if (isPositionColumnRequired(entityDefn)) {
columnProviders.add(createPositionColumnProvider(entityDefn));
}
columnProviders.add(entityColumnProvider);
// create data transformation
ColumnProviderChain provider = new ColumnProviderChain(configuration, columnProviders);
return provider;
}
use of org.openforis.collect.io.data.csv.AutomaticColumnProvider in project collect by openforis.
the class CSVDataExportColumnProviderGenerator method createAncestorColumnProvider.
private ColumnProvider createAncestorColumnProvider(EntityDefinition contextEntityDefn, EntityDefinition ancestorEntityDefn) {
List<ColumnProvider> providers = new ArrayList<ColumnProvider>();
if (configuration.isIncludeAllAncestorAttributes()) {
AutomaticColumnProvider ancestorEntityColumnProvider = new AutomaticColumnProvider(configuration, ColumnProviders.generateHeadingPrefix(ancestorEntityDefn, configuration) + configuration.getFieldHeadingSeparator(), ancestorEntityDefn);
providers.add(0, ancestorEntityColumnProvider);
} else {
// include only key attributes
List<AttributeDefinition> keyAttrDefns = ancestorEntityDefn.getKeyAttributeDefinitions();
for (AttributeDefinition keyDefn : keyAttrDefns) {
String relativePath = contextEntityDefn.getRelativePath(ancestorEntityDefn);
ColumnProvider keyColumnProvider = ColumnProviders.createAttributeProvider(configuration, keyDefn);
String headingPrefix = configuration.isIncludeGroupingLabels() ? ColumnProviders.generateHeadingPrefix(keyDefn.getParentEntityDefinition(), configuration) + configuration.getFieldHeadingSeparator() : "";
PivotExpressionColumnProvider columnProvider = new PivotExpressionColumnProvider(configuration, relativePath, headingPrefix, keyColumnProvider);
providers.add(columnProvider);
}
if (isPositionColumnRequired(ancestorEntityDefn)) {
String relativePath = contextEntityDefn.getRelativePath(ancestorEntityDefn);
ColumnProvider positionColumnProvider = createPositionColumnProvider(ancestorEntityDefn);
PivotExpressionColumnProvider columnProvider = new PivotExpressionColumnProvider(configuration, relativePath, "", positionColumnProvider);
providers.add(columnProvider);
}
}
return new ColumnProviderChain(configuration, providers);
}
Aggregations