diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-11-30 14:47:38 -0800 |
---|---|---|
committer | Jon Bratseth <bratseth@oath.com> | 2018-11-30 14:47:38 -0800 |
commit | cf6da96964eb010e79117a680199916d946dfc22 (patch) | |
tree | 665fb956723c3abd141d7d1b519a92fced83bf3d /configgen/src | |
parent | c0513ac34d2c438e9f97e699659855029e1f06e8 (diff) |
Add build() method to config builders
Diffstat (limited to 'configgen/src')
21 files changed, 119 insertions, 67 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 bf3fc2902a1..7789a2b2cfb 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/BuilderGenerator.java @@ -21,8 +21,8 @@ import static java.util.Arrays.stream; * @author gjoranv * @author ollivir */ - public class BuilderGenerator { + public static String getBuilder(InnerCNode node) { return getDeclaration(node) + "\n" + // indentCode(INDENTATION, getUninitializedScalars(node) + "\n\n" + // @@ -31,7 +31,8 @@ public class BuilderGenerator { getBuilderConstructors(node, nodeClass(node)) + "\n\n" + // getOverrideMethod(node) + "\n\n" + // getBuilderSetters(node) + "\n" + // - getSpecialRootBuilderCode(node)) + getSpecialRootBuilderCode(node) + "\n" + // + getBuildMethod(node) + "\n") // + "}"; } @@ -45,6 +46,12 @@ public class BuilderGenerator { return (node.getParent() == null) ? "\n" + getDispatchCode() + "\n" : ""; } + private static String getBuildMethod(InnerCNode node) { + return "public " + nodeClass(node) + " build() {\n" + + " return new " + nodeClass(node) + "(this);\n" + + "}\n"; + } + private static String getDispatchCode() { // Use full path to @Override, as users are free to define an inner node called // 'override'. (summarymap.def does) @@ -119,6 +126,7 @@ public class BuilderGenerator { } private static class BuilderSetters { + private static String structSetter(InnerCNode n) { return "public Builder " + n.getName() + "(" + builderType(n) + " " + INTERNAL_PREFIX + "builder) {\n" + // " " + n.getName() + " = " + INTERNAL_PREFIX + "builder;\n" + // @@ -227,9 +235,9 @@ public class BuilderGenerator { } private static String setBuilderValueFromConfig(CNode child, CNode node) { - final String name = child.getName(); - final boolean isArray = child.isArray; - final boolean isMap = child.isMap; + String name = child.getName(); + boolean isArray = child.isArray; + boolean isMap = child.isMap; if (child instanceof FileLeaf && isArray) { return name + "(" + userDataType(child) + ".toValues(config." + name + "()));"; @@ -255,7 +263,7 @@ public class BuilderGenerator { } private static String setInnerArrayBuildersFromConfig(InnerCNode innerArr, CNode node) { - final String elemName = createUniqueSymbol(node, innerArr.getName()); + String elemName = createUniqueSymbol(node, innerArr.getName()); return "for (" + userDataType(innerArr) + " " + elemName + " : config." + innerArr.getName() + "()) {\n" + // " " + innerArr.getName() + "(new " + builderType(innerArr) + "(" + elemName + "));\n" + // @@ -263,7 +271,7 @@ public class BuilderGenerator { } private static String setInnerMapBuildersFromConfig(InnerCNode innerMap) { - final String entryName = INTERNAL_PREFIX + "entry"; + String entryName = INTERNAL_PREFIX + "entry"; return "for (Map.Entry<String, " + userDataType(innerMap) + "> " + entryName + " : config." + innerMap.getName() + "().entrySet()) {\n" + // " " + innerMap.getName() + "(" + entryName + ".getKey(), new " + userDataType(innerMap) + ".Builder(" + entryName @@ -282,7 +290,7 @@ public class BuilderGenerator { } private static String conditionStatement(CNode child) { - final String superior = INTERNAL_PREFIX + "superior"; + String superior = INTERNAL_PREFIX + "superior"; if (child.isArray) { return "if (!" + superior + "." + child.getName() + ".isEmpty())"; @@ -314,8 +322,8 @@ public class BuilderGenerator { } private static String getOverrideMethod(CNode node) { - final String superior = INTERNAL_PREFIX + "superior"; - final String method = "override"; + String superior = INTERNAL_PREFIX + "superior"; + String method = "override"; return "private Builder " + method + "(Builder " + superior + ") {\n" + // indentCode(INDENTATION, @@ -348,4 +356,5 @@ public class BuilderGenerator { return boxedDataType(node); } } + } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/CNode.java b/configgen/src/main/java/com/yahoo/config/codegen/CNode.java index 9dc7923b71b..ea88e115530 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/CNode.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/CNode.java @@ -174,4 +174,5 @@ public abstract class CNode { ", version='" + defVersion + '\'' + '}'; } + } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/ClassBuilder.java b/configgen/src/main/java/com/yahoo/config/codegen/ClassBuilder.java index 720212845b0..890be3e371b 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/ClassBuilder.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/ClassBuilder.java @@ -2,12 +2,11 @@ package com.yahoo.config.codegen; /** - * @author <a href="gv@yahoo-inc.com">G. Voldengen</a> + * @author gjoranv */ public interface ClassBuilder { - /** - * Generate config class file(s). - */ + /** Generate config class file(s). */ public void createConfigClasses(); + } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/CodegenRuntimeException.java b/configgen/src/main/java/com/yahoo/config/codegen/CodegenRuntimeException.java index b4ca53d02db..9b32ccf8733 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/CodegenRuntimeException.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/CodegenRuntimeException.java @@ -4,9 +4,10 @@ package com.yahoo.config.codegen; /** * This exception is thrown on internal errors. * - * @author <a href="gv@yahoo-inc.com">G. Voldengen</a> + * @author gjoranv */ public class CodegenRuntimeException extends RuntimeException { + public CodegenRuntimeException(String s, Throwable cause) { super(s, cause); } @@ -18,4 +19,5 @@ public class CodegenRuntimeException extends RuntimeException { public CodegenRuntimeException(String s) { super(s); } + } 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 9980cf565b1..f7c6267a6bb 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java @@ -26,6 +26,7 @@ import static java.util.Arrays.stream; * @author ollivir */ public class ConfigGenerator { + // TODO: don't take indent as method param - the caller should indent public static String generateContent(String indent, InnerCNode node, boolean isOuter) { CNode[] children = node.getChildren(); @@ -441,4 +442,5 @@ public class ConfigGenerator { return rawType; } } + } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/ConfiggenUtil.java b/configgen/src/main/java/com/yahoo/config/codegen/ConfiggenUtil.java index 995ef419f30..3f714fdd22c 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/ConfiggenUtil.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/ConfiggenUtil.java @@ -11,7 +11,8 @@ public class ConfiggenUtil { /** * Create class name from def name - * @param defName The file name without the '.def' suffix + * + * @param defName the file name without the '.def' suffix */ public static String createClassName(String defName) { String className = Arrays.stream(defName.split("-")) @@ -41,4 +42,5 @@ public class ConfiggenUtil { } return true; } + } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java b/configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java index 44180b3f863..e8b9353b238 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/CppClassBuilder.java @@ -15,11 +15,11 @@ import java.util.Arrays; import java.util.StringTokenizer; import java.util.stream.Collectors; - /** * This class autogenerates C++ code for the C++ config, based on a CNode tree given. */ public class CppClassBuilder implements ClassBuilder { + private final CNode root; private final NormalizedDefinition nd; private final File rootDir; @@ -1126,4 +1126,5 @@ public class CppClassBuilder implements ClassBuilder { return defaultVal; } } + } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/DefLine.java b/configgen/src/main/java/com/yahoo/config/codegen/DefLine.java index e35cfd14b5c..5d2dc2e13e8 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/DefLine.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/DefLine.java @@ -4,9 +4,8 @@ package com.yahoo.config.codegen; import java.util.regex.Matcher; import java.util.regex.Pattern; -/** - */ public class DefLine { + private final static Pattern defaultPattern = Pattern.compile("^\\s*default\\s*=\\s*(\\S+)"); private final static Pattern rangePattern = Pattern.compile("^\\s*range\\s*=\\s*([\\(\\[].*?[\\)\\]])"); private final static Pattern restartPattern = Pattern.compile("^\\s*restart\\s*"); @@ -270,5 +269,6 @@ public class DefLine { throw new IllegalArgumentException("'" + name + "' cannot start with '" + ReservedWords.INTERNAL_PREFIX + "'"); } } + } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/DefParser.java b/configgen/src/main/java/com/yahoo/config/codegen/DefParser.java index 09a751bdde7..4822b0cf271 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/DefParser.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/DefParser.java @@ -14,6 +14,7 @@ import java.util.regex.Pattern; * @author hmusum */ public class DefParser { + public static final String DEFAULT_PACKAGE_PREFIX = "com.yahoo."; static final Pattern commentPattern = Pattern.compile("^\\s*#+\\s*(.*?)\\s*$"); @@ -231,4 +232,5 @@ public class DefParser { super(s, cause); } } + } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/DefaultValue.java b/configgen/src/main/java/com/yahoo/config/codegen/DefaultValue.java index 972a29f201e..07632788d86 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/DefaultValue.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/DefaultValue.java @@ -13,7 +13,6 @@ public class DefaultValue { // The variable type. Always set UNLESS the value is null. private DefLine.Type type = null; - /** * Null value */ diff --git a/configgen/src/main/java/com/yahoo/config/codegen/InnerCNode.java b/configgen/src/main/java/com/yahoo/config/codegen/InnerCNode.java index 1e33bfbff26..1d1510e7197 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/InnerCNode.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/InnerCNode.java @@ -82,8 +82,7 @@ public class InnerCNode extends CNode { * @param comment comment extracted from the .def-file. */ @Override - protected void setLeaf(String name, DefLine defLine, String comment) - throws IllegalArgumentException { + protected void setLeaf(String name, DefLine defLine, String comment) throws IllegalArgumentException { if (name.indexOf('.') < 0) { throw new IllegalArgumentException("Parameter with name '" + name + "' cannot be a leaf node as it has already been declared as an inner node."); @@ -92,13 +91,6 @@ public class InnerCNode extends CNode { String childName = name.substring(name.indexOf('.') + 1); CNode child = createOrGetChild(defLine.getType(), childName); -/* - System.out.println("\nAdding child name: " + name); - System.out.println(" getName: " + child.getName()); - System.out.println(" full name: " + child.getFullName()); - System.out.println(" classname: " + child.getClassName()); - System.out.println(" full classname: " + child.getFullClassName()); -*/ restart |= defLine.getRestart(); child.setLeaf(childName, defLine, comment); children.put(child.getName(), child); 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 00498094db5..e30b59b642a 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/JavaClassBuilder.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/JavaClassBuilder.java @@ -22,6 +22,7 @@ import static com.yahoo.config.codegen.DefParser.DEFAULT_PACKAGE_PREFIX; * @author ollivir */ public class JavaClassBuilder implements ClassBuilder { + public static final String INDENTATION = " "; private final InnerCNode root; @@ -141,11 +142,9 @@ public class JavaClassBuilder implements ClassBuilder { * config class for the given node. The name will be based on the given basis * string, but the basis itself is not a possible return value. * - * @param node - * The node to find a unused symbol name for. - * @param basis - * The basis for the generated symbol name. - * @return A name that is not used in the given config node. + * @param node the node to find a unused symbol name for. + * @param basis the basis for the generated symbol name. + * @return a name that is not used in the given config node. */ static String createUniqueSymbol(CNode node, String basis) { Set<String> usedSymbols = Arrays.stream(node.getChildren()).map(CNode::getName).collect(Collectors.toSet()); @@ -167,4 +166,5 @@ public class JavaClassBuilder implements ClassBuilder { public String javaPackage() { return javaPackage; } + } 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 1fff74dd194..7623987656a 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/LeafCNode.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/LeafCNode.java @@ -10,9 +10,7 @@ public abstract class LeafCNode extends CNode { private DefaultValue defaultValue = null; private boolean restart = false; - /** - * Constructor for the leaf nodes. - */ + /** Constructor for the leaf nodes */ protected LeafCNode(InnerCNode parent, String name) { super(parent, name); } @@ -20,26 +18,16 @@ public abstract class LeafCNode extends CNode { public static LeafCNode newInstance(DefLine.Type type, InnerCNode parent, String name) { try { switch (type.name) { - case "int": - return new IntegerLeaf(parent, name); - case "long": - return new LongLeaf(parent, name); - case "double": - return new DoubleLeaf(parent, name); - case "bool": - return new BooleanLeaf(parent, name); - case "string": - return new StringLeaf(parent, name); - case "reference": - return new ReferenceLeaf(parent, name); - case "file": - return new FileLeaf(parent, name); - case "path": - return new PathLeaf(parent, name); - case "enum": - return new EnumLeaf(parent, name, type.enumArray); - default: - return null; + case "int": return new IntegerLeaf(parent, name); + case "long": return new LongLeaf(parent, name); + case "double": return new DoubleLeaf(parent, name); + case "bool": return new BooleanLeaf(parent, name); + case "string": return new StringLeaf(parent, name); + case "reference": return new ReferenceLeaf(parent, name); + case "file": return new FileLeaf(parent, name); + case "path": return new PathLeaf(parent, name); + case "enum": return new EnumLeaf(parent, name, type.enumArray); + default: return null; } } catch (NumberFormatException e) { return null; @@ -77,7 +65,7 @@ public abstract class LeafCNode extends CNode { } /** - * @param defaultValue The value to check. + * @param defaultValue the value to check. * @throws IllegalArgumentException if the value is illegal according to the node type. */ public void checkDefaultValue(DefaultValue defaultValue) throws IllegalArgumentException { @@ -243,7 +231,7 @@ public abstract class LeafCNode extends CNode { return "enum"; } - /** @return This enum's legal values. */ + /** Returns this enum's legal values. */ public String[] getLegalValues() { return legalValues; } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java b/configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java index ef9af1c2b11..ac6bbea617e 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/MakeConfig.java @@ -137,5 +137,6 @@ public class MakeConfig { return longName.substring(lastDot + 1); } } + } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/MakeConfigProperties.java b/configgen/src/main/java/com/yahoo/config/codegen/MakeConfigProperties.java index ca10e973ba2..13807e63e53 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/MakeConfigProperties.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/MakeConfigProperties.java @@ -9,7 +9,7 @@ import java.util.StringTokenizer; /** * Encapsulates data extracted from system properties. * - * @author <a href="gv@yahoo-inc.com">Gjoran Voldengen</a> + * @author gjoranv */ public class MakeConfigProperties { diff --git a/configgen/src/main/java/com/yahoo/config/codegen/NormalizedDefinition.java b/configgen/src/main/java/com/yahoo/config/codegen/NormalizedDefinition.java index 3250fc69ae8..71f9f1ece18 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/NormalizedDefinition.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/NormalizedDefinition.java @@ -198,4 +198,5 @@ public class NormalizedDefinition { public String getDefMd5() { return defMd5; } + } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/PropertyException.java b/configgen/src/main/java/com/yahoo/config/codegen/PropertyException.java index ff29c63a634..1c6891e279a 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/PropertyException.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/PropertyException.java @@ -2,7 +2,9 @@ package com.yahoo.config.codegen; public class PropertyException extends Exception { + PropertyException(String s) { super(s); } + } diff --git a/configgen/src/main/java/com/yahoo/config/codegen/ReservedWords.java b/configgen/src/main/java/com/yahoo/config/codegen/ReservedWords.java index 6726229269e..623028d70d8 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/ReservedWords.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/ReservedWords.java @@ -8,9 +8,7 @@ import java.util.regex.Pattern; * Reserved words that cannot be used as variable names in a config definition file. * * @author hmusum - * @since 2009-06-24 */ - public class ReservedWords { public static final String INTERNAL_PREFIX = "__"; @@ -68,5 +66,4 @@ public class ReservedWords { return allKeyWords.get(word); } - } 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 744f8c9b1a2..381d587e3c3 100644 --- a/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java +++ b/configgen/src/test/java/com/yahoo/config/codegen/JavaClassBuilderTest.java @@ -8,6 +8,7 @@ import java.io.IOException; import java.io.StringReader; import java.nio.file.FileSystems; import java.nio.file.Files; +import java.util.List; import static com.yahoo.config.codegen.ConfiggenUtil.createClassName; import static com.yahoo.config.codegen.JavaClassBuilder.createUniqueSymbol; @@ -15,12 +16,14 @@ import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; /** * @author gjoranv * @author ollivir */ public class JavaClassBuilderTest { + private static final String TEST_DIR = "target/test-classes/"; private static final String DEF_NAME = TEST_DIR + "allfeatures.def"; private static final String REFERENCE_NAME = TEST_DIR + "allfeatures.reference"; @@ -103,14 +106,19 @@ public class JavaClassBuilderTest { @Test public void verify_generated_class_against_reference() throws IOException { - final String testDefinition = String.join("\n", Files.readAllLines(FileSystems.getDefault().getPath(DEF_NAME))); - final String referenceClass = String.join("\n", Files.readAllLines(FileSystems.getDefault().getPath(REFERENCE_NAME))) + "\n"; + String testDefinition = String.join("\n", Files.readAllLines(FileSystems.getDefault().getPath(DEF_NAME))); + List<String> referenceClassLines = Files.readAllLines(FileSystems.getDefault().getPath(REFERENCE_NAME)); DefParser parser = new DefParser("allfeatures", new StringReader(testDefinition)); InnerCNode root = parser.getTree(); JavaClassBuilder builder = new JavaClassBuilder(root, parser.getNormalizedDefinition(), null, null); - String configClass = builder.getConfigClass("AllfeaturesConfig"); + String[] configClassLines = builder.getConfigClass("AllfeaturesConfig").split("\n"); - assertEquals(referenceClass, configClass); + 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)); + 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 0d8135e67de..cbb0d9c4082 100644 --- a/configgen/src/test/java/com/yahoo/config/codegen/NormalizedDefinitionTest.java +++ b/configgen/src/test/java/com/yahoo/config/codegen/NormalizedDefinitionTest.java @@ -73,4 +73,5 @@ public class NormalizedDefinitionTest { assertNotNull(fileReader); fileReader.close(); } + } diff --git a/configgen/src/test/resources/allfeatures.reference b/configgen/src/test/resources/allfeatures.reference index ebc21e8255c..1916e37c1cc 100644 --- a/configgen/src/test/resources/allfeatures.reference +++ b/configgen/src/test/resources/allfeatures.reference @@ -573,6 +573,11 @@ public final class AllfeaturesConfig extends ConfigInstance { public final String getDefName() { return CONFIG_DEF_NAME; } @java.lang.Override public final String getDefNamespace() { return CONFIG_DEF_NAMESPACE; } + + public AllfeaturesConfig build() { + return new AllfeaturesConfig(this); + } + } // Some random bool without a default value. These comments exist to check @@ -1129,6 +1134,11 @@ public final class AllfeaturesConfig extends ConfigInstance { private Builder bar(String __value) { return bar(Integer.valueOf(__value)); } + + public Basic_struct build() { + return new Basic_struct(this); + } + } // A basic struct @@ -1203,6 +1213,11 @@ public final class AllfeaturesConfig extends ConfigInstance { inner1 = __builder; return this; } + + public Struct_of_struct build() { + return new Struct_of_struct(this); + } + } private final Inner0 inner0; @@ -1281,6 +1296,11 @@ public final class AllfeaturesConfig extends ConfigInstance { private Builder index(String __value) { return index(Integer.valueOf(__value)); } + + public Inner0 build() { + return new Inner0(this); + } + } // A struct of struct @@ -1363,6 +1383,11 @@ public final class AllfeaturesConfig extends ConfigInstance { private Builder index(String __value) { return index(Integer.valueOf(__value)); } + + public Inner1 build() { + return new Inner1(this); + } + } private final StringNode name; @@ -1502,6 +1527,11 @@ public final class AllfeaturesConfig extends ConfigInstance { anotherArray = __builders; return this; } + + public MyArray build() { + return new MyArray(this); + } + } private final IntegerNode intVal; @@ -1653,6 +1683,11 @@ public final class AllfeaturesConfig extends ConfigInstance { private Builder foo(String __value) { return foo(Integer.valueOf(__value)); } + + public AnotherArray build() { + return new AnotherArray(this); + } + } private final IntegerNode foo; @@ -1790,6 +1825,11 @@ public final class AllfeaturesConfig extends ConfigInstance { anotherArray = __builders; return this; } + + public MyMap build() { + return new MyMap(this); + } + } private final IntegerNode intVal; @@ -1941,6 +1981,11 @@ public final class AllfeaturesConfig extends ConfigInstance { private Builder foo(String __value) { return foo(Integer.valueOf(__value)); } + + public AnotherArray build() { + return new AnotherArray(this); + } + } private final IntegerNode foo; |