private void determineFieldMapping()

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