Search in sources :

Example 1 with AutomaticColumnProvider

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;
}
Also used : ColumnProviderChain(org.openforis.collect.io.data.csv.ColumnProviderChain) ArrayList(java.util.ArrayList) PivotExpressionColumnProvider(org.openforis.collect.io.data.csv.PivotExpressionColumnProvider) AutomaticColumnProvider(org.openforis.collect.io.data.csv.AutomaticColumnProvider) ColumnProvider(org.openforis.collect.io.data.csv.ColumnProvider) NodePositionColumnProvider(org.openforis.collect.io.data.csv.NodePositionColumnProvider) AutomaticColumnProvider(org.openforis.collect.io.data.csv.AutomaticColumnProvider)

Example 2 with AutomaticColumnProvider

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);
}
Also used : ColumnProviderChain(org.openforis.collect.io.data.csv.ColumnProviderChain) PivotExpressionColumnProvider(org.openforis.collect.io.data.csv.PivotExpressionColumnProvider) ArrayList(java.util.ArrayList) PivotExpressionColumnProvider(org.openforis.collect.io.data.csv.PivotExpressionColumnProvider) AutomaticColumnProvider(org.openforis.collect.io.data.csv.AutomaticColumnProvider) ColumnProvider(org.openforis.collect.io.data.csv.ColumnProvider) NodePositionColumnProvider(org.openforis.collect.io.data.csv.NodePositionColumnProvider) AttributeDefinition(org.openforis.idm.metamodel.AttributeDefinition) AutomaticColumnProvider(org.openforis.collect.io.data.csv.AutomaticColumnProvider)

Aggregations

ArrayList (java.util.ArrayList)2 AutomaticColumnProvider (org.openforis.collect.io.data.csv.AutomaticColumnProvider)2 ColumnProvider (org.openforis.collect.io.data.csv.ColumnProvider)2 ColumnProviderChain (org.openforis.collect.io.data.csv.ColumnProviderChain)2 NodePositionColumnProvider (org.openforis.collect.io.data.csv.NodePositionColumnProvider)2 PivotExpressionColumnProvider (org.openforis.collect.io.data.csv.PivotExpressionColumnProvider)2 AttributeDefinition (org.openforis.idm.metamodel.AttributeDefinition)1