calabash-android 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. data/CHANGES.txt +1 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +8 -0
  4. data/Rakefile +2 -0
  5. data/bin/calabash-android +42 -0
  6. data/bin/calabash-android-build.rb +37 -0
  7. data/bin/calabash-android-generate.rb +26 -0
  8. data/bin/calabash-android-helpers.rb +71 -0
  9. data/bin/calabash-android-run.rb +18 -0
  10. data/bin/calabash-android-setup.rb +392 -0
  11. data/calabash-android.gemspec +23 -0
  12. data/doc/calabash-android-help.txt +21 -0
  13. data/epl-v10.html +261 -0
  14. data/features-skeleton/.irbrc +16 -0
  15. data/features-skeleton/irb_android.sh +2 -0
  16. data/features-skeleton/my_first.feature +5 -0
  17. data/features-skeleton/step_definitions/calabash_steps.rb +1 -0
  18. data/features-skeleton/support/app_installation_hooks.rb +26 -0
  19. data/features-skeleton/support/app_life_cycle_hooks.rb +28 -0
  20. data/features-skeleton/support/env.rb +1 -0
  21. data/features-skeleton/support/hooks.rb +18 -0
  22. data/lib/calabash-android.rb +2 -0
  23. data/lib/calabash-android/calabash_steps.rb +18 -0
  24. data/lib/calabash-android/canned_steps.md +239 -0
  25. data/lib/calabash-android/color_helper.rb +13 -0
  26. data/lib/calabash-android/cucumber.rb +9 -0
  27. data/lib/calabash-android/lib/screenShotTaker.jar +0 -0
  28. data/lib/calabash-android/management/adb.rb +11 -0
  29. data/lib/calabash-android/management/app_installation.rb +21 -0
  30. data/lib/calabash-android/operations.rb +283 -0
  31. data/lib/calabash-android/steps/additions_manual_steps.rb +11 -0
  32. data/lib/calabash-android/steps/app_steps.rb +10 -0
  33. data/lib/calabash-android/steps/assert_steps.rb +32 -0
  34. data/lib/calabash-android/steps/check_box_steps.rb +3 -0
  35. data/lib/calabash-android/steps/context_menu_steps.rb +12 -0
  36. data/lib/calabash-android/steps/date_picker_steps.rb +8 -0
  37. data/lib/calabash-android/steps/enter_text_steps.rb +21 -0
  38. data/lib/calabash-android/steps/location_steps.rb +19 -0
  39. data/lib/calabash-android/steps/navigation_steps.rb +27 -0
  40. data/lib/calabash-android/steps/press_button_steps.rb +35 -0
  41. data/lib/calabash-android/steps/progress_steps.rb +49 -0
  42. data/lib/calabash-android/steps/rotation_steps.rb +8 -0
  43. data/lib/calabash-android/steps/screenshot_steps.rb +11 -0
  44. data/lib/calabash-android/steps/spinner_steps.rb +3 -0
  45. data/lib/calabash-android/steps/time_picker_steps.rb +8 -0
  46. data/lib/calabash-android/version.rb +6 -0
  47. data/test-server/AndroidManifest.xml +13 -0
  48. data/test-server/build.xml +192 -0
  49. data/test-server/calabash-js/src/calabash.js +125 -0
  50. data/test-server/calabash-js/src/set_text.js +132 -0
  51. data/test-server/instrumentation-backend/.classpath +10 -0
  52. data/test-server/instrumentation-backend/.project +33 -0
  53. data/test-server/instrumentation-backend/.settings/org.eclipse.jdt.core.prefs +12 -0
  54. data/test-server/instrumentation-backend/AndroidManifest.xml +15 -0
  55. data/test-server/instrumentation-backend/assets/foo.bar +0 -0
  56. data/test-server/instrumentation-backend/gen/com/lesspainful/simpleui/test/R.java +23 -0
  57. data/test-server/instrumentation-backend/libs/robotium-solo-2.5.jar +0 -0
  58. data/test-server/instrumentation-backend/project.properties +11 -0
  59. data/test-server/instrumentation-backend/res/drawable-hdpi/ic_launcher.png +0 -0
  60. data/test-server/instrumentation-backend/res/drawable-ldpi/ic_launcher.png +0 -0
  61. data/test-server/instrumentation-backend/res/drawable-mdpi/ic_launcher.png +0 -0
  62. data/test-server/instrumentation-backend/res/layout/main.xml +12 -0
  63. data/test-server/instrumentation-backend/res/values/strings.xml +7 -0
  64. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Command.java +48 -0
  65. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/InstrumentationBackend.java +196 -0
  66. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +64 -0
  67. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/TestHelpers.java +136 -0
  68. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Action.java +11 -0
  69. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Actions.java +113 -0
  70. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/NullAction.java +23 -0
  71. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonNumber.java +22 -0
  72. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonText.java +27 -0
  73. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressImageButtonNumber.java +22 -0
  74. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/WaitForButton.java +47 -0
  75. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/checkbox/ToggleCheckboxNumber.java +22 -0
  76. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressText.java +22 -0
  77. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuById.java +26 -0
  78. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByIndex.java +22 -0
  79. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByText.java +26 -0
  80. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/ClickOnScreen.java +31 -0
  81. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/Swipe.java +28 -0
  82. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/helpers/ListActions.java +26 -0
  83. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/LongPressListItems.java +22 -0
  84. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/PressListItems.java +22 -0
  85. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/location/FakeGPSLocation.java +79 -0
  86. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollDown.java +28 -0
  87. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollUp.java +28 -0
  88. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/DownKey.java +24 -0
  89. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/GoBack.java +22 -0
  90. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/PressMenu.java +26 -0
  91. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/SelectFromMenuByText.java +24 -0
  92. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/spinner/SelectSpinnerItemByContentDescription.java +43 -0
  93. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertText.java +31 -0
  94. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertTextOfSpecificTextViewByContentDescription.java +32 -0
  95. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextByIndex.java +22 -0
  96. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextFieldByContentDescription.java +33 -0
  97. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClickOnText.java +22 -0
  98. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByContentDescription.java +32 -0
  99. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByIndex.java +22 -0
  100. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByContentDescription.java +33 -0
  101. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByIndex.java +24 -0
  102. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByContentDescription.java +34 -0
  103. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByIndex.java +26 -0
  104. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/ClickOnViewById.java +63 -0
  105. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/LongPressOnViewById.java +34 -0
  106. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/Press.java +89 -0
  107. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/WaitForViewById.java +41 -0
  108. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/Wait.java +24 -0
  109. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForDialogClose.java +21 -0
  110. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForProgress.java +47 -0
  111. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForScreen.java +49 -0
  112. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForText.java +26 -0
  113. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java +109 -0
  114. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java +33 -0
  115. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java +33 -0
  116. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/EnterTextByCssSelector.java +99 -0
  117. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +43 -0
  118. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Query.java +24 -0
  119. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +99 -0
  120. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ScrollTo.java +74 -0
  121. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetPropertyByCssSelector.java +43 -0
  122. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +50 -0
  123. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Touch.java +44 -0
  124. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variant.java +413 -0
  125. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variants.java +90 -0
  126. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/FormatSchema.java +29 -0
  127. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonEncoding.java +47 -0
  128. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonFactory.java +937 -0
  129. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerationException.java +28 -0
  130. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerator.java +1197 -0
  131. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonLocation.java +141 -0
  132. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonNode.java +879 -0
  133. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParseException.java +23 -0
  134. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParser.java +1434 -0
  135. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonProcessingException.java +80 -0
  136. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonStreamContext.java +122 -0
  137. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonToken.java +161 -0
  138. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/ObjectCodec.java +157 -0
  139. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/PrettyPrinter.java +166 -0
  140. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/SerializableString.java +54 -0
  141. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Version.java +90 -0
  142. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Versioned.java +20 -0
  143. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JacksonAnnotation.java +20 -0
  144. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnyGetter.java +25 -0
  145. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnySetter.java +24 -0
  146. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAutoDetect.java +148 -0
  147. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonBackReference.java +41 -0
  148. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonCreator.java +19 -0
  149. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonGetter.java +35 -0
  150. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnore.java +57 -0
  151. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreProperties.java +48 -0
  152. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreType.java +33 -0
  153. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonManagedReference.java +41 -0
  154. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonMethod.java +90 -0
  155. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonProperty.java +38 -0
  156. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonPropertyOrder.java +46 -0
  157. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonRawValue.java +33 -0
  158. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSetter.java +33 -0
  159. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSubTypes.java +44 -0
  160. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeInfo.java +236 -0
  161. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeName.java +28 -0
  162. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonUnwrapped.java +76 -0
  163. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonValue.java +46 -0
  164. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonWriteNullProperties.java +34 -0
  165. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/package-info.java +16 -0
  166. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatDetector.java +176 -0
  167. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatMatcher.java +117 -0
  168. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/InputAccessor.java +130 -0
  169. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/MatchStrength.java +64 -0
  170. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/package-info.java +8 -0
  171. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ByteSourceBootstrapper.java +518 -0
  172. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/DefaultPrettyPrinter.java +13 -0
  173. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Indenter.java +23 -0
  174. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonGeneratorBase.java +570 -0
  175. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonNumericParserBase.java +20 -0
  176. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserBase.java +1067 -0
  177. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserMinimalBase.java +539 -0
  178. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonReadContext.java +188 -0
  179. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonWriteContext.java +178 -0
  180. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParser.java +1815 -0
  181. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParserBase.java +228 -0
  182. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/StreamBasedParserBase.java +197 -0
  183. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8Generator.java +1757 -0
  184. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8StreamParser.java +2966 -0
  185. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/WriterBasedGenerator.java +1815 -0
  186. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/package-info.java +6 -0
  187. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/BaseReader.java +117 -0
  188. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/CharacterEscapes.java +73 -0
  189. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/IOContext.java +239 -0
  190. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/InputDecorator.java +67 -0
  191. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/JsonStringEncoder.java +408 -0
  192. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/MergedStream.java +145 -0
  193. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberInput.java +303 -0
  194. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberOutput.java +398 -0
  195. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/OutputDecorator.java +40 -0
  196. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SegmentedStringWriter.java +104 -0
  197. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SerializedString.java +114 -0
  198. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF32Reader.java +214 -0
  199. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF8Writer.java +387 -0
  200. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/package.html +4 -0
  201. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AbstractTypeResolver.java +63 -0
  202. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AnnotationIntrospector.java +1485 -0
  203. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanDescription.java +171 -0
  204. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanProperty.java +123 -0
  205. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanPropertyDefinition.java +66 -0
  206. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ClassIntrospector.java +117 -0
  207. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualDeserializer.java +38 -0
  208. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualKeyDeserializer.java +33 -0
  209. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualSerializer.java +38 -0
  210. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationConfig.java +926 -0
  211. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationContext.java +262 -0
  212. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationProblemHandler.java +56 -0
  213. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerFactory.java +356 -0
  214. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerProvider.java +185 -0
  215. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Deserializers.java +339 -0
  216. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/HandlerInstantiator.java +115 -0
  217. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/InjectableValues.java +85 -0
  218. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonDeserializer.java +166 -0
  219. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonMappingException.java +335 -0
  220. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializable.java +34 -0
  221. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializableWithType.java +22 -0
  222. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializer.java +138 -0
  223. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializer.java +31 -0
  224. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializers.java +21 -0
  225. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MapperConfig.java +1154 -0
  226. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingIterator.java +190 -0
  227. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingJsonFactory.java +81 -0
  228. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Module.java +255 -0
  229. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectMapper.java +2885 -0
  230. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectReader.java +958 -0
  231. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectWriter.java +554 -0
  232. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/PropertyNamingStrategy.java +258 -0
  233. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableDeserializer.java +23 -0
  234. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableSerializer.java +23 -0
  235. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/RuntimeJsonMappingException.java +21 -0
  236. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializationConfig.java +1041 -0
  237. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerFactory.java +198 -0
  238. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerProvider.java +552 -0
  239. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Serializers.java +137 -0
  240. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeDeserializer.java +118 -0
  241. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeSerializer.java +164 -0
  242. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonInject.java +30 -0
  243. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonStdImpl.java +25 -0
  244. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonCachable.java +32 -0
  245. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonDeserialize.java +109 -0
  246. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonFilter.java +31 -0
  247. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonRootName.java +29 -0
  248. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonSerialize.java +216 -0
  249. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeIdResolver.java +35 -0
  250. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeResolver.java +28 -0
  251. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonValueInstantiator.java +26 -0
  252. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonView.java +37 -0
  253. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/NoClass.java +19 -0
  254. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/package-info.java +5 -0
  255. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/AbstractDeserializer.java +102 -0
  256. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializer.java +28 -0
  257. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializers.java +11 -0
  258. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java +894 -0
  259. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializer.java +1537 -0
  260. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerBuilder.java +277 -0
  261. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerFactory.java +1474 -0
  262. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerModifier.java +58 -0
  263. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CollectionDeserializer.java +47 -0
  264. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ContainerDeserializer.java +14 -0
  265. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CustomDeserializerFactory.java +227 -0
  266. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/DateDeserializer.java +9 -0
  267. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumDeserializer.java +15 -0
  268. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumResolver.java +17 -0
  269. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/FromStringDeserializer.java +13 -0
  270. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/JsonNodeDeserializer.java +54 -0
  271. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/MapDeserializer.java +44 -0
  272. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableAnyProperty.java +177 -0
  273. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableBeanProperty.java +827 -0
  274. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializationContext.java +326 -0
  275. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializer.java +94 -0
  276. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializerProvider.java +494 -0
  277. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializers.java +119 -0
  278. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializer.java +12 -0
  279. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializers.java +11 -0
  280. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdScalarDeserializer.java +13 -0
  281. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ThrowableDeserializer.java +13 -0
  282. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/UntypedObjectDeserializer.java +9 -0
  283. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiator.java +280 -0
  284. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiators.java +52 -0
  285. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/BeanPropertyMap.java +257 -0
  286. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorCollector.java +141 -0
  287. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorProperty.java +152 -0
  288. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ExternalTypeHandler.java +173 -0
  289. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyBasedCreator.java +117 -0
  290. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValue.java +117 -0
  291. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValueBuffer.java +102 -0
  292. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/UnwrappedPropertyHandler.java +41 -0
  293. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ValueInjector.java +45 -0
  294. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/package-info.java +9 -0
  295. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/package-info.java +5 -0
  296. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicBooleanDeserializer.java +22 -0
  297. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicReferenceDeserializer.java +47 -0
  298. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CalendarDeserializer.java +47 -0
  299. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ClassDeserializer.java +49 -0
  300. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CollectionDeserializer.java +265 -0
  301. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ContainerDeserializerBase.java +37 -0
  302. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/DateDeserializer.java +30 -0
  303. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumDeserializer.java +139 -0
  304. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumMapDeserializer.java +90 -0
  305. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java +89 -0
  306. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/FromStringDeserializer.java +265 -0
  307. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JavaTypeDeserializer.java +38 -0
  308. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JsonNodeDeserializer.java +314 -0
  309. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/MapDeserializer.java +412 -0
  310. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ObjectArrayDeserializer.java +201 -0
  311. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/PrimitiveArrayDeserializers.java +583 -0
  312. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdDeserializer.java +1136 -0
  313. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java +340 -0
  314. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializers.java +108 -0
  315. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdScalarDeserializer.java +34 -0
  316. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdValueInstantiator.java +392 -0
  317. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringCollectionDeserializer.java +227 -0
  318. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringDeserializer.java +55 -0
  319. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ThrowableDeserializer.java +164 -0
  320. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TimestampDeserializer.java +30 -0
  321. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TokenBufferDeserializer.java +36 -0
  322. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/UntypedObjectDeserializer.java +248 -0
  323. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/package-info.java +15 -0
  324. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/exc/UnrecognizedPropertyException.java +75 -0
  325. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLDeserializers.java +114 -0
  326. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLSerializers.java +72 -0
  327. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/DOMDeserializer.java +65 -0
  328. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/OptionalHandlerFactory.java +217 -0
  329. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/package-info.java +23 -0
  330. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/Annotated.java +85 -0
  331. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedClass.java +980 -0
  332. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedConstructor.java +143 -0
  333. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedField.java +119 -0
  334. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMember.java +56 -0
  335. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethod.java +188 -0
  336. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethodMap.java +85 -0
  337. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedParameter.java +191 -0
  338. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedWithParams.java +195 -0
  339. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotationMap.java +101 -0
  340. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicBeanDescription.java +615 -0
  341. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicClassIntrospector.java +364 -0
  342. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/JacksonAnnotationIntrospector.java +813 -0
  343. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MemberKey.java +83 -0
  344. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MethodFilter.java +12 -0
  345. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/NopAnnotationIntrospector.java +209 -0
  346. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertiesCollector.java +713 -0
  347. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertyBuilder.java +648 -0
  348. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/VisibilityChecker.java +424 -0
  349. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/package-info.java +12 -0
  350. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/NamedType.java +53 -0
  351. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/SubtypeResolver.java +39 -0
  352. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeIdResolver.java +74 -0
  353. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeResolverBuilder.java +151 -0
  354. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeDeserializer.java +126 -0
  355. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeSerializer.java +110 -0
  356. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeDeserializer.java +37 -0
  357. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeSerializer.java +129 -0
  358. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeDeserializer.java +191 -0
  359. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeSerializer.java +69 -0
  360. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeDeserializer.java +103 -0
  361. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeSerializer.java +121 -0
  362. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/ClassNameIdResolver.java +138 -0
  363. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/MinimalClassNameIdResolver.java +66 -0
  364. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdSubtypeResolver.java +151 -0
  365. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdTypeResolverBuilder.java +202 -0
  366. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeDeserializerBase.java +154 -0
  367. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeIdResolverBase.java +37 -0
  368. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeNameIdResolver.java +154 -0
  369. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeSerializerBase.java +31 -0
  370. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/package-info.java +9 -0
  371. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/package-info.java +10 -0
  372. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleAbstractTypeResolver.java +86 -0
  373. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleDeserializers.java +130 -0
  374. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleKeyDeserializers.java +59 -0
  375. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleModule.java +265 -0
  376. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleSerializers.java +206 -0
  377. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleValueInstantiators.java +45 -0
  378. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/package-info.java +16 -0
  379. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/package-info.java +34 -0
  380. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/AnyGetterWriter.java +48 -0
  381. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ArraySerializers.java +7 -0
  382. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BasicSerializerFactory.java +806 -0
  383. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyFilter.java +30 -0
  384. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyWriter.java +512 -0
  385. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializer.java +126 -0
  386. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerBuilder.java +140 -0
  387. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerFactory.java +780 -0
  388. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerModifier.java +95 -0
  389. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ContainerSerializers.java +8 -0
  390. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/CustomSerializerFactory.java +293 -0
  391. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/EnumSerializer.java +17 -0
  392. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilterProvider.java +23 -0
  393. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilteredBeanPropertyWriter.java +96 -0
  394. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/JdkSerializers.java +11 -0
  395. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/MapSerializer.java +58 -0
  396. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/PropertyBuilder.java +372 -0
  397. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ScalarSerializerBase.java +18 -0
  398. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/SerializerBase.java +23 -0
  399. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdKeySerializer.java +10 -0
  400. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializerProvider.java +852 -0
  401. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializers.java +372 -0
  402. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ToStringSerializer.java +14 -0
  403. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/FailingSerializer.java +43 -0
  404. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/JsonSerializerMap.java +93 -0
  405. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/PropertySerializerMap.java +231 -0
  406. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/ReadOnlyClassToSerializerMap.java +73 -0
  407. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SerializerCache.java +304 -0
  408. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleBeanPropertyFilter.java +109 -0
  409. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleFilterProvider.java +114 -0
  410. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnknownSerializer.java +54 -0
  411. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanPropertyWriter.java +99 -0
  412. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanSerializer.java +76 -0
  413. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/package-info.java +5 -0
  414. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/package-info.java +5 -0
  415. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/AsArraySerializerBase.java +185 -0
  416. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java +340 -0
  417. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CalendarSerializer.java +43 -0
  418. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CollectionSerializer.java +113 -0
  419. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ContainerSerializerBase.java +51 -0
  420. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/DateSerializer.java +42 -0
  421. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumMapSerializer.java +218 -0
  422. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSerializer.java +84 -0
  423. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSetSerializer.java +47 -0
  424. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IndexedStringListSerializer.java +116 -0
  425. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/InetAddressSerializer.java +51 -0
  426. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IterableSerializer.java +63 -0
  427. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/JsonValueSerializer.java +233 -0
  428. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/MapSerializer.java +422 -0
  429. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NonTypedScalarSerializerBase.java +34 -0
  430. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NullSerializer.java +38 -0
  431. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ObjectArraySerializer.java +281 -0
  432. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/RawSerializer.java +52 -0
  433. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ScalarSerializerBase.java +52 -0
  434. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableSerializer.java +99 -0
  435. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableWithTypeSerializer.java +90 -0
  436. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializerBase.java +184 -0
  437. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StaticListSerializerBase.java +46 -0
  438. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdArraySerializers.java +476 -0
  439. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdContainerSerializers.java +249 -0
  440. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdJdkSerializers.java +195 -0
  441. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializer.java +43 -0
  442. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializers.java +95 -0
  443. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringCollectionSerializer.java +119 -0
  444. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringSerializer.java +36 -0
  445. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TimeZoneSerializer.java +38 -0
  446. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ToStringSerializer.java +73 -0
  447. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TokenBufferSerializer.java +66 -0
  448. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ArrayType.java +260 -0
  449. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ClassKey.java +94 -0
  450. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionLikeType.java +204 -0
  451. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionType.java +94 -0
  452. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/HierarchicType.java +88 -0
  453. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapLikeType.java +265 -0
  454. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapType.java +146 -0
  455. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/SimpleType.java +250 -0
  456. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBase.java +148 -0
  457. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBindings.java +351 -0
  458. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeFactory.java +1165 -0
  459. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeModifier.java +38 -0
  460. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeParser.java +134 -0
  461. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/package-info.java +10 -0
  462. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Annotations.java +23 -0
  463. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ArrayBuilders.java +293 -0
  464. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/BeanUtil.java +260 -0
  465. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ClassUtil.java +645 -0
  466. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Comparators.java +48 -0
  467. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumResolver.java +108 -0
  468. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumValues.java +82 -0
  469. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601DateFormat.java +52 -0
  470. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601Utils.java +230 -0
  471. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONPObject.java +105 -0
  472. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONWrappedObject.java +117 -0
  473. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LRUMap.java +28 -0
  474. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LinkedNode.java +45 -0
  475. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Named.java +10 -0
  476. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ObjectBuffer.java +257 -0
  477. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/PrimitiveArrayBuilder.java +180 -0
  478. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Provider.java +21 -0
  479. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/RootNameLookup.java +54 -0
  480. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/StdDateFormat.java +348 -0
  481. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/package-info.java +4 -0
  482. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ArrayNode.java +758 -0
  483. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BaseJsonNode.java +122 -0
  484. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BigIntegerNode.java +104 -0
  485. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BinaryNode.java +136 -0
  486. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BooleanNode.java +84 -0
  487. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ContainerNode.java +185 -0
  488. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DecimalNode.java +96 -0
  489. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DoubleNode.java +106 -0
  490. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/IntNode.java +122 -0
  491. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/JsonNodeFactory.java +222 -0
  492. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/LongNode.java +99 -0
  493. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/MissingNode.java +97 -0
  494. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NodeCursor.java +222 -0
  495. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NullNode.java +58 -0
  496. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NumericNode.java +72 -0
  497. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ObjectNode.java +696 -0
  498. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/POJONode.java +145 -0
  499. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TextNode.java +299 -0
  500. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TreeTraversingParser.java +383 -0
  501. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ValueNode.java +58 -0
  502. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/package-info.java +8 -0
  503. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/package-info.java +30 -0
  504. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSchema.java +82 -0
  505. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSerializableSchema.java +46 -0
  506. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/SchemaAware.java +25 -0
  507. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/package-info.java +5 -0
  508. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/BytesToNameCanonicalizer.java +969 -0
  509. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/CharsToNameCanonicalizer.java +578 -0
  510. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name.java +50 -0
  511. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name1.java +44 -0
  512. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name2.java +40 -0
  513. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name3.java +39 -0
  514. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/NameN.java +68 -0
  515. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/package-info.java +5 -0
  516. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/JavaType.java +503 -0
  517. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/TypeReference.java +60 -0
  518. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/package-info.java +8 -0
  519. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/BufferRecycler.java +109 -0
  520. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/ByteArrayBuilder.java +294 -0
  521. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/CharTypes.java +237 -0
  522. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/DefaultPrettyPrinter.java +282 -0
  523. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/InternCache.java +49 -0
  524. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonGeneratorDelegate.java +273 -0
  525. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserDelegate.java +251 -0
  526. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserSequence.java +150 -0
  527. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/MinimalPrettyPrinter.java +152 -0
  528. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TextBuffer.java +707 -0
  529. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TokenBuffer.java +1233 -0
  530. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/VersionUtil.java +79 -0
  531. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/package-info.java +4 -0
  532. metadata +619 -0
