summaryrefslogtreecommitdiffstats
path: root/vespa-documentgen-plugin
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-06-28 12:39:19 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-06-28 12:39:19 +0200
commitb809a87e9d0d94d2ca238f8ab2f4d687130ddbf2 (patch)
tree95387c50a2e50e4d38355c8038729a645e94cdd6 /vespa-documentgen-plugin
parente8d94725ce3698a764b4710f486f4358e1360df7 (diff)
Use a utility method for upgrading to concrete types.
Diffstat (limited to 'vespa-documentgen-plugin')
-rw-r--r--vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java16
1 files changed, 5 insertions, 11 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 bc34a4ac3df..3afd84725bf 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
@@ -203,7 +203,7 @@ public class DocumentGenMojo extends AbstractMojo {
" * Generated by vespa-documentgen-plugin, do not edit.\n" +
" * Date: "+new Date()+"\n" +
" */\n");
- out.write("@com.yahoo.document.Generated public class ConcreteDocumentFactory extends com.yahoo.docproc.AbstractConcreteDocumentFactory {\n");
+ out.write("@com.yahoo.document.Generated\npublic class ConcreteDocumentFactory extends com.yahoo.docproc.AbstractConcreteDocumentFactory {\n");
out.write(ind()+"private static java.util.Map<java.lang.String, java.lang.Class<? extends com.yahoo.document.Document>> dTypes = new java.util.HashMap<java.lang.String, java.lang.Class<? extends com.yahoo.document.Document>>();\n");
out.write(ind()+"private static java.util.Map<java.lang.String, com.yahoo.document.DocumentType> docTypes = new java.util.HashMap<>();\n");
out.write(ind()+"private static java.util.Map<java.lang.String, java.lang.Class<? extends com.yahoo.document.datatypes.Struct>> sTypes = new java.util.HashMap<java.lang.String, java.lang.Class<? extends com.yahoo.document.datatypes.Struct>>();\n");
@@ -316,7 +316,7 @@ public class DocumentGenMojo extends AbstractMojo {
" * Input annotation type: "+annType.getName()+"\n" +
" * Date: "+new Date()+"\n" +
" */\n" +
- "@com.yahoo.document.Generated public "+annTypeModifier(annType)+"class "+className+" extends "+getParentAnnotationType(annType)+" {\n\n");
+ "@com.yahoo.document.Generated\npublic "+annTypeModifier(annType)+"class "+className+" extends "+getParentAnnotationType(annType)+" {\n\n");
if (annType.getDataType() instanceof StructDataType) {
out.write(ind() + "public "+className+"() {\n" +
ind(2) + "setType(new com.yahoo.document.annotation.AnnotationType(\""+annType.getName()+"\", Fields.type));\n" +
@@ -435,7 +435,7 @@ public class DocumentGenMojo extends AbstractMojo {
" * Input document type: "+docType.getName()+"\n" +
" * Date: "+new Date()+"\n" +
" */\n" +
- "@com.yahoo.document.Generated public class "+className+" extends "+superType+" {\n\n"+
+ "@com.yahoo.document.Generated\npublic class "+className+" extends "+superType+" {\n\n"+
ind(1)+"/** The doc type of this.*/\n" +
ind(1)+"public static final com.yahoo.document.DocumentType type = getDocumentType();\n\n"+
ind(1)+"/** Struct type view of the type of the body of this.*/\n" +
@@ -567,19 +567,13 @@ public class DocumentGenMojo extends AbstractMojo {
out.write(ind(ind)+"public "+className+"(com.yahoo.document.datatypes.StructuredFieldValue src) {\n"+
ind(ind+1)+"super("+className+".type);\n");
}
+ out.write(ind() + "ConcreteDocumentFactory factory = new ConcreteDocumentFactory();");
out.write(
ind(ind+1)+"for (java.util.Iterator<java.util.Map.Entry<com.yahoo.document.Field, com.yahoo.document.datatypes.FieldValue>>i=src.iterator() ; i.hasNext() ; ) {\n" +
ind(ind+2)+"java.util.Map.Entry<com.yahoo.document.Field, com.yahoo.document.datatypes.FieldValue> e = i.next();\n" +
ind(ind+2)+"com.yahoo.document.Field f = e.getKey();\n" +
ind(ind+2)+"com.yahoo.document.datatypes.FieldValue fv = e.getValue();\n" +
- ind(ind+2)+"if (fv instanceof com.yahoo.document.datatypes.StructuredFieldValue) {\n" +
- ind(ind+3)+"try {\n" +
- ind(ind+4)+"com.yahoo.document.datatypes.StructuredFieldValue newVal = ConcreteDocumentFactory.structTypes.get(f.getDataType().getName()).getConstructor(com.yahoo.document.datatypes.StructuredFieldValue.class).newInstance(fv);\n" +
- ind(ind+4)+"setFieldValue(f, newVal);\n" +
- ind(ind+3)+"} catch (java.lang.Exception ex) { throw new java.lang.RuntimeException(ex); }\n" +
- ind(ind+2)+"} else {\n" +
- ind(ind+3)+"setFieldValue(f, fv);\n" +
- ind(ind+2)+"}\n" +
+ ind(ind+2)+"setFieldValue(f, factory.optionallyUpgrade(f, fv));\n" +
ind(ind+1)+"}\n"+
ind(ind)+"}\n\n");
}