summaryrefslogtreecommitdiffstats
path: root/configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java
diff options
context:
space:
mode:
Diffstat (limited to 'configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java')
-rw-r--r--configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java b/configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java
index cb10ffdc2be..903d8dc0865 100644
--- a/configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java
+++ b/configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java
@@ -7,6 +7,7 @@ import com.yahoo.config.codegen.LeafCNode.EnumLeaf;
import com.yahoo.config.codegen.LeafCNode.FileLeaf;
import com.yahoo.config.codegen.LeafCNode.IntegerLeaf;
import com.yahoo.config.codegen.LeafCNode.LongLeaf;
+import com.yahoo.config.codegen.LeafCNode.OptionalPathLeaf;
import com.yahoo.config.codegen.LeafCNode.PathLeaf;
import com.yahoo.config.codegen.LeafCNode.ReferenceLeaf;
import com.yahoo.config.codegen.LeafCNode.StringLeaf;
@@ -165,6 +166,8 @@ public class ConfigGenerator {
return name + " = LeafNodeVector.createFileNodeVector(builder." + name + ");";
} else if (child instanceof PathLeaf && isArray) {
return name + " = LeafNodeVector.createPathNodeVector(builder." + name + ");";
+ } else if (child instanceof OptionalPathLeaf && isArray) {
+ return name + " = LeafNodeVector.createOptionalPathNodeVector(builder." + name + ");";
} else if (child instanceof UrlLeaf && isArray) {
return name + " = LeafNodeVector.createUrlNodeVector(builder." + name + ");";
} else if (child instanceof ModelLeaf && isArray) {
@@ -175,6 +178,8 @@ public class ConfigGenerator {
return name + " = LeafNodeMaps.asFileNodeMap(builder." + name + ");";
} else if (child instanceof PathLeaf && isMap) {
return name + " = LeafNodeMaps.asPathNodeMap(builder." + name + ");";
+ } else if (child instanceof OptionalPathLeaf && isMap) {
+ return name + " = LeafNodeMaps.asOptionalPathNodeMap(builder." + name + ");";
} else if (child instanceof UrlLeaf && isMap) {
return name + " = LeafNodeMaps.asUrlNodeMap(builder." + name + ");";
} else if (child instanceof ModelLeaf && isMap) {
@@ -401,6 +406,8 @@ public class ConfigGenerator {
return "FileNode";
} else if (node instanceof PathLeaf) {
return "PathNode";
+ } else if (node instanceof OptionalPathLeaf) {
+ return "OptionalPathNode";
} else if (node instanceof UrlLeaf) {
return "UrlNode";
} else if (node instanceof ModelLeaf) {
@@ -431,6 +438,8 @@ public class ConfigGenerator {
return "FileReference";
} else if (node instanceof PathLeaf) {
return "Path";
+ } else if (node instanceof OptionalPathLeaf) {
+ return "Optional<Path>";
} else if (node instanceof UrlLeaf) {
return "File";
} else if (node instanceof ModelLeaf) {
@@ -456,6 +465,8 @@ public class ConfigGenerator {
return "Integer";
} else if (rawType.toLowerCase().equals(rawType)) {
return ConfiggenUtil.capitalize(rawType);
+ } else if (rawType.startsWith("Optional<")) {
+ return "Optional";
} else {
return rawType;
}