private Map<Integer, FieldAccessDescriptor> resolveNestedFieldsAccessed(Schema schema) { Map<Integer, FieldAccessDescriptor> nestedFields; if (getFieldInsertionOrder()) { nestedFields = Maps.newLinkedHashMap(); } else { nestedFields = Maps.newTreeMap(); } nestedFields.putAll( getNestedFieldsAccessedByName() .entrySet() .stream() .collect( Collectors.toMap( e -> schema.indexOf(e.getKey()), e -> resolvedNestedFieldsHelper(schema.getField(e.getKey()), e.getValue())))); nestedFields.putAll( getNestedFieldsAccessedById() .entrySet() .stream() .collect( Collectors.toMap( e -> validateFieldId(schema, e.getKey()), e -> resolvedNestedFieldsHelper(schema.getField(e.getKey()), e.getValue())))); return nestedFields; }