in src/main/java/com/univocity/parsers/common/CommonParserSettings.java [418:450]
protected synchronized void configureFromAnnotations(Class<?> beanClass) {
if(!deriveHeadersFrom(beanClass)){
return;
}
Headers headerAnnotation = AnnotationHelper.findHeadersAnnotation(beanClass);
String[] headersFromBean = ArgumentUtils.EMPTY_STRING_ARRAY;
boolean allFieldsIndexBased = AnnotationHelper.allFieldsIndexBasedForParsing(beanClass);
boolean extractHeaders = !allFieldsIndexBased;
if (headerAnnotation != null) {
if (headerAnnotation.sequence().length > 0) {
headersFromBean = headerAnnotation.sequence();
}
extractHeaders = headerAnnotation.extract();
}
if (headerExtractionEnabled == null) {
setHeaderExtractionEnabled(extractHeaders);
}
if (getHeaders() == null && headersFromBean.length > 0 && !headerExtractionEnabled) {
setHeadersDerivedFromClass(beanClass, headersFromBean);
}
if (getFieldSet() == null) {
if (allFieldsIndexBased) {
selectIndexes(AnnotationHelper.getSelectedIndexes(beanClass, MethodFilter.ONLY_SETTERS));
} else if (headersFromBean.length > 0 && AnnotationHelper.allFieldsNameBasedForParsing(beanClass)) {
selectFields(headersFromBean);
}
}
}