calabash-android 0.4.7.pre6 → 0.4.7.pre7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (423) hide show
  1. checksums.yaml +4 -4
  2. data/lib/calabash-android/helpers.rb +7 -15
  3. data/lib/calabash-android/lib/TestServer.apk +0 -0
  4. data/lib/calabash-android/version.rb +1 -1
  5. data/test-server/build.xml +2 -2
  6. data/test-server/instrumentation-backend/.classpath +0 -3
  7. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/HttpServer.java +1 -2
  8. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForProgress.java +1 -1
  9. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +1 -2
  10. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/json/JSONUtils.java +1 -1
  11. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/QueryResult.java +1 -1
  12. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryUtils.java +203 -222
  13. data/test-server/instrumentation-backend/src/sh/calaba/org/apache/http/entity/mime/version.properties +22 -0
  14. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variant.java +413 -0
  15. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variants.java +90 -0
  16. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/FormatSchema.java +29 -0
  17. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonEncoding.java +47 -0
  18. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonFactory.java +937 -0
  19. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerationException.java +28 -0
  20. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerator.java +1197 -0
  21. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonLocation.java +141 -0
  22. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonNode.java +879 -0
  23. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParseException.java +23 -0
  24. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParser.java +1434 -0
  25. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonProcessingException.java +80 -0
  26. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonStreamContext.java +122 -0
  27. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonToken.java +161 -0
  28. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/ObjectCodec.java +157 -0
  29. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/PrettyPrinter.java +166 -0
  30. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/SerializableString.java +54 -0
  31. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Version.java +90 -0
  32. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Versioned.java +20 -0
  33. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JacksonAnnotation.java +20 -0
  34. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnyGetter.java +25 -0
  35. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnySetter.java +24 -0
  36. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAutoDetect.java +148 -0
  37. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonBackReference.java +41 -0
  38. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonCreator.java +19 -0
  39. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonGetter.java +35 -0
  40. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnore.java +57 -0
  41. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreProperties.java +48 -0
  42. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreType.java +33 -0
  43. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonManagedReference.java +41 -0
  44. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonMethod.java +90 -0
  45. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonProperty.java +38 -0
  46. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonPropertyOrder.java +46 -0
  47. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonRawValue.java +33 -0
  48. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSetter.java +33 -0
  49. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSubTypes.java +44 -0
  50. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeInfo.java +236 -0
  51. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeName.java +28 -0
  52. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonUnwrapped.java +76 -0
  53. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonValue.java +46 -0
  54. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonWriteNullProperties.java +34 -0
  55. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/package-info.java +16 -0
  56. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatDetector.java +176 -0
  57. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatMatcher.java +117 -0
  58. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/InputAccessor.java +130 -0
  59. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/MatchStrength.java +64 -0
  60. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/package-info.java +8 -0
  61. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ByteSourceBootstrapper.java +518 -0
  62. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/DefaultPrettyPrinter.java +13 -0
  63. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Indenter.java +23 -0
  64. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonGeneratorBase.java +570 -0
  65. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonNumericParserBase.java +20 -0
  66. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserBase.java +1067 -0
  67. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserMinimalBase.java +539 -0
  68. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonReadContext.java +188 -0
  69. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonWriteContext.java +178 -0
  70. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParser.java +1815 -0
  71. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParserBase.java +228 -0
  72. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/StreamBasedParserBase.java +197 -0
  73. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8Generator.java +1757 -0
  74. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8StreamParser.java +2966 -0
  75. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/WriterBasedGenerator.java +1815 -0
  76. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/package-info.java +6 -0
  77. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/BaseReader.java +117 -0
  78. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/CharacterEscapes.java +73 -0
  79. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/IOContext.java +239 -0
  80. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/InputDecorator.java +67 -0
  81. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/JsonStringEncoder.java +408 -0
  82. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/MergedStream.java +145 -0
  83. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberInput.java +303 -0
  84. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberOutput.java +398 -0
  85. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/OutputDecorator.java +40 -0
  86. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SegmentedStringWriter.java +104 -0
  87. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SerializedString.java +114 -0
  88. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF32Reader.java +214 -0
  89. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF8Writer.java +387 -0
  90. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/package.html +4 -0
  91. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AbstractTypeResolver.java +63 -0
  92. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AnnotationIntrospector.java +1485 -0
  93. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanDescription.java +171 -0
  94. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanProperty.java +123 -0
  95. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanPropertyDefinition.java +66 -0
  96. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ClassIntrospector.java +117 -0
  97. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualDeserializer.java +38 -0
  98. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualKeyDeserializer.java +33 -0
  99. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualSerializer.java +38 -0
  100. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationConfig.java +926 -0
  101. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationContext.java +262 -0
  102. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationProblemHandler.java +56 -0
  103. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerFactory.java +356 -0
  104. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerProvider.java +185 -0
  105. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Deserializers.java +339 -0
  106. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/HandlerInstantiator.java +115 -0
  107. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/InjectableValues.java +85 -0
  108. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonDeserializer.java +166 -0
  109. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonMappingException.java +335 -0
  110. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializable.java +34 -0
  111. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializableWithType.java +22 -0
  112. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializer.java +138 -0
  113. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializer.java +31 -0
  114. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializers.java +21 -0
  115. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MapperConfig.java +1154 -0
  116. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingIterator.java +190 -0
  117. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingJsonFactory.java +81 -0
  118. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Module.java +255 -0
  119. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectMapper.java +2885 -0
  120. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectReader.java +958 -0
  121. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectWriter.java +554 -0
  122. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/PropertyNamingStrategy.java +258 -0
  123. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableDeserializer.java +23 -0
  124. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableSerializer.java +23 -0
  125. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/RuntimeJsonMappingException.java +21 -0
  126. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializationConfig.java +1041 -0
  127. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerFactory.java +198 -0
  128. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerProvider.java +552 -0
  129. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Serializers.java +137 -0
  130. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeDeserializer.java +118 -0
  131. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeSerializer.java +164 -0
  132. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonInject.java +30 -0
  133. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonStdImpl.java +25 -0
  134. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonCachable.java +32 -0
  135. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonDeserialize.java +109 -0
  136. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonFilter.java +31 -0
  137. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonRootName.java +29 -0
  138. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonSerialize.java +216 -0
  139. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeIdResolver.java +35 -0
  140. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeResolver.java +28 -0
  141. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonValueInstantiator.java +26 -0
  142. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonView.java +37 -0
  143. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/NoClass.java +19 -0
  144. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/package-info.java +5 -0
  145. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/AbstractDeserializer.java +102 -0
  146. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializer.java +28 -0
  147. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializers.java +11 -0
  148. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java +894 -0
  149. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializer.java +1537 -0
  150. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerBuilder.java +277 -0
  151. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerFactory.java +1474 -0
  152. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerModifier.java +58 -0
  153. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CollectionDeserializer.java +47 -0
  154. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ContainerDeserializer.java +14 -0
  155. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CustomDeserializerFactory.java +227 -0
  156. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/DateDeserializer.java +9 -0
  157. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumDeserializer.java +15 -0
  158. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumResolver.java +17 -0
  159. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/FromStringDeserializer.java +13 -0
  160. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/JsonNodeDeserializer.java +54 -0
  161. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/MapDeserializer.java +44 -0
  162. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableAnyProperty.java +177 -0
  163. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableBeanProperty.java +827 -0
  164. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializationContext.java +326 -0
  165. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializer.java +94 -0
  166. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializerProvider.java +494 -0
  167. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializers.java +119 -0
  168. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializer.java +12 -0
  169. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializers.java +11 -0
  170. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdScalarDeserializer.java +13 -0
  171. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ThrowableDeserializer.java +13 -0
  172. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/UntypedObjectDeserializer.java +9 -0
  173. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiator.java +280 -0
  174. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiators.java +52 -0
  175. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/BeanPropertyMap.java +257 -0
  176. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorCollector.java +141 -0
  177. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorProperty.java +152 -0
  178. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ExternalTypeHandler.java +173 -0
  179. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyBasedCreator.java +117 -0
  180. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValue.java +117 -0
  181. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValueBuffer.java +102 -0
  182. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/UnwrappedPropertyHandler.java +41 -0
  183. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ValueInjector.java +45 -0
  184. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/package-info.java +9 -0
  185. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/package-info.java +5 -0
  186. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicBooleanDeserializer.java +22 -0
  187. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicReferenceDeserializer.java +47 -0
  188. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CalendarDeserializer.java +47 -0
  189. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ClassDeserializer.java +49 -0
  190. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CollectionDeserializer.java +265 -0
  191. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ContainerDeserializerBase.java +37 -0
  192. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/DateDeserializer.java +30 -0
  193. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumDeserializer.java +139 -0
  194. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumMapDeserializer.java +90 -0
  195. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java +89 -0
  196. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/FromStringDeserializer.java +265 -0
  197. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JavaTypeDeserializer.java +38 -0
  198. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JsonNodeDeserializer.java +314 -0
  199. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/MapDeserializer.java +412 -0
  200. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ObjectArrayDeserializer.java +201 -0
  201. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/PrimitiveArrayDeserializers.java +583 -0
  202. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdDeserializer.java +1136 -0
  203. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java +340 -0
  204. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializers.java +108 -0
  205. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdScalarDeserializer.java +34 -0
  206. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdValueInstantiator.java +392 -0
  207. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringCollectionDeserializer.java +227 -0
  208. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringDeserializer.java +55 -0
  209. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ThrowableDeserializer.java +164 -0
  210. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TimestampDeserializer.java +30 -0
  211. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TokenBufferDeserializer.java +36 -0
  212. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/UntypedObjectDeserializer.java +248 -0
  213. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/package-info.java +15 -0
  214. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/exc/UnrecognizedPropertyException.java +75 -0
  215. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/DOMDeserializer.java +65 -0
  216. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/OptionalHandlerFactory.java +217 -0
  217. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/package-info.java +23 -0
  218. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/Annotated.java +85 -0
  219. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedClass.java +980 -0
  220. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedConstructor.java +143 -0
  221. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedField.java +119 -0
  222. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMember.java +56 -0
  223. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethod.java +188 -0
  224. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethodMap.java +85 -0
  225. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedParameter.java +191 -0
  226. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedWithParams.java +195 -0
  227. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotationMap.java +101 -0
  228. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicBeanDescription.java +615 -0
  229. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicClassIntrospector.java +364 -0
  230. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/JacksonAnnotationIntrospector.java +813 -0
  231. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MemberKey.java +83 -0
  232. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MethodFilter.java +12 -0
  233. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/NopAnnotationIntrospector.java +209 -0
  234. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertiesCollector.java +713 -0
  235. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertyBuilder.java +648 -0
  236. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/VisibilityChecker.java +424 -0
  237. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/package-info.java +12 -0
  238. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/NamedType.java +53 -0
  239. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/SubtypeResolver.java +39 -0
  240. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeIdResolver.java +74 -0
  241. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeResolverBuilder.java +151 -0
  242. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeDeserializer.java +126 -0
  243. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeSerializer.java +110 -0
  244. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeDeserializer.java +37 -0
  245. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeSerializer.java +129 -0
  246. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeDeserializer.java +191 -0
  247. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeSerializer.java +69 -0
  248. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeDeserializer.java +103 -0
  249. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeSerializer.java +121 -0
  250. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/ClassNameIdResolver.java +138 -0
  251. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/MinimalClassNameIdResolver.java +66 -0
  252. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdSubtypeResolver.java +151 -0
  253. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdTypeResolverBuilder.java +202 -0
  254. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeDeserializerBase.java +154 -0
  255. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeIdResolverBase.java +37 -0
  256. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeNameIdResolver.java +154 -0
  257. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeSerializerBase.java +31 -0
  258. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/package-info.java +9 -0
  259. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/package-info.java +10 -0
  260. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleAbstractTypeResolver.java +86 -0
  261. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleDeserializers.java +130 -0
  262. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleKeyDeserializers.java +59 -0
  263. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleModule.java +265 -0
  264. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleSerializers.java +206 -0
  265. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleValueInstantiators.java +45 -0
  266. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/package-info.java +16 -0
  267. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/package-info.java +34 -0
  268. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/AnyGetterWriter.java +48 -0
  269. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ArraySerializers.java +7 -0
  270. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BasicSerializerFactory.java +806 -0
  271. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyFilter.java +30 -0
  272. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyWriter.java +512 -0
  273. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializer.java +126 -0
  274. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerBuilder.java +140 -0
  275. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerFactory.java +780 -0
  276. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerModifier.java +95 -0
  277. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ContainerSerializers.java +8 -0
  278. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/CustomSerializerFactory.java +293 -0
  279. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/EnumSerializer.java +17 -0
  280. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilterProvider.java +23 -0
  281. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilteredBeanPropertyWriter.java +96 -0
  282. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/JdkSerializers.java +11 -0
  283. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/MapSerializer.java +58 -0
  284. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/PropertyBuilder.java +372 -0
  285. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ScalarSerializerBase.java +18 -0
  286. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/SerializerBase.java +23 -0
  287. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdKeySerializer.java +10 -0
  288. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializerProvider.java +852 -0
  289. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializers.java +372 -0
  290. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ToStringSerializer.java +14 -0
  291. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/FailingSerializer.java +43 -0
  292. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/JsonSerializerMap.java +93 -0
  293. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/PropertySerializerMap.java +231 -0
  294. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/ReadOnlyClassToSerializerMap.java +73 -0
  295. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SerializerCache.java +304 -0
  296. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleBeanPropertyFilter.java +109 -0
  297. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleFilterProvider.java +114 -0
  298. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnknownSerializer.java +54 -0
  299. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanPropertyWriter.java +99 -0
  300. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanSerializer.java +76 -0
  301. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/package-info.java +5 -0
  302. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/package-info.java +5 -0
  303. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/AsArraySerializerBase.java +185 -0
  304. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java +340 -0
  305. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CalendarSerializer.java +43 -0
  306. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CollectionSerializer.java +113 -0
  307. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ContainerSerializerBase.java +51 -0
  308. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/DateSerializer.java +42 -0
  309. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumMapSerializer.java +218 -0
  310. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSerializer.java +84 -0
  311. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSetSerializer.java +47 -0
  312. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IndexedStringListSerializer.java +116 -0
  313. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/InetAddressSerializer.java +51 -0
  314. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IterableSerializer.java +63 -0
  315. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/JsonValueSerializer.java +233 -0
  316. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/MapSerializer.java +422 -0
  317. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NonTypedScalarSerializerBase.java +34 -0
  318. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NullSerializer.java +38 -0
  319. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ObjectArraySerializer.java +281 -0
  320. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/RawSerializer.java +52 -0
  321. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ScalarSerializerBase.java +52 -0
  322. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableSerializer.java +99 -0
  323. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableWithTypeSerializer.java +90 -0
  324. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializerBase.java +184 -0
  325. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StaticListSerializerBase.java +46 -0
  326. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdArraySerializers.java +476 -0
  327. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdContainerSerializers.java +249 -0
  328. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdJdkSerializers.java +195 -0
  329. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializer.java +43 -0
  330. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializers.java +95 -0
  331. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringCollectionSerializer.java +119 -0
  332. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringSerializer.java +36 -0
  333. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TimeZoneSerializer.java +38 -0
  334. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ToStringSerializer.java +73 -0
  335. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TokenBufferSerializer.java +66 -0
  336. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ArrayType.java +260 -0
  337. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ClassKey.java +94 -0
  338. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionLikeType.java +204 -0
  339. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionType.java +94 -0
  340. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/HierarchicType.java +88 -0
  341. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapLikeType.java +265 -0
  342. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapType.java +146 -0
  343. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/SimpleType.java +250 -0
  344. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBase.java +148 -0
  345. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBindings.java +351 -0
  346. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeFactory.java +1165 -0
  347. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeModifier.java +38 -0
  348. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeParser.java +134 -0
  349. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/package-info.java +10 -0
  350. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Annotations.java +23 -0
  351. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ArrayBuilders.java +293 -0
  352. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/BeanUtil.java +260 -0
  353. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ClassUtil.java +645 -0
  354. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Comparators.java +48 -0
  355. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumResolver.java +108 -0
  356. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumValues.java +82 -0
  357. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601DateFormat.java +52 -0
  358. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601Utils.java +230 -0
  359. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONPObject.java +105 -0
  360. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONWrappedObject.java +117 -0
  361. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LRUMap.java +28 -0
  362. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LinkedNode.java +45 -0
  363. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Named.java +10 -0
  364. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ObjectBuffer.java +257 -0
  365. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/PrimitiveArrayBuilder.java +180 -0
  366. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Provider.java +21 -0
  367. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/RootNameLookup.java +54 -0
  368. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/StdDateFormat.java +348 -0
  369. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/package-info.java +4 -0
  370. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ArrayNode.java +758 -0
  371. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BaseJsonNode.java +122 -0
  372. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BigIntegerNode.java +104 -0
  373. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BinaryNode.java +136 -0
  374. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BooleanNode.java +84 -0
  375. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ContainerNode.java +185 -0
  376. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DecimalNode.java +96 -0
  377. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DoubleNode.java +106 -0
  378. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/IntNode.java +122 -0
  379. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/JsonNodeFactory.java +222 -0
  380. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/LongNode.java +99 -0
  381. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/MissingNode.java +97 -0
  382. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NodeCursor.java +222 -0
  383. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NullNode.java +58 -0
  384. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NumericNode.java +72 -0
  385. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ObjectNode.java +696 -0
  386. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/POJONode.java +145 -0
  387. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TextNode.java +299 -0
  388. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TreeTraversingParser.java +383 -0
  389. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ValueNode.java +58 -0
  390. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/package-info.java +8 -0
  391. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/package-info.java +30 -0
  392. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSchema.java +82 -0
  393. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSerializableSchema.java +46 -0
  394. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/SchemaAware.java +25 -0
  395. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/package-info.java +5 -0
  396. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/BytesToNameCanonicalizer.java +969 -0
  397. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/CharsToNameCanonicalizer.java +578 -0
  398. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name.java +50 -0
  399. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name1.java +44 -0
  400. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name2.java +40 -0
  401. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name3.java +39 -0
  402. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/NameN.java +68 -0
  403. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/package-info.java +5 -0
  404. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/JavaType.java +503 -0
  405. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/TypeReference.java +60 -0
  406. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/package-info.java +8 -0
  407. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/BufferRecycler.java +109 -0
  408. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/ByteArrayBuilder.java +294 -0
  409. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/CharTypes.java +237 -0
  410. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/DefaultPrettyPrinter.java +282 -0
  411. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/InternCache.java +49 -0
  412. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonGeneratorDelegate.java +273 -0
  413. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserDelegate.java +251 -0
  414. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserSequence.java +150 -0
  415. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/MinimalPrettyPrinter.java +152 -0
  416. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TextBuffer.java +707 -0
  417. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TokenBuffer.java +1233 -0
  418. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/VersionUtil.java +79 -0
  419. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/package-info.java +4 -0
  420. metadata +409 -5
  421. data/test-server/instrumentation-backend/libs/jackson-annotations-2.2.0-rc2-20130418.042013-1.jar +0 -0
  422. data/test-server/instrumentation-backend/libs/jackson-core-2.2.0-rc2-20130420.041001-2.jar +0 -0
  423. data/test-server/instrumentation-backend/libs/jackson-databind-2.2.0-rc2-20130422.041053-3.jar +0 -0
