use of name.abuchen.portfolio.datatransfer.csv.CSVImporter.Field in project portfolio by buchen.
the class CSVImportDefinitionPage method doUpdateErrorMessages.
private void doUpdateErrorMessages() {
Set<Field> fieldsToMap = new HashSet<>(importer.getExtractor().getFields());
for (Column column : importer.getColumns()) fieldsToMap.remove(column.getField());
if (fieldsToMap.isEmpty()) {
setMessage(null);
setPageComplete(true);
} else {
String required = fieldsToMap.stream().filter(f -> !f.isOptional()).map(Field::getName).collect(// $NON-NLS-1$
Collectors.joining(", "));
String optional = fieldsToMap.stream().filter(Field::isOptional).map(Field::getName).collect(// $NON-NLS-1$
Collectors.joining(", "));
boolean onlyOptional = required.length() == 0;
setPageComplete(onlyOptional);
StringBuilder message = new StringBuilder();
if (required.length() > 0)
// $NON-NLS-1$
message.append(MessageFormat.format(Messages.CSVImportErrorMissingFields, required)).append("\n");
if (optional.length() > 0)
message.append(MessageFormat.format(Messages.CSVImportInformationOptionalFields, optional));
setMessage(message.toString(), onlyOptional ? IMessageProvider.INFORMATION : IMessageProvider.ERROR);
}
}
use of name.abuchen.portfolio.datatransfer.csv.CSVImporter.Field in project portfolio by buchen.
the class CSVExtractorTestUtil method buildField2Column.
/**
* Build column config for unit testing, e.g. expect all values exactly in
* the order they have been configured and with the first format option
*/
/* package */
static Map<String, Column> buildField2Column(CSVExtractor extractor) {
Map<String, Column> field2column = new HashMap<>();
int index = 0;
for (Field f : extractor.getFields()) {
Column column = new Column(index++, f.getName());
column.setField(f);
if (f instanceof DateField)
column.setFormat(DateField.FORMATS[0]);
else if (f instanceof AmountField)
column.setFormat(AmountField.FORMATS[0]);
field2column.put(f.getName(), column);
}
return field2column;
}
Aggregations