summaryrefslogtreecommitdiffstats
path: root/vespa-documentgen-plugin
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2016-11-15 11:57:01 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2016-11-15 11:57:01 +0100
commitcaf7fe74fd7db7b0445c3b55d737efa41afb86ff (patch)
tree3f743e5ae468e210f85f8d9c6fdf7b84a6a0f89b /vespa-documentgen-plugin
parent13d7e57b72ea430118970ed6811c8697cb1cf8a9 (diff)
ensure Extended or belong to super.
Diffstat (limited to 'vespa-documentgen-plugin')
-rw-r--r--vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java13
1 files changed, 8 insertions, 5 deletions
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 d7769d365ec..6106a95b38d 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
@@ -674,8 +674,8 @@ public class DocumentGenMojo extends AbstractMojo {
out.write(ind(ind + 1) + "}\n");
}
}
- out.write(ind(ind+1)+"if (field instanceof com.yahoo.document.ExtendedField) return ((com.yahoo.document.ExtendedField)field).setFieldValue(this, value);\n");
- out.write(ind(ind+1)+"return super.setFieldValue(field, value);\n");
+ out.write(ind(ind+1)+"com.yahoo.document.ExtendedField ef = ensureExtended(field);\n");
+ out.write(ind(ind+1)+"return (ef != null) ? ef.setFieldValue(this, value) : super.setFieldValue(field, value);\n");
out.write(ind(ind)+"}\n\n");
}
@@ -699,16 +699,19 @@ public class DocumentGenMojo extends AbstractMojo {
}
}
- out.write(ind(ind+1)+"if (field instanceof com.yahoo.document.ExtendedField) return ((com.yahoo.document.ExtendedField)field).getFieldValue(this);\n");
- out.write(ind(ind+1)+"return super.getFieldValue(field);\n");
+ out.write(ind(ind+1)+"com.yahoo.document.ExtendedField ef = ensureExtended(field);\n");
+ out.write(ind(ind+1)+"return (ef != null) ? ef.getFieldValue(this) : super.getFieldValue(field);\n");
out.write(ind(ind)+"}\n\n");
}
private static void exportGetField(Collection<Field> fieldSet, Writer out, int ind) throws IOException {
+ out.write(ind(ind) + "private com.yahoo.document.ExtendedField ensureExtended(com.yahoo.document.Field f) {\n");
+ out.write(ind(ind+1) + "return (com.yahoo.document.ExtendedField)((f instanceof com.yahoo.document.ExtendedField) ? f : getField(f.getName()));\n");
+ out.write(ind(ind) + "}\n\n");
out.write(ind(ind) + "@Override public com.yahoo.document.Field getField(String fieldName) {\n");
out.write(ind(ind+1) + "if (fieldName==null) return null;\n");
out.write(ind(ind+1) + "return type.getField(fieldName);\n");
- out.write(ind(ind)+"}\n\n");
+ out.write(ind(ind) + "}\n\n");
}
/**