@@ -0,0 +1,38 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ /**
4
+ * Add-on interface that {@link JsonDeserializer}s can implement to get a callback
5
+ * that can be used to create contextual instances of deserializer to use for
6
+ * handling properties of supported type. This can be useful
7
+ * for deserializers that can be configured by annotations, or should otherwise
8
+ * have differing behavior depending on what kind of property is being deserialized.
9
+ *
10
+ * @param <T> Type of deserializer to contextualize
11
+ *
12
+ * @since 1.7
13
+ */
14
+ public interface ContextualDeserializer<T>
15
+ {
16
+ /**
17
+ * Method called to see if a different (or differently configured) deserializer
18
+ * is needed to deserialize values of specified property.
19
+ * Note that instance that this method is called on is typically shared one and
20
+ * as a result method should <b>NOT</b> modify this instance but rather construct
21
+ * and return a new instance. This instance should only be returned as-is, in case
22
+ * it is already suitable for use.
23
+ *
24
+ * @param config Current deserialization configuration
25
+ * @param property Method, field or constructor parameter that represents the property
26
+ * (and is used to assign deserialized value).
27
+ * Should be available; but there may be cases where caller can not provide it and
28
+ * null is passed instead (in which case impls usually pass 'this' deserializer as is)
29
+ *
30
+ * @return Deserializer to use for deserializing values of specified property;
31
+ * may be this instance or a new instance.
32
+ *
33
+ * @throws JsonMappingException
34
+ */
35
+ public JsonDeserializer<T> createContextual(DeserializationConfig config,
36
+ BeanProperty property)
37
+ throws JsonMappingException;
38
+ }
@@ -0,0 +1,33 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ /**
4
+ * Add-on interface that {@link KeyDeserializer}s can implement to get a callback
5
+ * that can be used to create contextual instances of key deserializer to use for
6
+ * handling Map keys of supported type. This can be useful
7
+ * for key deserializers that can be configured by annotations, or should otherwise
8
+ * have differing behavior depending on what kind of Map property keys are being deserialized.
9
+ *
10
+ * @since 1.8
11
+ */
12
+ public interface ContextualKeyDeserializer
13
+ {
14
+ /**
15
+ * Method called to see if a different (or differently configured) key deserializer
16
+ * is needed to deserialize keys of specified Map property.
17
+ * Note that instance that this method is called on is typically shared one and
18
+ * as a result method should <b>NOT</b> modify this instance but rather construct
19
+ * and return a new instance. This instance should only be returned as-is, in case
20
+ * it is already suitable for use.
21
+ *
22
+ * @param config Current deserialization configuration
23
+ * @param property Method, field or constructor parameter that declared Map for which
24
+ * contextual instance will be used. Will not be available when deserializing root-level
25
+ * Map value; otherwise should not be null.
26
+ *
27
+ * @return Key deserializer to use for deserializing keys specified Map property,
28
+ * may be this instance or a new instance.
29
+ */
30
+ public KeyDeserializer createContextual(DeserializationConfig config,
31
+ BeanProperty property)
32
+ throws JsonMappingException;
33
+ }
@@ -0,0 +1,38 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ /**
4
+ * Add-on interface that {@link JsonSerializer}s can implement to get a callback
5
+ * that can be used to create contextual instances of serializer to use for
6
+ * handling properties of supported type. This can be useful
7
+ * for serializers that can be configured by annotations, or should otherwise
8
+ * have differing behavior depending on what kind of property is being serialized.
9
+ *
10
+ * @param <T> Type of serializer to contextualize
11
+ *
12
+ * @since 1.7
13
+ */
14
+ public interface ContextualSerializer<T>
15
+ {
16
+ /**
17
+ * Method called to see if a different (or differently configured) serializer
18
+ * is needed to serialize values of specified property.
19
+ * Note that instance that this method is called on is typically shared one and
20
+ * as a result method should <b>NOT</b> modify this instance but rather construct
21
+ * and return a new instance. This instance should only be returned as-is, in case
22
+ * it is already suitable for use.
23
+ *
24
+ * @param config Current serialization configuration
25
+ * @param property Method or field that represents the property
26
+ * (and is used to access value to serialize).
27
+ * Should be available; but there may be cases where caller can not provide it and
28
+ * null is passed instead (in which case impls usually pass 'this' serializer as is)
29
+ *
30
+ * @return Serializer to use for serializing values of specified property;
31
+ * may be this instance or a new instance.
32
+ *
33
+ * @throws JsonMappingException
34
+ */
35
+ public JsonSerializer<T> createContextual(SerializationConfig config,
36
+ BeanProperty property)
37
+ throws JsonMappingException;
38
+ }
@@ -0,0 +1,926 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import java.text.DateFormat;
4
+ import java.util.HashMap;
5
+
6
+ import sh.calaba.org.codehaus.jackson.Base64Variant;
7
+ import sh.calaba.org.codehaus.jackson.Base64Variants;
8
+ import sh.calaba.org.codehaus.jackson.annotate.JsonAutoDetect;
9
+ import sh.calaba.org.codehaus.jackson.annotate.JsonMethod;
10
+ import sh.calaba.org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
11
+ import sh.calaba.org.codehaus.jackson.map.deser.ValueInstantiator;
12
+ import sh.calaba.org.codehaus.jackson.map.introspect.Annotated;
13
+ import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedClass;
14
+ import sh.calaba.org.codehaus.jackson.map.introspect.NopAnnotationIntrospector;
15
+ import sh.calaba.org.codehaus.jackson.map.introspect.VisibilityChecker;
16
+ import sh.calaba.org.codehaus.jackson.map.jsontype.SubtypeResolver;
17
+ import sh.calaba.org.codehaus.jackson.map.jsontype.TypeResolverBuilder;
18
+ import sh.calaba.org.codehaus.jackson.map.type.ClassKey;
19
+ import sh.calaba.org.codehaus.jackson.map.type.TypeFactory;
20
+ import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
21
+ import sh.calaba.org.codehaus.jackson.map.util.LinkedNode;
22
+ import sh.calaba.org.codehaus.jackson.node.JsonNodeFactory;
23
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
24
+
25
+ /**
26
+ * Object that contains baseline configuration for deserialization
27
+ * process. An instance is owned by {@link ObjectMapper}, which makes
28
+ * a copy that is passed during serialization process to
29
+ * {@link DeserializerProvider} and {@link DeserializerFactory}.
30
+ *<p>
31
+ * Note: although configuration settings can be changed at any time
32
+ * (for factories and instances), they are not guaranteed to have
33
+ * effect if called after constructing relevant mapper or deserializer
34
+ * instance. This because some objects may be configured, constructed and
35
+ * cached first time they are needed.
36
+ *<p>
37
+ * As of version 1.9, the goal is to make this class eventually immutable.
38
+ * Because of this, existing methods that allow changing state of this
39
+ * instance are deprecated in favor of methods that create new instances
40
+ * with different configuration ("fluent factories")
41
+ */
42
+ public class DeserializationConfig
43
+ extends MapperConfig.Impl<DeserializationConfig.Feature, DeserializationConfig>
44
+ {
45
+ /**
46
+ * Enumeration that defines togglable features that guide
47
+ * the serialization feature.
48
+ */
49
+ public enum Feature implements MapperConfig.ConfigFeature
50
+ {
51
+ /*
52
+ /******************************************************
53
+ * Introspection features
54
+ /******************************************************
55
+ */
56
+
57
+ /**
58
+ * Feature that determines whether annotation introspection
59
+ * is used for configuration; if enabled, configured
60
+ * {@link AnnotationIntrospector} will be used: if disabled,
61
+ * no annotations are considered.
62
+ *<P>
63
+ * Feature is enabled by default.
64
+ *
65
+ * @since 1.2
66
+ */
67
+ USE_ANNOTATIONS(true),
68
+
69
+ /**
70
+ * Feature that determines whether "setter" methods are
71
+ * automatically detected based on standard Bean naming convention
72
+ * or not. If yes, then all public one-argument methods that
73
+ * start with prefix "set"
74
+ * are considered setters. If disabled, only methods explicitly
75
+ * annotated are considered setters.
76
+ *<p>
77
+ * Note that this feature has lower precedence than per-class
78
+ * annotations, and is only used if there isn't more granular
79
+ * configuration available.
80
+ *<P>
81
+ * Feature is enabled by default.
82
+ */
83
+ AUTO_DETECT_SETTERS(true),
84
+
85
+ /**
86
+ * Feature that determines whether "creator" methods are
87
+ * automatically detected by consider public constructors,
88
+ * and static single argument methods with name "valueOf".
89
+ * If disabled, only methods explicitly annotated are considered
90
+ * creator methods (except for the no-arg default constructor which
91
+ * is always considered a factory method).
92
+ *<p>
93
+ * Note that this feature has lower precedence than per-class
94
+ * annotations, and is only used if there isn't more granular
95
+ * configuration available.
96
+ *<P>
97
+ * Feature is enabled by default.
98
+ */
99
+ AUTO_DETECT_CREATORS(true),
100
+
101
+ /**
102
+ * Feature that determines whether non-static fields are recognized as
103
+ * properties.
104
+ * If yes, then all public member fields
105
+ * are considered as properties. If disabled, only fields explicitly
106
+ * annotated are considered property fields.
107
+ *<p>
108
+ * Note that this feature has lower precedence than per-class
109
+ * annotations, and is only used if there isn't more granular
110
+ * configuration available.
111
+ *<P>
112
+ * Feature is enabled by default.
113
+ *
114
+ * @since 1.1
115
+ */
116
+ AUTO_DETECT_FIELDS(true),
117
+
118
+ /**
119
+ * Feature that determines whether otherwise regular "getter"
120
+ * methods (but only ones that handle Collections and Maps,
121
+ * not getters of other type)
122
+ * can be used for purpose of getting a reference to a Collection
123
+ * and Map to modify the property, without requiring a setter
124
+ * method.
125
+ * This is similar to how JAXB framework sets Collections and
126
+ * Maps: no setter is involved, just setter.
127
+ *<p>
128
+ * Note that such getters-as-setters methods have lower
129
+ * precedence than setters, so they are only used if no
130
+ * setter is found for the Map/Collection property.
131
+ *<p>
132
+ * Feature is enabled by default.
133
+ */
134
+ USE_GETTERS_AS_SETTERS(true),
135
+
136
+ /**
137
+ * Feature that determines whether method and field access
138
+ * modifier settings can be overridden when accessing
139
+ * properties. If enabled, method
140
+ * {@link java.lang.reflect.AccessibleObject#setAccessible}
141
+ * may be called to enable access to otherwise unaccessible
142
+ * objects.
143
+ */
144
+ CAN_OVERRIDE_ACCESS_MODIFIERS(true),
145
+
146
+ /*
147
+ /******************************************************
148
+ /* Type conversion features
149
+ /******************************************************
150
+ */
151
+
152
+ /**
153
+ * Feature that determines whether Json floating point numbers
154
+ * are to be deserialized into {@link java.math.BigDecimal}s
155
+ * if only generic type description (either {@link Object} or
156
+ * {@link Number}, or within untyped {@link java.util.Map}
157
+ * or {@link java.util.Collection} context) is available.
158
+ * If enabled such values will be deserialized as {@link java.math.BigDecimal}s;
159
+ * if disabled, will be deserialized as {@link Double}s.
160
+ * <p>
161
+ * Feature is disabled by default, meaning that "untyped" floating
162
+ * point numbers will by default be deserialized as {@link Double}s
163
+ * (choice is for performance reason -- BigDecimals are slower than
164
+ * Doubles)
165
+ */
166
+ USE_BIG_DECIMAL_FOR_FLOATS(false),
167
+
168
+ /**
169
+ * Feature that determines whether Json integral (non-floating-point)
170
+ * numbers are to be deserialized into {@link java.math.BigInteger}s
171
+ * if only generic type description (either {@link Object} or
172
+ * {@link Number}, or within untyped {@link java.util.Map}
173
+ * or {@link java.util.Collection} context) is available.
174
+ * If enabled such values will be deserialized as
175
+ * {@link java.math.BigInteger}s;
176
+ * if disabled, will be deserialized as "smallest" available type,
177
+ * which is either {@link Integer}, {@link Long} or
178
+ * {@link java.math.BigInteger}, depending on number of digits.
179
+ * <p>
180
+ * Feature is disabled by default, meaning that "untyped" floating
181
+ * point numbers will by default be deserialized using whatever
182
+ * is the most compact integral type, to optimize efficiency.
183
+ */
184
+ USE_BIG_INTEGER_FOR_INTS(false),
185
+
186
+ // [JACKSON-652]
187
+ /**
188
+ * Feature that determines whether JSON Array is mapped to
189
+ * <code>Object[]</code> or <code>List&lt;Object></code> when binding
190
+ * "untyped" objects (ones with nominal type of <code>java.lang.Object</code>).
191
+ * If true, binds as <code>Object[]</code>; if false, as <code>List&lt;Object></code>.
192
+ *<p>
193
+ * Feature is disabled by default, meaning that JSON arrays are bound as
194
+ * {@link java.util.List}s.
195
+ *
196
+ * @since 1.9
197
+ */
198
+ USE_JAVA_ARRAY_FOR_JSON_ARRAY(false),
199
+
200
+ /**
201
+ * Feature that determines standard deserialization mechanism used for
202
+ * Enum values: if enabled, Enums are assumed to have been serialized using
203
+ * return value of <code>Enum.toString()</code>;
204
+ * if disabled, return value of <code>Enum.name()</code> is assumed to have been used.
205
+ * Since pre-1.6 method was to use Enum name, this is the default.
206
+ *<p>
207
+ * Note: this feature should usually have same value
208
+ * as {@link SerializationConfig.Feature#WRITE_ENUMS_USING_TO_STRING}.
209
+ *<p>
210
+ * For further details, check out [JACKSON-212]
211
+ *
212
+ * @since 1.6
213
+ */
214
+ READ_ENUMS_USING_TO_STRING(false),
215
+
216
+ /*
217
+ /******************************************************
218
+ * Error handling features
219
+ /******************************************************
220
+ */
221
+
222
+ /**
223
+ * Feature that determines whether encountering of unknown
224
+ * properties (ones that do not map to a property, and there is
225
+ * no "any setter" or handler that can handle it)
226
+ * should result in a failure (by throwing a
227
+ * {@link JsonMappingException}) or not.
228
+ * This setting only takes effect after all other handling
229
+ * methods for unknown properties have been tried, and
230
+ * property remains unhandled.
231
+ *<p>
232
+ * Feature is enabled by default, meaning that
233
+ * {@link JsonMappingException} is thrown if an unknown property
234
+ * is encountered. This is the implicit default prior to
235
+ * introduction of the feature.
236
+ *
237
+ * @since 1.2
238
+ */
239
+ FAIL_ON_UNKNOWN_PROPERTIES(true),
240
+
241
+ /**
242
+ * Feature that determines whether encountering of JSON null
243
+ * is an error when deserializing into Java primitive types
244
+ * (like 'int' or 'double'). If it is, a JsonProcessingException
245
+ * is thrown to indicate this; if not, default value is used
246
+ * (0 for 'int', 0.0 for double, same defaulting as what JVM uses).
247
+ *<p>
248
+ * Feature is disabled by default (to be consistent with behavior
249
+ * of Jackson 1.6),
250
+ * i.e. to allow use of nulls for primitive properties.
251
+ *
252
+ * @since 1.7
253
+ */
254
+ FAIL_ON_NULL_FOR_PRIMITIVES(false),
255
+
256
+ /**
257
+ * Feature that determines whether JSON integer numbers are valid
258
+ * values to be used for deserializing Java enum values.
259
+ * If set to 'false' numbers are acceptable and are used to map to
260
+ * ordinal() of matching enumeration value; if 'true', numbers are
261
+ * not allowed and a {@link JsonMappingException} will be thrown.
262
+ * Latter behavior makes sense if there is concern that accidental
263
+ * mapping from integer values to enums might happen (and when enums
264
+ * are always serialized as JSON Strings)
265
+ *<p>
266
+ * Feature is disabled by default (to be consistent with behavior
267
+ * of Jackson 1.6),
268
+ * i.e. to allow use of JSON integers for Java enums.
269
+ *
270
+ * @since 1.7
271
+ */
272
+ FAIL_ON_NUMBERS_FOR_ENUMS(false),
273
+
274
+ /**
275
+ * Feature that determines whether Jackson code should catch
276
+ * and wrap {@link Exception}s (but never {@link Error}s!)
277
+ * to add additional information about
278
+ * location (within input) of problem or not. If enabled,
279
+ * most exceptions will be caught and re-thrown (exception
280
+ * specifically being that {@link java.io.IOException}s may be passed
281
+ * as is, since they are declared as throwable); this can be
282
+ * convenient both in that all exceptions will be checked and
283
+ * declared, and so there is more contextual information.
284
+ * However, sometimes calling application may just want "raw"
285
+ * unchecked exceptions passed as is.
286
+ *<p>
287
+ * Feature is enabled by default, and is similar in behavior
288
+ * to default prior to 1.7.
289
+ *
290
+ * @since 1.7
291
+ */
292
+ WRAP_EXCEPTIONS(true),
293
+
294
+ /*
295
+ /******************************************************
296
+ * Structural conversion features
297
+ /******************************************************
298
+ */
299
+
300
+ /**
301
+ * Feature that determines whether it is acceptable to coerce non-array
302
+ * (in JSON) values to work with Java collection (arrays, java.util.Collection)
303
+ * types. If enabled, collection deserializers will try to handle non-array
304
+ * values as if they had "implicit" surrounding JSON array.
305
+ * This feature is meant to be used for compatibility/interoperability reasons,
306
+ * to work with packages (such as XML-to-JSON converters) that leave out JSON
307
+ * array in cases where there is just a single element in array.
308
+ *
309
+ * @since 1.8
310
+ */
311
+ ACCEPT_SINGLE_VALUE_AS_ARRAY(false),
312
+
313
+ /**
314
+ * Feature to allow "unwrapping" root-level JSON value, to match setting of
315
+ * {@link SerializationConfig.Feature#WRAP_ROOT_VALUE} used for serialization.
316
+ * Will verify that the root JSON value is a JSON Object, and that it has
317
+ * a single property with expected root name. If not, a
318
+ * {@link JsonMappingException} is thrown; otherwise value of the wrapped property
319
+ * will be deserialized as if it was the root value.
320
+ *
321
+ * @since 1.9
322
+ */
323
+ UNWRAP_ROOT_VALUE(false),
324
+
325
+ /*
326
+ /******************************************************
327
+ * Value conversion features
328
+ /******************************************************
329
+ */
330
+
331
+ /**
332
+ * Feature that can be enabled to allow JSON empty String
333
+ * value ("") to be bound to POJOs as null.
334
+ * If disabled, standard POJOs can only be bound from JSON null or
335
+ * JSON Object (standard meaning that no custom deserializers or
336
+ * constructors are defined; both of which can add support for other
337
+ * kinds of JSON values); if enable, empty JSON String can be taken
338
+ * to be equivalent of JSON null.
339
+ *
340
+ * @since 1.8
341
+ */
342
+ ACCEPT_EMPTY_STRING_AS_NULL_OBJECT(false)
343
+
344
+ ;
345
+
346
+ final boolean _defaultState;
347
+
348
+ private Feature(boolean defaultState) {
349
+ _defaultState = defaultState;
350
+ }
351
+
352
+ @Override
353
+ public boolean enabledByDefault() { return _defaultState; }
354
+
355
+ @Override
356
+ public int getMask() { return (1 << ordinal()); }
357
+ }
358
+
359
+ /*
360
+ /**********************************************************
361
+ /* Configuration settings for deserialization
362
+ /**********************************************************
363
+ */
364
+
365
+ /**
366
+ * Linked list that contains all registered problem handlers.
367
+ * Implementation as front-added linked list allows for sharing
368
+ * of the list (tail) without copying the list.
369
+ */
370
+ protected LinkedNode<DeserializationProblemHandler> _problemHandlers;
371
+
372
+ /**
373
+ * Factory used for constructing {@link sh.calaba.org.codehaus.jackson.JsonNode} instances.
374
+ *
375
+ * @since 1.6
376
+ */
377
+ protected final JsonNodeFactory _nodeFactory;
378
+
379
+ /**
380
+ * Feature flag from {@link SerializationConfig} which is needed to
381
+ * know if serializer will by default sort properties in
382
+ * alphabetic order.
383
+ *<p>
384
+ * Note that although this property is not marked as final,
385
+ * it is handled like it was, except for the fact that it is
386
+ * assigned with a call to {@link #passSerializationFeatures}
387
+ * instead of constructor.
388
+ *
389
+ * @since 1.9
390
+ */
391
+ protected boolean _sortPropertiesAlphabetically;
392
+
393
+ /*
394
+ /**********************************************************
395
+ /* Life-cycle, constructors
396
+ /**********************************************************
397
+ */
398
+
399
+ /**
400
+ * Constructor used by ObjectMapper to create default configuration object instance.
401
+ */
402
+ public DeserializationConfig(ClassIntrospector<? extends BeanDescription> intr,
403
+ AnnotationIntrospector annIntr, VisibilityChecker<?> vc,
404
+ SubtypeResolver subtypeResolver, PropertyNamingStrategy propertyNamingStrategy,
405
+ TypeFactory typeFactory, HandlerInstantiator handlerInstantiator)
406
+ {
407
+ super(intr, annIntr, vc, subtypeResolver, propertyNamingStrategy, typeFactory, handlerInstantiator,
408
+ collectFeatureDefaults(DeserializationConfig.Feature.class));
409
+ _nodeFactory = JsonNodeFactory.instance;
410
+ }
411
+
412
+ /**
413
+ * @since 1.8
414
+ */
415
+ protected DeserializationConfig(DeserializationConfig src) {
416
+ this(src, src._base);
417
+ }
418
+
419
+ /**
420
+ * Copy constructor used to create a non-shared instance with given mix-in
421
+ * annotation definitions and subtype resolver.
422
+ *
423
+ * @since 1.8
424
+ */
425
+ private DeserializationConfig(DeserializationConfig src,
426
+ HashMap<ClassKey,Class<?>> mixins, SubtypeResolver str)
427
+ {
428
+ this(src, src._base);
429
+ _mixInAnnotations = mixins;
430
+ _subtypeResolver = str;
431
+ }
432
+
433
+ /**
434
+ * @since 1.8
435
+ */
436
+ protected DeserializationConfig(DeserializationConfig src, MapperConfig.Base base)
437
+ {
438
+ super(src, base, src._subtypeResolver);
439
+ _problemHandlers = src._problemHandlers;
440
+ _nodeFactory = src._nodeFactory;
441
+ _sortPropertiesAlphabetically = src._sortPropertiesAlphabetically;
442
+ }
443
+
444
+ /**
445
+ * @since 1.8
446
+ */
447
+ protected DeserializationConfig(DeserializationConfig src, JsonNodeFactory f)
448
+ {
449
+ super(src);
450
+ _problemHandlers = src._problemHandlers;
451
+ _nodeFactory = f;
452
+ _sortPropertiesAlphabetically = src._sortPropertiesAlphabetically;
453
+ }
454
+
455
+ /**
456
+ * @since 1.9
457
+ */
458
+ protected DeserializationConfig(DeserializationConfig src, int featureFlags)
459
+ {
460
+ super(src, featureFlags);
461
+ _problemHandlers = src._problemHandlers;
462
+ _nodeFactory = src._nodeFactory;
463
+ _sortPropertiesAlphabetically = src._sortPropertiesAlphabetically;
464
+ }
465
+
466
+ /**
467
+ * Helper method to be called right after creating a non-shared
468
+ * instance, needed to pass state of feature(s) shared with
469
+ * SerializationConfig.
470
+ *
471
+ * Since 1.9
472
+ */
473
+ protected DeserializationConfig passSerializationFeatures(int serializationFeatureFlags)
474
+ {
475
+ _sortPropertiesAlphabetically = (serializationFeatureFlags
476
+ & SerializationConfig.Feature.SORT_PROPERTIES_ALPHABETICALLY.getMask()) != 0;
477
+ return this;
478
+ }
479
+
480
+ /*
481
+ /**********************************************************
482
+ /* Life-cycle, factory methods from MapperConfig
483
+ /**********************************************************
484
+ */
485
+
486
+ @Override
487
+ public DeserializationConfig withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci) {
488
+ return new DeserializationConfig(this, _base.withClassIntrospector(ci));
489
+ }
490
+
491
+ @Override
492
+ public DeserializationConfig withAnnotationIntrospector(AnnotationIntrospector ai) {
493
+ return new DeserializationConfig(this, _base.withAnnotationIntrospector(ai));
494
+ }
495
+
496
+ @Override
497
+ public DeserializationConfig withVisibilityChecker(VisibilityChecker<?> vc) {
498
+ return new DeserializationConfig(this, _base.withVisibilityChecker(vc));
499
+ }
500
+
501
+ @Override
502
+ public DeserializationConfig withVisibility(JsonMethod forMethod, JsonAutoDetect.Visibility visibility) {
503
+ return new DeserializationConfig(this, _base.withVisibility(forMethod, visibility));
504
+ }
505
+
506
+ @Override
507
+ public DeserializationConfig withTypeResolverBuilder(TypeResolverBuilder<?> trb) {
508
+ return new DeserializationConfig(this, _base.withTypeResolverBuilder(trb));
509
+ }
510
+
511
+ @Override
512
+ public DeserializationConfig withSubtypeResolver(SubtypeResolver str)
513
+ {
514
+ DeserializationConfig cfg = new DeserializationConfig(this);
515
+ cfg._subtypeResolver = str;
516
+ return cfg;
517
+ }
518
+
519
+ @Override
520
+ public DeserializationConfig withPropertyNamingStrategy(PropertyNamingStrategy pns) {
521
+ return new DeserializationConfig(this, _base.withPropertyNamingStrategy(pns));
522
+ }
523
+
524
+ @Override
525
+ public DeserializationConfig withTypeFactory(TypeFactory tf) {
526
+ return (tf == _base.getTypeFactory()) ? this : new DeserializationConfig(this, _base.withTypeFactory(tf));
527
+ }
528
+
529
+ @Override
530
+ public DeserializationConfig withDateFormat(DateFormat df) {
531
+ return (df == _base.getDateFormat()) ? this : new DeserializationConfig(this, _base.withDateFormat(df));
532
+ }
533
+
534
+ @Override
535
+ public DeserializationConfig withHandlerInstantiator(HandlerInstantiator hi) {
536
+ return (hi == _base.getHandlerInstantiator()) ? this : new DeserializationConfig(this, _base.withHandlerInstantiator(hi));
537
+ }
538
+
539
+ @Override
540
+ public DeserializationConfig withInsertedAnnotationIntrospector(AnnotationIntrospector ai) {
541
+ return new DeserializationConfig(this, _base.withInsertedAnnotationIntrospector(ai));
542
+ }
543
+
544
+ @Override
545
+ public DeserializationConfig withAppendedAnnotationIntrospector(AnnotationIntrospector ai) {
546
+ return new DeserializationConfig(this, _base.withAppendedAnnotationIntrospector(ai));
547
+ }
548
+
549
+ /*
550
+ /**********************************************************
551
+ /* Life-cycle, deserialization-specific factory methods
552
+ /**********************************************************
553
+ */
554
+
555
+ /**
556
+ * Fluent factory method that will construct a new instance with
557
+ * specified {@link JsonNodeFactory}
558
+ *
559
+ * @since 1.8
560
+ */
561
+ public DeserializationConfig withNodeFactory(JsonNodeFactory f) {
562
+ return new DeserializationConfig(this, f);
563
+ }
564
+
565
+ /**
566
+ * Fluent factory method that will construct and return a new configuration
567
+ * object instance with specified features enabled.
568
+ *
569
+ * @since 1.9
570
+ */
571
+ @Override
572
+ public DeserializationConfig with(DeserializationConfig.Feature... features)
573
+ {
574
+ int flags = _featureFlags;
575
+ for (Feature f : features) {
576
+ flags |= f.getMask();
577
+ }
578
+ return new DeserializationConfig(this, flags);
579
+ }
580
+
581
+ /**
582
+ * Fluent factory method that will construct and return a new configuration
583
+ * object instance with specified features disabled.
584
+ *
585
+ * @since 1.9
586
+ */
587
+ @Override
588
+ public DeserializationConfig without(DeserializationConfig.Feature... features)
589
+ {
590
+ int flags = _featureFlags;
591
+ for (Feature f : features) {
592
+ flags &= ~f.getMask();
593
+ }
594
+ return new DeserializationConfig(this, flags);
595
+ }
596
+
597
+ /*
598
+ /**********************************************************
599
+ /* MapperConfig implementation
600
+ /**********************************************************
601
+ */
602
+
603
+ /**
604
+ * Method that checks class annotations that the argument Object has,
605
+ * and modifies settings of this configuration object accordingly,
606
+ * similar to how those annotations would affect actual value classes
607
+ * annotated with them, but with global scope. Note that not all
608
+ * annotations have global significance, and thus only subset of
609
+ * Jackson annotations will have any effect.
610
+ *<p>
611
+ * Ones that are known to have effect are:
612
+ *<ul>
613
+ * <li>{@link JsonAutoDetect}</li>
614
+ *</ul>
615
+ *
616
+ * @param cls Class of which class annotations to use
617
+ * for changing configuration settings
618
+ *
619
+ * @deprecated Since 1.9, it is preferably to explicitly configure
620
+ * instances; this method also modifies existing instance which is
621
+ * against immutable design goals of this class.
622
+ */
623
+ @Deprecated
624
+ @Override
625
+ public void fromAnnotations(Class<?> cls)
626
+ {
627
+ /* no class annotation for:
628
+ *
629
+ * - CAN_OVERRIDE_ACCESS_MODIFIERS
630
+ * - USE_BIG_DECIMAL_FOR_FLOATS
631
+ * - USE_BIG_INTEGER_FOR_INTS
632
+ * - USE_GETTERS_AS_SETTERS
633
+ */
634
+
635
+ /* 10-Jul-2009, tatu: Should be able to just pass null as
636
+ * 'MixInResolver'; no mix-ins set at this point
637
+ */
638
+ AnnotationIntrospector ai = getAnnotationIntrospector();
639
+ AnnotatedClass ac = AnnotatedClass.construct(cls, ai, null);
640
+ // visibility checks handled via separate checker object...
641
+ VisibilityChecker<?> prevVc = getDefaultVisibilityChecker();
642
+ _base = _base.withVisibilityChecker(ai.findAutoDetectVisibility(ac, prevVc));
643
+ }
644
+
645
+ /**
646
+ * Method that is called to create a non-shared copy of the configuration
647
+ * to be used for a deserialization operation.
648
+ * Note that if sub-classing
649
+ * and sub-class has additional instance methods,
650
+ * this method <b>must</b> be overridden to produce proper sub-class
651
+ * instance.
652
+ */
653
+ @Override
654
+ public DeserializationConfig createUnshared(SubtypeResolver subtypeResolver)
655
+ {
656
+ HashMap<ClassKey,Class<?>> mixins = _mixInAnnotations;
657
+ // ensure that we assume sharing at this point:
658
+ _mixInAnnotationsShared = true;
659
+ return new DeserializationConfig(this, mixins, subtypeResolver);
660
+ }
661
+
662
+ /**
663
+ * Method for getting {@link AnnotationIntrospector} configured
664
+ * to introspect annotation values used for configuration.
665
+ */
666
+ @Override
667
+ public AnnotationIntrospector getAnnotationIntrospector()
668
+ {
669
+ /* 29-Jul-2009, tatu: it's now possible to disable use of
670
+ * annotations; can be done using "no-op" introspector
671
+ */
672
+ if (isEnabled(Feature.USE_ANNOTATIONS)) {
673
+ return super.getAnnotationIntrospector();
674
+ }
675
+ return NopAnnotationIntrospector.instance;
676
+ }
677
+
678
+ /**
679
+ * Accessor for getting bean description that only contains class
680
+ * annotations: useful if no getter/setter/creator information is needed.
681
+ *<p>
682
+ * Note: part of {@link MapperConfig} since 1.7
683
+ */
684
+ @SuppressWarnings("unchecked")
685
+ @Override
686
+ public <T extends BeanDescription> T introspectClassAnnotations(JavaType type) {
687
+ return (T) getClassIntrospector().forClassAnnotations(this, type, this);
688
+ }
689
+
690
+ /**
691
+ * Accessor for getting bean description that only contains immediate class
692
+ * annotations: ones from the class, and its direct mix-in, if any, but
693
+ * not from super types.
694
+ *<p>
695
+ * Note: part of {@link MapperConfig} since 1.7
696
+ */
697
+ @Override
698
+ @SuppressWarnings("unchecked")
699
+ public <T extends BeanDescription> T introspectDirectClassAnnotations(JavaType type) {
700
+ return (T) getClassIntrospector().forDirectClassAnnotations(this, type, this);
701
+ }
702
+
703
+ @Override
704
+ public boolean isAnnotationProcessingEnabled() {
705
+ return isEnabled(Feature.USE_ANNOTATIONS);
706
+ }
707
+
708
+ @Override
709
+ public boolean canOverrideAccessModifiers() {
710
+ return isEnabled(Feature.CAN_OVERRIDE_ACCESS_MODIFIERS);
711
+ }
712
+
713
+ @Override
714
+ public boolean shouldSortPropertiesAlphabetically() {
715
+ return _sortPropertiesAlphabetically;
716
+ }
717
+
718
+ @Override
719
+ public VisibilityChecker<?> getDefaultVisibilityChecker()
720
+ {
721
+ VisibilityChecker<?> vchecker = super.getDefaultVisibilityChecker();
722
+ if (!isEnabled(DeserializationConfig.Feature.AUTO_DETECT_SETTERS)) {
723
+ vchecker = vchecker.withSetterVisibility(Visibility.NONE);
724
+ }
725
+ if (!isEnabled(DeserializationConfig.Feature.AUTO_DETECT_CREATORS)) {
726
+ vchecker = vchecker.withCreatorVisibility(Visibility.NONE);
727
+ }
728
+ if (!isEnabled(DeserializationConfig.Feature.AUTO_DETECT_FIELDS)) {
729
+ vchecker = vchecker.withFieldVisibility(Visibility.NONE);
730
+ }
731
+ return vchecker;
732
+ }
733
+
734
+ /*
735
+ /**********************************************************
736
+ /* MapperConfig overrides for 1.8 backwards compatibility
737
+ /**********************************************************
738
+ */
739
+
740
+ /* NOTE: these are overloads we MUST have, but that were missing
741
+ * from 1.9.0 and 1.9.1. Type erasure can bite in the ass...
742
+ *<p>
743
+ * NOTE: will remove either these variants, or base class one, in 2.0.
744
+ */
745
+
746
+ /**
747
+ * An overload for {@link MapperConfig#isEnabled(MapperConfig.ConfigFeature)},
748
+ * needed for backwards-compatibility.
749
+ *<p>
750
+ * NOTE: will remove either this variant, or base class one, in 2.0./
751
+ *
752
+ * @since 1.0 However, note that version 1.9.0 and 1.9.1 accidentally missed
753
+ * this overloaded variant
754
+ */
755
+ public boolean isEnabled(DeserializationConfig.Feature f) {
756
+ return (_featureFlags & f.getMask()) != 0;
757
+ }
758
+
759
+ /**
760
+ * @deprecated Since 1.9, it is preferable to use {@link #with} instead;
761
+ * this method is deprecated as it modifies current instance instead of
762
+ * creating a new one (as the goal is to make this class immutable)
763
+ */
764
+ @Deprecated
765
+ @Override
766
+ public void enable(DeserializationConfig.Feature f) {
767
+ super.enable(f);
768
+ }
769
+
770
+ /**
771
+ * @deprecated Since 1.9, it is preferable to use {@link #without} instead;
772
+ * this method is deprecated as it modifies current instance instead of
773
+ * creating a new one (as the goal is to make this class immutable)
774
+ */
775
+ @Deprecated
776
+ @Override
777
+ public void disable(DeserializationConfig.Feature f) {
778
+ super.disable(f);
779
+ }
780
+
781
+ /**
782
+ * @deprecated Since 1.9, it is preferable to use {@link #without} and {@link #with} instead;
783
+ * this method is deprecated as it modifies current instance instead of
784
+ * creating a new one (as the goal is to make this class immutable)
785
+ */
786
+ @Deprecated
787
+ @Override
788
+ public void set(DeserializationConfig.Feature f, boolean state) {
789
+ super.set(f, state);
790
+ }
791
+
792
+ /*
793
+ /**********************************************************
794
+ /* Problem handlers
795
+ /**********************************************************
796
+ */
797
+
798
+ /**
799
+ * Method for getting head of the problem handler chain. May be null,
800
+ * if no handlers have been added.
801
+ */
802
+ public LinkedNode<DeserializationProblemHandler> getProblemHandlers()
803
+ {
804
+ return _problemHandlers;
805
+ }
806
+
807
+ /**
808
+ * Method that can be used to add a handler that can (try to)
809
+ * resolve non-fatal deserialization problems.
810
+ */
811
+ public void addHandler(DeserializationProblemHandler h)
812
+ {
813
+ /* Sanity check: let's prevent adding same handler multiple
814
+ * times
815
+ */
816
+ if (!LinkedNode.contains(_problemHandlers, h)) {
817
+ _problemHandlers = new LinkedNode<DeserializationProblemHandler>(h, _problemHandlers);
818
+ }
819
+ }
820
+
821
+ /**
822
+ * Method for removing all configured problem handlers; usually done to replace
823
+ * existing handler(s) with different one(s)
824
+ *
825
+ * @since 1.1
826
+ */
827
+ public void clearHandlers()
828
+ {
829
+ _problemHandlers = null;
830
+ }
831
+
832
+ /*
833
+ /**********************************************************
834
+ /* Other configuration
835
+ /**********************************************************
836
+ */
837
+
838
+ /**
839
+ * Method called during deserialization if Base64 encoded content
840
+ * needs to be decoded. Default version just returns default Jackson
841
+ * uses, which is modified-mime which does not add linefeeds (because
842
+ * those would have to be escaped in JSON strings).
843
+ */
844
+ public Base64Variant getBase64Variant() {
845
+ return Base64Variants.getDefaultVariant();
846
+ }
847
+
848
+ /**
849
+ * @since 1.6
850
+ */
851
+ public final JsonNodeFactory getNodeFactory() {
852
+ return _nodeFactory;
853
+ }
854
+
855
+ /*
856
+ /**********************************************************
857
+ /* Introspection methods
858
+ /**********************************************************
859
+ */
860
+
861
+ /**
862
+ * Method that will introspect full bean properties for the purpose
863
+ * of building a bean deserializer
864
+ *
865
+ * @param type Type of class to be introspected
866
+ */
867
+ @SuppressWarnings("unchecked")
868
+ public <T extends BeanDescription> T introspect(JavaType type) {
869
+ return (T) getClassIntrospector().forDeserialization(this, type, this);
870
+ }
871
+
872
+ /**
873
+ * Method that will introspect subset of bean properties needed to
874
+ * construct bean instance.
875
+ */
876
+ @SuppressWarnings("unchecked")
877
+ public <T extends BeanDescription> T introspectForCreation(JavaType type) {
878
+ return (T) getClassIntrospector().forCreation(this, type, this);
879
+ }
880
+
881
+ /*
882
+ /**********************************************************
883
+ /* Extended API: handler instantiation
884
+ /**********************************************************
885
+ */
886
+
887
+ @SuppressWarnings("unchecked")
888
+ public JsonDeserializer<Object> deserializerInstance(Annotated annotated,
889
+ Class<? extends JsonDeserializer<?>> deserClass)
890
+ {
891
+ HandlerInstantiator hi = getHandlerInstantiator();
892
+ if (hi != null) {
893
+ JsonDeserializer<?> deser = hi.deserializerInstance(this, annotated, deserClass);
894
+ if (deser != null) {
895
+ return (JsonDeserializer<Object>) deser;
896
+ }
897
+ }
898
+ return (JsonDeserializer<Object>) ClassUtil.createInstance(deserClass, canOverrideAccessModifiers());
899
+ }
900
+
901
+ public KeyDeserializer keyDeserializerInstance(Annotated annotated,
902
+ Class<? extends KeyDeserializer> keyDeserClass)
903
+ {
904
+ HandlerInstantiator hi = getHandlerInstantiator();
905
+ if (hi != null) {
906
+ KeyDeserializer keyDeser = hi.keyDeserializerInstance(this, annotated, keyDeserClass);
907
+ if (keyDeser != null) {
908
+ return (KeyDeserializer) keyDeser;
909
+ }
910
+ }
911
+ return (KeyDeserializer) ClassUtil.createInstance(keyDeserClass, canOverrideAccessModifiers());
912
+ }
913
+
914
+ public ValueInstantiator valueInstantiatorInstance(Annotated annotated,
915
+ Class<? extends ValueInstantiator> instClass)
916
+ {
917
+ HandlerInstantiator hi = getHandlerInstantiator();
918
+ if (hi != null) {
919
+ ValueInstantiator inst = hi.valueInstantiatorInstance(this, annotated, instClass);
920
+ if (inst != null) {
921
+ return (ValueInstantiator) inst;
922
+ }
923
+ }
924
+ return (ValueInstantiator) ClassUtil.createInstance(instClass, canOverrideAccessModifiers());
925
+ }
926
+ }