@@ -0,0 +1,34 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import java.io.IOException;
4
+
5
+ import sh.calaba.org.codehaus.jackson.JsonGenerator;
6
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
7
+
8
+ /**
9
+ * Interface that can be implemented by objects that know how to
10
+ * serialize themselves to JSON, using {@link JsonGenerator}
11
+ * (and {@link SerializerProvider} if necessary).
12
+ *<p>
13
+ * Note that implementing this interface binds implementing object
14
+ * closely to Jackson API, and that it is often not necessary to do
15
+ * so -- if class is a bean, it can be serialized without
16
+ * implementing this interface.
17
+ *<p>
18
+ * NOTE: as of version 1.5, this interface is missing one crucial
19
+ * aspect, that of dealing with type information embedding.
20
+ * Because of this, this interface is deprecated, although will be
21
+ * fully supported for all 1.x releases, and will work except for
22
+ * cases where polymorphic type information handling is needed for
23
+ * type (in which case implementing if {@link JsonSerializableWithType} is crucial).
24
+ *
25
+ * @see sh.calaba.org.codehaus.jackson.map.JsonSerializableWithType
26
+ *
27
+ * @since 1.5
28
+ */
29
+ @Deprecated
30
+ public interface JsonSerializable
31
+ {
32
+ public void serialize(JsonGenerator jgen, SerializerProvider provider)
33
+ throws IOException, JsonProcessingException;
34
+ }
@@ -0,0 +1,22 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import java.io.IOException;
4
+
5
+ import sh.calaba.org.codehaus.jackson.JsonGenerator;
6
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
7
+
8
+ /**
9
+ * Interface that is to replace {@link JsonSerializable} to
10
+ * allow for dynamic type information embedding.
11
+ *
12
+ * @since 1.5
13
+ * @author tatu
14
+ */
15
+ @SuppressWarnings("deprecation")
16
+ public interface JsonSerializableWithType
17
+ extends JsonSerializable
18
+ {
19
+ public void serializeWithType(JsonGenerator jgen, SerializerProvider provider,
20
+ TypeSerializer typeSer)
21
+ throws IOException, JsonProcessingException;
22
+ }
@@ -0,0 +1,138 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import java.io.IOException;
4
+
5
+ import sh.calaba.org.codehaus.jackson.JsonGenerator;
6
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
7
+
8
+ /**
9
+ * Abstract class that defines API used by {@link ObjectMapper} (and
10
+ * other chained {@link JsonSerializer}s too) to serialize Objects of
11
+ * arbitrary types into JSON, using provided {@link JsonGenerator}.
12
+ *<p>
13
+ * NOTE: it is recommended that custom serializers extend
14
+ * {@link sh.calaba.org.codehaus.jackson.map.ser.std.SerializerBase} instead
15
+ * of this class, since it will implement many of optional
16
+ * methods of this class.
17
+ */
18
+ public abstract class JsonSerializer<T>
19
+ {
20
+ /*
21
+ /**********************************************************
22
+ /* Fluent factory methods for constructing decorated versions
23
+ /**********************************************************
24
+ */
25
+
26
+ /**
27
+ * Method that will return serializer instance that produces
28
+ * "unwrapped" serialization, if applicable for type being
29
+ * serialized (which is the case for some serializers
30
+ * that produce JSON Objects as output).
31
+ * If no unwrapped serializer can be constructed, will simply
32
+ * return serializer as-is.
33
+ *<p>
34
+ * Default implementation just returns serializer as-is,
35
+ * indicating that no unwrapped variant exists
36
+ *
37
+ * @since 1.9
38
+ */
39
+ public JsonSerializer<T> unwrappingSerializer() {
40
+ return this;
41
+ }
42
+
43
+ /**
44
+ * Accessor for checking whether this serializer is an
45
+ * "unwrapping" serializer; this is necessary to know since
46
+ * it may also require caller to suppress writing of the
47
+ * leading property name.
48
+ *
49
+ * @since 1.9
50
+ */
51
+ public boolean isUnwrappingSerializer() {
52
+ return false;
53
+ }
54
+
55
+ /*
56
+ /**********************************************************
57
+ /* Serialization methods
58
+ /**********************************************************
59
+ */
60
+
61
+ /**
62
+ * Method that can be called to ask implementation to serialize
63
+ * values of type this serializer handles.
64
+ *
65
+ * @param value Value to serialize; can <b>not</b> be null.
66
+ * @param jgen Generator used to output resulting Json content
67
+ * @param provider Provider that can be used to get serializers for
68
+ * serializing Objects value contains, if any.
69
+ */
70
+ public abstract void serialize(T value, JsonGenerator jgen, SerializerProvider provider)
71
+ throws IOException, JsonProcessingException;
72
+
73
+ /**
74
+ * Method that can be called to ask implementation to serialize
75
+ * values of type this serializer handles, using specified type serializer
76
+ * for embedding necessary type information.
77
+ *<p>
78
+ * Default implementation will ignore serialization of type information,
79
+ * and just calls {@link #serialize}: serializers that can embed
80
+ * type information should override this to implement actual handling.
81
+ * Most common such handling is done by something like:
82
+ *<pre>
83
+ * // note: method to call depends on whether this type is serialized as JSON scalar, object or Array!
84
+ * typeSer.writeTypePrefixForScalar(value, jgen);
85
+ * serialize(value, jgen, provider);
86
+ * typeSer.writeTypeSuffixForScalar(value, jgen);
87
+ *</pre>
88
+ *
89
+ * @param value Value to serialize; can <b>not</b> be null.
90
+ * @param jgen Generator used to output resulting Json content
91
+ * @param provider Provider that can be used to get serializers for
92
+ * serializing Objects value contains, if any.
93
+ * @param typeSer Type serializer to use for including type information
94
+ *
95
+ * @since 1.5
96
+ */
97
+ public void serializeWithType(T value, JsonGenerator jgen, SerializerProvider provider,
98
+ TypeSerializer typeSer)
99
+ throws IOException, JsonProcessingException
100
+ {
101
+ serialize(value, jgen, provider);
102
+ }
103
+
104
+ /*
105
+ /**********************************************************
106
+ /* Introspection methods needed for type handling
107
+ /**********************************************************
108
+ */
109
+
110
+ /**
111
+ * Method for accessing type of Objects this serializer can handle.
112
+ * Note that this information is not guaranteed to be exact -- it
113
+ * may be a more generic (super-type) -- but it should not be
114
+ * incorrect (return a non-related type).
115
+ *<p>
116
+ * Default implementation will return null, which essentially means
117
+ * same as returning <code>Object.class</code> would; that is, that
118
+ * nothing is known about handled type.
119
+ *<p>
120
+ */
121
+ public Class<T> handledType() { return null; }
122
+
123
+ /*
124
+ /**********************************************************
125
+ /* Helper class(es)
126
+ /**********************************************************
127
+ */
128
+
129
+ /**
130
+ * This marker class is only to be used with annotations, to
131
+ * indicate that <b>no serializer is configured</b>.
132
+ *<p>
133
+ * Specifically, this class is to be used as the marker for
134
+ * annotation {@link sh.calaba.org.codehaus.jackson.map.annotate.JsonSerialize}.
135
+ */
136
+ public abstract static class None
137
+ extends JsonSerializer<Object> { }
138
+ }
@@ -0,0 +1,31 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import java.io.IOException;
4
+
5
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
6
+
7
+ /**
8
+ * Abstract class that defines API used for deserializing JSON content
9
+ * field names into Java Map keys. These deserializers are only used
10
+ * if the Map key class is not <code>String</code> or <code>Object</code>.
11
+ */
12
+ public abstract class KeyDeserializer
13
+ {
14
+ /**
15
+ * Method called to deserialize a {@link java.util.Map} key from JSON property name.
16
+ */
17
+ public abstract Object deserializeKey(String key, DeserializationContext ctxt)
18
+ throws IOException, JsonProcessingException;
19
+
20
+ /**
21
+ * This marker class is only to be used with annotations, to
22
+ * indicate that <b>no deserializer is configured</b>.
23
+ *<p>
24
+ * Specifically, this class is to be used as the marker for
25
+ * annotation {@link sh.calaba.org.codehaus.jackson.map.annotate.JsonDeserialize}.
26
+ *
27
+ * @since 1.3
28
+ */
29
+ public abstract static class None
30
+ extends KeyDeserializer { }
31
+ }
@@ -0,0 +1,21 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
4
+
5
+ /**
6
+ * Interface that defines API for simple extensions that can provide additional deserializers
7
+ * for deserializer Map keys of various types, from JSON property names.
8
+ * Access is by a single callback method; instance is to either return
9
+ * a configured {@link KeyDeserializer} for specified type, or null to indicate that it
10
+ * does not support handling of the type. In latter case, further calls can be made
11
+ * for other providers; in former case returned key deserializer is used for handling of
12
+ * key instances of specified type.
13
+ *
14
+ * @since 1.8
15
+ */
16
+ public interface KeyDeserializers
17
+ {
18
+ public KeyDeserializer findKeyDeserializer(JavaType type, DeserializationConfig config,
19
+ BeanDescription beanDesc, BeanProperty property)
20
+ throws JsonMappingException;
21
+ }
@@ -0,0 +1,1154 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import java.text.DateFormat;
4
+ import java.util.HashMap;
5
+ import java.util.Map;
6
+
7
+ import sh.calaba.org.codehaus.jackson.annotate.JsonAutoDetect;
8
+ import sh.calaba.org.codehaus.jackson.annotate.JsonMethod;
9
+ import sh.calaba.org.codehaus.jackson.map.introspect.Annotated;
10
+ import sh.calaba.org.codehaus.jackson.map.introspect.VisibilityChecker;
11
+ import sh.calaba.org.codehaus.jackson.map.jsontype.SubtypeResolver;
12
+ import sh.calaba.org.codehaus.jackson.map.jsontype.TypeIdResolver;
13
+ import sh.calaba.org.codehaus.jackson.map.jsontype.TypeResolverBuilder;
14
+ import sh.calaba.org.codehaus.jackson.map.jsontype.impl.StdSubtypeResolver;
15
+ import sh.calaba.org.codehaus.jackson.map.type.ClassKey;
16
+ import sh.calaba.org.codehaus.jackson.map.type.TypeBindings;
17
+ import sh.calaba.org.codehaus.jackson.map.type.TypeFactory;
18
+ import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
19
+ import sh.calaba.org.codehaus.jackson.map.util.StdDateFormat;
20
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
21
+ import sh.calaba.org.codehaus.jackson.type.TypeReference;
22
+
23
+ /**
24
+ * Interface that defines functionality accessible through both
25
+ * serialization and deserialization configuration objects;
26
+ * accessors to mode-independent configuration settings
27
+ * and such.
28
+ *<p>
29
+ * As of version 1.9, the goal is to make this class eventually immutable.
30
+ * Because of this, existing methods that allow changing state of this
31
+ * instance are deprecated in favor of methods that create new instances
32
+ * with different configuration ("fluent factories").
33
+ * One major remaining issue is that of handling mix-in annotations, which
34
+ * still represent a bit of mutable state; may need to implement a
35
+ * functional-style immutable map for storing those.
36
+ *
37
+ * @since 1.2 -- major change in 1.8, changed from interface to
38
+ * abstract class
39
+ */
40
+ public abstract class MapperConfig<T extends MapperConfig<T>>
41
+ implements ClassIntrospector.MixInResolver
42
+ {
43
+ /*
44
+ /**********************************************************
45
+ /* Constants, default values
46
+ /**********************************************************
47
+ */
48
+
49
+ /**
50
+ * This is the default {@link DateFormat} used unless overridden by
51
+ * custom implementation.
52
+ */
53
+ protected final static DateFormat DEFAULT_DATE_FORMAT = StdDateFormat.instance;
54
+
55
+ /*
56
+ /**********************************************************
57
+ /* Simple immutable basic settings
58
+ /**********************************************************
59
+ */
60
+
61
+ /**
62
+ * Immutable container object for simple configuration settings.
63
+ *<p>
64
+ * Note: ideally this would be final, but until we can eliminate
65
+ * mutators, must keep it mutable.
66
+ */
67
+ protected Base _base;
68
+
69
+ /*
70
+ /**********************************************************
71
+ /* Mix-in annotations
72
+ /**********************************************************
73
+ */
74
+
75
+ /**
76
+ * Mapping that defines how to apply mix-in annotations: key is
77
+ * the type to received additional annotations, and value is the
78
+ * type that has annotations to "mix in".
79
+ *<p>
80
+ * Annotations associated with the value classes will be used to
81
+ * override annotations of the key class, associated with the
82
+ * same field or method. They can be further masked by sub-classes:
83
+ * you can think of it as injecting annotations between the target
84
+ * class and its sub-classes (or interfaces)
85
+ *
86
+ * @since 1.2
87
+ */
88
+ protected HashMap<ClassKey,Class<?>> _mixInAnnotations;
89
+
90
+ /**
91
+ * Flag used to detect when a copy if mix-in annotations is
92
+ * needed: set when current copy is shared, cleared when a
93
+ * fresh copy is made
94
+ *
95
+ * @since 1.2
96
+ */
97
+ protected boolean _mixInAnnotationsShared;
98
+
99
+ /*
100
+ /**********************************************************
101
+ /* "Late bound" settings
102
+ /**********************************************************
103
+ */
104
+
105
+ /**
106
+ * Registered concrete subtypes that can be used instead of (or
107
+ * in addition to) ones declared using annotations.
108
+ * Unlike most other settings, it is not configured as early
109
+ * as it is set, but rather only when a non-shared instance
110
+ * is constructed by <code>ObjectMapper</code> (or -Reader
111
+ * or -Writer)
112
+ *<p>
113
+ * Note: this is the only property left as non-final, to allow
114
+ * lazy construction of the instance as necessary.
115
+ *
116
+ * @since 1.6
117
+ */
118
+ protected SubtypeResolver _subtypeResolver;
119
+
120
+ /*
121
+ /**********************************************************
122
+ /* Life-cycle: constructors
123
+ /**********************************************************
124
+ */
125
+
126
+ protected MapperConfig(ClassIntrospector<? extends BeanDescription> ci, AnnotationIntrospector ai,
127
+ VisibilityChecker<?> vc, SubtypeResolver str, PropertyNamingStrategy pns, TypeFactory tf,
128
+ HandlerInstantiator hi)
129
+ {
130
+ _base = new Base(ci, ai, vc, pns, tf, null, DEFAULT_DATE_FORMAT, hi);
131
+ _subtypeResolver = str;
132
+ // by default, assumed to be shared; only cleared when explicit copy is made
133
+ _mixInAnnotationsShared = true;
134
+ }
135
+
136
+ /**
137
+ * Simple copy constructor
138
+ *
139
+ * @since 1.8
140
+ */
141
+ protected MapperConfig(MapperConfig<T> src) {
142
+ this(src, src._base, src._subtypeResolver);
143
+ }
144
+
145
+ /**
146
+ * @since 1.8
147
+ */
148
+ protected MapperConfig(MapperConfig<T> src, MapperConfig.Base base, SubtypeResolver str)
149
+ {
150
+ _base = base;
151
+ _subtypeResolver = str;
152
+ // by default, assumed to be shared; only cleared when explicit copy is made
153
+ _mixInAnnotationsShared = true;
154
+ _mixInAnnotations = src._mixInAnnotations;
155
+ }
156
+
157
+ /*
158
+ /**********************************************************
159
+ /* Life-cycle: factory methods
160
+ /**********************************************************
161
+ */
162
+
163
+ /**
164
+ * Method that checks class annotations that the argument Object has,
165
+ * and modifies settings of this configuration object accordingly,
166
+ * similar to how those annotations would affect actual value classes
167
+ * annotated with them, but with global scope. Note that not all
168
+ * annotations have global significance, and thus only subset of
169
+ * Jackson annotations will have any effect.
170
+ *
171
+ * @deprecated Since 1.9, it is preferably to explicitly configure
172
+ * instances; this method also modifies existing instance which is
173
+ * against immutable design goals of this class.
174
+ */
175
+ @Deprecated
176
+ public abstract void fromAnnotations(Class<?> cls);
177
+
178
+ /**
179
+ * Method to use for constructing an instance that is not shared
180
+ * between multiple operations but only used for a single one
181
+ * (which may be this instance, if it is immutable; if not, a copy
182
+ * is constructed with same settings)
183
+ *
184
+ * @since 1.8
185
+ */
186
+ public abstract T createUnshared(SubtypeResolver subtypeResolver);
187
+
188
+ /**
189
+ * Method for constructing and returning a new instance with different
190
+ * {@link ClassIntrospector}
191
+ * to use.
192
+ *<p>
193
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
194
+ * if directly calling this method.
195
+ *
196
+ * @since 1.8
197
+ */
198
+ public abstract T withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci);
199
+
200
+ /**
201
+ * Method for constructing and returning a new instance with different
202
+ * {@link AnnotationIntrospector} to use (replacing old one).
203
+ *<p>
204
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
205
+ * if directly calling this method.
206
+ *
207
+ * @since 1.8
208
+ */
209
+ public abstract T withAnnotationIntrospector(AnnotationIntrospector ai);
210
+
211
+ /**
212
+ * Method for constructing and returning a new instance with different
213
+ * {@link VisibilityChecker}
214
+ * to use.
215
+ *<p>
216
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
217
+ * if directly calling this method.
218
+ *
219
+ * @since 1.8
220
+ */
221
+ public abstract T withVisibilityChecker(VisibilityChecker<?> vc);
222
+
223
+ /**
224
+ * Method for constructing and returning a new instance with different
225
+ * minimal visibility level for specified property type
226
+ *<p>
227
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
228
+ * if directly calling this method.
229
+ *
230
+ * @since 1.9
231
+ */
232
+ public abstract T withVisibility(JsonMethod forMethod, JsonAutoDetect.Visibility visibility);
233
+
234
+ /**
235
+ * Method for constructing and returning a new instance with different
236
+ * {@link TypeResolverBuilder}
237
+ * to use.
238
+ *<p>
239
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
240
+ * if directly calling this method.
241
+ *
242
+ * @since 1.8
243
+ */
244
+ public abstract T withTypeResolverBuilder(TypeResolverBuilder<?> trb);
245
+
246
+ /**
247
+ * Method for constructing and returning a new instance with different
248
+ * {@link SubtypeResolver}
249
+ * to use.
250
+ *<p>
251
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
252
+ * if directly calling this method.
253
+ *
254
+ * @since 1.8
255
+ */
256
+ public abstract T withSubtypeResolver(SubtypeResolver str);
257
+
258
+ /**
259
+ * Method for constructing and returning a new instance with different
260
+ * {@link PropertyNamingStrategy}
261
+ * to use.
262
+ *<p>
263
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
264
+ * if directly calling this method.
265
+ *
266
+ * @since 1.8
267
+ */
268
+ public abstract T withPropertyNamingStrategy(PropertyNamingStrategy strategy);
269
+
270
+ /**
271
+ * Method for constructing and returning a new instance with different
272
+ * {@link TypeFactory}
273
+ * to use.
274
+ *<p>
275
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
276
+ * if directly calling this method.
277
+ *
278
+ * @since 1.8
279
+ */
280
+ public abstract T withTypeFactory(TypeFactory typeFactory);
281
+
282
+ /**
283
+ * Method for constructing and returning a new instance with different
284
+ * {@link DateFormat}
285
+ * to use.
286
+ *<p>
287
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
288
+ * if directly calling this method.
289
+ *
290
+ * @since 1.8
291
+ */
292
+ public abstract T withDateFormat(DateFormat df);
293
+
294
+ /**
295
+ * Method for constructing and returning a new instance with different
296
+ * {@link HandlerInstantiator}
297
+ * to use.
298
+ *<p>
299
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
300
+ * if directly calling this method.
301
+ *
302
+ * @since 1.8
303
+ */
304
+ public abstract T withHandlerInstantiator(HandlerInstantiator hi);
305
+
306
+ /**
307
+ * Method for constructing and returning a new instance with additional
308
+ * {@link AnnotationIntrospector} inserted (as the highest priority one)
309
+ *
310
+ * @since 1.9
311
+ */
312
+ public abstract T withInsertedAnnotationIntrospector(AnnotationIntrospector introspector);
313
+
314
+ /**
315
+ * Method for constructing and returning a new instance with additional
316
+ * {@link AnnotationIntrospector} appended (as the lowest priority one)
317
+ *
318
+ * @since 1.9
319
+ */
320
+ public abstract T withAppendedAnnotationIntrospector(AnnotationIntrospector introspector);
321
+
322
+ /*
323
+ /**********************************************************
324
+ /* Configuration: simple features
325
+ /**********************************************************
326
+ */
327
+
328
+ /**
329
+ * Method for checking whether given feature is enabled or not
330
+ */
331
+ public abstract boolean isEnabled(ConfigFeature f);
332
+
333
+ /**
334
+ * Method for determining whether annotation processing is enabled or not
335
+ * (default settings are typically that it is enabled; must explicitly disable).
336
+ *
337
+ * @return True if annotation processing is enabled; false if not
338
+ *
339
+ * @since 1.8
340
+ */
341
+ public abstract boolean isAnnotationProcessingEnabled();
342
+
343
+ /**
344
+ * Accessor for determining whether it is ok to try to force override of access
345
+ * modifiers to be able to get or set values of non-public Methods, Fields;
346
+ * to invoke non-public Constructors, Methods; or to instantiate non-public
347
+ * Classes. By default this is enabled, but on some platforms it needs to be
348
+ * prevented since if this would violate security constraints and cause failures.
349
+ *
350
+ * @return True if access modifier overriding is allowed (and may be done for
351
+ * any Field, Method, Constructor or Class); false to prevent any attempts
352
+ * to override.
353
+ *
354
+ * @since 1.8
355
+ */
356
+ public abstract boolean canOverrideAccessModifiers();
357
+
358
+ /**
359
+ * Accessor for checking whether default settings for property handling
360
+ * indicate that properties should be alphabetically ordered or not.
361
+ *
362
+ * @since 1.9
363
+ */
364
+ public abstract boolean shouldSortPropertiesAlphabetically();
365
+
366
+ /*
367
+ /**********************************************************
368
+ /* Configuration: introspectors, mix-ins
369
+ /**********************************************************
370
+ */
371
+
372
+ public ClassIntrospector<? extends BeanDescription> getClassIntrospector() {
373
+ return _base.getClassIntrospector();
374
+ }
375
+
376
+ /**
377
+ * Method for getting {@link AnnotationIntrospector} configured
378
+ * to introspect annotation values used for configuration.
379
+ *<p>
380
+ * Non-final since it is actually overridden by sub-classes (for now?)
381
+ */
382
+ public AnnotationIntrospector getAnnotationIntrospector() {
383
+ return _base.getAnnotationIntrospector();
384
+ }
385
+
386
+ /**
387
+ * Method for registering specified {@link AnnotationIntrospector} as the highest
388
+ * priority introspector (will be chained with existing introspector(s) which
389
+ * will be used as fallbacks for cases this introspector does not handle)
390
+ *
391
+ * @param introspector Annotation introspector to register.
392
+ *
393
+ * @since 1.7
394
+ *
395
+ * @deprecated Since 1.9 use {@link #withInsertedAnnotationIntrospector(AnnotationIntrospector)} instead;
396
+ * this method is deprecated as it changes state, preventing immutability of instances
397
+ */
398
+ @Deprecated
399
+ public final void insertAnnotationIntrospector(AnnotationIntrospector introspector) {
400
+ _base = _base.withAnnotationIntrospector(AnnotationIntrospector.Pair.create(introspector,
401
+ getAnnotationIntrospector()));
402
+ }
403
+
404
+ /**
405
+ * Method for registering specified {@link AnnotationIntrospector} as the lowest
406
+ * priority introspector, chained with existing introspector(s) and called
407
+ * as fallback for cases not otherwise handled.
408
+ *
409
+ * @param introspector Annotation introspector to register.
410
+ *
411
+ * @since 1.7
412
+ *
413
+ * @deprecated Since 1.9 use {@link #withAppendedAnnotationIntrospector(AnnotationIntrospector)} instead;
414
+ * this method is deprecated as it changes state, preventing immutability of instances
415
+ */
416
+ @Deprecated
417
+ public final void appendAnnotationIntrospector(AnnotationIntrospector introspector) {
418
+ _base = _base.withAnnotationIntrospector(AnnotationIntrospector.Pair.create(getAnnotationIntrospector(),
419
+ introspector));
420
+ }
421
+
422
+ /**
423
+ * Accessor for object used for determining whether specific property elements
424
+ * (method, constructors, fields) can be auto-detected based on
425
+ * their visibility (access modifiers). Can be changed to allow
426
+ * different minimum visibility levels for auto-detection. Note
427
+ * that this is the global handler; individual types (classes)
428
+ * can further override active checker used (using
429
+ * {@link JsonAutoDetect} annotation)
430
+ *
431
+ * @since 1.5
432
+ */
433
+ public VisibilityChecker<?> getDefaultVisibilityChecker() {
434
+ return _base.getVisibilityChecker();
435
+ }
436
+
437
+ /**
438
+ * @since 1.8
439
+ */
440
+ public final PropertyNamingStrategy getPropertyNamingStrategy() {
441
+ return _base.getPropertyNamingStrategy();
442
+ }
443
+
444
+ /**
445
+ * @since 1.8
446
+ */
447
+ public final HandlerInstantiator getHandlerInstantiator() {
448
+ return _base.getHandlerInstantiator();
449
+ }
450
+
451
+ /*
452
+ /**********************************************************
453
+ /* Configuration: mix-in annotations
454
+ /**********************************************************
455
+ */
456
+
457
+ /**
458
+ * Method to use for defining mix-in annotations to use for augmenting
459
+ * annotations that processable (serializable / deserializable)
460
+ * classes have.
461
+ * Mixing in is done when introspecting class annotations and properties.
462
+ * Map passed contains keys that are target classes (ones to augment
463
+ * with new annotation overrides), and values that are source classes
464
+ * (have annotations to use for augmentation).
465
+ * Annotations from source classes (and their supertypes)
466
+ * will <b>override</b>
467
+ * annotations that target classes (and their super-types) have.
468
+ *
469
+ * @since 1.2
470
+ */
471
+ public final void setMixInAnnotations(Map<Class<?>, Class<?>> sourceMixins)
472
+ {
473
+ HashMap<ClassKey,Class<?>> mixins = null;
474
+ if (sourceMixins != null && sourceMixins.size() > 0) {
475
+ mixins = new HashMap<ClassKey,Class<?>>(sourceMixins.size());
476
+ for (Map.Entry<Class<?>,Class<?>> en : sourceMixins.entrySet()) {
477
+ mixins.put(new ClassKey(en.getKey()), en.getValue());
478
+ }
479
+ }
480
+ _mixInAnnotationsShared = false;
481
+ _mixInAnnotations = mixins;
482
+ }
483
+
484
+ /**
485
+ * Method to use for adding mix-in annotations to use for augmenting
486
+ * specified class or interface. All annotations from
487
+ * <code>mixinSource</code> are taken to override annotations
488
+ * that <code>target</code> (or its supertypes) has.
489
+ *
490
+ * @since 1.2
491
+ *
492
+ * @param target Class (or interface) whose annotations to effectively override
493
+ * @param mixinSource Class (or interface) whose annotations are to
494
+ * be "added" to target's annotations, overriding as necessary
495
+ */
496
+ public final void addMixInAnnotations(Class<?> target, Class<?> mixinSource)
497
+ {
498
+ if (_mixInAnnotations == null) {
499
+ _mixInAnnotationsShared = false;
500
+ _mixInAnnotations = new HashMap<ClassKey,Class<?>>();
501
+ } else if (_mixInAnnotationsShared) {
502
+ _mixInAnnotationsShared = false;
503
+ _mixInAnnotations = new HashMap<ClassKey,Class<?>>(_mixInAnnotations);
504
+ }
505
+ _mixInAnnotations.put(new ClassKey(target), mixinSource);
506
+ }
507
+
508
+ // ClassIntrospector.MixInResolver impl:
509
+
510
+ /**
511
+ * Method that will check if there are "mix-in" classes (with mix-in
512
+ * annotations) for given class
513
+ *
514
+ * @since 1.2
515
+ */
516
+ @Override
517
+ public final Class<?> findMixInClassFor(Class<?> cls) {
518
+ return (_mixInAnnotations == null) ? null : _mixInAnnotations.get(new ClassKey(cls));
519
+ }
520
+
521
+ /**
522
+ * @since 1.8.1
523
+ */
524
+ public final int mixInCount() {
525
+ return (_mixInAnnotations == null) ? 0 : _mixInAnnotations.size();
526
+ }
527
+
528
+ /*
529
+ /**********************************************************
530
+ /* Configuration: type and subtype handling
531
+ /**********************************************************
532
+ */
533
+
534
+ /**
535
+ * Method called to locate a type info handler for types that do not have
536
+ * one explicitly declared via annotations (or other configuration).
537
+ * If such default handler is configured, it is returned; otherwise
538
+ * null is returned.
539
+ *
540
+ * @since 1.5
541
+ */
542
+ public final TypeResolverBuilder<?> getDefaultTyper(JavaType baseType) {
543
+ return _base.getTypeResolverBuilder();
544
+ }
545
+
546
+ /**
547
+ * Accessor for object used for finding out all reachable subtypes
548
+ * for supertypes; needed when a logical type name is used instead
549
+ * of class name (or custom scheme).
550
+ *
551
+ * @since 1.6
552
+ */
553
+ public final SubtypeResolver getSubtypeResolver() {
554
+ if (_subtypeResolver == null) {
555
+ _subtypeResolver = new StdSubtypeResolver();
556
+ }
557
+ return _subtypeResolver;
558
+ }
559
+
560
+ /**
561
+ * @since 1.8
562
+ */
563
+ public final TypeFactory getTypeFactory() {
564
+ return _base.getTypeFactory();
565
+ }
566
+
567
+ /**
568
+ * Helper method that will construct {@link JavaType} for given
569
+ * raw class.
570
+ * This is a simple short-cut for:
571
+ *<pre>
572
+ * getTypeFactory().constructType(cls);
573
+ *</pre>
574
+ *
575
+ * @since 1.8
576
+ */
577
+ public final JavaType constructType(Class<?> cls) {
578
+ return getTypeFactory().constructType(cls, (TypeBindings) null);
579
+ }
580
+
581
+ /**
582
+ * Helper method that will construct {@link JavaType} for given
583
+ * type reference
584
+ * This is a simple short-cut for:
585
+ *<pre>
586
+ * getTypeFactory().constructType(valueTypeRef);
587
+ *</pre>
588
+ *
589
+ * @since 1.9
590
+ */
591
+ public final JavaType constructType(TypeReference<?> valueTypeRef) {
592
+ return getTypeFactory().constructType(valueTypeRef.getType(), (TypeBindings) null);
593
+ }
594
+
595
+ /**
596
+ * @since 1.9.1
597
+ */
598
+ public JavaType constructSpecializedType(JavaType baseType, Class<?> subclass) {
599
+ return getTypeFactory().constructSpecializedType(baseType, subclass);
600
+ }
601
+
602
+ /*
603
+ /**********************************************************
604
+ /* Configuration: other
605
+ /**********************************************************
606
+ */
607
+
608
+ /**
609
+ * Method for accessing currently configured (textual) date format
610
+ * that will be used for reading or writing date values (in case
611
+ * of writing, only if textual output is configured; not if dates
612
+ * are to be serialized as time stamps).
613
+ *<p>
614
+ * Note that typically {@link DateFormat} instances are <b>not thread-safe</b>
615
+ * (at least ones provided by JDK):
616
+ * this means that calling code should clone format instance before
617
+ * using it.
618
+ *<p>
619
+ * This method is usually only called by framework itself, since there
620
+ * are convenience methods available via
621
+ * {@link DeserializationContext} and {@link SerializerProvider} that
622
+ * take care of cloning and thread-safe reuse.
623
+ */
624
+ public final DateFormat getDateFormat() { return _base.getDateFormat(); }
625
+
626
+ /**
627
+ * Accessor for getting bean description that only contains class
628
+ * annotations: useful if no getter/setter/creator information is needed.
629
+ *
630
+ * @since 1.7
631
+ */
632
+ @SuppressWarnings("unchecked")
633
+ public <DESC extends BeanDescription> DESC introspectClassAnnotations(Class<?> cls) {
634
+ return (DESC) introspectClassAnnotations(constructType(cls));
635
+ }
636
+
637
+ /**
638
+ * Accessor for getting bean description that only contains class
639
+ * annotations: useful if no getter/setter/creator information is needed.
640
+ *
641
+ * @since 1.9
642
+ */
643
+ public abstract <DESC extends BeanDescription> DESC introspectClassAnnotations(JavaType type);
644
+
645
+ /**
646
+ * Accessor for getting bean description that only contains immediate class
647
+ * annotations: ones from the class, and its direct mix-in, if any, but
648
+ * not from super types.
649
+ *
650
+ * @since 1.7
651
+ */
652
+ @SuppressWarnings("unchecked")
653
+ public <DESC extends BeanDescription> DESC introspectDirectClassAnnotations(Class<?> cls) {
654
+ return (DESC) introspectDirectClassAnnotations(constructType(cls));
655
+ }
656
+ /**
657
+ * Accessor for getting bean description that only contains immediate class
658
+ * annotations: ones from the class, and its direct mix-in, if any, but
659
+ * not from super types.
660
+ */
661
+ public abstract <DESC extends BeanDescription> DESC introspectDirectClassAnnotations(JavaType type);
662
+
663
+ /*
664
+ /**********************************************************
665
+ /* Methods for instantiating handlers
666
+ /**********************************************************
667
+ */
668
+
669
+ /**
670
+ * Method that can be called to obtain an instance of <code>TypeIdResolver</code> of
671
+ * specified type.
672
+ *
673
+ * @since 1.8
674
+ */
675
+ public TypeResolverBuilder<?> typeResolverBuilderInstance(Annotated annotated,
676
+ Class<? extends TypeResolverBuilder<?>> builderClass)
677
+ {
678
+ HandlerInstantiator hi = getHandlerInstantiator();
679
+ if (hi != null) {
680
+ TypeResolverBuilder<?> builder = hi.typeResolverBuilderInstance(this, annotated, builderClass);
681
+ if (builder != null) {
682
+ return builder;
683
+ }
684
+ }
685
+ return (TypeResolverBuilder<?>) ClassUtil.createInstance(builderClass, canOverrideAccessModifiers());
686
+ }
687
+
688
+ /**
689
+ * Method that can be called to obtain an instance of <code>TypeIdResolver</code> of
690
+ * specified type.
691
+ *
692
+ * @since 1.8
693
+ */
694
+ public TypeIdResolver typeIdResolverInstance(Annotated annotated,
695
+ Class<? extends TypeIdResolver> resolverClass)
696
+ {
697
+ HandlerInstantiator hi = getHandlerInstantiator();
698
+ if (hi != null) {
699
+ TypeIdResolver builder = hi.typeIdResolverInstance(this, annotated, resolverClass);
700
+ if (builder != null) {
701
+ return builder;
702
+ }
703
+ }
704
+ return (TypeIdResolver) ClassUtil.createInstance(resolverClass, canOverrideAccessModifiers());
705
+ }
706
+
707
+ /*
708
+ /**********************************************************
709
+ /* Deprecated methods
710
+ /**********************************************************
711
+ */
712
+
713
+ /**
714
+ * Method for replacing existing annotation introspector(s) with specified
715
+ * introspector.
716
+ * Since this method modifies state of configuration object directly, its use
717
+ * is not recommended.
718
+ *
719
+ * @deprecated Since 1.8, use either
720
+ * {@link #withAnnotationIntrospector(AnnotationIntrospector)} or
721
+ * Module API instead
722
+ */
723
+ @Deprecated
724
+ public final void setAnnotationIntrospector(AnnotationIntrospector ai) {
725
+ _base = _base.withAnnotationIntrospector(ai);
726
+ }
727
+
728
+ /**
729
+ * Method that will define specific date format to use for reading/writing
730
+ * Date and Calendar values.
731
+ * If null is passed, will use {@link StdDateFormat}.
732
+ * Instance is used as is, without creating a clone.
733
+ * Format object in use can be accessed using {@link #getDateFormat}.
734
+ *
735
+ * @param df Date format to use, if not null; if null, the default format
736
+ * will be used
737
+ *
738
+ * @deprecated As of version 1.8, it is preferable to call method in
739
+ * {@link ObjectMapper} instead; or construct new instance with
740
+ * {@link #withDateFormat(DateFormat)}
741
+ */
742
+ @Deprecated
743
+ public void setDateFormat(DateFormat df) {
744
+ if (df == null) {
745
+ df = DEFAULT_DATE_FORMAT;
746
+ }
747
+ _base = _base.withDateFormat(df);
748
+ }
749
+
750
+ /*
751
+ /**********************************************************
752
+ /* Helper interface used with simple on/off features
753
+ /**********************************************************
754
+ */
755
+
756
+ /**
757
+ * Interface that actual Feature enumerations used by
758
+ * {@link MapperConfig} implementations must implement.
759
+ * Necessary since enums can not be extended using normal
760
+ * inheritance, but can implement interfaces
761
+ *
762
+ * @since 1.9
763
+ */
764
+ public interface ConfigFeature
765
+ {
766
+ /**
767
+ * Accessor for checking whether this feature is enabled by default.
768
+ */
769
+ public boolean enabledByDefault();
770
+
771
+ /**
772
+ * Returns bit mask for this feature instance
773
+ */
774
+ public int getMask();
775
+ }
776
+
777
+ /*
778
+ /**********************************************************
779
+ /* Helper class to contain basic state needed to implement
780
+ /* MapperConfig.
781
+ /**********************************************************
782
+ */
783
+
784
+ /**
785
+ * Immutable container class used to store simple configuration
786
+ * settings. Since instances are fully immutable, instances can
787
+ * be freely shared and used without synchronization.
788
+ */
789
+ public static class Base
790
+ {
791
+ /*
792
+ /**********************************************************
793
+ /* Configuration settings; introspection, related
794
+ /**********************************************************
795
+ */
796
+
797
+ /**
798
+ * Introspector used to figure out Bean properties needed for bean serialization
799
+ * and deserialization. Overridable so that it is possible to change low-level
800
+ * details of introspection, like adding new annotation types.
801
+ */
802
+ protected final ClassIntrospector<? extends BeanDescription> _classIntrospector;
803
+
804
+ /**
805
+ * Introspector used for accessing annotation value based configuration.
806
+ */
807
+ protected final AnnotationIntrospector _annotationIntrospector;
808
+
809
+ /**
810
+ * Object used for determining whether specific property elements
811
+ * (method, constructors, fields) can be auto-detected based on
812
+ * their visibility (access modifiers). Can be changed to allow
813
+ * different minimum visibility levels for auto-detection. Note
814
+ * that this is the global handler; individual types (classes)
815
+ * can further override active checker used (using
816
+ * {@link JsonAutoDetect} annotation)
817
+ *
818
+ * @since 1.5
819
+ */
820
+ protected final VisibilityChecker<?> _visibilityChecker;
821
+
822
+ /**
823
+ * Custom property naming strategy in use, if any.
824
+ *
825
+ * @since 1.8
826
+ */
827
+ protected final PropertyNamingStrategy _propertyNamingStrategy;
828
+
829
+ /**
830
+ * Specific factory used for creating {@link JavaType} instances;
831
+ * needed to allow modules to add more custom type handling
832
+ * (mostly to support types of non-Java JVM languages)
833
+ */
834
+ protected final TypeFactory _typeFactory;
835
+
836
+ /*
837
+ /**********************************************************
838
+ /* Configuration settings; type resolution
839
+ /**********************************************************
840
+ */
841
+
842
+ /**
843
+ * Type information handler used for "untyped" values (ones declared
844
+ * to have type <code>Object.class</code>)
845
+ *
846
+ * @since 1.5
847
+ */
848
+ protected final TypeResolverBuilder<?> _typeResolverBuilder;
849
+
850
+ /*
851
+ /**********************************************************
852
+ /* Configuration settings; other
853
+ /**********************************************************
854
+ */
855
+
856
+ /**
857
+ * Custom date format to use for de-serialization. If specified, will be
858
+ * used instead of {@link sh.calaba.org.codehaus.jackson.map.util.StdDateFormat}.
859
+ *<p>
860
+ * Note that the configured format object will be cloned once per
861
+ * deserialization process (first time it is needed)
862
+ */
863
+ protected final DateFormat _dateFormat;
864
+
865
+ /**
866
+ * Object used for creating instances of handlers (serializers, deserializers,
867
+ * type and type id resolvers), given class to instantiate. This is typically
868
+ * used to do additional configuration (with dependency injection, for example)
869
+ * beyond simply construction of instances; or to use alternative constructors.
870
+ */
871
+ protected final HandlerInstantiator _handlerInstantiator;
872
+
873
+ /*
874
+ /**********************************************************
875
+ /* Construction
876
+ /**********************************************************
877
+ */
878
+
879
+ public Base(ClassIntrospector<? extends BeanDescription> ci, AnnotationIntrospector ai,
880
+ VisibilityChecker<?> vc, PropertyNamingStrategy pns, TypeFactory tf,
881
+ TypeResolverBuilder<?> typer, DateFormat dateFormat, HandlerInstantiator hi)
882
+ {
883
+ _classIntrospector = ci;
884
+ _annotationIntrospector = ai;
885
+ _visibilityChecker = vc;
886
+ _propertyNamingStrategy = pns;
887
+ _typeFactory = tf;
888
+ _typeResolverBuilder = typer;
889
+ _dateFormat = dateFormat;
890
+ _handlerInstantiator = hi;
891
+ }
892
+
893
+ /*
894
+ /**********************************************************
895
+ /* Factory methods
896
+ /**********************************************************
897
+ */
898
+
899
+ public Base withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci) {
900
+ return new Base(ci, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
901
+ _typeResolverBuilder, _dateFormat, _handlerInstantiator);
902
+ }
903
+
904
+ public Base withAnnotationIntrospector(AnnotationIntrospector ai) {
905
+ return new Base(_classIntrospector, ai, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
906
+ _typeResolverBuilder, _dateFormat, _handlerInstantiator);
907
+ }
908
+
909
+ public Base withInsertedAnnotationIntrospector(AnnotationIntrospector ai) {
910
+ return withAnnotationIntrospector(AnnotationIntrospector.Pair.create(ai, _annotationIntrospector));
911
+ }
912
+
913
+ public Base withAppendedAnnotationIntrospector(AnnotationIntrospector ai) {
914
+ return withAnnotationIntrospector(AnnotationIntrospector.Pair.create(_annotationIntrospector, ai));
915
+ }
916
+
917
+ public Base withVisibilityChecker(VisibilityChecker<?> vc) {
918
+ return new Base(_classIntrospector, _annotationIntrospector, vc, _propertyNamingStrategy, _typeFactory,
919
+ _typeResolverBuilder, _dateFormat, _handlerInstantiator);
920
+ }
921
+
922
+ public Base withVisibility(JsonMethod forMethod, JsonAutoDetect.Visibility visibility) {
923
+ return new Base(_classIntrospector, _annotationIntrospector,
924
+ _visibilityChecker.withVisibility(forMethod, visibility),
925
+ _propertyNamingStrategy, _typeFactory,
926
+ _typeResolverBuilder, _dateFormat, _handlerInstantiator);
927
+ }
928
+
929
+ public Base withPropertyNamingStrategy(PropertyNamingStrategy pns) {
930
+ return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, pns, _typeFactory,
931
+ _typeResolverBuilder, _dateFormat, _handlerInstantiator);
932
+ }
933
+
934
+ public Base withTypeFactory(TypeFactory tf) {
935
+ return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, tf,
936
+ _typeResolverBuilder, _dateFormat, _handlerInstantiator);
937
+ }
938
+
939
+ public Base withTypeResolverBuilder(TypeResolverBuilder<?> typer) {
940
+ return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
941
+ typer, _dateFormat, _handlerInstantiator);
942
+ }
943
+
944
+ public Base withDateFormat(DateFormat df) {
945
+ return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
946
+ _typeResolverBuilder, df, _handlerInstantiator);
947
+ }
948
+
949
+ public Base withHandlerInstantiator(HandlerInstantiator hi) {
950
+ return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
951
+ _typeResolverBuilder, _dateFormat, hi);
952
+ }
953
+
954
+ /*
955
+ /**********************************************************
956
+ /* API
957
+ /**********************************************************
958
+ */
959
+
960
+ public ClassIntrospector<? extends BeanDescription> getClassIntrospector() {
961
+ return _classIntrospector;
962
+ }
963
+
964
+ public AnnotationIntrospector getAnnotationIntrospector() {
965
+ return _annotationIntrospector;
966
+ }
967
+
968
+
969
+ public VisibilityChecker<?> getVisibilityChecker() {
970
+ return _visibilityChecker;
971
+ }
972
+
973
+ public PropertyNamingStrategy getPropertyNamingStrategy() {
974
+ return _propertyNamingStrategy;
975
+ }
976
+
977
+ public TypeFactory getTypeFactory() {
978
+ return _typeFactory;
979
+ }
980
+
981
+ public TypeResolverBuilder<?> getTypeResolverBuilder() {
982
+ return _typeResolverBuilder;
983
+ }
984
+
985
+ public DateFormat getDateFormat() {
986
+ return _dateFormat;
987
+ }
988
+
989
+ public HandlerInstantiator getHandlerInstantiator() {
990
+ return _handlerInstantiator;
991
+ }
992
+ }
993
+
994
+ /*
995
+ /**********************************************************
996
+ /* Basic extension; added to avoid having to change generic
997
+ /* signature of MapperConfig
998
+ /*
999
+ /* NOTE: May be merge in MapperConfig for 2.0, depending
1000
+ /* on how much we value backwards compatibility
1001
+ /**********************************************************
1002
+ */
1003
+
1004
+ static abstract class Impl<CFG extends MapperConfig.ConfigFeature,
1005
+ T extends Impl<CFG,T>>
1006
+ extends MapperConfig<T>
1007
+ {
1008
+ /**
1009
+ *<p>
1010
+ * Note: moved to base class in 1.9; was stored by sub-class earlier
1011
+ */
1012
+ protected int _featureFlags;
1013
+
1014
+ /*
1015
+ /**********************************************************
1016
+ /* Construction
1017
+ /**********************************************************
1018
+ */
1019
+
1020
+ protected Impl(ClassIntrospector<? extends BeanDescription> ci, AnnotationIntrospector ai,
1021
+ VisibilityChecker<?> vc, SubtypeResolver str, PropertyNamingStrategy pns, TypeFactory tf,
1022
+ HandlerInstantiator hi,
1023
+ int defaultFeatures)
1024
+ {
1025
+ super(ci, ai, vc, str, pns, tf, hi);
1026
+ _featureFlags = defaultFeatures;
1027
+ }
1028
+
1029
+ protected Impl(Impl<CFG,T> src) {
1030
+ super(src);
1031
+ _featureFlags = src._featureFlags;
1032
+ }
1033
+
1034
+ protected Impl(Impl<CFG,T> src, int features) {
1035
+ super(src);
1036
+ _featureFlags = features;
1037
+ }
1038
+
1039
+ /**
1040
+ * @since 1.8
1041
+ */
1042
+ protected Impl(Impl<CFG,T> src, MapperConfig.Base base, SubtypeResolver str)
1043
+ {
1044
+ super(src, base, str);
1045
+ _featureFlags = src._featureFlags;
1046
+ }
1047
+
1048
+ /**
1049
+ * Method that calculates bit set (flags) of all features that
1050
+ * are enabled by default.
1051
+ */
1052
+ static <F extends Enum<F> & MapperConfig.ConfigFeature> int collectFeatureDefaults(Class<F> enumClass)
1053
+ {
1054
+ int flags = 0;
1055
+ for (F value : enumClass.getEnumConstants()) {
1056
+ if (value.enabledByDefault()) {
1057
+ flags |= value.getMask();
1058
+ }
1059
+ }
1060
+ return flags;
1061
+ }
1062
+
1063
+ /*
1064
+ /**********************************************************
1065
+ /* Additional fluent-factory methods
1066
+ /**********************************************************
1067
+ */
1068
+
1069
+ /**
1070
+ * Fluent factory method that will construct and return a new configuration
1071
+ * object instance with specified features enabled.
1072
+ *
1073
+ * @since 1.9
1074
+ */
1075
+ public abstract T with(CFG... features);
1076
+
1077
+ /**
1078
+ * Fluent factory method that will construct and return a new configuration
1079
+ * object instance with specified features disabled.
1080
+ *
1081
+ * @since 1.9
1082
+ */
1083
+ public abstract T without(CFG... features);
1084
+
1085
+ /*
1086
+ /**********************************************************
1087
+ /* Configuration: simple features
1088
+ /**********************************************************
1089
+ */
1090
+
1091
+ /* NOTE: this method was added in 1.9, but should be
1092
+ * removed from 2.0 -- overloads do not work nicely with
1093
+ * enums, so we better not try
1094
+ *<p>
1095
+ * Also note that we can NOT use type variable CFG here, because
1096
+ * non-generic base class had to use base type.
1097
+ *
1098
+ * @Deprecated
1099
+ */
1100
+ @Override
1101
+ public boolean isEnabled(MapperConfig.ConfigFeature f) {
1102
+ return (_featureFlags & f.getMask()) != 0;
1103
+ }
1104
+
1105
+ /*
1106
+ /**********************************************************
1107
+ /* Configuration: deprecated methods
1108
+ /**********************************************************
1109
+ */
1110
+
1111
+ /**
1112
+ * Method for enabling specified feature.
1113
+ *
1114
+ * @deprecated Since 1.9, it is preferable to use {@link #with} instead;
1115
+ * this method is deprecated as it modifies current instance instead of
1116
+ * creating a new one (as the goal is to make this class immutable)
1117
+ */
1118
+ @Deprecated
1119
+ public void enable(CFG f) {
1120
+ _featureFlags |= f.getMask();
1121
+ }
1122
+
1123
+ /**
1124
+ * Method for disabling specified feature.
1125
+ *
1126
+ * @deprecated Since 1.9, it is preferable to use {@link #without} instead;
1127
+ * this method is deprecated as it modifies current instance instead of
1128
+ * creating a new one (as the goal is to make this class immutable)
1129
+ */
1130
+ @Deprecated
1131
+ public void disable(CFG f) {
1132
+ _featureFlags &= ~f.getMask();
1133
+ }
1134
+
1135
+ /**
1136
+ * Method for enabling or disabling specified feature.
1137
+ *
1138
+ * @deprecated Since 1.9, it is preferable to use {@link #with} and
1139
+ * {@link #without} methods instead;
1140
+ * this method is deprecated as it modifies current instance instead of
1141
+ * creating a new one (as the goal is to make this class immutable)
1142
+ */
1143
+ @SuppressWarnings("deprecation")
1144
+ @Deprecated
1145
+ public void set(CFG f, boolean state)
1146
+ {
1147
+ if (state) {
1148
+ enable(f);
1149
+ } else {
1150
+ disable(f);
1151
+ }
1152
+ }
1153
+ }
1154
+ }