Beispiel #1
0
        JavaValue ReadEnum()
        {
            ReadClassDesc();
            JavaValue data = new JavaValue(stream.ReadString());

            CreateReference(data);
            return(data);
        }
Beispiel #2
0
        JavaValue ReadClass()
        {
            ReadClassDesc();
            JavaValue value = new JavaValue("TODO: class instance");

            CreateReference(value);
            return(value);
        }
Beispiel #3
0
        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() ?? "");
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        /// <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>());
        }
Beispiel #6
0
        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);
        }