static JClassDesc NewClass(DatReader r) { JClassDesc classDesc = ClassDesc(r); r.handles.Add(classDesc); return(classDesc); }
JObject NewObject() { JObject obj = new JObject(); obj.Desc = ClassDesc(); handles.Add(obj); List <JClassDesc> classDescs = new List <JClassDesc>(); List <JClassData> classDatas = new List <JClassData>(); JClassDesc tmp = obj.Desc; // most superclass data is first while (tmp != null) { classDescs.Add(tmp); tmp = tmp.Info.SuperClass; } classDescs.Reverse(); for (int i = 0; i < classDescs.Count; i++) { JClassData classData = ClassData(classDescs[i].Info); classDatas.Add(classData); } // reverse order so least superclass is first classDatas.Reverse(); obj.ClassData = classDatas; return(obj); }
JClassDesc NewClass() { JClassDesc classDesc = ClassDesc(); handles.Add(classDesc); return(classDesc); }
JClassDesc NewClassDesc() { JClassDesc desc = new JClassDesc(); desc.Name = ReadUtf8(); desc.SerialUID = ReadInt64(); handles.Add(desc); desc.Info = ClassDescInfo(); return(desc); }
static JClassDesc NewClassDesc(DatReader r) { JClassDesc desc = new JClassDesc(); desc.Name = r.ReadUtf8(); r.ReadInt64(); // serial UID r.handles.Add(desc); // read class desc info desc.Flags = r.ReadUInt8(); desc.Fields = new JFieldDesc[r.ReadUInt16()]; for (int i = 0; i < desc.Fields.Length; i++) { desc.Fields[i] = FieldDesc(r); } SkipAnnotation(r); desc.SuperClass = ClassDesc(r); return(desc); }
static JClassData ClassData(DatReader r, JClassDesc desc) { if ((desc.Flags & SC_SERIALIZABLE) == 0) { throw new InvalidDataException("Invalid class data flags: " + desc.Flags); } JClassData data = new JClassData(); data.Values = new object[desc.Fields.Length]; for (int i = 0; i < data.Values.Length; i++) { data.Values[i] = Value(r, desc.Fields[i].Type); } if ((desc.Flags & SC_WRITE_METHOD) != 0) { SkipAnnotation(r); } return(data); }
static JObject NewObject(DatReader r) { JObject obj = new JObject(); obj.Desc = ClassDesc(r); r.handles.Add(obj); List <JClassDesc> descs = new List <JClassDesc>(); JClassDesc tmp = obj.Desc; // most superclass data is first while (tmp != null) { descs.Add(tmp); tmp = tmp.SuperClass; } obj.ClassData = new JClassData[descs.Count]; for (int i = descs.Count - 1; i >= 0; i--) { obj.ClassData[i] = ClassData(r, descs[i]); } return(obj); }