} else {
Class c = o.getClass();
if (c == String.class) {
w.writeCharacters((String) o);
} else if (c == Boolean.class) {
w.writeBoolean((Boolean) o);
} else if (c == Byte.class) {
w.writeByte((Byte) o);
} else if (c == Double.class) {
w.writeDouble((Double) o);
} else if (c == Float.class) {