in src/main/java/com/univocity/parsers/annotations/helpers/FieldMapping.java [91:143]
private void determineFieldMapping(HeaderTransformer transformer, String[] headers) {
Parsed parsed = findAnnotation(target, Parsed.class);
String name = "";
if (parsed != null) { //field can be annotated with @Nested only. In this case we get the original field name
index = AnnotationRegistry.getValue(target, parsed, "index", parsed.index());
if (index >= 0) {
fieldName = null;
if (transformer != null) {
index = transformer.transformIndex(target, index);
}
return;
}
String[] fields = AnnotationRegistry.getValue(target, parsed, "field", parsed.field());
if (fields.length > 1 && headers != null) {
for (int i = 0; i < headers.length; i++) {
String header = headers[i];
if (header == null) {
continue;
}
for (int j = 0; j < fields.length; j++) {
String field = fields[j];
if (field.equalsIgnoreCase(header)) {
name = field;
break;
}
}
}
}
if (name.isEmpty()) {
name = fields.length == 0 ? "" : fields[0];
}
}
if (name.isEmpty()) {
name = getName(target);
}
fieldName = name;
//Not a @Nested field
if (parsed != null && transformer != null) {
if (index >= 0) {
index = transformer.transformIndex(target, index);
} else if (fieldName != null) {
fieldName = transformer.transformName(target, fieldName);
}
}
}