private static String toJavaType(DataType dt) {
        if (DataType.NONE.equals(dt)) return "void";
        if (DataType.INT.equals(dt)) return "java.lang.Integer";
        if (DataType.FLOAT.equals(dt)) return "java.lang.Float";
        if (DataType.STRING.equals(dt)) return "java.lang.String";
        if (DataType.RAW.equals(dt)) return "java.nio.ByteBuffer";
        if (DataType.LONG.equals(dt)) return "java.lang.Long";
        if (DataType.DOUBLE.equals(dt)) return "java.lang.Double";
        if (DataType.DOCUMENT.equals(dt)) return "com.yahoo.document.Document";
        if (DataType.URI.equals(dt)) return "java.net.URI";
        if (DataType.BYTE.equals(dt)) return "java.lang.Byte";
        if (DataType.BOOL.equals(dt)) return "java.lang.Boolean";
        if (DataType.TAG.equals(dt)) return "java.lang.String";
        if (dt instanceof StructDataType) return className(dt.getName());
        if (dt instanceof WeightedSetDataType wdt) return "java.util.Map<"+toJavaType(wdt.getNestedType())+",java.lang.Integer>";
        if (dt instanceof ArrayDataType adt) return "java.util.List<"+toJavaType(adt.getNestedType())+">";
        if (dt instanceof MapDataType mdt) return "java.util.Map<"+toJavaType(mdt.getKeyType())+","+toJavaType((mdt).getValueType())+">";
        if (dt instanceof AnnotationReferenceDataType ardt) return className(ardt.getAnnotationType().getName());
        if (dt instanceof NewDocumentReferenceDataType) {
            return "com.yahoo.document.DocumentId";
        }
        if (dt instanceof TensorDataType) {
            return "com.yahoo.tensor.Tensor";
        }
        return "byte[]";
    }
Returns spaces corresponding to 1 level of indentation
vespa-documentgen-plugin/src/main/java/com/yahoo/vespa/DocumentGenMojo.java