# 复杂的对象 # 包括了各种复杂的结构,数组,List,Set,Map # # @author jaysunxiao # @version 3.0 # byte类型,最简单的整形 var a # byte # byte的包装类型 # 优先使用基础类型,包装类型会有装箱拆箱 var aa # java.lang.Byte # 数组类型 var aaa # byte[] var aaaa # java.lang.Byte[] var b # short var bb # java.lang.Short var bbb # short[] var bbbb # java.lang.Short[] var c # int var cc # java.lang.Integer var ccc # int[] var cccc # java.lang.Integer[] var d # long var dd # java.lang.Long var ddd # long[] var dddd # java.lang.Long[] var e # float var ee # java.lang.Float var eee # float[] var eeee # java.lang.Float[] var f # double var ff # java.lang.Double var fff # double[] var ffff # java.lang.Double[] var g # boolean var gg # java.lang.Boolean var ggg # boolean[] var gggg # java.lang.Boolean[] var h # char var hh # java.lang.Character var hhh # char[] var hhhh # java.lang.Character[] var jj # java.lang.String var jjj # java.lang.String[] var kk # com.zfoo.protocol.packet.ObjectA var kkk # com.zfoo.protocol.packet.ObjectA[] var l # java.util.List var ll # java.util.List>> var lll # java.util.List> var llll # java.util.List var lllll # java.util.List> var m # java.util.Map var mm # java.util.Map var mmm # java.util.Map> var mmmm # java.util.Map>, java.util.List>>> var mmmmm # java.util.Map>, java.util.Set>> var s # java.util.Set var ss # java.util.Set>> var sss # java.util.Set> var ssss # java.util.Set var sssss # java.util.Set> const PROTOCOL_ID = 100 static func write(buffer, packet): if (buffer.writePacketFlag(packet)): return buffer.writeByte(packet.a) buffer.writeByte(packet.aa) buffer.writeByteArray(packet.aaa) buffer.writeByteArray(packet.aaaa) buffer.writeShort(packet.b) buffer.writeShort(packet.bb) buffer.writeShortArray(packet.bbb) buffer.writeShortArray(packet.bbbb) buffer.writeInt(packet.c) buffer.writeInt(packet.cc) buffer.writeIntArray(packet.ccc) buffer.writeIntArray(packet.cccc) buffer.writeLong(packet.d) buffer.writeLong(packet.dd) buffer.writeLongArray(packet.ddd) buffer.writeLongArray(packet.dddd) buffer.writeFloat(packet.e) buffer.writeFloat(packet.ee) buffer.writeFloatArray(packet.eee) buffer.writeFloatArray(packet.eeee) buffer.writeDouble(packet.f) buffer.writeDouble(packet.ff) buffer.writeDoubleArray(packet.fff) buffer.writeDoubleArray(packet.ffff) buffer.writeBool(packet.g) buffer.writeBool(packet.gg) buffer.writeBooleanArray(packet.ggg) buffer.writeBooleanArray(packet.gggg) buffer.writeChar(packet.h) buffer.writeChar(packet.hh) buffer.writeCharArray(packet.hhh) buffer.writeCharArray(packet.hhhh) buffer.writeString(packet.jj) buffer.writeStringArray(packet.jjj) buffer.writePacket(packet.kk, 102) buffer.writePacketArray(packet.kkk, 102) buffer.writeIntArray(packet.l) if (packet.ll == null): buffer.writeInt(0) else: buffer.writeInt(packet.ll.size()) for element0 in packet.ll: if (element0 == null): buffer.writeInt(0) else: buffer.writeInt(element0.size()) for element1 in element0: buffer.writeIntArray(element1) if (packet.lll == null): buffer.writeInt(0) else: buffer.writeInt(packet.lll.size()) for element2 in packet.lll: buffer.writePacketArray(element2, 102) buffer.writeStringArray(packet.llll) if (packet.lllll == null): buffer.writeInt(0) else: buffer.writeInt(packet.lllll.size()) for element3 in packet.lllll: buffer.writeIntStringMap(element3) buffer.writeIntStringMap(packet.m) buffer.writeIntPacketMap(packet.mm, 102) if (packet.mmm == null): buffer.writeInt(0) else: buffer.writeInt(packet.mmm.size()) for key4 in packet.mmm: var value5 = packet.mmm[key4] buffer.writePacket(key4, 102) buffer.writeIntArray(value5) if (packet.mmmm == null): buffer.writeInt(0) else: buffer.writeInt(packet.mmmm.size()) for key6 in packet.mmmm: var value7 = packet.mmmm[key6] if (key6 == null): buffer.writeInt(0) else: buffer.writeInt(key6.size()) for element8 in key6: buffer.writePacketArray(element8, 102) if (value7 == null): buffer.writeInt(0) else: buffer.writeInt(value7.size()) for element9 in value7: if (element9 == null): buffer.writeInt(0) else: buffer.writeInt(element9.size()) for element10 in element9: buffer.writeIntArray(element10) if (packet.mmmmm == null): buffer.writeInt(0) else: buffer.writeInt(packet.mmmmm.size()) for key11 in packet.mmmmm: var value12 = packet.mmmmm[key11] if (key11 == null): buffer.writeInt(0) else: buffer.writeInt(key11.size()) for element13 in key11: buffer.writeIntStringMap(element13) if (value12 == null): buffer.writeInt(0) else: buffer.writeInt(value12.size()) for element14 in value12: buffer.writeIntStringMap(element14) buffer.writeIntArray(packet.s) if (packet.ss == null): buffer.writeInt(0) else: buffer.writeInt(packet.ss.size()) for element15 in packet.ss: if (element15 == null): buffer.writeInt(0) else: buffer.writeInt(element15.size()) for element16 in element15: buffer.writeIntArray(element16) if (packet.sss == null): buffer.writeInt(0) else: buffer.writeInt(packet.sss.size()) for element17 in packet.sss: buffer.writePacketArray(element17, 102) buffer.writeStringArray(packet.ssss) if (packet.sssss == null): buffer.writeInt(0) else: buffer.writeInt(packet.sssss.size()) for element18 in packet.sssss: buffer.writeIntStringMap(element18) static func read(buffer): if (!buffer.readBool()): return null var packet = buffer.newInstance(100) var result19 = buffer.readByte() packet.a = result19 var result20 = buffer.readByte() packet.aa = result20 var array21 = buffer.readByteArray() packet.aaa = array21 var array22 = buffer.readByteArray() packet.aaaa = array22 var result23 = buffer.readShort() packet.b = result23 var result24 = buffer.readShort() packet.bb = result24 var array25 = buffer.readShortArray() packet.bbb = array25 var array26 = buffer.readShortArray() packet.bbbb = array26 var result27 = buffer.readInt() packet.c = result27 var result28 = buffer.readInt() packet.cc = result28 var array29 = buffer.readIntArray() packet.ccc = array29 var array30 = buffer.readIntArray() packet.cccc = array30 var result31 = buffer.readLong() packet.d = result31 var result32 = buffer.readLong() packet.dd = result32 var array33 = buffer.readLongArray() packet.ddd = array33 var array34 = buffer.readLongArray() packet.dddd = array34 var result35 = buffer.readFloat() packet.e = result35 var result36 = buffer.readFloat() packet.ee = result36 var array37 = buffer.readFloatArray() packet.eee = array37 var array38 = buffer.readFloatArray() packet.eeee = array38 var result39 = buffer.readDouble() packet.f = result39 var result40 = buffer.readDouble() packet.ff = result40 var array41 = buffer.readDoubleArray() packet.fff = array41 var array42 = buffer.readDoubleArray() packet.ffff = array42 var result43 = buffer.readBool() packet.g = result43 var result44 = buffer.readBool() packet.gg = result44 var array45 = buffer.readBooleanArray() packet.ggg = array45 var array46 = buffer.readBooleanArray() packet.gggg = array46 var result47 = buffer.readChar() packet.h = result47 var result48 = buffer.readChar() packet.hh = result48 var array49 = buffer.readCharArray() packet.hhh = array49 var array50 = buffer.readCharArray() packet.hhhh = array50 var result51 = buffer.readString() packet.jj = result51 var array52 = buffer.readStringArray() packet.jjj = array52 var result53 = buffer.readPacket(102) packet.kk = result53 var array54 = buffer.readPacketArray(102) packet.kkk = array54 var list55 = buffer.readIntArray() packet.l = list55 var result56 = [] var size58 = buffer.readInt() if (size58 > 0): for index57 in range(size58): var result59 = [] var size61 = buffer.readInt() if (size61 > 0): for index60 in range(size61): var list62 = buffer.readIntArray() result59.append(list62) result56.append(result59) packet.ll = result56 var result63 = [] var size65 = buffer.readInt() if (size65 > 0): for index64 in range(size65): var list66 = buffer.readPacketArray(102) result63.append(list66) packet.lll = result63 var list67 = buffer.readStringArray() packet.llll = list67 var result68 = [] var size70 = buffer.readInt() if (size70 > 0): for index69 in range(size70): var map71 = buffer.readIntStringMap() result68.append(map71) packet.lllll = result68 var map72 = buffer.readIntStringMap() packet.m = map72 var map73 = buffer.readIntPacketMap(102) packet.mm = map73 var result74 = {} var size75 = buffer.readInt() if (size75 > 0): for index76 in range(size75): var result77 = buffer.readPacket(102) var list78 = buffer.readIntArray() result74[result77] = list78 packet.mmm = result74 var result79 = {} var size80 = buffer.readInt() if (size80 > 0): for index81 in range(size80): var result82 = [] var size84 = buffer.readInt() if (size84 > 0): for index83 in range(size84): var list85 = buffer.readPacketArray(102) result82.append(list85) var result86 = [] var size88 = buffer.readInt() if (size88 > 0): for index87 in range(size88): var result89 = [] var size91 = buffer.readInt() if (size91 > 0): for index90 in range(size91): var list92 = buffer.readIntArray() result89.append(list92) result86.append(result89) result79[result82] = result86 packet.mmmm = result79 var result93 = {} var size94 = buffer.readInt() if (size94 > 0): for index95 in range(size94): var result96 = [] var size98 = buffer.readInt() if (size98 > 0): for index97 in range(size98): var map99 = buffer.readIntStringMap() result96.append(map99) var result100 = [] var size102 = buffer.readInt() if (size102 > 0): for index101 in range(size102): var map103 = buffer.readIntStringMap() result100.append(map103) result93[result96] = result100 packet.mmmmm = result93 var set104 = buffer.readIntArray() packet.s = set104 var result105 = [] var size107 = buffer.readInt() if (size107 > 0): for index106 in range(size107): var result108 = [] var size110 = buffer.readInt() if (size110 > 0): for index109 in range(size110): var list111 = buffer.readIntArray() result108.append(list111) result105.append(result108) packet.ss = result105 var result112 = [] var size114 = buffer.readInt() if (size114 > 0): for index113 in range(size114): var set115 = buffer.readPacketArray(102) result112.append(set115) packet.sss = result112 var set116 = buffer.readStringArray() packet.ssss = set116 var result117 = [] var size119 = buffer.readInt() if (size119 > 0): for index118 in range(size119): var map120 = buffer.readIntStringMap() result117.append(map120) packet.sssss = result117 return packet