static String nodeClass(CNode node) {
        if (node.getName().length() == 0) {
            throw new CodegenRuntimeException("Node with empty name, under parent " + node.getParent().getName());
        } else if (node instanceof InnerCNode && node.getParent() == null) {
            return ConfiggenUtil.createClassName(node.getName());
        } else if (node instanceof BooleanLeaf) {
            return "BooleanNode";
        } else if (node instanceof DoubleLeaf) {
            return "DoubleNode";
        } else if (node instanceof FileLeaf) {
            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) {
            return "ModelNode";
        } else if (node instanceof IntegerLeaf) {
            return "IntegerNode";
        } else if (node instanceof LongLeaf) {
            return "LongNode";
        } else if (node instanceof ReferenceLeaf) {
            return "ReferenceNode";
        } else if (node instanceof StringLeaf) {
            return "StringNode";
        } else {
            return ConfiggenUtil.capitalize(node.getName());
        }
    }
@return the name of the class that is generated by this node.
configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java