public static void formatX()

in util/src/main/java/com/epam/deltix/util/json/ReflectJSON.java [95:166]


    public static void      formatX (Object obj, StringBuilder sb) 
        throws IllegalAccessException 
    {
        if (obj == null) {
            sb.append ("null");
            return;
        }
            
        Class <?>       cls = obj.getClass ();
        
        if (cls.isPrimitive () ||
            obj instanceof Number ||
            obj instanceof Boolean)
        {
            sb.append (obj);
        }        
        else if (obj instanceof CharSequence || cls.isEnum ()) {
            formatString (obj.toString (), sb);
        }
        else if (cls.isArray ()) {
            sb.append ("[ ");
            
            int         len = Array.getLength (obj);
            
            for (int ii = 0; ii < len; ii++) {
                if (ii > 0) 
                    sb.append (',');
                
                formatX (Array.get (obj, ii), sb);
            }
            
            sb.append (" ]");
        }
        else if (obj instanceof Iterable) {
            sb.append ("[ ");
            
            boolean     first = true;
            
            for (Object elem : (Iterable) obj) {
                if (first)
                    first = false;
                else
                    sb.append (',');
                
                formatX (elem, sb);
            }
            
            sb.append (" ]");
        }
        else {
            sb.append ("{ ");

            boolean         first = true;

            for (Field f : obj.getClass ().getFields ()) {
                if ((f.getModifiers () & Modifier.STATIC) != 0)
                    continue;

                if (first)
                    first = false;
                else
                    sb.append (',');

                sb.append ('"');
                StringUtils.escapeJavaString (f.getName (), sb);
                sb.append ("\":");
                formatX (f.get (obj), sb);                
            }

            sb.append (" }");
        }
    }