protected synchronized void configureFromAnnotations()

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);
			}
		}
	}