Sha256: 37ef1f621b88bb082b0ac13c0a0ff2ed6b3cf950bc72dba3b7c89cdfc55fc8de
Contents?: true
Size: 1.98 KB
Versions: 164
Compression:
Stored size: 1.98 KB
Contents
package sh.calaba.org.codehaus.jackson.map.util; import sh.calaba.org.codehaus.jackson.io.SerializedString; import sh.calaba.org.codehaus.jackson.map.AnnotationIntrospector; import sh.calaba.org.codehaus.jackson.map.MapperConfig; import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedClass; import sh.calaba.org.codehaus.jackson.map.introspect.BasicBeanDescription; import sh.calaba.org.codehaus.jackson.map.type.ClassKey; import sh.calaba.org.codehaus.jackson.type.JavaType; /** * Helper class for caching resolved root names. */ public class RootNameLookup { /** * For efficient operation, let's try to minimize number of times we * need to introspect root element name to use. */ protected LRUMap<ClassKey,SerializedString> _rootNames; public RootNameLookup() { } public SerializedString findRootName(JavaType rootType, MapperConfig<?> config) { return findRootName(rootType.getRawClass(), config); } public synchronized SerializedString findRootName(Class<?> rootType, MapperConfig<?> config) { ClassKey key = new ClassKey(rootType); if (_rootNames == null) { _rootNames = new LRUMap<ClassKey,SerializedString>(20, 200); } else { SerializedString name = _rootNames.get(key); if (name != null) { return name; } } BasicBeanDescription beanDesc = (BasicBeanDescription) config.introspectClassAnnotations(rootType); AnnotationIntrospector intr = config.getAnnotationIntrospector(); AnnotatedClass ac = beanDesc.getClassInfo(); String nameStr = intr.findRootName(ac); // No answer so far? Let's just default to using simple class name if (nameStr == null) { // Should we strip out enclosing class tho? For now, nope: nameStr = rootType.getSimpleName(); } SerializedString name = new SerializedString(nameStr); _rootNames.put(key, name); return name; } }
Version data entries
164 entries across 164 versions & 2 rubygems