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,326 @@
1
+ package sh.calaba.org.codehaus.jackson.map.deser;
2
+
3
+ import java.io.IOException;
4
+ import java.text.DateFormat;
5
+ import java.text.ParseException;
6
+ import java.util.*;
7
+
8
+ import sh.calaba.org.codehaus.jackson.JsonParser;
9
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
10
+ import sh.calaba.org.codehaus.jackson.JsonToken;
11
+ import sh.calaba.org.codehaus.jackson.map.*;
12
+ import sh.calaba.org.codehaus.jackson.map.exc.UnrecognizedPropertyException;
13
+ import sh.calaba.org.codehaus.jackson.map.util.ArrayBuilders;
14
+ import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
15
+ import sh.calaba.org.codehaus.jackson.map.util.LinkedNode;
16
+ import sh.calaba.org.codehaus.jackson.map.util.ObjectBuffer;
17
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
18
+
19
+ /**
20
+ * Default implementation of {@link DeserializationContext}.
21
+ */
22
+ public class StdDeserializationContext
23
+ extends DeserializationContext
24
+ {
25
+ /**
26
+ * Let's limit length of error messages, for cases where underlying data
27
+ * may be very large -- no point in spamming logs with megs of meaningless
28
+ * data.
29
+ */
30
+ final static int MAX_ERROR_STR_LEN = 500;
31
+
32
+ // // // Configuration
33
+
34
+ /**
35
+ * Currently active parser used for deserialization.
36
+ * May be different from the outermost parser
37
+ * when content is buffered.
38
+ */
39
+ protected JsonParser _parser;
40
+
41
+ /**
42
+ * @since 1.5
43
+ */
44
+ protected final DeserializerProvider _deserProvider;
45
+
46
+ /**
47
+ * @since 1.9
48
+ */
49
+ protected final InjectableValues _injectableValues;
50
+
51
+ // // // Helper object recycling
52
+
53
+ protected ArrayBuilders _arrayBuilders;
54
+
55
+ protected ObjectBuffer _objectBuffer;
56
+
57
+ protected DateFormat _dateFormat;
58
+
59
+ /*
60
+ /**********************************************************
61
+ /* Life-cycle
62
+ /**********************************************************
63
+ */
64
+
65
+ public StdDeserializationContext(DeserializationConfig config, JsonParser jp,
66
+ DeserializerProvider prov, InjectableValues injectableValues)
67
+ {
68
+ super(config);
69
+ _parser = jp;
70
+ _deserProvider = prov;
71
+ _injectableValues = injectableValues;
72
+ }
73
+
74
+ /*
75
+ /**********************************************************
76
+ /* Public API, accessors
77
+ /**********************************************************
78
+ */
79
+
80
+ @Override
81
+ public DeserializerProvider getDeserializerProvider() {
82
+ return _deserProvider;
83
+ }
84
+
85
+ /**
86
+ * Method for accessing the currently active parser.
87
+ * May be different from the outermost parser
88
+ * when content is buffered.
89
+ *<p>
90
+ * Use of this method is discouraged: if code has direct access
91
+ * to the active parser, that should be used instead.
92
+ */
93
+ @Override
94
+ public JsonParser getParser() { return _parser; }
95
+
96
+ @Override
97
+ public Object findInjectableValue(Object valueId,
98
+ BeanProperty forProperty, Object beanInstance)
99
+ {
100
+ if (_injectableValues == null) {
101
+ throw new IllegalStateException("No 'injectableValues' configured, can not inject value with id ["+valueId+"]");
102
+ }
103
+ return _injectableValues.findInjectableValue(valueId, this, forProperty, beanInstance);
104
+ }
105
+
106
+ /*
107
+ /**********************************************************
108
+ /* Public API, helper object recycling
109
+ /**********************************************************
110
+ */
111
+
112
+ @Override
113
+ public final ObjectBuffer leaseObjectBuffer()
114
+ {
115
+ ObjectBuffer buf = _objectBuffer;
116
+ if (buf == null) {
117
+ buf = new ObjectBuffer();
118
+ } else {
119
+ _objectBuffer = null;
120
+ }
121
+ return buf;
122
+ }
123
+
124
+ @Override
125
+ public final void returnObjectBuffer(ObjectBuffer buf)
126
+ {
127
+ /* Already have a reusable buffer? Let's retain bigger one
128
+ * (or if equal, favor newer one, shorter life-cycle)
129
+ */
130
+ if (_objectBuffer == null
131
+ || buf.initialCapacity() >= _objectBuffer.initialCapacity()) {
132
+ _objectBuffer = buf;
133
+ }
134
+ }
135
+
136
+ @Override
137
+ public final ArrayBuilders getArrayBuilders()
138
+ {
139
+ if (_arrayBuilders == null) {
140
+ _arrayBuilders = new ArrayBuilders();
141
+ }
142
+ return _arrayBuilders;
143
+ }
144
+
145
+ /*
146
+ /**********************************************************
147
+ /* Parsing methods that may use reusable/recyclable objects
148
+ /**********************************************************
149
+ */
150
+
151
+ @Override
152
+ public Date parseDate(String dateStr)
153
+ throws IllegalArgumentException
154
+ {
155
+ try {
156
+ return getDateFormat().parse(dateStr);
157
+ } catch (ParseException pex) {
158
+ throw new IllegalArgumentException(pex.getMessage());
159
+ }
160
+ }
161
+
162
+ @Override
163
+ public Calendar constructCalendar(Date d)
164
+ {
165
+ /* 08-Jan-2008, tatu: not optimal, but should work for the
166
+ * most part; let's revise as needed.
167
+ */
168
+ Calendar c = Calendar.getInstance();
169
+ c.setTime(d);
170
+ return c;
171
+ }
172
+ /*
173
+ /**********************************************************
174
+ /* Public API, problem handling, reporting
175
+ /**********************************************************
176
+ */
177
+
178
+ /**
179
+ * Method deserializers can call to inform configured {@link DeserializationProblemHandler}s
180
+ * of an unrecognized property.
181
+ *
182
+ * @since 1.5
183
+ */
184
+ @Override
185
+ public boolean handleUnknownProperty(JsonParser jp, JsonDeserializer<?> deser, Object instanceOrClass, String propName)
186
+ throws IOException, JsonProcessingException
187
+ {
188
+ LinkedNode<DeserializationProblemHandler> h = _config.getProblemHandlers();
189
+ if (h != null) {
190
+ /* 04-Jan-2009, tatu: Ugh. Need to mess with currently active parser
191
+ * since parser is not explicitly passed to handler... that was a mistake
192
+ */
193
+ JsonParser oldParser = _parser;
194
+ _parser = jp;
195
+ try {
196
+ while (h != null) {
197
+ // Can bail out if it's handled
198
+ if (h.value().handleUnknownProperty(this, deser, instanceOrClass, propName)) {
199
+ return true;
200
+ }
201
+ h = h.next();
202
+ }
203
+ } finally {
204
+ _parser = oldParser;
205
+ }
206
+ }
207
+ return false;
208
+ }
209
+
210
+ @Override
211
+ public JsonMappingException mappingException(Class<?> targetClass) {
212
+ return mappingException(targetClass, _parser.getCurrentToken());
213
+ }
214
+
215
+ @Override
216
+ public JsonMappingException mappingException(Class<?> targetClass, JsonToken token)
217
+ {
218
+ String clsName = _calcName(targetClass);
219
+ return JsonMappingException.from(_parser, "Can not deserialize instance of "+clsName+" out of "+token+" token");
220
+ }
221
+
222
+ @Override
223
+ public JsonMappingException instantiationException(Class<?> instClass, Throwable t)
224
+ {
225
+ return JsonMappingException.from(_parser,
226
+ "Can not construct instance of "+instClass.getName()+", problem: "+t.getMessage(),
227
+ t);
228
+ }
229
+
230
+ @Override
231
+ public JsonMappingException instantiationException(Class<?> instClass, String msg)
232
+ {
233
+ return JsonMappingException.from(_parser, "Can not construct instance of "+instClass.getName()+", problem: "+msg);
234
+ }
235
+
236
+ /**
237
+ * Method that will construct an exception suitable for throwing when
238
+ * some String values are acceptable, but the one encountered is not
239
+ */
240
+ @Override
241
+ public JsonMappingException weirdStringException(Class<?> instClass, String msg)
242
+ {
243
+ return JsonMappingException.from(_parser, "Can not construct instance of "+instClass.getName()+" from String value '"+_valueDesc()+"': "+msg);
244
+ }
245
+
246
+ @Override
247
+ public JsonMappingException weirdNumberException(Class<?> instClass, String msg)
248
+ {
249
+ return JsonMappingException.from(_parser, "Can not construct instance of "+instClass.getName()+" from number value ("+_valueDesc()+"): "+msg);
250
+ }
251
+
252
+ @Override
253
+ public JsonMappingException weirdKeyException(Class<?> keyClass, String keyValue, String msg)
254
+ {
255
+ return JsonMappingException.from(_parser, "Can not construct Map key of type "+keyClass.getName()+" from String \""+_desc(keyValue)+"\": "+msg);
256
+ }
257
+
258
+ @Override
259
+ public JsonMappingException wrongTokenException(JsonParser jp, JsonToken expToken, String msg)
260
+ {
261
+ return JsonMappingException.from(jp, "Unexpected token ("+jp.getCurrentToken()+"), expected "+expToken+": "+msg);
262
+ }
263
+
264
+ @Override
265
+ public JsonMappingException unknownFieldException(Object instanceOrClass, String fieldName)
266
+ {
267
+ return UnrecognizedPropertyException.from(_parser, instanceOrClass, fieldName);
268
+ }
269
+
270
+ @Override
271
+ public JsonMappingException unknownTypeException(JavaType type, String id)
272
+ {
273
+ return JsonMappingException.from(_parser, "Could not resolve type id '"+id+"' into a subtype of "+type);
274
+ }
275
+
276
+ /*
277
+ /**********************************************************
278
+ /* Overridable internal methods
279
+ /**********************************************************
280
+ */
281
+
282
+ protected DateFormat getDateFormat()
283
+ {
284
+ if (_dateFormat == null) {
285
+ // must create a clone since Formats are not thread-safe:
286
+ _dateFormat = (DateFormat)_config.getDateFormat().clone();
287
+ }
288
+ return _dateFormat;
289
+ }
290
+
291
+ protected String determineClassName(Object instance)
292
+ {
293
+ return ClassUtil.getClassDescription(instance);
294
+ }
295
+
296
+ /*
297
+ /**********************************************************
298
+ /* Other internal methods
299
+ /**********************************************************
300
+ */
301
+
302
+ protected String _calcName(Class<?> cls)
303
+ {
304
+ if (cls.isArray()) {
305
+ return _calcName(cls.getComponentType())+"[]";
306
+ }
307
+ return cls.getName();
308
+ }
309
+
310
+ protected String _valueDesc()
311
+ {
312
+ try {
313
+ return _desc(_parser.getText());
314
+ } catch (Exception e) {
315
+ return "[N/A]";
316
+ }
317
+ }
318
+ protected String _desc(String desc)
319
+ {
320
+ // !!! should we quote it? (in case there are control chars, linefeeds)
321
+ if (desc.length() > MAX_ERROR_STR_LEN) {
322
+ desc = desc.substring(0, MAX_ERROR_STR_LEN) + "]...[" + desc.substring(desc.length() - MAX_ERROR_STR_LEN);
323
+ }
324
+ return desc;
325
+ }
326
+ }
@@ -0,0 +1,94 @@
1
+ package sh.calaba.org.codehaus.jackson.map.deser;
2
+
3
+ import java.io.IOException;
4
+
5
+ import sh.calaba.org.codehaus.jackson.Base64Variants;
6
+ import sh.calaba.org.codehaus.jackson.JsonParser;
7
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
8
+ import sh.calaba.org.codehaus.jackson.JsonToken;
9
+ import sh.calaba.org.codehaus.jackson.map.DeserializationContext;
10
+ import sh.calaba.org.codehaus.jackson.map.TypeDeserializer;
11
+ import sh.calaba.org.codehaus.jackson.map.annotate.JacksonStdImpl;
12
+ import sh.calaba.org.codehaus.jackson.map.deser.std.StdScalarDeserializer;
13
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
14
+
15
+ /**
16
+ * @deprecated Since 1.9, use {@link sh.calaba.org.codehaus.jackson.map.deser.std.StdDeserializer} instead.
17
+ */
18
+ @Deprecated
19
+ public abstract class StdDeserializer<T>
20
+ extends sh.calaba.org.codehaus.jackson.map.deser.std.StdDeserializer<T>
21
+ {
22
+ protected StdDeserializer(Class<?> vc) {
23
+ super(vc);
24
+ }
25
+
26
+ protected StdDeserializer(JavaType valueType) {
27
+ super(valueType);
28
+ }
29
+
30
+ /*
31
+ /**********************************************************
32
+ /* Deprecated inner classes
33
+ /**********************************************************
34
+ */
35
+
36
+ /**
37
+ * @deprecated Since 1.9 use {@link sh.calaba.org.codehaus.jackson.map.deser.std.ClassDeserializer} instead.
38
+ */
39
+ @Deprecated
40
+ @JacksonStdImpl
41
+ public class ClassDeserializer extends sh.calaba.org.codehaus.jackson.map.deser.std.ClassDeserializer { }
42
+
43
+ /**
44
+ * @deprecated Since 1.9 use {@link sh.calaba.org.codehaus.jackson.map.deser.std.CalendarDeserializer} instead.
45
+ */
46
+ @Deprecated
47
+ @JacksonStdImpl
48
+ public class CalendarDeserializer extends sh.calaba.org.codehaus.jackson.map.deser.std.CalendarDeserializer { }
49
+
50
+ /**
51
+ * @deprecated Since 1.9 use {@link sh.calaba.org.codehaus.jackson.map.deser.std.StringDeserializer} instead.
52
+ */
53
+ @Deprecated
54
+ @JacksonStdImpl
55
+ public final static class StringDeserializer
56
+ extends StdScalarDeserializer<String>
57
+ {
58
+ public StringDeserializer() { super(String.class); }
59
+
60
+ @Override
61
+ public String deserialize(JsonParser jp, DeserializationContext ctxt)
62
+ throws IOException, JsonProcessingException
63
+ {
64
+ JsonToken curr = jp.getCurrentToken();
65
+ if (curr == JsonToken.VALUE_STRING) {
66
+ return jp.getText();
67
+ }
68
+ if (curr == JsonToken.VALUE_EMBEDDED_OBJECT) {
69
+ Object ob = jp.getEmbeddedObject();
70
+ if (ob == null) {
71
+ return null;
72
+ }
73
+ if (ob instanceof byte[]) {
74
+ return Base64Variants.getDefaultVariant().encode((byte[]) ob, false);
75
+ }
76
+ return ob.toString();
77
+ }
78
+ if (curr.isScalarValue()) {
79
+ return jp.getText();
80
+ }
81
+ throw ctxt.mappingException(_valueClass, curr);
82
+ }
83
+
84
+ @SuppressWarnings("deprecation")
85
+ @Override
86
+ public String deserializeWithType(JsonParser jp, DeserializationContext ctxt,
87
+ TypeDeserializer typeDeserializer)
88
+ throws IOException, JsonProcessingException
89
+ {
90
+ return deserialize(jp, ctxt);
91
+ }
92
+ }
93
+
94
+ }
@@ -0,0 +1,494 @@
1
+ package sh.calaba.org.codehaus.jackson.map.deser;
2
+
3
+ import java.io.IOException;
4
+ import java.util.HashMap;
5
+ import java.util.concurrent.ConcurrentHashMap;
6
+
7
+ import sh.calaba.org.codehaus.jackson.JsonNode;
8
+ import sh.calaba.org.codehaus.jackson.JsonParser;
9
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
10
+ import sh.calaba.org.codehaus.jackson.io.SerializedString;
11
+ import sh.calaba.org.codehaus.jackson.map.AbstractTypeResolver;
12
+ import sh.calaba.org.codehaus.jackson.map.AnnotationIntrospector;
13
+ import sh.calaba.org.codehaus.jackson.map.BeanProperty;
14
+ import sh.calaba.org.codehaus.jackson.map.ContextualDeserializer;
15
+ import sh.calaba.org.codehaus.jackson.map.ContextualKeyDeserializer;
16
+ import sh.calaba.org.codehaus.jackson.map.DeserializationConfig;
17
+ import sh.calaba.org.codehaus.jackson.map.DeserializationContext;
18
+ import sh.calaba.org.codehaus.jackson.map.DeserializerFactory;
19
+ import sh.calaba.org.codehaus.jackson.map.DeserializerProvider;
20
+ import sh.calaba.org.codehaus.jackson.map.Deserializers;
21
+ import sh.calaba.org.codehaus.jackson.map.JsonDeserializer;
22
+ import sh.calaba.org.codehaus.jackson.map.JsonMappingException;
23
+ import sh.calaba.org.codehaus.jackson.map.KeyDeserializer;
24
+ import sh.calaba.org.codehaus.jackson.map.KeyDeserializers;
25
+ import sh.calaba.org.codehaus.jackson.map.ResolvableDeserializer;
26
+ import sh.calaba.org.codehaus.jackson.map.TypeDeserializer;
27
+ import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedClass;
28
+ import sh.calaba.org.codehaus.jackson.map.type.ArrayType;
29
+ import sh.calaba.org.codehaus.jackson.map.type.CollectionLikeType;
30
+ import sh.calaba.org.codehaus.jackson.map.type.CollectionType;
31
+ import sh.calaba.org.codehaus.jackson.map.type.MapLikeType;
32
+ import sh.calaba.org.codehaus.jackson.map.type.MapType;
33
+ import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
34
+ import sh.calaba.org.codehaus.jackson.map.util.RootNameLookup;
35
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
36
+
37
+
38
+
39
+ /**
40
+ * Default {@link DeserializerProvider} implementation.
41
+ * Handles low-level caching (non-root) aspects of deserializer
42
+ * handling; all construction details are delegated to configured
43
+ * {@link DeserializerFactory} instance that the provider owns.
44
+ */
45
+ public class StdDeserializerProvider
46
+ extends DeserializerProvider
47
+ {
48
+ /*
49
+ /**********************************************************
50
+ /* Caching
51
+ /**********************************************************
52
+ */
53
+
54
+ /**
55
+ * We will also cache some dynamically constructed deserializers;
56
+ * specifically, ones that are expensive to construct.
57
+ * This currently means bean and Enum deserializers; array, List and Map
58
+ * deserializers will not be cached.
59
+ *<p>
60
+ * Given that we don't expect much concurrency for additions
61
+ * (should very quickly converge to zero after startup), let's
62
+ * explicitly define a low concurrency setting.
63
+ */
64
+ final protected ConcurrentHashMap<JavaType, JsonDeserializer<Object>> _cachedDeserializers
65
+ = new ConcurrentHashMap<JavaType, JsonDeserializer<Object>>(64, 0.75f, 2);
66
+
67
+ /**
68
+ * During deserializer construction process we may need to keep track of partially
69
+ * completed deserializers, to resolve cyclic dependencies. This is the
70
+ * map used for storing deserializers before they are fully complete.
71
+ */
72
+ final protected HashMap<JavaType, JsonDeserializer<Object>> _incompleteDeserializers
73
+ = new HashMap<JavaType, JsonDeserializer<Object>>(8);
74
+
75
+ final protected RootNameLookup _rootNames;
76
+
77
+ /*
78
+ /**********************************************************
79
+ /* Configuration
80
+ /**********************************************************
81
+ */
82
+
83
+ /**
84
+ * Factory responsible for constructing actual deserializers, if not
85
+ * one of pre-configured types.
86
+ */
87
+ protected DeserializerFactory _factory;
88
+
89
+ /*
90
+ /**********************************************************
91
+ /* Life-cycle
92
+ /**********************************************************
93
+ */
94
+
95
+ /**
96
+ * Default constructor. Equivalent to calling
97
+ *<pre>
98
+ * new StdDeserializerProvider(BeanDeserializerFactory.instance);
99
+ *</pre>
100
+ */
101
+ public StdDeserializerProvider() { this(BeanDeserializerFactory.instance); }
102
+
103
+ public StdDeserializerProvider(DeserializerFactory f) {
104
+ _factory = f;
105
+ _rootNames = new RootNameLookup();
106
+ }
107
+
108
+ @Override
109
+ public DeserializerProvider withAdditionalDeserializers(Deserializers d) {
110
+ return withFactory(_factory.withAdditionalDeserializers(d));
111
+ }
112
+
113
+ @Override
114
+ public DeserializerProvider withAdditionalKeyDeserializers(KeyDeserializers d) {
115
+ return withFactory(_factory.withAdditionalKeyDeserializers(d));
116
+ }
117
+
118
+ @Override
119
+ public DeserializerProvider withDeserializerModifier(BeanDeserializerModifier modifier) {
120
+ return withFactory(_factory.withDeserializerModifier(modifier));
121
+ }
122
+
123
+ @Override
124
+ public DeserializerProvider withAbstractTypeResolver(AbstractTypeResolver resolver) {
125
+ return withFactory(_factory.withAbstractTypeResolver(resolver));
126
+ }
127
+
128
+ @Override
129
+ public DeserializerProvider withValueInstantiators(ValueInstantiators instantiators) {
130
+ return withFactory(_factory.withValueInstantiators(instantiators));
131
+ }
132
+
133
+ @Override
134
+ public StdDeserializerProvider withFactory(DeserializerFactory factory) {
135
+ // sanity-check to try to prevent hard-to-debug problems; sub-classes MUST override this method
136
+ if (this.getClass() != StdDeserializerProvider.class) {
137
+ throw new IllegalStateException("DeserializerProvider of type "
138
+ +this.getClass().getName()+" does not override 'withFactory()' method");
139
+ }
140
+ return new StdDeserializerProvider(factory);
141
+ }
142
+
143
+ /*
144
+ /**********************************************************
145
+ /* Abstract methods impls
146
+ /**********************************************************
147
+ */
148
+
149
+ @Override
150
+ public JavaType mapAbstractType(DeserializationConfig config, JavaType type)
151
+ throws JsonMappingException
152
+ {
153
+ return _factory.mapAbstractType(config, type);
154
+ }
155
+
156
+ @Override
157
+ public SerializedString findExpectedRootName(DeserializationConfig config, JavaType type)
158
+ throws JsonMappingException
159
+ {
160
+ return _rootNames.findRootName(type, config);
161
+ }
162
+
163
+ @SuppressWarnings("unchecked")
164
+ @Override
165
+ public JsonDeserializer<Object> findValueDeserializer(DeserializationConfig config,
166
+ JavaType propertyType, BeanProperty property)
167
+ throws JsonMappingException
168
+ {
169
+ JsonDeserializer<Object> deser = _findCachedDeserializer(propertyType);
170
+ if (deser != null) {
171
+ // [JACKSON-385]: need to support contextualization:
172
+ if (deser instanceof ContextualDeserializer<?>) {
173
+ JsonDeserializer<?> d = ((ContextualDeserializer<?>) deser).createContextual(config, property);
174
+ deser = (JsonDeserializer<Object>) d;
175
+ }
176
+ return deser;
177
+ }
178
+ // If not, need to request factory to construct (or recycle)
179
+ deser = _createAndCacheValueDeserializer(config, propertyType, property);
180
+ if (deser == null) {
181
+ /* Should we let caller handle it? Let's have a helper method
182
+ * decide it; can throw an exception, or return a valid
183
+ * deserializer
184
+ */
185
+ deser = _handleUnknownValueDeserializer(propertyType);
186
+ }
187
+ // [JACKSON-385]: need to support contextualization:
188
+ if (deser instanceof ContextualDeserializer<?>) {
189
+ JsonDeserializer<?> d = ((ContextualDeserializer<?>) deser).createContextual(config, property);
190
+ deser = (JsonDeserializer<Object>) d;
191
+ }
192
+ return deser;
193
+ }
194
+
195
+ @Override
196
+ public JsonDeserializer<Object> findTypedValueDeserializer(DeserializationConfig config,
197
+ JavaType type, BeanProperty property)
198
+ throws JsonMappingException
199
+ {
200
+ JsonDeserializer<Object> deser = findValueDeserializer(config, type, property);
201
+ TypeDeserializer typeDeser = _factory.findTypeDeserializer(config, type, property);
202
+ if (typeDeser != null) {
203
+ return new WrappedDeserializer(typeDeser, deser);
204
+ }
205
+ return deser;
206
+ }
207
+
208
+ @Override
209
+ public KeyDeserializer findKeyDeserializer(DeserializationConfig config,
210
+ JavaType type, BeanProperty property)
211
+ throws JsonMappingException
212
+ {
213
+ KeyDeserializer kd = _factory.createKeyDeserializer(config, type, property);
214
+ // One more thing: contextuality
215
+ if (kd instanceof ContextualKeyDeserializer) {
216
+ kd = ((ContextualKeyDeserializer) kd).createContextual(config, property);
217
+ }
218
+ if (kd == null) { // if none found, need to use a placeholder that'll fail
219
+ return _handleUnknownKeyDeserializer(type);
220
+ }
221
+ return kd;
222
+ }
223
+
224
+ /**
225
+ * Method that can be called to find out whether a deserializer can
226
+ * be found for given type
227
+ */
228
+ @Override
229
+ public boolean hasValueDeserializerFor(DeserializationConfig config, JavaType type)
230
+ {
231
+ /* Note: mostly copied from findValueDeserializer, except for
232
+ * handling of unknown types
233
+ */
234
+ JsonDeserializer<Object> deser = _findCachedDeserializer(type);
235
+ if (deser == null) {
236
+ try {
237
+ deser = _createAndCacheValueDeserializer(config, type, null);
238
+ } catch (Exception e) {
239
+ return false;
240
+ }
241
+ }
242
+ return (deser != null);
243
+ }
244
+
245
+ @Override
246
+ public int cachedDeserializersCount() {
247
+ return _cachedDeserializers.size();
248
+ }
249
+
250
+ /**
251
+ * Method that will drop all dynamically constructed deserializers (ones that
252
+ * are counted as result value for {@link #cachedDeserializersCount}).
253
+ * This can be used to remove memory usage (in case some deserializers are
254
+ * only used once or so), or to force re-construction of deserializers after
255
+ * configuration changes for mapper than owns the provider.
256
+ *
257
+ * @since 1.4
258
+ */
259
+ @Override
260
+ public void flushCachedDeserializers() {
261
+ _cachedDeserializers.clear();
262
+ }
263
+
264
+ /*
265
+ /**********************************************************
266
+ /* Overridable helper methods
267
+ /**********************************************************
268
+ */
269
+
270
+ protected JsonDeserializer<Object> _findCachedDeserializer(JavaType type)
271
+ {
272
+ if (type == null) {
273
+ throw new IllegalArgumentException();
274
+ }
275
+ return _cachedDeserializers.get(type);
276
+ }
277
+
278
+ /**
279
+ * Method that will try to create a deserializer for given type,
280
+ * and resolve and cache it if necessary
281
+ *
282
+ * @param config Configuration
283
+ * @param type Type of property to deserializer
284
+ * @param property Property (field, setter, ctor arg) to use deserializer for
285
+ */
286
+ protected JsonDeserializer<Object>_createAndCacheValueDeserializer(DeserializationConfig config,
287
+ JavaType type, BeanProperty property)
288
+ throws JsonMappingException
289
+ {
290
+ /* Only one thread to construct deserializers at any given point in time;
291
+ * limitations necessary to ensure that only completely initialized ones
292
+ * are visible and used.
293
+ */
294
+ synchronized (_incompleteDeserializers) {
295
+ // Ok, then: could it be that due to a race condition, deserializer can now be found?
296
+ JsonDeserializer<Object> deser = _findCachedDeserializer(type);
297
+ if (deser != null) {
298
+ return deser;
299
+ }
300
+ int count = _incompleteDeserializers.size();
301
+ // Or perhaps being resolved right now?
302
+ if (count > 0) {
303
+ deser = _incompleteDeserializers.get(type);
304
+ if (deser != null) {
305
+ return deser;
306
+ }
307
+ }
308
+ // Nope: need to create and possibly cache
309
+ try {
310
+ return _createAndCache2(config, type, property);
311
+ } finally {
312
+ // also: any deserializers that have been created are complete by now
313
+ if (count == 0 && _incompleteDeserializers.size() > 0) {
314
+ _incompleteDeserializers.clear();
315
+ }
316
+ }
317
+ }
318
+ }
319
+
320
+ /**
321
+ * Method that handles actual construction (via factory) and caching (both
322
+ * intermediate and eventual)
323
+ */
324
+ protected JsonDeserializer<Object> _createAndCache2(DeserializationConfig config, JavaType type,
325
+ BeanProperty property)
326
+ throws JsonMappingException
327
+ {
328
+ JsonDeserializer<Object> deser;
329
+ try {
330
+ deser = _createDeserializer(config, type, property);
331
+ } catch (IllegalArgumentException iae) {
332
+ /* We better only expose checked exceptions, since those
333
+ * are what caller is expected to handle
334
+ */
335
+ throw new JsonMappingException(iae.getMessage(), null, iae);
336
+ }
337
+ if (deser == null) {
338
+ return null;
339
+ }
340
+ /* cache resulting deserializer? always true for "plain" BeanDeserializer
341
+ * (but can be re-defined for sub-classes by using @JsonCachable!)
342
+ */
343
+ // 08-Jun-2010, tatu: Related to [JACKSON-296], need to avoid caching MapSerializers... so:
344
+ boolean isResolvable = (deser instanceof ResolvableDeserializer);
345
+ boolean addToCache = (deser.getClass() == BeanDeserializer.class);
346
+ if (!addToCache) {
347
+ // 14-Feb-2011, tatu: As per [JACKSON-487], try fully blocking annotation access:
348
+ if (config.isEnabled(DeserializationConfig.Feature.USE_ANNOTATIONS)) {
349
+ AnnotationIntrospector aintr = config.getAnnotationIntrospector();
350
+ // note: pass 'null' to prevent mix-ins from being used
351
+ AnnotatedClass ac = AnnotatedClass.construct(deser.getClass(), aintr, null);
352
+ Boolean cacheAnn = aintr.findCachability(ac);
353
+ if (cacheAnn != null) {
354
+ addToCache = cacheAnn.booleanValue();
355
+ }
356
+ }
357
+ }
358
+ /* we will temporarily hold on to all created deserializers (to
359
+ * handle cyclic references, and possibly reuse non-cached
360
+ * deserializers (list, map))
361
+ */
362
+ /* 07-Jun-2010, tatu: Danger: [JACKSON-296] was caused by accidental
363
+ * resolution of a reference -- couple of ways to prevent this;
364
+ * either not add Lists or Maps, or clear references eagerly.
365
+ * Let's actually do both; since both seem reasonable.
366
+ */
367
+ /* Need to resolve? Mostly done for bean deserializers; required for
368
+ * resolving cyclic references.
369
+ */
370
+ if (isResolvable) {
371
+ _incompleteDeserializers.put(type, deser);
372
+ _resolveDeserializer(config, (ResolvableDeserializer)deser);
373
+ _incompleteDeserializers.remove(type);
374
+ }
375
+ if (addToCache) {
376
+ _cachedDeserializers.put(type, deser);
377
+ }
378
+ return deser;
379
+ }
380
+
381
+ /* Refactored so we can isolate the casts that require suppression
382
+ * of type-safety warnings.
383
+ */
384
+ @SuppressWarnings("unchecked")
385
+ protected JsonDeserializer<Object> _createDeserializer(DeserializationConfig config,
386
+ JavaType type, BeanProperty property)
387
+ throws JsonMappingException
388
+ {
389
+ if (type.isEnumType()) {
390
+ return (JsonDeserializer<Object>) _factory.createEnumDeserializer(config, this, type, property);
391
+ }
392
+ if (type.isContainerType()) {
393
+ if (type.isArrayType()) {
394
+ return (JsonDeserializer<Object>)_factory.createArrayDeserializer(config, this,
395
+ (ArrayType) type, property);
396
+ }
397
+ if (type.isMapLikeType()) {
398
+ MapLikeType mlt = (MapLikeType) type;
399
+ if (mlt.isTrueMapType()) {
400
+ return (JsonDeserializer<Object>)_factory.createMapDeserializer(config, this,
401
+ (MapType) mlt, property);
402
+ }
403
+ return (JsonDeserializer<Object>)_factory.createMapLikeDeserializer(config, this,
404
+ mlt, property);
405
+ }
406
+ if (type.isCollectionLikeType()) {
407
+ CollectionLikeType clt = (CollectionLikeType) type;
408
+ if (clt.isTrueCollectionType()) {
409
+ return (JsonDeserializer<Object>)_factory.createCollectionDeserializer(config, this,
410
+ (CollectionType) clt, property);
411
+ }
412
+ return (JsonDeserializer<Object>)_factory.createCollectionLikeDeserializer(config, this,
413
+ clt, property);
414
+ }
415
+ }
416
+
417
+ // 02-Mar-2009, tatu: Let's consider JsonNode to be a type of its own
418
+ if (JsonNode.class.isAssignableFrom(type.getRawClass())) {
419
+ return (JsonDeserializer<Object>)_factory.createTreeDeserializer(config, this, type, property);
420
+ }
421
+ return (JsonDeserializer<Object>)_factory.createBeanDeserializer(config, this, type, property);
422
+ }
423
+
424
+ protected void _resolveDeserializer(DeserializationConfig config, ResolvableDeserializer ser)
425
+ throws JsonMappingException
426
+ {
427
+ ser.resolve(config, this);
428
+ }
429
+
430
+ /*
431
+ /**********************************************************
432
+ /* Overridable error reporting methods
433
+ /**********************************************************
434
+ */
435
+
436
+ protected JsonDeserializer<Object> _handleUnknownValueDeserializer(JavaType type)
437
+ throws JsonMappingException
438
+ {
439
+ // Let's try to figure out the reason, to give better error
440
+ Class<?> rawClass = type.getRawClass();
441
+ if (!ClassUtil.isConcrete(rawClass)) {
442
+ throw new JsonMappingException("Can not find a Value deserializer for abstract type "+type);
443
+ }
444
+ throw new JsonMappingException("Can not find a Value deserializer for type "+type);
445
+ }
446
+
447
+ protected KeyDeserializer _handleUnknownKeyDeserializer(JavaType type)
448
+ throws JsonMappingException
449
+ {
450
+ throw new JsonMappingException("Can not find a (Map) Key deserializer for type "+type);
451
+ }
452
+
453
+ /*
454
+ /**********************************************************
455
+ /* Helper classes
456
+ /**********************************************************
457
+ */
458
+
459
+ /**
460
+ * Simple deserializer that will call configured type deserializer, passing
461
+ * in configured data deserializer, and exposing it all as a simple
462
+ * deserializer.
463
+ */
464
+ protected final static class WrappedDeserializer
465
+ extends JsonDeserializer<Object>
466
+ {
467
+ final TypeDeserializer _typeDeserializer;
468
+ final JsonDeserializer<Object> _deserializer;
469
+
470
+ public WrappedDeserializer(TypeDeserializer typeDeser, JsonDeserializer<Object> deser)
471
+ {
472
+ super();
473
+ _typeDeserializer = typeDeser;
474
+ _deserializer = deser;
475
+ }
476
+
477
+ @Override
478
+ public Object deserialize(JsonParser jp, DeserializationContext ctxt)
479
+ throws IOException, JsonProcessingException
480
+ {
481
+ return _deserializer.deserializeWithType(jp, ctxt, _typeDeserializer);
482
+ }
483
+
484
+ @Override
485
+ public Object deserializeWithType(JsonParser jp, DeserializationContext ctxt,
486
+ TypeDeserializer typeDeserializer)
487
+ throws IOException, JsonProcessingException
488
+ {
489
+ // should never happen? (if it can, could call on that object)
490
+ throw new IllegalStateException("Type-wrapped deserializer's deserializeWithType should never get called");
491
+ }
492
+ }
493
+
494
+ }