Skip to content

CSV data export: include multiple entities#201

Merged
SteRiccio merged 3 commits into
masterfrom
feat/csv-data-export-mult-entity
Jun 9, 2026
Merged

CSV data export: include multiple entities#201
SteRiccio merged 3 commits into
masterfrom
feat/csv-data-export-mult-entity

Conversation

@SteRiccio

Copy link
Copy Markdown
Member

No description provided.

@SteRiccio
SteRiccio merged commit 522940d into master Jun 9, 2026
@SteRiccio
SteRiccio deleted the feat/csv-data-export-mult-entity branch June 9, 2026 20:03
@sonarqubecloud

sonarqubecloud Bot commented Jun 9, 2026

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds support for exporting non-enumerable multiple entities as repeated column groups in CSV/XLSX exports, controlled by a new includeMultipleEntities export parameter. This extends the existing “enumerated entities” export behavior to handle multiple entities that can’t be expanded via code lists.

Changes:

  • Introduces MultipleEntityColumnProvider to generate repeated column sets for multiple entity instances (by index).
  • Adds includeMultipleEntities flag to CSVDataExportParametersBase.
  • Wires the new provider into AutomaticColumnProvider when encountering multiple (non-enumerable or non-included-enumerable) entities.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
collect-core/src/main/java/org/openforis/collect/io/data/csv/MultipleEntityColumnProvider.java New column provider to expand multiple entities into repeated column groups.
collect-core/src/main/java/org/openforis/collect/io/data/csv/CSVDataExportParametersBase.java Adds configuration flag to enable exporting multiple entities.
collect-core/src/main/java/org/openforis/collect/io/data/csv/columnProviders/AutomaticColumnProvider.java Uses MultipleEntityColumnProvider when includeMultipleEntities is enabled.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +27 to +39
private static List<ColumnProvider> createProviders(CSVDataExportParameters config, EntityDefinition defn) {
List<ColumnProvider> providers = new ArrayList<ColumnProvider>();
List<AttributeDefinition> keyDefs = defn.getKeyAttributeDefinitions();
int maxEntities = defn.getFixedMaxCount() == null ? DEFAULT_MAX_ITEMS: defn.getFixedMaxCount();
for (int entityIndex = 0; entityIndex < maxEntities; entityIndex ++) {
for (AttributeDefinition keyDef : keyDefs) {
String keyName = keyDef.getName();
MultipleEntityKeyColumnProvider p = new MultipleEntityKeyColumnProvider(config, defn, entityIndex, keyName);
providers.add(p);
}
}
return providers;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants