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); } }
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)); } }