Exemple #1
0
        public WriteHandler getWriteHandler(String tag, Object o)
        {
            IDictionary <String, WriteHandler> h = Fns.lookup <Type, IDictionary <string, WriteHandler> >(chainedLookup, Fns.getClassOrNull(o));

            if (h == null)
            {
                return(null);
            }
            KeyValuePair <String, WriteHandler> taggedWriter = Fns.soloEntry(h);

            if (tag != null && !tag.Equals(taggedWriter.Key) && !taggedWriter.Key.Equals("any"))
            {
                return(null);
            }
            else
            {
                return(taggedWriter.Value);
            }
        }
Exemple #2
0
        private Object handleStruct(Object tag, int fields)
        {
            ReadHandler h = Fns.lookup <object, ReadHandler>(handlerLookup, tag);

            if (h == null)
            {
                if (standardExtensionHandlers.ContainsKey(tag))
                {
                    h = standardExtensionHandlers[tag];
                }
            }
            if (h == null)
            {
                return(new TaggedObject(tag, readObjects(fields)));
            }
            else
            {
                return(h.read(this, tag, fields));
            }
        }