JavaValue ReadEnum() { ReadClassDesc(); JavaValue data = new JavaValue(stream.ReadString()); CreateReference(data); return(data); }
JavaValue ReadClass() { ReadClassDesc(); JavaValue value = new JavaValue("TODO: class instance"); CreateReference(value); return(value); }
string GetValue(JavaValue value) { object jvalue = value.Value; if (jvalue is byte[]) #if FRAMEWORK35 { jvalue = string.Join(",", ((byte[])jvalue).Select(b => b.ToString("x2")).ToArray()); } #else { jvalue = string.Join(",", ((byte[])jvalue).Select(b => b.ToString("x2"))); } #endif return(jvalue?.ToString() ?? ""); }
public IJavaData Convert(JavaObject @object) { JavaObject transformed = new JavaObject(@object.Type); transformed.Fields.AddRange(@object.Fields); for (int i = 1; i < @object.Custom.Count; i += 2) { JavaValue value = @object.Custom[i] as JavaValue; if (value == null) { continue; } JavaField field = new JavaField(value.Get <string>(), @object.Custom[i + 1]); transformed.Fields.Add(field); } return(transformed); }
/// <summary> /// reads an object /// </summary> /// <returns></returns> public T Read() { IJavaData data = stream.ReadObject(); if (reducer != null && data is JavaObject) { data = reducer.Reduce((JavaObject)data); } JavaValue value = data as JavaValue; if (value == null) { throw new InvalidOperationException("Stream contains no object of the specified type"); } return(value.Get <T>()); }
JavaValue ReadString(Tag tag) { string value; switch (tag) { case Tag.STRING: value = stream.ReadString(); break; case Tag.LONGSTRING: value = stream.ReadLongString(); break; default: throw new StreamCorruptedException("Invalid Type code."); } JavaValue data = new JavaValue(value); CreateReference(data); return(data); }