code: public static String toBase64(Object o, String charset, String defaultValue) {
  	;
  	if (o instanceof byte[]) return toB64((byte[]) o, defaultValue);
  	else if (o instanceof String) return toB64((String) o, charset, defaultValue);
  	else if (o instanceof Number) return toB64(toString(((Number) o)), charset, defaultValue);
  	else if (o instanceof ObjectWrap) {
  	    return toBase64(((ObjectWrap) o).getEmbededObject(defaultValue), charset, defaultValue);
  	}
  	else if (o == null) {
  	    return toBase64("", charset, defaultValue);
  	}
  	else {
  	    byte[] b = toBinary(o, null);
  	    if (b != null) return toB64(b, defaultValue);
  	    else {
  		String str = toString(o, null);
  		if (str != null) return toBase64(str, charset, defaultValue);
  		else return defaultValue;
  	    }
  	}
      }
docs: cast a Object to a Base64 value
  
  @param o Object to cast
  @param defaultValue
  @return to Base64 String