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,958 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import java.io.EOFException;
4
+ import java.io.File;
5
+ import java.io.IOException;
6
+ import java.io.InputStream;
7
+ import java.io.Reader;
8
+ import java.net.URL;
9
+ import java.util.Iterator;
10
+ import java.util.concurrent.ConcurrentHashMap;
11
+
12
+ import sh.calaba.org.codehaus.jackson.FormatSchema;
13
+ import sh.calaba.org.codehaus.jackson.JsonFactory;
14
+ import sh.calaba.org.codehaus.jackson.JsonGenerator;
15
+ import sh.calaba.org.codehaus.jackson.JsonNode;
16
+ import sh.calaba.org.codehaus.jackson.JsonParseException;
17
+ import sh.calaba.org.codehaus.jackson.JsonParser;
18
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
19
+ import sh.calaba.org.codehaus.jackson.JsonToken;
20
+ import sh.calaba.org.codehaus.jackson.ObjectCodec;
21
+ import sh.calaba.org.codehaus.jackson.Version;
22
+ import sh.calaba.org.codehaus.jackson.Versioned;
23
+ import sh.calaba.org.codehaus.jackson.io.SerializedString;
24
+ import sh.calaba.org.codehaus.jackson.map.deser.StdDeserializationContext;
25
+ import sh.calaba.org.codehaus.jackson.map.type.SimpleType;
26
+ import sh.calaba.org.codehaus.jackson.node.JsonNodeFactory;
27
+ import sh.calaba.org.codehaus.jackson.node.NullNode;
28
+ import sh.calaba.org.codehaus.jackson.node.TreeTraversingParser;
29
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
30
+ import sh.calaba.org.codehaus.jackson.type.TypeReference;
31
+ import sh.calaba.org.codehaus.jackson.util.VersionUtil;
32
+
33
+ /**
34
+ * Builder object that can be used for per-serialization configuration of
35
+ * deserialization parameters, such as root type to use or object
36
+ * to update (instead of constructing new instance).
37
+ * Uses "fluid" (aka builder) pattern so that instances are immutable
38
+ * (and thus fully thread-safe with no external synchronization);
39
+ * new instances are constructed for different configurations.
40
+ * Instances are initially constructed by {@link ObjectMapper} and can be
41
+ * reused.
42
+ *
43
+ * @author tatu
44
+ * @since 1.6
45
+ */
46
+ public class ObjectReader
47
+ extends ObjectCodec
48
+ implements Versioned
49
+ {
50
+ private final static JavaType JSON_NODE_TYPE = SimpleType.constructUnsafe(JsonNode.class);
51
+
52
+ /*
53
+ /**********************************************************
54
+ /* Immutable configuration from ObjectMapper
55
+ /**********************************************************
56
+ */
57
+
58
+ /**
59
+ * General serialization configuration settings; while immutable,
60
+ * can use copy-constructor to create modified instances as necessary.
61
+ */
62
+ protected final DeserializationConfig _config;
63
+
64
+ /**
65
+ * Flag that indicates whether root values are expected to be unwrapped
66
+ * or not
67
+ *
68
+ * @since 1.9
69
+ */
70
+ protected final boolean _unwrapRoot;
71
+
72
+ /**
73
+ * Root-level cached deserializers
74
+ */
75
+ final protected ConcurrentHashMap<JavaType, JsonDeserializer<Object>> _rootDeserializers;
76
+
77
+ protected final DeserializerProvider _provider;
78
+
79
+ /**
80
+ * Factory used for constructing {@link JsonGenerator}s
81
+ */
82
+ protected final JsonFactory _jsonFactory;
83
+
84
+ /*
85
+ /**********************************************************
86
+ /* Configuration that can be changed during building
87
+ /**********************************************************
88
+ */
89
+
90
+ /**
91
+ * Declared type of value to instantiate during deserialization.
92
+ * Defines which deserializer to use; as well as base type of instance
93
+ * to construct if an updatable value is not configured to be used
94
+ * (subject to changes by embedded type information, for polymorphic
95
+ * types). If {@link #_valueToUpdate} is non-null, only used for
96
+ * locating deserializer.
97
+ */
98
+ protected final JavaType _valueType;
99
+
100
+ /**
101
+ * Instance to update with data binding; if any. If null,
102
+ * a new instance is created, if non-null, properties of
103
+ * this value object will be updated instead.
104
+ * Note that value can be of almost any type, except not
105
+ * {@link sh.calaba.org.codehaus.jackson.map.type.ArrayType}; array
106
+ * types can not be modified because array size is immutable.
107
+ */
108
+ protected final Object _valueToUpdate;
109
+
110
+ /**
111
+ * When using data format that uses a schema, schema is passed
112
+ * to parser.
113
+ *
114
+ * @since 1.8
115
+ */
116
+ protected final FormatSchema _schema;
117
+
118
+ /**
119
+ * Values that can be injected during deserialization, if any.
120
+ *
121
+ * @since 1.9
122
+ */
123
+ protected final InjectableValues _injectableValues;
124
+
125
+ /*
126
+ /**********************************************************
127
+ /* Life-cycle
128
+ /**********************************************************
129
+ */
130
+
131
+ /**
132
+ * Constructor used by {@link ObjectMapper} for initial instantiation
133
+ *
134
+ * @since 1.8
135
+ */
136
+ protected ObjectReader(ObjectMapper mapper, DeserializationConfig config)
137
+ {
138
+ this(mapper, config, null, null, null, null);
139
+ }
140
+
141
+ protected ObjectReader(ObjectMapper mapper, DeserializationConfig config,
142
+ JavaType valueType, Object valueToUpdate, FormatSchema schema,
143
+ InjectableValues injectableValues)
144
+ {
145
+ _config = config;
146
+ _rootDeserializers = mapper._rootDeserializers;
147
+ _provider = mapper._deserializerProvider;
148
+ _jsonFactory = mapper._jsonFactory;
149
+ _valueType = valueType;
150
+ _valueToUpdate = valueToUpdate;
151
+ if (valueToUpdate != null && valueType.isArrayType()) {
152
+ throw new IllegalArgumentException("Can not update an array value");
153
+ }
154
+ _schema = schema;
155
+ _injectableValues = injectableValues;
156
+ _unwrapRoot = config.isEnabled(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE);
157
+ }
158
+
159
+ /**
160
+ * Copy constructor used for building variations.
161
+ */
162
+ protected ObjectReader(ObjectReader base, DeserializationConfig config,
163
+ JavaType valueType, Object valueToUpdate, FormatSchema schema,
164
+ InjectableValues injectableValues)
165
+ {
166
+ _config = config;
167
+
168
+ _rootDeserializers = base._rootDeserializers;
169
+ _provider = base._provider;
170
+ _jsonFactory = base._jsonFactory;
171
+
172
+ _valueType = valueType;
173
+ _valueToUpdate = valueToUpdate;
174
+ if (valueToUpdate != null && valueType.isArrayType()) {
175
+ throw new IllegalArgumentException("Can not update an array value");
176
+ }
177
+ _schema = schema;
178
+ _injectableValues = injectableValues;
179
+ _unwrapRoot = config.isEnabled(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE);
180
+ }
181
+
182
+ /**
183
+ * Method that will return version information stored in and read from jar
184
+ * that contains this class.
185
+ *
186
+ * @since 1.6
187
+ */
188
+ @Override
189
+ public Version version() {
190
+ return VersionUtil.versionFor(getClass());
191
+ }
192
+
193
+ /**
194
+ * Method for constructing a new reader instance that is configured
195
+ * to data bind into specified type.
196
+ *<p>
197
+ * Note that the method does NOT change state of this reader, but
198
+ * rather construct and returns a newly configured instance.
199
+ */
200
+ public ObjectReader withType(JavaType valueType)
201
+ {
202
+ if (valueType == _valueType) return this;
203
+ // type is stored here, no need to make a copy of config
204
+ return new ObjectReader(this, _config, valueType, _valueToUpdate,
205
+ _schema, _injectableValues);
206
+ }
207
+
208
+ /**
209
+ * Method for constructing a new reader instance that is configured
210
+ * to data bind into specified type.
211
+ *<p>
212
+ * Note that the method does NOT change state of this reader, but
213
+ * rather construct and returns a newly configured instance.
214
+ */
215
+ public ObjectReader withType(Class<?> valueType)
216
+ {
217
+ return withType(_config.constructType(valueType));
218
+ }
219
+
220
+ /**
221
+ * Method for constructing a new reader instance that is configured
222
+ * to data bind into specified type.
223
+ *<p>
224
+ * Note that the method does NOT change state of this reader, but
225
+ * rather construct and returns a newly configured instance.
226
+ */
227
+ public ObjectReader withType(java.lang.reflect.Type valueType)
228
+ {
229
+ return withType(_config.getTypeFactory().constructType(valueType));
230
+ }
231
+
232
+ /**
233
+ * Method for constructing a new reader instance that is configured
234
+ * to data bind into specified type.
235
+ *<p>
236
+ * Note that the method does NOT change state of this reader, but
237
+ * rather construct and returns a newly configured instance.
238
+ *
239
+ * @since 1.8
240
+ */
241
+ public ObjectReader withType(TypeReference<?> valueTypeRef)
242
+ {
243
+ return withType(_config.getTypeFactory().constructType(valueTypeRef.getType()));
244
+ }
245
+
246
+ /**
247
+ * Method for constructing a new reader instance with configuration that uses
248
+ * passed {@link JsonNodeFactory} for constructing {@link JsonNode}
249
+ * instances.
250
+ *<p>
251
+ * Note that the method does NOT change state of this reader, but
252
+ * rather construct and returns a newly configured instance.
253
+ */
254
+ public ObjectReader withNodeFactory(JsonNodeFactory f)
255
+ {
256
+ // node factory is stored within config, so need to copy that first
257
+ if (f == _config.getNodeFactory()) return this;
258
+ return new ObjectReader(this, _config.withNodeFactory(f), _valueType, _valueToUpdate,
259
+ _schema, _injectableValues);
260
+ }
261
+
262
+ /**
263
+ * Method for constructing a new instance with configuration that
264
+ * updates passed Object (as root value), instead of constructing
265
+ * a new value.
266
+ *<p>
267
+ * Note that the method does NOT change state of this reader, but
268
+ * rather construct and returns a newly configured instance.
269
+ */
270
+ public ObjectReader withValueToUpdate(Object value)
271
+ {
272
+ if (value == _valueToUpdate) return this;
273
+ if (value == null) {
274
+ throw new IllegalArgumentException("cat not update null value");
275
+ }
276
+ JavaType t = (_valueType == null) ? _config.constructType(value.getClass()) : _valueType;
277
+ return new ObjectReader(this, _config, t, value,
278
+ _schema, _injectableValues);
279
+ }
280
+
281
+ /**
282
+ * Method for constructing a new instance with configuration that
283
+ * passes specified {@link FormatSchema} to {@link JsonParser} that
284
+ * is constructed for parsing content.
285
+ *<p>
286
+ * Note that the method does NOT change state of this reader, but
287
+ * rather construct and returns a newly configured instance.
288
+ *
289
+ * @since 1.8
290
+ */
291
+ public ObjectReader withSchema(FormatSchema schema)
292
+ {
293
+ if (_schema == schema) {
294
+ return this;
295
+ }
296
+ return new ObjectReader(this, _config, _valueType, _valueToUpdate,
297
+ schema, _injectableValues);
298
+ }
299
+
300
+ /**
301
+ * Method for constructing a new instance with configuration that uses
302
+ * passed {@link InjectableValues} to provide injectable values.
303
+ *<p>
304
+ * Note that the method does NOT change state of this reader, but
305
+ * rather construct and returns a newly configured instance.
306
+ *
307
+ * @since 1.9
308
+ */
309
+ public ObjectReader withInjectableValues(InjectableValues injectableValues)
310
+ {
311
+ if (_injectableValues == injectableValues) {
312
+ return this;
313
+ }
314
+ return new ObjectReader(this, _config, _valueType, _valueToUpdate,
315
+ _schema, injectableValues);
316
+ }
317
+
318
+ /*
319
+ /**********************************************************
320
+ /* Deserialization methods; basic ones to support ObjectCodec first
321
+ /* (ones that take JsonParser)
322
+ /**********************************************************
323
+ */
324
+
325
+ /**
326
+ * Method that binds content read using given parser, using
327
+ * configuration of this reader, including expected result type.
328
+ * Value return is either newly constructed, or root value that
329
+ * was specified with {@link #withValueToUpdate(Object)}.
330
+ */
331
+ @SuppressWarnings("unchecked")
332
+ public <T> T readValue(JsonParser jp)
333
+ throws IOException, JsonProcessingException
334
+ {
335
+ return (T) _bind(jp);
336
+ }
337
+
338
+ /**
339
+ * Convenience method that binds content read using given parser, using
340
+ * configuration of this reader, except that expected value type
341
+ * is specified with the call (instead of currently configured root type).
342
+ * Value return is either newly constructed, or root value that
343
+ * was specified with {@link #withValueToUpdate(Object)}.
344
+ */
345
+ @SuppressWarnings("unchecked")
346
+ @Override
347
+ public <T> T readValue(JsonParser jp, Class<T> valueType)
348
+ throws IOException, JsonProcessingException
349
+ {
350
+ return (T) withType(valueType).readValue(jp);
351
+ }
352
+
353
+ /**
354
+ * Convenience method that binds content read using given parser, using
355
+ * configuration of this reader, except that expected value type
356
+ * is specified with the call (instead of currently configured root type).
357
+ * Value return is either newly constructed, or root value that
358
+ * was specified with {@link #withValueToUpdate(Object)}.
359
+ */
360
+ @SuppressWarnings("unchecked")
361
+ @Override
362
+ public <T> T readValue(JsonParser jp, TypeReference<?> valueTypeRef)
363
+ throws IOException, JsonProcessingException
364
+ {
365
+ return (T) withType(valueTypeRef).readValue(jp);
366
+ }
367
+
368
+ /**
369
+ * Convenience method that binds content read using given parser, using
370
+ * configuration of this reader, except that expected value type
371
+ * is specified with the call (instead of currently configured root type).
372
+ * Value return is either newly constructed, or root value that
373
+ * was specified with {@link #withValueToUpdate(Object)}.
374
+ */
375
+ @SuppressWarnings("unchecked")
376
+ @Override
377
+ public <T> T readValue(JsonParser jp, JavaType valueType) throws IOException, JsonProcessingException {
378
+ return (T) withType(valueType).readValue(jp);
379
+ }
380
+
381
+ /**
382
+ * Convenience method that binds content read using given parser, using
383
+ * configuration of this reader, except that content is bound as
384
+ * JSON tree instead of configured root value type.
385
+ *<p>
386
+ * Note: if an object was specified with {@link #withValueToUpdate}, it
387
+ * will be ignored.
388
+ */
389
+ @Override
390
+ public JsonNode readTree(JsonParser jp)
391
+ throws IOException, JsonProcessingException
392
+ {
393
+ return _bindAsTree(jp);
394
+ }
395
+
396
+ /**
397
+ * Convenience method that is equivalent to:
398
+ *<pre>
399
+ * withType(valueType).readValues(jp);
400
+ *</pre>
401
+ */
402
+ @Override
403
+ public <T> Iterator<T> readValues(JsonParser jp, Class<T> valueType)
404
+ throws IOException, JsonProcessingException {
405
+ return withType(valueType).readValues(jp);
406
+ }
407
+
408
+ /**
409
+ * Convenience method that is equivalent to:
410
+ *<pre>
411
+ * withType(valueTypeRef).readValues(jp);
412
+ *</pre>
413
+ */
414
+ @Override
415
+ public <T> Iterator<T> readValues(JsonParser jp, TypeReference<?> valueTypeRef)
416
+ throws IOException, JsonProcessingException {
417
+ return withType(valueTypeRef).readValues(jp);
418
+ }
419
+
420
+ /**
421
+ * Convenience method that is equivalent to:
422
+ *<pre>
423
+ * withType(valueType).readValues(jp);
424
+ *</pre>
425
+ */
426
+ @Override
427
+ public <T> Iterator<T> readValues(JsonParser jp, JavaType valueType)
428
+ throws IOException, JsonProcessingException {
429
+ return withType(valueType).readValues(jp);
430
+ }
431
+
432
+ /*
433
+ /**********************************************************
434
+ /* Deserialization methods; others similar to what ObjectMapper has
435
+ /**********************************************************
436
+ */
437
+
438
+ /**
439
+ * Method that binds content read from given input source,
440
+ * using configuration of this reader.
441
+ * Value return is either newly constructed, or root value that
442
+ * was specified with {@link #withValueToUpdate(Object)}.
443
+ */
444
+ @SuppressWarnings("unchecked")
445
+ public <T> T readValue(InputStream src)
446
+ throws IOException, JsonProcessingException
447
+ {
448
+ return (T) _bindAndClose(_jsonFactory.createJsonParser(src));
449
+ }
450
+
451
+ /**
452
+ * Method that binds content read from given input source,
453
+ * using configuration of this reader.
454
+ * Value return is either newly constructed, or root value that
455
+ * was specified with {@link #withValueToUpdate(Object)}.
456
+ */
457
+ @SuppressWarnings("unchecked")
458
+ public <T> T readValue(Reader src)
459
+ throws IOException, JsonProcessingException
460
+ {
461
+ return (T) _bindAndClose(_jsonFactory.createJsonParser(src));
462
+ }
463
+
464
+ /**
465
+ * Method that binds content read from given JSON string,
466
+ * using configuration of this reader.
467
+ * Value return is either newly constructed, or root value that
468
+ * was specified with {@link #withValueToUpdate(Object)}.
469
+ */
470
+ @SuppressWarnings("unchecked")
471
+ public <T> T readValue(String src)
472
+ throws IOException, JsonProcessingException
473
+ {
474
+ return (T) _bindAndClose(_jsonFactory.createJsonParser(src));
475
+ }
476
+
477
+ /**
478
+ * Method that binds content read from given byte array,
479
+ * using configuration of this reader.
480
+ * Value return is either newly constructed, or root value that
481
+ * was specified with {@link #withValueToUpdate(Object)}.
482
+ */
483
+ @SuppressWarnings("unchecked")
484
+ public <T> T readValue(byte[] src)
485
+ throws IOException, JsonProcessingException
486
+ {
487
+ return (T) _bindAndClose(_jsonFactory.createJsonParser(src));
488
+ }
489
+
490
+ /**
491
+ * Method that binds content read from given byte array,
492
+ * using configuration of this reader.
493
+ * Value return is either newly constructed, or root value that
494
+ * was specified with {@link #withValueToUpdate(Object)}.
495
+ */
496
+ @SuppressWarnings("unchecked")
497
+ public <T> T readValue(byte[] src, int offset, int length)
498
+ throws IOException, JsonProcessingException
499
+ {
500
+ return (T) _bindAndClose(_jsonFactory.createJsonParser(src, offset, length));
501
+ }
502
+
503
+ @SuppressWarnings("unchecked")
504
+ public <T> T readValue(File src)
505
+ throws IOException, JsonProcessingException
506
+ {
507
+ return (T) _bindAndClose(_jsonFactory.createJsonParser(src));
508
+ }
509
+
510
+ /**
511
+ * Method that binds content read from given input source,
512
+ * using configuration of this reader.
513
+ * Value return is either newly constructed, or root value that
514
+ * was specified with {@link #withValueToUpdate(Object)}.
515
+ */
516
+ @SuppressWarnings("unchecked")
517
+ public <T> T readValue(URL src)
518
+ throws IOException, JsonProcessingException
519
+ {
520
+ return (T) _bindAndClose(_jsonFactory.createJsonParser(src));
521
+ }
522
+
523
+ /**
524
+ * Convenience method for converting results from given JSON tree into given
525
+ * value type. Basically short-cut for:
526
+ *<pre>
527
+ * objectReader.readValue(src.traverse())
528
+ *</pre>
529
+ */
530
+ @SuppressWarnings("unchecked")
531
+ public <T> T readValue(JsonNode src)
532
+ throws IOException, JsonProcessingException
533
+ {
534
+ return (T) _bindAndClose(treeAsTokens(src));
535
+ }
536
+
537
+ /**
538
+ * Method that reads content from given input source,
539
+ * using configuration of this reader, and binds it as JSON Tree.
540
+ *<p>
541
+ * Note that if an object was specified with a call to
542
+ * {@link #withValueToUpdate(Object)}
543
+ * it will just be ignored; result is always a newly constructed
544
+ * {@link JsonNode} instance.
545
+ */
546
+ public JsonNode readTree(InputStream in)
547
+ throws IOException, JsonProcessingException
548
+ {
549
+ return _bindAndCloseAsTree(_jsonFactory.createJsonParser(in));
550
+ }
551
+
552
+ /**
553
+ * Method that reads content from given input source,
554
+ * using configuration of this reader, and binds it as JSON Tree.
555
+ *<p>
556
+ * Note that if an object was specified with a call to
557
+ * {@link #withValueToUpdate(Object)}
558
+ * it will just be ignored; result is always a newly constructed
559
+ * {@link JsonNode} instance.
560
+ */
561
+ public JsonNode readTree(Reader r)
562
+ throws IOException, JsonProcessingException
563
+ {
564
+ return _bindAndCloseAsTree(_jsonFactory.createJsonParser(r));
565
+ }
566
+
567
+ /**
568
+ * Method that reads content from given JSON input String,
569
+ * using configuration of this reader, and binds it as JSON Tree.
570
+ *<p>
571
+ * Note that if an object was specified with a call to
572
+ * {@link #withValueToUpdate(Object)}
573
+ * it will just be ignored; result is always a newly constructed
574
+ * {@link JsonNode} instance.
575
+ */
576
+ public JsonNode readTree(String content)
577
+ throws IOException, JsonProcessingException
578
+ {
579
+ return _bindAndCloseAsTree(_jsonFactory.createJsonParser(content));
580
+ }
581
+
582
+ /*
583
+ /**********************************************************
584
+ /* Deserialization methods; reading sequence of values
585
+ /**********************************************************
586
+ */
587
+
588
+ /**
589
+ * Method for reading sequence of Objects from parser stream.
590
+ *
591
+ * @since 1.8
592
+ */
593
+ public <T> MappingIterator<T> readValues(JsonParser jp)
594
+ throws IOException, JsonProcessingException
595
+ {
596
+ DeserializationContext ctxt = _createDeserializationContext(jp, _config);
597
+ // false -> do not close as caller gave parser instance
598
+ return new MappingIterator<T>(_valueType, jp, ctxt,
599
+ _findRootDeserializer(_config, _valueType),
600
+ false, _valueToUpdate);
601
+ }
602
+
603
+ /**
604
+ * Method for reading sequence of Objects from parser stream.
605
+ *
606
+ * @since 1.8
607
+ */
608
+ public <T> MappingIterator<T> readValues(InputStream src)
609
+ throws IOException, JsonProcessingException
610
+ {
611
+ JsonParser jp = _jsonFactory.createJsonParser(src);
612
+ if (_schema != null) {
613
+ jp.setSchema(_schema);
614
+ }
615
+ DeserializationContext ctxt = _createDeserializationContext(jp, _config);
616
+ return new MappingIterator<T>(_valueType, jp, ctxt,
617
+ _findRootDeserializer(_config, _valueType),
618
+ true, _valueToUpdate);
619
+ }
620
+
621
+ /**
622
+ * Method for reading sequence of Objects from parser stream.
623
+ *
624
+ * @since 1.8
625
+ */
626
+ public <T> MappingIterator<T> readValues(Reader src)
627
+ throws IOException, JsonProcessingException
628
+ {
629
+ JsonParser jp = _jsonFactory.createJsonParser(src);
630
+ if (_schema != null) {
631
+ jp.setSchema(_schema);
632
+ }
633
+ DeserializationContext ctxt = _createDeserializationContext(jp, _config);
634
+ return new MappingIterator<T>(_valueType, jp, ctxt,
635
+ _findRootDeserializer(_config, _valueType), true, _valueToUpdate);
636
+ }
637
+
638
+ /**
639
+ * Method for reading sequence of Objects from parser stream.
640
+ *
641
+ * @since 1.8
642
+ */
643
+ public <T> MappingIterator<T> readValues(String json)
644
+ throws IOException, JsonProcessingException
645
+ {
646
+ JsonParser jp = _jsonFactory.createJsonParser(json);
647
+ if (_schema != null) {
648
+ jp.setSchema(_schema);
649
+ }
650
+ DeserializationContext ctxt = _createDeserializationContext(jp, _config);
651
+ return new MappingIterator<T>(_valueType, jp, ctxt,
652
+ _findRootDeserializer(_config, _valueType), true, _valueToUpdate);
653
+ }
654
+
655
+ /**
656
+ * Method for reading sequence of Objects from parser stream.
657
+ *
658
+ * @since 1.8
659
+ */
660
+ public <T> MappingIterator<T> readValues(byte[] src, int offset, int length)
661
+ throws IOException, JsonProcessingException
662
+ {
663
+ JsonParser jp = _jsonFactory.createJsonParser(src, offset, length);
664
+ if (_schema != null) {
665
+ jp.setSchema(_schema);
666
+ }
667
+ DeserializationContext ctxt = _createDeserializationContext(jp, _config);
668
+ return new MappingIterator<T>(_valueType, jp, ctxt,
669
+ _findRootDeserializer(_config, _valueType), true, _valueToUpdate);
670
+ }
671
+
672
+ /**
673
+ * Since 1.9.3
674
+ */
675
+ public final <T> MappingIterator<T> readValues(byte[] src)
676
+ throws IOException, JsonProcessingException {
677
+ return readValues(src, 0, src.length);
678
+ }
679
+
680
+ /**
681
+ * Method for reading sequence of Objects from parser stream.
682
+ *
683
+ * @since 1.8
684
+ */
685
+ public <T> MappingIterator<T> readValues(File src)
686
+ throws IOException, JsonProcessingException
687
+ {
688
+ JsonParser jp = _jsonFactory.createJsonParser(src);
689
+ if (_schema != null) {
690
+ jp.setSchema(_schema);
691
+ }
692
+ DeserializationContext ctxt = _createDeserializationContext(jp, _config);
693
+ return new MappingIterator<T>(_valueType, jp, ctxt,
694
+ _findRootDeserializer(_config, _valueType), true, _valueToUpdate);
695
+ }
696
+
697
+ /**
698
+ * Method for reading sequence of Objects from parser stream.
699
+ *
700
+ * @since 1.8
701
+ */
702
+ public <T> MappingIterator<T> readValues(URL src)
703
+ throws IOException, JsonProcessingException
704
+ {
705
+ JsonParser jp = _jsonFactory.createJsonParser(src);
706
+ if (_schema != null) {
707
+ jp.setSchema(_schema);
708
+ }
709
+ DeserializationContext ctxt = _createDeserializationContext(jp, _config);
710
+ return new MappingIterator<T>(_valueType, jp, ctxt,
711
+ _findRootDeserializer(_config, _valueType), true, _valueToUpdate);
712
+ }
713
+
714
+ /*
715
+ /**********************************************************
716
+ /* Helper methods
717
+ /**********************************************************
718
+ */
719
+
720
+ /**
721
+ * Actual implementation of value reading+binding operation.
722
+ */
723
+ protected Object _bind(JsonParser jp)
724
+ throws IOException, JsonParseException, JsonMappingException
725
+ {
726
+ /* First: may need to read the next token, to initialize state (either
727
+ * before first read from parser, or after previous token has been cleared)
728
+ */
729
+ Object result;
730
+ JsonToken t = _initForReading(jp);
731
+ if (t == JsonToken.VALUE_NULL) {
732
+ if (_valueToUpdate == null) {
733
+ result = _findRootDeserializer(_config, _valueType).getNullValue();
734
+ } else {
735
+ result = _valueToUpdate;
736
+ }
737
+ } else if (t == JsonToken.END_ARRAY || t == JsonToken.END_OBJECT) {
738
+ result = _valueToUpdate;
739
+ } else { // pointing to event other than null
740
+ DeserializationContext ctxt = _createDeserializationContext(jp, _config);
741
+ JsonDeserializer<Object> deser = _findRootDeserializer(_config, _valueType);
742
+ if (_unwrapRoot) {
743
+ result = _unwrapAndDeserialize(jp, ctxt, _valueType, deser);
744
+ } else {
745
+ if (_valueToUpdate == null) {
746
+ result = deser.deserialize(jp, ctxt);
747
+ } else {
748
+ deser.deserialize(jp, ctxt, _valueToUpdate);
749
+ result = _valueToUpdate;
750
+ }
751
+ }
752
+ }
753
+ // Need to consume the token too
754
+ jp.clearCurrentToken();
755
+ return result;
756
+ }
757
+
758
+ protected Object _bindAndClose(JsonParser jp)
759
+ throws IOException, JsonParseException, JsonMappingException
760
+ {
761
+ if (_schema != null) {
762
+ jp.setSchema(_schema);
763
+ }
764
+ try {
765
+ Object result;
766
+ JsonToken t = _initForReading(jp);
767
+ if (t == JsonToken.VALUE_NULL) {
768
+ if (_valueToUpdate == null) {
769
+ result = _findRootDeserializer(_config, _valueType).getNullValue();
770
+ } else {
771
+ result = _valueToUpdate;
772
+ }
773
+ } else if (t == JsonToken.END_ARRAY || t == JsonToken.END_OBJECT) {
774
+ result = _valueToUpdate;
775
+ } else {
776
+ DeserializationContext ctxt = _createDeserializationContext(jp, _config);
777
+ JsonDeserializer<Object> deser = _findRootDeserializer(_config, _valueType);
778
+ if (_unwrapRoot) {
779
+ result = _unwrapAndDeserialize(jp, ctxt, _valueType, deser);
780
+ } else {
781
+ if (_valueToUpdate == null) {
782
+ result = deser.deserialize(jp, ctxt);
783
+ } else {
784
+ deser.deserialize(jp, ctxt, _valueToUpdate);
785
+ result = _valueToUpdate;
786
+ }
787
+ }
788
+ }
789
+ return result;
790
+ } finally {
791
+ try {
792
+ jp.close();
793
+ } catch (IOException ioe) { }
794
+ }
795
+ }
796
+
797
+ protected JsonNode _bindAsTree(JsonParser jp)
798
+ throws IOException, JsonParseException, JsonMappingException
799
+ {
800
+ JsonNode result;
801
+ JsonToken t = _initForReading(jp);
802
+ if (t == JsonToken.VALUE_NULL || t == JsonToken.END_ARRAY || t == JsonToken.END_OBJECT) {
803
+ result = NullNode.instance;
804
+ } else {
805
+ DeserializationContext ctxt = _createDeserializationContext(jp, _config);
806
+ JsonDeserializer<Object> deser = _findRootDeserializer(_config, JSON_NODE_TYPE);
807
+ if (_unwrapRoot) {
808
+ result = (JsonNode) _unwrapAndDeserialize(jp, ctxt, JSON_NODE_TYPE, deser);
809
+ } else {
810
+ result = (JsonNode) deser.deserialize(jp, ctxt);
811
+ }
812
+ }
813
+ // Need to consume the token too
814
+ jp.clearCurrentToken();
815
+ return result;
816
+ }
817
+
818
+ protected JsonNode _bindAndCloseAsTree(JsonParser jp)
819
+ throws IOException, JsonParseException, JsonMappingException
820
+ {
821
+ if (_schema != null) {
822
+ jp.setSchema(_schema);
823
+ }
824
+ try {
825
+ return _bindAsTree(jp);
826
+ } finally {
827
+ try {
828
+ jp.close();
829
+ } catch (IOException ioe) { }
830
+ }
831
+ }
832
+
833
+ protected static JsonToken _initForReading(JsonParser jp)
834
+ throws IOException, JsonParseException, JsonMappingException
835
+ {
836
+ /* First: must point to a token; if not pointing to one, advance.
837
+ * This occurs before first read from JsonParser, as well as
838
+ * after clearing of current token.
839
+ */
840
+ JsonToken t = jp.getCurrentToken();
841
+ if (t == null) { // and then we must get something...
842
+ t = jp.nextToken();
843
+ if (t == null) { // [JACKSON-99] Should throw EOFException?
844
+ throw new EOFException("No content to map to Object due to end of input");
845
+ }
846
+ }
847
+ return t;
848
+ }
849
+
850
+ /**
851
+ * Method called to locate deserializer for the passed root-level value.
852
+ */
853
+ protected JsonDeserializer<Object> _findRootDeserializer(DeserializationConfig cfg, JavaType valueType)
854
+ throws JsonMappingException
855
+ {
856
+ // Sanity check: must have actual type...
857
+ if (valueType == null) {
858
+ throw new JsonMappingException("No value type configured for ObjectReader");
859
+ }
860
+
861
+ // First: have we already seen it?
862
+ JsonDeserializer<Object> deser = _rootDeserializers.get(valueType);
863
+ if (deser != null) {
864
+ return deser;
865
+ }
866
+
867
+ // Nope: need to ask provider to resolve it
868
+ deser = _provider.findTypedValueDeserializer(cfg, valueType, null);
869
+ if (deser == null) { // can this happen?
870
+ throw new JsonMappingException("Can not find a deserializer for type "+valueType);
871
+ }
872
+ _rootDeserializers.put(valueType, deser);
873
+ return deser;
874
+ }
875
+
876
+ protected DeserializationContext _createDeserializationContext(JsonParser jp, DeserializationConfig cfg) {
877
+ // 04-Jan-2010, tatu: we do actually need the provider too... (for polymorphic deser)
878
+ return new StdDeserializationContext(cfg, jp, _provider, _injectableValues);
879
+ }
880
+
881
+ protected Object _unwrapAndDeserialize(JsonParser jp, DeserializationContext ctxt,
882
+ JavaType rootType, JsonDeserializer<Object> deser)
883
+ throws IOException, JsonParseException, JsonMappingException
884
+ {
885
+ SerializedString rootName = _provider.findExpectedRootName(ctxt.getConfig(), rootType);
886
+ if (jp.getCurrentToken() != JsonToken.START_OBJECT) {
887
+ throw JsonMappingException.from(jp, "Current token not START_OBJECT (needed to unwrap root name '"
888
+ +rootName+"'), but "+jp.getCurrentToken());
889
+ }
890
+ if (jp.nextToken() != JsonToken.FIELD_NAME) {
891
+ throw JsonMappingException.from(jp, "Current token not FIELD_NAME (to contain expected root name '"
892
+ +rootName+"'), but "+jp.getCurrentToken());
893
+ }
894
+ String actualName = jp.getCurrentName();
895
+ if (!rootName.getValue().equals(actualName)) {
896
+ throw JsonMappingException.from(jp, "Root name '"+actualName+"' does not match expected ('"+rootName
897
+ +"') for type "+rootType);
898
+ }
899
+ // ok, then move to value itself....
900
+ jp.nextToken();
901
+ Object result;
902
+ if (_valueToUpdate == null) {
903
+ result = deser.deserialize(jp, ctxt);
904
+ } else {
905
+ deser.deserialize(jp, ctxt, _valueToUpdate);
906
+ result = _valueToUpdate;
907
+ }
908
+ // and last, verify that we now get matching END_OBJECT
909
+ if (jp.nextToken() != JsonToken.END_OBJECT) {
910
+ throw JsonMappingException.from(jp, "Current token not END_OBJECT (to match wrapper object with root name '"
911
+ +rootName+"'), but "+jp.getCurrentToken());
912
+ }
913
+ return result;
914
+ }
915
+
916
+ /*
917
+ /**********************************************************
918
+ /* Implementation of rest of ObjectCodec methods
919
+ /**********************************************************
920
+ */
921
+
922
+ @Override
923
+ public JsonNode createArrayNode() {
924
+ return _config.getNodeFactory().arrayNode();
925
+ }
926
+
927
+ @Override
928
+ public JsonNode createObjectNode() {
929
+ return _config.getNodeFactory().objectNode();
930
+ }
931
+
932
+ @Override
933
+ public JsonParser treeAsTokens(JsonNode n) {
934
+ return new TreeTraversingParser(n, this);
935
+ }
936
+
937
+ @Override
938
+ public <T> T treeToValue(JsonNode n, Class<T> valueType)
939
+ throws IOException, JsonProcessingException
940
+ {
941
+ return readValue(treeAsTokens(n), valueType);
942
+ }
943
+
944
+ /**
945
+ * NOTE: NOT implemented for {@link ObjectReader}.
946
+ */
947
+ @Override
948
+ public void writeTree(JsonGenerator jgen, JsonNode rootNode) throws IOException, JsonProcessingException
949
+ {
950
+ throw new UnsupportedOperationException("Not implemented for ObjectReader");
951
+ }
952
+
953
+ @Override
954
+ public void writeValue(JsonGenerator jgen, Object value) throws IOException, JsonProcessingException
955
+ {
956
+ throw new UnsupportedOperationException("Not implemented for ObjectReader");
957
+ }
958
+ }