summaryrefslogtreecommitdiffstats
path: root/configgen
diff options
context:
space:
mode:
authorLester Solbakken <lesters@oath.com>2018-12-18 10:37:27 +0100
committerLester Solbakken <lesters@oath.com>2018-12-18 10:37:27 +0100
commit7caa60913e4db267f7d7bdfe0e1de90ec12db13f (patch)
treebbb2e77e81d2823fc7c1048a39a7d38c20edfc44 /configgen
parent305d22637387d183be17a0582b1ced76f2b44982 (diff)
Add url config type
Diffstat (limited to 'configgen')
-rw-r--r--configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java17
-rw-r--r--configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java11
-rw-r--r--configgen/src/main/java/com/yahoo/config/codegen/JavaClassBuilder.java1
-rw-r--r--configgen/src/main/java/com/yahoo/config/codegen/LeafCNode.java12
-rw-r--r--configgen/src/test/java/com/yahoo/config/codegen/DefLineParsingTest.java20
-rw-r--r--configgen/src/test/java/com/yahoo/config/codegen/DefParserTest.java4
-rw-r--r--configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java4
-rw-r--r--configgen/src/test/java/com/yahoo/config/codegen/NormalizedDefinitionTest.java2
-rw-r--r--configgen/src/test/resources/allfeatures.def3
-rw-r--r--configgen/src/test/resources/allfeatures.reference92
10 files changed, 156 insertions, 10 deletions
diff --git a/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java b/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java
index 7789a2b2cfb..b3c4d0c5ff8 100644
--- a/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java
+++ b/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java
@@ -3,6 +3,7 @@ package com.yahoo.config.codegen;
import com.yahoo.config.codegen.LeafCNode.FileLeaf;
import com.yahoo.config.codegen.LeafCNode.PathLeaf;
+import com.yahoo.config.codegen.LeafCNode.UrlLeaf;
import java.util.ArrayList;
import java.util.List;
@@ -169,7 +170,7 @@ public class BuilderGenerator {
}
private static String privateLeafNodeSetter(LeafCNode n) {
- if ("String".equals(builderType(n)) || "FileReference".equals(builderType(n))) {
+ if ("String".equals(builderType(n)) || "FileReference".equals(builderType(n)) || "UrlReference".equals(builderType(n))) {
return "";
} else {
return "\n\n" + //
@@ -197,7 +198,7 @@ public class BuilderGenerator {
}
private static String privateLeafMapSetter(CNode n) {
- if ("String".equals(builderType(n)) || "FileReference".equals(builderType(n))) {
+ if ("String".equals(builderType(n)) || "FileReference".equals(builderType(n)) || "UrlReference".equals(builderType(n))) {
return "";
} else {
return "\n\n" + //
@@ -219,7 +220,7 @@ public class BuilderGenerator {
: "";
String bType = builderType(n);
- String stringSetter = "String".equals(bType) || "FileReference".equals(bType) ? ""
+ String stringSetter = "String".equals(bType) || "FileReference".equals(bType) || "UrlReference".equals(bType) ? ""
: String.format("\nprivate Builder %s(String %svalue) {\n" + //
" return %s(%s.valueOf(%svalue));\n" + //
"}", name, INTERNAL_PREFIX, name, boxedDataType(n), INTERNAL_PREFIX);
@@ -251,6 +252,12 @@ public class BuilderGenerator {
return name + "(" + nodeClass(child) + ".toFileReferenceMap(config." + name + "));";
} else if (child instanceof PathLeaf) {
return name + "(config." + name + ".getFileReference());";
+ } else if (child instanceof UrlLeaf && isArray) {
+ return name + "(" + nodeClass(child) + ".toUrlReferences(config." + name + "));";
+ } else if (child instanceof UrlLeaf && isMap) {
+ return name + "(" + nodeClass(child) + ".toUrlReferenceMap(config." + name + "));";
+ } else if (child instanceof UrlLeaf) {
+ return name + "(config." + name + ".getUrlReference());";
} else if (child instanceof LeafCNode) {
return name + "(config." + name + "());";
} else if (child instanceof InnerCNode && isArray) {
@@ -340,6 +347,8 @@ public class BuilderGenerator {
return "String";
} else if (node instanceof PathLeaf) {
return "FileReference";
+ } else if (node instanceof UrlLeaf) {
+ return "UrlReference";
} else if (node instanceof LeafCNode && (node.isArray || node.isMap)) {
return boxedDataType(node);
} else {
@@ -352,6 +361,8 @@ public class BuilderGenerator {
return "String";
} else if (node instanceof PathLeaf) {
return "FileReference";
+ } else if (node instanceof UrlLeaf) {
+ return "UrlReference";
} else {
return boxedDataType(node);
}
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 f7c6267a6bb..4da546a7179 100644
--- a/configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java
+++ b/configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java
@@ -10,6 +10,7 @@ import com.yahoo.config.codegen.LeafCNode.LongLeaf;
import com.yahoo.config.codegen.LeafCNode.PathLeaf;
import com.yahoo.config.codegen.LeafCNode.ReferenceLeaf;
import com.yahoo.config.codegen.LeafCNode.StringLeaf;
+import com.yahoo.config.codegen.LeafCNode.UrlLeaf;
import java.util.LinkedList;
import java.util.List;
@@ -163,12 +164,16 @@ 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 UrlLeaf && isArray) {
+ return name + " = LeafNodeVector.createUrlNodeVector(builder." + name + ");";
} else if (child instanceof LeafCNode && isArray) {
return name + " = new LeafNodeVector<>(builder." + name + ", new " + className + "());";
} else if (child instanceof FileLeaf && isMap) {
return name + " = LeafNodeMaps.asFileNodeMap(builder." + name + ");";
} else if (child instanceof PathLeaf && isMap) {
return name + " = LeafNodeMaps.asPathNodeMap(builder." + name + ");";
+ } else if (child instanceof UrlLeaf && isMap) {
+ return name + " = LeafNodeMaps.asUrlNodeMap(builder." + name + ");";
} else if (child instanceof LeafCNode && isMap) {
return name + " = LeafNodeMaps.asNodeMap(builder." + name + ", new " + className + "());";
} else if (child instanceof InnerCNode && isArray) {
@@ -178,7 +183,7 @@ public class ConfigGenerator {
} else if (child instanceof InnerCNode) {
return name + " = new " + className + "(builder." + name + ", throwIfUninitialized);";
} else if (child instanceof LeafCNode) {
- return name + " = (builder." + name + " == null) ?\n" +//
+ return name + " = (builder." + name + " == null) ?\n" +
" new " + className + "(" + scalarDefault((LeafCNode) child) + ") : new " + className + "(builder." + name + ");";
} else {
throw new IllegalStateException("Cannot create assignment for node"); // should not happen
@@ -391,6 +396,8 @@ public class ConfigGenerator {
return "FileNode";
} else if (node instanceof PathLeaf) {
return "PathNode";
+ } else if (node instanceof UrlLeaf) {
+ return "UrlNode";
} else if (node instanceof IntegerLeaf) {
return "IntegerNode";
} else if (node instanceof LongLeaf) {
@@ -417,6 +424,8 @@ public class ConfigGenerator {
return "FileReference";
} else if (node instanceof PathLeaf) {
return "Path";
+ } else if (node instanceof UrlLeaf) {
+ return "File";
} else if (node instanceof IntegerLeaf) {
return "int";
} else if (node instanceof LongLeaf) {
diff --git a/configgen/src/main/java/com/yahoo/config/codegen/JavaClassBuilder.java b/configgen/src/main/java/com/yahoo/config/codegen/JavaClassBuilder.java
index e30b59b642a..5c447191614 100644
--- a/configgen/src/main/java/com/yahoo/config/codegen/JavaClassBuilder.java
+++ b/configgen/src/main/java/com/yahoo/config/codegen/JavaClassBuilder.java
@@ -71,6 +71,7 @@ public class JavaClassBuilder implements ClassBuilder {
"package " + javaPackage + ";\n" + //
"\n" + //
"import java.util.*;\n" + //
+ "import java.io.File;\n" + //
"import java.nio.file.Path;\n" + //
"import edu.umd.cs.findbugs.annotations.NonNull;\n" + //
getImportFrameworkClasses(root.getNamespace());
diff --git a/configgen/src/main/java/com/yahoo/config/codegen/LeafCNode.java b/configgen/src/main/java/com/yahoo/config/codegen/LeafCNode.java
index 7623987656a..e8dd4221f0e 100644
--- a/configgen/src/main/java/com/yahoo/config/codegen/LeafCNode.java
+++ b/configgen/src/main/java/com/yahoo/config/codegen/LeafCNode.java
@@ -27,6 +27,7 @@ public abstract class LeafCNode extends CNode {
case "file": return new FileLeaf(parent, name);
case "path": return new PathLeaf(parent, name);
case "enum": return new EnumLeaf(parent, name, type.enumArray);
+ case "url" : return new UrlLeaf(parent, name);
default: return null;
}
} catch (NumberFormatException e) {
@@ -217,6 +218,17 @@ public abstract class LeafCNode extends CNode {
}
}
+ public static class UrlLeaf extends NoClassNoDefaultLeafCNode {
+ UrlLeaf(InnerCNode parent, String name) {
+ super(parent, name);
+ }
+
+ @Override
+ public String getType() {
+ return "url";
+ }
+ }
+
public static class EnumLeaf extends LeafCNode {
private final String[] legalValues;
diff --git a/configgen/src/test/java/com/yahoo/config/codegen/DefLineParsingTest.java b/configgen/src/test/java/com/yahoo/config/codegen/DefLineParsingTest.java
index 99699d888dc..a267c2bc535 100644
--- a/configgen/src/test/java/com/yahoo/config/codegen/DefLineParsingTest.java
+++ b/configgen/src/test/java/com/yahoo/config/codegen/DefLineParsingTest.java
@@ -102,6 +102,26 @@ public class DefLineParsingTest {
}
@Test
+ public void testParseUrls() {
+ DefLine l = new DefLine("urlVal url");
+
+ assertEquals("urlVal", l.getName());
+ assertNull(l.getDefault());
+ assertEquals("url", l.getType().getName());
+ }
+
+ @Test
+ public void testParseDefaultUrls() {
+ DefLine l = new DefLine("urlVal url default=\"http://docs.vespa.ai\"");
+
+ assertEquals("urlVal", l.getName());
+ assertEquals("http://docs.vespa.ai", l.getDefault().getValue());
+ assertEquals("\"http://docs.vespa.ai\"", l.getDefault().getStringRepresentation());
+ assertEquals("url", l.getType().getName());
+ }
+
+
+ @Test
public void testParseDefaultInt() {
DefLine l = new DefLine("foo int default=1000");
diff --git a/configgen/src/test/java/com/yahoo/config/codegen/DefParserTest.java b/configgen/src/test/java/com/yahoo/config/codegen/DefParserTest.java
index e36641bb626..98c30aa09cf 100644
--- a/configgen/src/test/java/com/yahoo/config/codegen/DefParserTest.java
+++ b/configgen/src/test/java/com/yahoo/config/codegen/DefParserTest.java
@@ -28,7 +28,7 @@ public class DefParserTest {
CNode root = new DefParser("test", new FileReader(defFile)).getTree();
assertNotNull(root);
CNode[] children = root.getChildren();
- assertThat(children.length, is(31));
+ assertThat(children.length, is(34));
int numGrandChildren = 0;
int numGreatGrandChildren = 0;
@@ -70,7 +70,7 @@ public class DefParserTest {
public void testMd5Sum() throws IOException {
File defFile = new File(DEF_NAME);
CNode root = new DefParser("test", new FileReader(defFile)).getTree();
- assertThat(root.defMd5, is("eb2d24dbbcf054b21be729e2cfaafd93"));
+ assertThat(root.defMd5, is("f901bdc5c96e7005130399c63f247823"));
}
@Test
diff --git a/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java b/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java
index 381d587e3c3..11da88a12fa 100644
--- a/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java
+++ b/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java
@@ -35,6 +35,8 @@ public class JavaClassBuilderTest {
"namespace=test\n" + //
"p path\n" + //
"pathArr[] path\n" + //
+ "u url\n" + //
+ "urlArr[] url\n" + //
"f file\n" + //
"fileArr[] file\n" + //
"i int default=0\n" + //
@@ -116,7 +118,7 @@ public class JavaClassBuilderTest {
for (int i = 0; i < referenceClassLines.size(); i++) {
if (configClassLines.length <= i)
- fail("Missing lines i generated comnfig class. First missing line:\n" + referenceClassLines.get(i));
+ fail("Missing lines i generated config class. First missing line:\n" + referenceClassLines.get(i));
assertEquals("Line " + i, referenceClassLines.get(i), configClassLines[i]);
}
}
diff --git a/configgen/src/test/java/com/yahoo/config/codegen/NormalizedDefinitionTest.java b/configgen/src/test/java/com/yahoo/config/codegen/NormalizedDefinitionTest.java
index cbb0d9c4082..9cda4cfbb1c 100644
--- a/configgen/src/test/java/com/yahoo/config/codegen/NormalizedDefinitionTest.java
+++ b/configgen/src/test/java/com/yahoo/config/codegen/NormalizedDefinitionTest.java
@@ -68,7 +68,7 @@ public class NormalizedDefinitionTest {
}
assertNotNull(out);
- assertThat(out.size(), is(69));
+ assertThat(out.size(), is(72));
assertNotNull(fileReader);
fileReader.close();
diff --git a/configgen/src/test/resources/allfeatures.def b/configgen/src/test/resources/allfeatures.def
index e13e14c9e36..fb627f614d6 100644
--- a/configgen/src/test/resources/allfeatures.def
+++ b/configgen/src/test/resources/allfeatures.def
@@ -39,6 +39,7 @@ refVal reference
refwithdef reference default=":parent:"
fileVal file
pathVal path
+urlVal url
boolarr[] bool
intarr[] int
@@ -49,9 +50,11 @@ enumarr[] enum { ARRAY, VALUES }
refarr[] reference
filearr[] file
pathArr[] path
+urlArr[] url
intMap{} int
pathMap{} file
+urlMap{} url
# A basic struct
basic_struct.foo string default="foo"
diff --git a/configgen/src/test/resources/allfeatures.reference b/configgen/src/test/resources/allfeatures.reference
index 1916e37c1cc..f075daecd04 100644
--- a/configgen/src/test/resources/allfeatures.reference
+++ b/configgen/src/test/resources/allfeatures.reference
@@ -6,6 +6,7 @@
package com.yahoo.configgen;
import java.util.*;
+import java.io.File;
import java.nio.file.Path;
import edu.umd.cs.findbugs.annotations.NonNull;
import com.yahoo.config.*;
@@ -35,7 +36,7 @@ import com.yahoo.config.*;
*/
public final class AllfeaturesConfig extends ConfigInstance {
- public final static String CONFIG_DEF_MD5 = "eb2d24dbbcf054b21be729e2cfaafd93";
+ public final static String CONFIG_DEF_MD5 = "f901bdc5c96e7005130399c63f247823";
public final static String CONFIG_DEF_NAME = "allfeatures";
public final static String CONFIG_DEF_NAMESPACE = "configgen";
public final static String CONFIG_DEF_VERSION = "";
@@ -57,6 +58,7 @@ public final class AllfeaturesConfig extends ConfigInstance {
"refwithdef reference default=\":parent:\"",
"fileVal file",
"pathVal path",
+ "urlVal url",
"boolarr[] bool",
"intarr[] int",
"longarr[] long",
@@ -66,8 +68,10 @@ public final class AllfeaturesConfig extends ConfigInstance {
"refarr[] reference",
"filearr[] file",
"pathArr[] path",
+ "urlArr[] url",
"intMap{} int",
"pathMap{} file",
+ "urlMap{} url",
"basic_struct.foo string default=\"foo\"",
"basic_struct.bar int default=0",
"struct_of_struct.inner0.name string default=\"inner0\"",
@@ -105,7 +109,8 @@ public final class AllfeaturesConfig extends ConfigInstance {
"enumVal",
"refVal",
"fileVal",
- "pathVal"
+ "pathVal",
+ "urlVal"
));
private Boolean boolVal = null;
@@ -124,6 +129,7 @@ public final class AllfeaturesConfig extends ConfigInstance {
private String refwithdef = null;
private String fileVal = null;
private FileReference pathVal = null;
+ private UrlReference urlVal = null;
public List<Boolean> boolarr = new ArrayList<>();
public List<Integer> intarr = new ArrayList<>();
public List<Long> longarr = new ArrayList<>();
@@ -133,8 +139,10 @@ public final class AllfeaturesConfig extends ConfigInstance {
public List<String> refarr = new ArrayList<>();
public List<String> filearr = new ArrayList<>();
public List<FileReference> pathArr = new ArrayList<>();
+ public List<UrlReference> urlArr = new ArrayList<>();
public Map<String, Integer> intMap = new LinkedHashMap<>();
public Map<String, String> pathMap = new LinkedHashMap<>();
+ public Map<String, UrlReference> urlMap = new LinkedHashMap<>();
public Basic_struct.Builder basic_struct = new Basic_struct.Builder();
public Struct_of_struct.Builder struct_of_struct = new Struct_of_struct.Builder();
public List<MyArray.Builder> myArray = new ArrayList<>();
@@ -159,6 +167,7 @@ public final class AllfeaturesConfig extends ConfigInstance {
refwithdef(config.refwithdef());
fileVal(config.fileVal().value());
pathVal(config.pathVal.getFileReference());
+ urlVal(config.urlVal.getUrlReference());
boolarr(config.boolarr());
intarr(config.intarr());
longarr(config.longarr());
@@ -168,8 +177,10 @@ public final class AllfeaturesConfig extends ConfigInstance {
refarr(config.refarr());
filearr(FileReference.toValues(config.filearr()));
pathArr(PathNode.toFileReferences(config.pathArr));
+ urlArr(UrlNode.toUrlReferences(config.urlArr));
intMap(config.intMap());
pathMap(FileReference.toValueMap(config.pathMap()));
+ urlMap(UrlNode.toUrlReferenceMap(config.urlMap));
basic_struct(new Basic_struct.Builder(config.basic_struct()));
struct_of_struct(new Struct_of_struct.Builder(config.struct_of_struct()));
for (MyArray m : config.myArray()) {
@@ -213,6 +224,8 @@ public final class AllfeaturesConfig extends ConfigInstance {
fileVal(__superior.fileVal);
if (__superior.pathVal != null)
pathVal(__superior.pathVal);
+ if (__superior.urlVal != null)
+ urlVal(__superior.urlVal);
if (!__superior.boolarr.isEmpty())
boolarr.addAll(__superior.boolarr);
if (!__superior.intarr.isEmpty())
@@ -231,8 +244,11 @@ public final class AllfeaturesConfig extends ConfigInstance {
filearr.addAll(__superior.filearr);
if (!__superior.pathArr.isEmpty())
pathArr.addAll(__superior.pathArr);
+ if (!__superior.urlArr.isEmpty())
+ urlArr.addAll(__superior.urlArr);
intMap(__superior.intMap);
pathMap(__superior.pathMap);
+ urlMap(__superior.urlMap);
basic_struct(basic_struct.override(__superior.basic_struct));
struct_of_struct(struct_of_struct.override(__superior.struct_of_struct));
if (!__superior.myArray.isEmpty())
@@ -384,6 +400,14 @@ public final class AllfeaturesConfig extends ConfigInstance {
}
+ public Builder urlVal(UrlReference __value) {
+ if (__value == null) throw new IllegalArgumentException("Null value is not allowed.");
+ urlVal = __value;
+ __uninitialized.remove("urlVal");
+ return this;
+ }
+
+
public Builder boolarr(Boolean __value) {
boolarr.add(__value);
return this;
@@ -494,6 +518,16 @@ public final class AllfeaturesConfig extends ConfigInstance {
return this;
}
+ public Builder urlArr(UrlReference __value) {
+ urlArr.add(__value);
+ return this;
+ }
+
+ public Builder urlArr(Collection<UrlReference> __values) {
+ urlArr.addAll(__values);
+ return this;
+ }
+
public Builder intMap(String __key, Integer __value) {
intMap.put(__key, __value);
return this;
@@ -518,6 +552,16 @@ public final class AllfeaturesConfig extends ConfigInstance {
return this;
}
+ public Builder urlMap(String __key, UrlReference __value) {
+ urlMap.put(__key, __value);
+ return this;
+ }
+
+ public Builder urlMap(Map<String, UrlReference> __values) {
+ urlMap.putAll(__values);
+ return this;
+ }
+
public Builder basic_struct(Basic_struct.Builder __builder) {
basic_struct = __builder;
return this;
@@ -600,6 +644,7 @@ public final class AllfeaturesConfig extends ConfigInstance {
private final ReferenceNode refwithdef;
private final FileNode fileVal;
private final PathNode pathVal;
+ private final UrlNode urlVal;
private final LeafNodeVector<Boolean, BooleanNode> boolarr;
private final LeafNodeVector<Integer, IntegerNode> intarr;
private final LeafNodeVector<Long, LongNode> longarr;
@@ -609,8 +654,10 @@ public final class AllfeaturesConfig extends ConfigInstance {
private final LeafNodeVector<String, ReferenceNode> refarr;
private final LeafNodeVector<FileReference, FileNode> filearr;
private final LeafNodeVector<Path, PathNode> pathArr;
+ private final LeafNodeVector<File, UrlNode> urlArr;
private final Map<String, IntegerNode> intMap;
private final Map<String, FileNode> pathMap;
+ private final Map<String, UrlNode> urlMap;
private final Basic_struct basic_struct;
private final Struct_of_struct struct_of_struct;
private final InnerNodeVector<MyArray> myArray;
@@ -657,6 +704,8 @@ public final class AllfeaturesConfig extends ConfigInstance {
new FileNode() : new FileNode(builder.fileVal);
pathVal = (builder.pathVal == null) ?
new PathNode() : new PathNode(builder.pathVal);
+ urlVal = (builder.urlVal == null) ?
+ new UrlNode() : new UrlNode(builder.urlVal);
boolarr = new LeafNodeVector<>(builder.boolarr, new BooleanNode());
intarr = new LeafNodeVector<>(builder.intarr, new IntegerNode());
longarr = new LeafNodeVector<>(builder.longarr, new LongNode());
@@ -666,8 +715,10 @@ public final class AllfeaturesConfig extends ConfigInstance {
refarr = new LeafNodeVector<>(builder.refarr, new ReferenceNode());
filearr = LeafNodeVector.createFileNodeVector(builder.filearr);
pathArr = LeafNodeVector.createPathNodeVector(builder.pathArr);
+ urlArr = LeafNodeVector.createUrlNodeVector(builder.urlArr);
intMap = LeafNodeMaps.asNodeMap(builder.intMap, new IntegerNode());
pathMap = LeafNodeMaps.asFileNodeMap(builder.pathMap);
+ urlMap = LeafNodeMaps.asUrlNodeMap(builder.urlMap);
basic_struct = new Basic_struct(builder.basic_struct, throwIfUninitialized);
struct_of_struct = new Struct_of_struct(builder.struct_of_struct, throwIfUninitialized);
myArray = MyArray.createVector(builder.myArray);
@@ -787,6 +838,13 @@ public final class AllfeaturesConfig extends ConfigInstance {
}
/**
+ * @return allfeatures.urlVal
+ */
+ public File urlVal() {
+ return urlVal.value();
+ }
+
+ /**
* @return allfeatures.boolarr[]
*/
public List<Boolean> boolarr() {
@@ -922,6 +980,21 @@ public final class AllfeaturesConfig extends ConfigInstance {
}
/**
+ * @return allfeatures.urlArr[]
+ */
+ public List<File> urlArr() {
+ return urlArr.asList();
+ }
+
+ /**
+ * @param i the index of the value to return
+ * @return allfeatures.urlArr[]
+ */
+ public File urlArr(int i) {
+ return urlArr.get(i).value();
+ }
+
+ /**
* @return allfeatures.intMap{}
*/
public Map<String, Integer> intMap() {
@@ -952,6 +1025,21 @@ public final class AllfeaturesConfig extends ConfigInstance {
}
/**
+ * @return allfeatures.urlMap{}
+ */
+ public Map<String, File> urlMap() {
+ return LeafNodeMaps.asValueMap(urlMap);
+ }
+
+ /**
+ * @param key the key of the value to return
+ * @return allfeatures.urlMap{}
+ */
+ public File urlMap(String key) {
+ return urlMap.get(key).value();
+ }
+
+ /**
* @return allfeatures.basic_struct
*/
public Basic_struct basic_struct() {