static String userDataType(CNode node) {
        if (node instanceof InnerCNode) {
            return nodeClass(node);
        } else if (node instanceof EnumLeaf) {
            return nodeClass(node) + ".Enum";
        } else if (node instanceof BooleanLeaf) {
            return "boolean";
        } else if (node instanceof DoubleLeaf) {
            return "double";
        } else if (node instanceof FileLeaf) {
            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) {
            return "Path";
        } else if (node instanceof IntegerLeaf) {
            return "int";
        } else if (node instanceof LongLeaf) {
            return "long";
        } else if (node instanceof StringLeaf) {
            return "String";
        } else {
            throw new IllegalStateException("Cannot determine user data type for node '" + node + "'"); // should not occur
        }
    }
@return the name of the class that is generated by this node.
configgen/src/main/java/com/yahoo/config/codegen/ConfigGenerator.java