
cdc.impex.core.ExportRowImpl Maven / Gradle / Ivy
package cdc.impex.core;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cdc.impex.exports.ExportIssue;
import cdc.impex.exports.ExportIssueType;
import cdc.impex.exports.ExportRow;
import cdc.impex.templates.ColumnTemplate;
import cdc.impex.templates.SheetTemplate;
import cdc.issues.IssueSeverity;
import cdc.issues.locations.WorkbookLocation;
import cdc.office.tables.Row;
import cdc.util.lang.Checks;
import cdc.validation.checkers.Checker;
/**
* Implementation of {@link ExportRow}.
*
* @author Damien Carbonne
*/
public class ExportRowImpl implements ExportRow {
public static final String CONVERSION_FAILURE = "CONVERSION FAILURE";
public static final String MISSING_DATA = "MISSING DATA";
private final SheetTemplate template;
private final String sheetName;
private final String systemId;
private final Map values = new HashMap<>();
private final Map comments = new HashMap<>();
private final List issues = new ArrayList<>();
private int number = 1;
public ExportRowImpl(SheetTemplate template,
String sheetName,
String systemId) {
this.template = template;
this.sheetName = sheetName;
this.systemId = systemId;
}
private ExportIssue createIssue(ExportIssueType type,
IssueSeverity severity,
String description,
String columnName) {
return ExportIssue.builder()
.name(type)
.severity(severity)
.description(description)
.addLocation(WorkbookLocation.builder()
.sheetName(sheetName)
.columnName(columnName)
.rowNumber(number)
.systemId(systemId)
.build())
.build();
}
private ExportIssue createIssue(ExportIssueType type,
String description,
String columnName) {
return createIssue(type,
type.getSeverity(),
description,
columnName);
}
private void addIssue(ExportIssueType type,
IssueSeverity severity,
String description,
String columnName) {
issues.add(createIssue(type,
severity,
description,
columnName));
}
private void addIssue(ExportIssueType type,
String description,
String columnName) {
addIssue(type,
type.getSeverity(),
description,
columnName);
}
@Override
public SheetTemplate getTemplate() {
return template;
}
@Override
public String getSheetName() {
return sheetName;
}
public void clear() {
values.clear();
issues.clear();
comments.clear();
setData(template.getActionColumn(), null);
}
public void setNumber(int number) {
this.number = number;
}
public void incrementNumber() {
this.number++;
}
@Override
public int getNumber() {
return number;
}
@Override
public void setData(String name,
Object data) {
Checks.isNotNull(name, "name");
final StringBuilder comment = new StringBuilder();
@SuppressWarnings("unchecked")
final ColumnTemplate
© 2015 - 2025 Weber Informatics LLC | Privacy Policy