diff options
-rw-r--r-- | document/src/main/java/com/yahoo/document/ExtendedField.java | 5 | ||||
-rw-r--r-- | vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java | 7 |
2 files changed, 7 insertions, 5 deletions
diff --git a/document/src/main/java/com/yahoo/document/ExtendedField.java b/document/src/main/java/com/yahoo/document/ExtendedField.java index 6ecf2e62efc..7bfab9dbaf6 100644 --- a/document/src/main/java/com/yahoo/document/ExtendedField.java +++ b/document/src/main/java/com/yahoo/document/ExtendedField.java @@ -1,10 +1,13 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.document; import com.yahoo.document.datatypes.FieldValue; import com.yahoo.document.datatypes.StructuredFieldValue; /** - * Created by balder on 14/11/2016. + * This adds an Extractor to the Field that can be used to get access the backed value + * used in the concrete document types. + * @author baldersheim */ public class ExtendedField extends Field { public static interface Extract { diff --git a/vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java b/vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java index 6106a95b38d..e1e11e93fd8 100644 --- a/vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java +++ b/vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java @@ -771,12 +771,11 @@ public class DocumentGenMojo extends AbstractMojo { */ private static void exportGetFields(Collection<Field> fields, Writer out, int ind) throws IOException { out.write(ind(ind)+"@Override public java.util.Set<java.util.Map.Entry<com.yahoo.document.Field, com.yahoo.document.datatypes.FieldValue>> getFields() {\n" + - ind(ind+1)+"java.util.Map<com.yahoo.document.Field, com.yahoo.document.datatypes.FieldValue> ret = new java.util.LinkedHashMap<com.yahoo.document.Field, com.yahoo.document.datatypes.FieldValue>();\n" + - ind(ind+1)+"com.yahoo.document.Field f;\n"); + ind(ind+1)+"java.util.Map<com.yahoo.document.Field, com.yahoo.document.datatypes.FieldValue> ret = new java.util.LinkedHashMap<com.yahoo.document.Field, com.yahoo.document.datatypes.FieldValue>();\n"); for (Field f : fields) { out.write(ind(ind+1)+"if ("+getter(f.getName())+"()!=null) {\n"); - out.write(ind(ind+2)+"f = new com.yahoo.document.Field(\""+f.getName()+"\", "+toJavaReference(f.getDataType())+");\n"); - out.write(ind(ind+2)+"ret.put(f, f.getDataType().createFieldValue("+getter(f.getName())+"()));\n"); + out.write(ind(ind+2)+"com.yahoo.document.Field f = getField(\""+f.getName()+"\");\n"); + out.write(ind(ind+2)+"ret.put(f, ((com.yahoo.document.ExtendedField)f).getFieldValue(this));\n"); out.write(ind(ind+1)+"}\n"); } out.write(ind(ind+1)+"return ret.entrySet();\n"); |