classes

Serialization.as

Stiahnuť Serialization.as

package sk.yoz.data
{   
    import flash.utils.ByteArray;
    import com.dynamicflash.util.Base64;
   
    public class Serialization 
    {
        public static function objectToString(data:Object):String
        {
            var bytes:ByteArray = objectToBytes(data);
            return bytesToString(bytes);
        }
        
        public static function stringToObject(data:String):Object
        {
            var bytes:ByteArray = stringToBytes(data);
            return bytesToObject(bytes);
        }
        
        public static function objectToBytes(data:Object):ByteArray
        {
            var bytes:ByteArray = new ByteArray();
            bytes.writeObject(data);
            bytes.position = 0;
            return bytes;
        }
        
        public static function bytesToString(bytes:ByteArray):String
        {
            return Base64.encodeByteArray(bytes);
        }
        
        public static function stringToBytes(data:String):ByteArray
        {
            return Base64.decodeToByteArray(data);
        }
        
        public static function bytesToObject(bytes:ByteArray):Object
        {
            bytes.position = 0;
            return bytes.readObject();
        }
        
        public static function p16Top64(p16:String):String
        {
            var b:ByteArray = new ByteArray();
            var s:String = p16;
            while(s.length)
            {
                b.writeUnsignedInt(parseInt("0x" + s.substr(0, 8), 16));
                s = s.substr(8);
            }
            b.position = 0;
            return Base64.encodeByteArray(b);
        }
        
        public static function p64Top16(p64:String):String
        {
            var r:String = "";
            var b:ByteArray = Base64.decodeToByteArray(p64);
            var x:String = "";
            b.position = 0;
            while(b.position < b.length)
            {
                x = b.readUnsignedInt().toString(16);
                r += String("00000000").substr(x.length) + x;
            }
            return r;
        }
    }
}