openfl
Version:
A fast, productive library for 2D cross-platform development.
422 lines (404 loc) • 10.6 kB
JavaScript
// Class: openfl.utils._internal.format.amf3.AMF3Tools
var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
$global.Object.defineProperty(exports, "__esModule", {value: true});
var __map_reserved = {};
// Imports
var $hxClasses = require("./../../../../../hxClasses_stub").default;
var $hxEnums = require("./../../../../../hxEnums_stub").default;
var $import = require("./../../../../../import_stub").default;
function Type() {return require("./../../../../../Type");}
function openfl_utils__$internal_format_amf3_AMF3Value() {return require("./../../../../../openfl/utils/_internal/format/amf3/AMF3Value");}
function haxe_ds_StringMap() {return require("./../../../../../haxe/ds/StringMap");}
function Reflect() {return require("./../../../../../Reflect");}
function Xml() {return require("./../../../../../Xml");}
function haxe_ds_IntMap() {return require("./../../../../../haxe/ds/IntMap");}
function haxe_ds_ObjectMap() {return require("./../../../../../haxe/ds/ObjectMap");}
function haxe_ds_EnumValueMap() {return require("./../../../../../haxe/ds/EnumValueMap");}
function haxe_io_Bytes() {return require("./../../../../../haxe/io/Bytes");}
function openfl_utils__$ByteArray_ByteArray_$Impl_$() {return require("./../../../../../openfl/utils/_ByteArray/ByteArray_Impl_");}
function openfl_utils_ByteArrayData() {return require("./../../../../../openfl/utils/ByteArrayData");}
function openfl_utils__$internal_format_amf3_AMF3Array() {return require("./../../../../../openfl/utils/_internal/format/amf3/AMF3Array");}
function js_Boot() {return require("./../../../../../js/Boot");}
function openfl_utils_IExternalizable() {return require("./../../../../../openfl/utils/IExternalizable");}
function js__$Boot_HaxeError() {return require("./../../../../../js/_Boot/HaxeError");}
function Std() {return require("./../../../../../Std");}
function openfl__$Vector_Vector_$Impl_$() {return require("./../../../../../openfl/_Vector/Vector_Impl_");}
function openfl_Lib() {return require("./../../../../../openfl/Lib");}
// Constructor
var AMF3Tools = function(){}
// Meta
AMF3Tools.__name__ = "openfl.utils._internal.format.amf3.AMF3Tools";
AMF3Tools.__isInterface__ = false;
AMF3Tools.prototype = {
};
AMF3Tools.prototype.__class__ = AMF3Tools.prototype.constructor = $hxClasses["openfl.utils._internal.format.amf3.AMF3Tools"] = AMF3Tools;
// Init
// Statics
AMF3Tools.encode = function(o) {
var _g = (Type().default).typeof(o);
switch(_g._hx_index) {
case 0:
return (openfl_utils__$internal_format_amf3_AMF3Value().default).ANull;
case 1:
return (openfl_utils__$internal_format_amf3_AMF3Value().default).AInt(o);
case 2:
return (openfl_utils__$internal_format_amf3_AMF3Value().default).ANumber(o);
case 3:
return (openfl_utils__$internal_format_amf3_AMF3Value().default).ABool(o);
case 4:
var h = new (haxe_ds_StringMap().default)();
var _g1 = 0;
var _g11 = (Reflect().default).fields(o);
while(_g1 < _g11.length) {
var f = _g11[_g1];
++_g1;
h.set(f,AMF3Tools.encode((Reflect().default).field(o,f)));
}
return (openfl_utils__$internal_format_amf3_AMF3Value().default).AObject(h,null,null);
case 5:
return (openfl_utils__$internal_format_amf3_AMF3Value().default).ANull;
case 6:
var c = _g.c;
switch(c) {
case Array:
var o1 = o;
var a = [];
var _g2 = 0;
while(_g2 < o1.length) {
var v = o1[_g2];
++_g2;
a.push(AMF3Tools.encode(v));
}
return (openfl_utils__$internal_format_amf3_AMF3Value().default).AArray(a);
case Date:
return (openfl_utils__$internal_format_amf3_AMF3Value().default).ADate(o);
case String:
return (openfl_utils__$internal_format_amf3_AMF3Value().default).AString(o);
case (Xml().default):
return (openfl_utils__$internal_format_amf3_AMF3Value().default).AXml(o);
case (haxe_ds_IntMap().default):case (haxe_ds_ObjectMap().default):case (haxe_ds_StringMap().default):
var o2 = o;
var h1 = new (haxe_ds_EnumValueMap().default)();
var f1 = o2.keys();
while(f1.hasNext()) {
var f2 = f1.next();
h1.set(AMF3Tools.encode(f2),AMF3Tools.encode(o2.get(f2)));
}
return (openfl_utils__$internal_format_amf3_AMF3Value().default).AMap(h1);
case (haxe_io_Bytes().default):
return (openfl_utils__$internal_format_amf3_AMF3Value().default).AByteArray((openfl_utils__$ByteArray_ByteArray_$Impl_$().default).fromBytes(o));
case (openfl_utils_ByteArrayData().default):
return (openfl_utils__$internal_format_amf3_AMF3Value().default).AByteArray(o);
case (openfl_utils__$internal_format_amf3_AMF3Array().default):
var o3 = o;
var a1 = [];
var m = new (haxe_ds_StringMap().default)();
var _g3 = 0;
var _g12 = o3.a;
while(_g3 < _g12.length) {
var v1 = _g12[_g3];
++_g3;
a1.push(AMF3Tools.encode(v1));
}
var k = o3.extra.iterator();
while(k.hasNext()) {
var k1 = k.next();
var v2 = AMF3Tools.encode(o3.extra.get(k1));
m.set(k1,v2);
}
return (openfl_utils__$internal_format_amf3_AMF3Value().default).AArray(a1,m);
default:
if((js_Boot().default).__implements(o,(openfl_utils_IExternalizable().default))) {
return (openfl_utils__$internal_format_amf3_AMF3Value().default).AExternal(o);
} else {
return (openfl_utils__$internal_format_amf3_AMF3Value().default).ANull;
}
}
break;
default:
throw new (js__$Boot_HaxeError().default)("Can't encode " + (Std().default).string(o));
}
}
AMF3Tools.decode = function(a) {
if(a == null) {
return null;
}
switch(a._hx_index) {
case 0:
return AMF3Tools.undefined(a);
case 1:
return AMF3Tools.anull(a);
case 2:
var _g = a.b;
return AMF3Tools.bool(a);
case 3:
var _g13 = a.i;
return AMF3Tools.int(a);
case 4:
var _g8 = a.f;
return AMF3Tools.number(a);
case 5:
var _g4 = a.s;
return AMF3Tools.string(a);
case 6:
var _g9 = a.d;
return AMF3Tools.date(a);
case 7:
var _g7 = a.className;
var _g6 = a.size;
var _g5 = a.fields;
return AMF3Tools.object(a);
case 8:
var _g3 = a.o;
return AMF3Tools.external(a);
case 9:
var _g11 = a.extra;
var _g10 = a.values;
return AMF3Tools.array(a);
case 10:
var _g16 = a.v;
return AMF3Tools.intVector(a);
case 11:
var _g1 = a.v;
return AMF3Tools.floatVector(a);
case 12:
var _g15 = a.type;
var _g14 = a.v;
return AMF3Tools.objectVector(a);
case 13:
var _g17 = a.x;
return AMF3Tools.xml(a);
case 14:
var _g2 = a.ba;
return AMF3Tools.byteArray(a);
case 15:
var _g12 = a.m;
return AMF3Tools.map(a);
}
}
AMF3Tools.undefined = function(a) {
return null;
}
AMF3Tools.anull = function(a) {
return null;
}
AMF3Tools.bool = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 2) {
var b = a.b;
return b;
} else {
return null;
}
}
AMF3Tools.int = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 3) {
var n = a.i;
return n;
} else {
return null;
}
}
AMF3Tools.number = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 4) {
var n = a.f;
return n;
} else {
return null;
}
}
AMF3Tools.string = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 5) {
var s = a.s;
return s;
} else {
return null;
}
}
AMF3Tools.date = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 6) {
var d = a.d;
return d;
} else {
return null;
}
}
AMF3Tools.array = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 9) {
var m = a.extra;
var a1 = a.values;
var b = [];
var _g = 0;
while(_g < a1.length) {
var f = a1[_g];
++_g;
b.push(AMF3Tools.decode(f));
}
return b;
} else {
return null;
}
}
AMF3Tools.intVector = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 10) {
var v = a.v;
return v;
} else {
return null;
}
}
AMF3Tools.floatVector = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 11) {
var v = a.v;
return v;
} else {
return null;
}
}
AMF3Tools.objectVector = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 12) {
var type = a.type;
var v = a.v;
var ret = (openfl__$Vector_Vector_$Impl_$().default)._new(v.get_length(),v.fixed);
var _g = 0;
var _g1 = v.get_length();
while(_g < _g1) {
var i = _g++;
(openfl__$Vector_Vector_$Impl_$().default).set(ret,i,AMF3Tools.decode(v[i]));
}
return ret;
} else {
return null;
}
}
AMF3Tools.object = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 7) {
var _g1 = a.size;
var className = a.className;
var f = a.fields;
var o = null;
if(className != null && className != "") {
var cls = (openfl_Lib().default).getClassByAlias(className);
if(cls == null) {
cls = (Type().default).resolveClass(className);
}
if(cls != null) {
o = (Type().default).createInstance(cls,[]);
}
} else {
o = { };
}
if(o != null && f != null) {
var name = f.keys();
while(name.hasNext()) {
var name1 = name.next();
(Reflect().default).setProperty(o,name1,AMF3Tools.decode(f.get(name1)));
}
}
return o;
} else {
return null;
}
}
AMF3Tools.external = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 8) {
var e = a.o;
return e;
} else {
return null;
}
}
AMF3Tools.xml = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 13) {
var x = a.x;
return x;
} else {
return null;
}
}
AMF3Tools.byteArray = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 14) {
var b = a.ba;
return b;
} else {
return null;
}
}
AMF3Tools.map = function(a) {
if(a == null) {
return null;
}
if(a._hx_index == 15) {
var m = a.m;
var f = m.keys();
while(f.hasNext()) {
var f1 = f.next();
if(typeof(f1) == "number" && ((f1 | 0) === f1)) {
var p = new (haxe_ds_IntMap().default)();
var f2 = m.keys();
while(f2.hasNext()) {
var f3 = f2.next();
p.set(AMF3Tools.decode(f3),AMF3Tools.decode(m.get(f3)));
}
} else if(typeof(f1) == "string") {
var p1 = new (haxe_ds_StringMap().default)();
var f4 = m.keys();
while(f4.hasNext()) {
var f5 = f4.next();
p1.set(AMF3Tools.decode(f5),AMF3Tools.decode(m.get(f5)));
}
} else {
var p2 = new (haxe_ds_ObjectMap().default)();
var f6 = m.keys();
while(f6.hasNext()) {
var f7 = f6.next();
p2.set(AMF3Tools.decode(f7),AMF3Tools.decode(m.get(f7)));
}
}
break;
}
return new (haxe_ds_ObjectMap().default)();
} else {
return null;
}
}
// Export
exports.default = AMF3Tools;