code: private void _serializeClass(PageContext pc, Set test, Class clazz, Object obj, StringBuilder sb, boolean serializeQueryByColumns, Set<Object> done) throws ConverterException {
  
  	Struct sct = new StructImpl(Struct.TYPE_LINKED);
  	if (test == null) test = new HashSet();
  
  	// Fields
  	Field[] fields = clazz.getFields();
  	Field field;
  	for (int i = 0; i < fields.length; i++) {
  	    field = fields[i];
  	    if (obj != null || (field.getModifiers() & Modifier.STATIC) > 0) try {
  		sct.setEL(field.getName(), testRecusrion(test, field.get(obj)));
  	    }
  	    catch (Exception e) {
  		SystemOut.printDate(e);
  	    }
  	}
  	if (obj != null) {
  	    // setters
  	    Method[] setters = Reflector.getSetters(clazz);
  	    for (int i = 0; i < setters.length; i++) {
  		sct.setEL(setters[i].getName().substring(3), NULL);
  	    }
  	    // getters
  	    Method[] getters = Reflector.getGetters(clazz);
  	    for (int i = 0; i < getters.length; i++) {
  		try {
  		    sct.setEL(getters[i].getName().substring(3), testRecusrion(test, getters[i].invoke(obj, ArrayUtil.OBJECT_EMPTY)));
  
  		}
  		catch (Exception e) {}
  	    }
  	}
  
  	test.add(clazz);
  
  	_serializeStruct(pc, test, sct, sb, serializeQueryByColumns, true, done);
      }
docs: serialize Serializable class
  
  @param serializable
  @param sb
  @param serializeQueryByColumns
  @param done
  @throws ConverterException