private static String getConstructors(InnerCNode inner) {
        // TODO: merge these two constructors into one when the config library uses builders to set values from payload.
        return "public " + nodeClass(inner) + "(Builder builder) {\n" +//
                "  this(builder, true);\n" +//
                "}\n" +//
                "\n" +//
                "private " + nodeClass(inner) + "(Builder builder, boolean throwIfUninitialized) {\n" +//
                "  if (throwIfUninitialized && ! builder." + INTERNAL_PREFIX + "uninitialized.isEmpty())\n" +//
                "    throw new IllegalArgumentException(\"The following builder parameters for \" +\n" +//
                "        \"" + inner.getFullName() + " must be initialized: \" + builder." + INTERNAL_PREFIX + "uninitialized);\n" +//
                "\n" +//
                indentCode(INDENTATION, stream(inner.getChildren()).map(ConfigGenerator::assignFromBuilder).collect(Collectors.joining("\n"))) + "\n" +//
                "}";
    }
@author gjoranv
@author Tony Vaagenes
@author ollivir
configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java