calabash-android 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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
+ }