calabash-android 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. data/CHANGES.txt +1 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +8 -0
  4. data/Rakefile +2 -0
  5. data/bin/calabash-android +42 -0
  6. data/bin/calabash-android-build.rb +37 -0
  7. data/bin/calabash-android-generate.rb +26 -0
  8. data/bin/calabash-android-helpers.rb +71 -0
  9. data/bin/calabash-android-run.rb +18 -0
  10. data/bin/calabash-android-setup.rb +392 -0
  11. data/calabash-android.gemspec +23 -0
  12. data/doc/calabash-android-help.txt +21 -0
  13. data/epl-v10.html +261 -0
  14. data/features-skeleton/.irbrc +16 -0
  15. data/features-skeleton/irb_android.sh +2 -0
  16. data/features-skeleton/my_first.feature +5 -0
  17. data/features-skeleton/step_definitions/calabash_steps.rb +1 -0
  18. data/features-skeleton/support/app_installation_hooks.rb +26 -0
  19. data/features-skeleton/support/app_life_cycle_hooks.rb +28 -0
  20. data/features-skeleton/support/env.rb +1 -0
  21. data/features-skeleton/support/hooks.rb +18 -0
  22. data/lib/calabash-android.rb +2 -0
  23. data/lib/calabash-android/calabash_steps.rb +18 -0
  24. data/lib/calabash-android/canned_steps.md +239 -0
  25. data/lib/calabash-android/color_helper.rb +13 -0
  26. data/lib/calabash-android/cucumber.rb +9 -0
  27. data/lib/calabash-android/lib/screenShotTaker.jar +0 -0
  28. data/lib/calabash-android/management/adb.rb +11 -0
  29. data/lib/calabash-android/management/app_installation.rb +21 -0
  30. data/lib/calabash-android/operations.rb +283 -0
  31. data/lib/calabash-android/steps/additions_manual_steps.rb +11 -0
  32. data/lib/calabash-android/steps/app_steps.rb +10 -0
  33. data/lib/calabash-android/steps/assert_steps.rb +32 -0
  34. data/lib/calabash-android/steps/check_box_steps.rb +3 -0
  35. data/lib/calabash-android/steps/context_menu_steps.rb +12 -0
  36. data/lib/calabash-android/steps/date_picker_steps.rb +8 -0
  37. data/lib/calabash-android/steps/enter_text_steps.rb +21 -0
  38. data/lib/calabash-android/steps/location_steps.rb +19 -0
  39. data/lib/calabash-android/steps/navigation_steps.rb +27 -0
  40. data/lib/calabash-android/steps/press_button_steps.rb +35 -0
  41. data/lib/calabash-android/steps/progress_steps.rb +49 -0
  42. data/lib/calabash-android/steps/rotation_steps.rb +8 -0
  43. data/lib/calabash-android/steps/screenshot_steps.rb +11 -0
  44. data/lib/calabash-android/steps/spinner_steps.rb +3 -0
  45. data/lib/calabash-android/steps/time_picker_steps.rb +8 -0
  46. data/lib/calabash-android/version.rb +6 -0
  47. data/test-server/AndroidManifest.xml +13 -0
  48. data/test-server/build.xml +192 -0
  49. data/test-server/calabash-js/src/calabash.js +125 -0
  50. data/test-server/calabash-js/src/set_text.js +132 -0
  51. data/test-server/instrumentation-backend/.classpath +10 -0
  52. data/test-server/instrumentation-backend/.project +33 -0
  53. data/test-server/instrumentation-backend/.settings/org.eclipse.jdt.core.prefs +12 -0
  54. data/test-server/instrumentation-backend/AndroidManifest.xml +15 -0
  55. data/test-server/instrumentation-backend/assets/foo.bar +0 -0
  56. data/test-server/instrumentation-backend/gen/com/lesspainful/simpleui/test/R.java +23 -0
  57. data/test-server/instrumentation-backend/libs/robotium-solo-2.5.jar +0 -0
  58. data/test-server/instrumentation-backend/project.properties +11 -0
  59. data/test-server/instrumentation-backend/res/drawable-hdpi/ic_launcher.png +0 -0
  60. data/test-server/instrumentation-backend/res/drawable-ldpi/ic_launcher.png +0 -0
  61. data/test-server/instrumentation-backend/res/drawable-mdpi/ic_launcher.png +0 -0
  62. data/test-server/instrumentation-backend/res/layout/main.xml +12 -0
  63. data/test-server/instrumentation-backend/res/values/strings.xml +7 -0
  64. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Command.java +48 -0
  65. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/InstrumentationBackend.java +196 -0
  66. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +64 -0
  67. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/TestHelpers.java +136 -0
  68. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Action.java +11 -0
  69. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Actions.java +113 -0
  70. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/NullAction.java +23 -0
  71. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonNumber.java +22 -0
  72. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonText.java +27 -0
  73. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressImageButtonNumber.java +22 -0
  74. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/WaitForButton.java +47 -0
  75. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/checkbox/ToggleCheckboxNumber.java +22 -0
  76. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressText.java +22 -0
  77. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuById.java +26 -0
  78. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByIndex.java +22 -0
  79. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByText.java +26 -0
  80. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/ClickOnScreen.java +31 -0
  81. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/Swipe.java +28 -0
  82. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/helpers/ListActions.java +26 -0
  83. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/LongPressListItems.java +22 -0
  84. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/PressListItems.java +22 -0
  85. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/location/FakeGPSLocation.java +79 -0
  86. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollDown.java +28 -0
  87. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollUp.java +28 -0
  88. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/DownKey.java +24 -0
  89. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/GoBack.java +22 -0
  90. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/PressMenu.java +26 -0
  91. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/SelectFromMenuByText.java +24 -0
  92. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/spinner/SelectSpinnerItemByContentDescription.java +43 -0
  93. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertText.java +31 -0
  94. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertTextOfSpecificTextViewByContentDescription.java +32 -0
  95. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextByIndex.java +22 -0
  96. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextFieldByContentDescription.java +33 -0
  97. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClickOnText.java +22 -0
  98. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByContentDescription.java +32 -0
  99. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByIndex.java +22 -0
  100. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByContentDescription.java +33 -0
  101. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByIndex.java +24 -0
  102. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByContentDescription.java +34 -0
  103. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByIndex.java +26 -0
  104. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/ClickOnViewById.java +63 -0
  105. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/LongPressOnViewById.java +34 -0
  106. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/Press.java +89 -0
  107. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/WaitForViewById.java +41 -0
  108. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/Wait.java +24 -0
  109. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForDialogClose.java +21 -0
  110. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForProgress.java +47 -0
  111. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForScreen.java +49 -0
  112. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForText.java +26 -0
  113. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java +109 -0
  114. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java +33 -0
  115. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java +33 -0
  116. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/EnterTextByCssSelector.java +99 -0
  117. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +43 -0
  118. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Query.java +24 -0
  119. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +99 -0
  120. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ScrollTo.java +74 -0
  121. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetPropertyByCssSelector.java +43 -0
  122. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +50 -0
  123. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Touch.java +44 -0
  124. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variant.java +413 -0
  125. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variants.java +90 -0
  126. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/FormatSchema.java +29 -0
  127. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonEncoding.java +47 -0
  128. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonFactory.java +937 -0
  129. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerationException.java +28 -0
  130. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerator.java +1197 -0
  131. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonLocation.java +141 -0
  132. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonNode.java +879 -0
  133. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParseException.java +23 -0
  134. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParser.java +1434 -0
  135. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonProcessingException.java +80 -0
  136. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonStreamContext.java +122 -0
  137. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonToken.java +161 -0
  138. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/ObjectCodec.java +157 -0
  139. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/PrettyPrinter.java +166 -0
  140. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/SerializableString.java +54 -0
  141. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Version.java +90 -0
  142. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Versioned.java +20 -0
  143. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JacksonAnnotation.java +20 -0
  144. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnyGetter.java +25 -0
  145. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnySetter.java +24 -0
  146. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAutoDetect.java +148 -0
  147. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonBackReference.java +41 -0
  148. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonCreator.java +19 -0
  149. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonGetter.java +35 -0
  150. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnore.java +57 -0
  151. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreProperties.java +48 -0
  152. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreType.java +33 -0
  153. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonManagedReference.java +41 -0
  154. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonMethod.java +90 -0
  155. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonProperty.java +38 -0
  156. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonPropertyOrder.java +46 -0
  157. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonRawValue.java +33 -0
  158. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSetter.java +33 -0
  159. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSubTypes.java +44 -0
  160. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeInfo.java +236 -0
  161. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeName.java +28 -0
  162. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonUnwrapped.java +76 -0
  163. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonValue.java +46 -0
  164. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonWriteNullProperties.java +34 -0
  165. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/package-info.java +16 -0
  166. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatDetector.java +176 -0
  167. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatMatcher.java +117 -0
  168. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/InputAccessor.java +130 -0
  169. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/MatchStrength.java +64 -0
  170. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/package-info.java +8 -0
  171. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ByteSourceBootstrapper.java +518 -0
  172. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/DefaultPrettyPrinter.java +13 -0
  173. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Indenter.java +23 -0
  174. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonGeneratorBase.java +570 -0
  175. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonNumericParserBase.java +20 -0
  176. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserBase.java +1067 -0
  177. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserMinimalBase.java +539 -0
  178. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonReadContext.java +188 -0
  179. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonWriteContext.java +178 -0
  180. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParser.java +1815 -0
  181. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParserBase.java +228 -0
  182. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/StreamBasedParserBase.java +197 -0
  183. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8Generator.java +1757 -0
  184. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8StreamParser.java +2966 -0
  185. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/WriterBasedGenerator.java +1815 -0
  186. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/package-info.java +6 -0
  187. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/BaseReader.java +117 -0
  188. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/CharacterEscapes.java +73 -0
  189. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/IOContext.java +239 -0
  190. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/InputDecorator.java +67 -0
  191. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/JsonStringEncoder.java +408 -0
  192. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/MergedStream.java +145 -0
  193. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberInput.java +303 -0
  194. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberOutput.java +398 -0
  195. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/OutputDecorator.java +40 -0
  196. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SegmentedStringWriter.java +104 -0
  197. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SerializedString.java +114 -0
  198. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF32Reader.java +214 -0
  199. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF8Writer.java +387 -0
  200. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/package.html +4 -0
  201. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AbstractTypeResolver.java +63 -0
  202. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AnnotationIntrospector.java +1485 -0
  203. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanDescription.java +171 -0
  204. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanProperty.java +123 -0
  205. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanPropertyDefinition.java +66 -0
  206. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ClassIntrospector.java +117 -0
  207. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualDeserializer.java +38 -0
  208. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualKeyDeserializer.java +33 -0
  209. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualSerializer.java +38 -0
  210. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationConfig.java +926 -0
  211. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationContext.java +262 -0
  212. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationProblemHandler.java +56 -0
  213. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerFactory.java +356 -0
  214. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerProvider.java +185 -0
  215. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Deserializers.java +339 -0
  216. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/HandlerInstantiator.java +115 -0
  217. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/InjectableValues.java +85 -0
  218. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonDeserializer.java +166 -0
  219. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonMappingException.java +335 -0
  220. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializable.java +34 -0
  221. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializableWithType.java +22 -0
  222. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializer.java +138 -0
  223. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializer.java +31 -0
  224. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializers.java +21 -0
  225. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MapperConfig.java +1154 -0
  226. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingIterator.java +190 -0
  227. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingJsonFactory.java +81 -0
  228. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Module.java +255 -0
  229. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectMapper.java +2885 -0
  230. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectReader.java +958 -0
  231. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectWriter.java +554 -0
  232. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/PropertyNamingStrategy.java +258 -0
  233. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableDeserializer.java +23 -0
  234. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableSerializer.java +23 -0
  235. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/RuntimeJsonMappingException.java +21 -0
  236. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializationConfig.java +1041 -0
  237. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerFactory.java +198 -0
  238. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerProvider.java +552 -0
  239. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Serializers.java +137 -0
  240. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeDeserializer.java +118 -0
  241. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeSerializer.java +164 -0
  242. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonInject.java +30 -0
  243. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonStdImpl.java +25 -0
  244. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonCachable.java +32 -0
  245. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonDeserialize.java +109 -0
  246. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonFilter.java +31 -0
  247. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonRootName.java +29 -0
  248. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonSerialize.java +216 -0
  249. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeIdResolver.java +35 -0
  250. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeResolver.java +28 -0
  251. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonValueInstantiator.java +26 -0
  252. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonView.java +37 -0
  253. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/NoClass.java +19 -0
  254. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/package-info.java +5 -0
  255. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/AbstractDeserializer.java +102 -0
  256. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializer.java +28 -0
  257. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializers.java +11 -0
  258. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java +894 -0
  259. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializer.java +1537 -0
  260. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerBuilder.java +277 -0
  261. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerFactory.java +1474 -0
  262. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerModifier.java +58 -0
  263. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CollectionDeserializer.java +47 -0
  264. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ContainerDeserializer.java +14 -0
  265. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CustomDeserializerFactory.java +227 -0
  266. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/DateDeserializer.java +9 -0
  267. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumDeserializer.java +15 -0
  268. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumResolver.java +17 -0
  269. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/FromStringDeserializer.java +13 -0
  270. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/JsonNodeDeserializer.java +54 -0
  271. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/MapDeserializer.java +44 -0
  272. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableAnyProperty.java +177 -0
  273. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableBeanProperty.java +827 -0
  274. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializationContext.java +326 -0
  275. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializer.java +94 -0
  276. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializerProvider.java +494 -0
  277. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializers.java +119 -0
  278. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializer.java +12 -0
  279. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializers.java +11 -0
  280. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdScalarDeserializer.java +13 -0
  281. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ThrowableDeserializer.java +13 -0
  282. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/UntypedObjectDeserializer.java +9 -0
  283. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiator.java +280 -0
  284. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiators.java +52 -0
  285. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/BeanPropertyMap.java +257 -0
  286. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorCollector.java +141 -0
  287. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorProperty.java +152 -0
  288. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ExternalTypeHandler.java +173 -0
  289. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyBasedCreator.java +117 -0
  290. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValue.java +117 -0
  291. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValueBuffer.java +102 -0
  292. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/UnwrappedPropertyHandler.java +41 -0
  293. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ValueInjector.java +45 -0
  294. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/package-info.java +9 -0
  295. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/package-info.java +5 -0
  296. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicBooleanDeserializer.java +22 -0
  297. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicReferenceDeserializer.java +47 -0
  298. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CalendarDeserializer.java +47 -0
  299. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ClassDeserializer.java +49 -0
  300. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CollectionDeserializer.java +265 -0
  301. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ContainerDeserializerBase.java +37 -0
  302. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/DateDeserializer.java +30 -0
  303. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumDeserializer.java +139 -0
  304. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumMapDeserializer.java +90 -0
  305. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java +89 -0
  306. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/FromStringDeserializer.java +265 -0
  307. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JavaTypeDeserializer.java +38 -0
  308. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JsonNodeDeserializer.java +314 -0
  309. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/MapDeserializer.java +412 -0
  310. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ObjectArrayDeserializer.java +201 -0
  311. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/PrimitiveArrayDeserializers.java +583 -0
  312. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdDeserializer.java +1136 -0
  313. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java +340 -0
  314. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializers.java +108 -0
  315. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdScalarDeserializer.java +34 -0
  316. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdValueInstantiator.java +392 -0
  317. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringCollectionDeserializer.java +227 -0
  318. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringDeserializer.java +55 -0
  319. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ThrowableDeserializer.java +164 -0
  320. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TimestampDeserializer.java +30 -0
  321. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TokenBufferDeserializer.java +36 -0
  322. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/UntypedObjectDeserializer.java +248 -0
  323. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/package-info.java +15 -0
  324. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/exc/UnrecognizedPropertyException.java +75 -0
  325. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLDeserializers.java +114 -0
  326. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLSerializers.java +72 -0
  327. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/DOMDeserializer.java +65 -0
  328. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/OptionalHandlerFactory.java +217 -0
  329. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/package-info.java +23 -0
  330. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/Annotated.java +85 -0
  331. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedClass.java +980 -0
  332. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedConstructor.java +143 -0
  333. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedField.java +119 -0
  334. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMember.java +56 -0
  335. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethod.java +188 -0
  336. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethodMap.java +85 -0
  337. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedParameter.java +191 -0
  338. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedWithParams.java +195 -0
  339. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotationMap.java +101 -0
  340. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicBeanDescription.java +615 -0
  341. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicClassIntrospector.java +364 -0
  342. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/JacksonAnnotationIntrospector.java +813 -0
  343. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MemberKey.java +83 -0
  344. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MethodFilter.java +12 -0
  345. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/NopAnnotationIntrospector.java +209 -0
  346. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertiesCollector.java +713 -0
  347. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertyBuilder.java +648 -0
  348. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/VisibilityChecker.java +424 -0
  349. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/package-info.java +12 -0
  350. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/NamedType.java +53 -0
  351. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/SubtypeResolver.java +39 -0
  352. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeIdResolver.java +74 -0
  353. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeResolverBuilder.java +151 -0
  354. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeDeserializer.java +126 -0
  355. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeSerializer.java +110 -0
  356. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeDeserializer.java +37 -0
  357. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeSerializer.java +129 -0
  358. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeDeserializer.java +191 -0
  359. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeSerializer.java +69 -0
  360. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeDeserializer.java +103 -0
  361. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeSerializer.java +121 -0
  362. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/ClassNameIdResolver.java +138 -0
  363. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/MinimalClassNameIdResolver.java +66 -0
  364. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdSubtypeResolver.java +151 -0
  365. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdTypeResolverBuilder.java +202 -0
  366. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeDeserializerBase.java +154 -0
  367. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeIdResolverBase.java +37 -0
  368. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeNameIdResolver.java +154 -0
  369. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeSerializerBase.java +31 -0
  370. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/package-info.java +9 -0
  371. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/package-info.java +10 -0
  372. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleAbstractTypeResolver.java +86 -0
  373. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleDeserializers.java +130 -0
  374. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleKeyDeserializers.java +59 -0
  375. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleModule.java +265 -0
  376. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleSerializers.java +206 -0
  377. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleValueInstantiators.java +45 -0
  378. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/package-info.java +16 -0
  379. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/package-info.java +34 -0
  380. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/AnyGetterWriter.java +48 -0
  381. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ArraySerializers.java +7 -0
  382. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BasicSerializerFactory.java +806 -0
  383. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyFilter.java +30 -0
  384. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyWriter.java +512 -0
  385. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializer.java +126 -0
  386. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerBuilder.java +140 -0
  387. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerFactory.java +780 -0
  388. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerModifier.java +95 -0
  389. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ContainerSerializers.java +8 -0
  390. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/CustomSerializerFactory.java +293 -0
  391. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/EnumSerializer.java +17 -0
  392. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilterProvider.java +23 -0
  393. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilteredBeanPropertyWriter.java +96 -0
  394. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/JdkSerializers.java +11 -0
  395. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/MapSerializer.java +58 -0
  396. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/PropertyBuilder.java +372 -0
  397. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ScalarSerializerBase.java +18 -0
  398. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/SerializerBase.java +23 -0
  399. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdKeySerializer.java +10 -0
  400. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializerProvider.java +852 -0
  401. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializers.java +372 -0
  402. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ToStringSerializer.java +14 -0
  403. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/FailingSerializer.java +43 -0
  404. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/JsonSerializerMap.java +93 -0
  405. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/PropertySerializerMap.java +231 -0
  406. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/ReadOnlyClassToSerializerMap.java +73 -0
  407. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SerializerCache.java +304 -0
  408. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleBeanPropertyFilter.java +109 -0
  409. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleFilterProvider.java +114 -0
  410. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnknownSerializer.java +54 -0
  411. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanPropertyWriter.java +99 -0
  412. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanSerializer.java +76 -0
  413. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/package-info.java +5 -0
  414. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/package-info.java +5 -0
  415. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/AsArraySerializerBase.java +185 -0
  416. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java +340 -0
  417. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CalendarSerializer.java +43 -0
  418. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CollectionSerializer.java +113 -0
  419. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ContainerSerializerBase.java +51 -0
  420. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/DateSerializer.java +42 -0
  421. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumMapSerializer.java +218 -0
  422. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSerializer.java +84 -0
  423. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSetSerializer.java +47 -0
  424. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IndexedStringListSerializer.java +116 -0
  425. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/InetAddressSerializer.java +51 -0
  426. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IterableSerializer.java +63 -0
  427. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/JsonValueSerializer.java +233 -0
  428. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/MapSerializer.java +422 -0
  429. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NonTypedScalarSerializerBase.java +34 -0
  430. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NullSerializer.java +38 -0
  431. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ObjectArraySerializer.java +281 -0
  432. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/RawSerializer.java +52 -0
  433. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ScalarSerializerBase.java +52 -0
  434. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableSerializer.java +99 -0
  435. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableWithTypeSerializer.java +90 -0
  436. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializerBase.java +184 -0
  437. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StaticListSerializerBase.java +46 -0
  438. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdArraySerializers.java +476 -0
  439. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdContainerSerializers.java +249 -0
  440. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdJdkSerializers.java +195 -0
  441. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializer.java +43 -0
  442. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializers.java +95 -0
  443. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringCollectionSerializer.java +119 -0
  444. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringSerializer.java +36 -0
  445. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TimeZoneSerializer.java +38 -0
  446. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ToStringSerializer.java +73 -0
  447. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TokenBufferSerializer.java +66 -0
  448. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ArrayType.java +260 -0
  449. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ClassKey.java +94 -0
  450. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionLikeType.java +204 -0
  451. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionType.java +94 -0
  452. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/HierarchicType.java +88 -0
  453. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapLikeType.java +265 -0
  454. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapType.java +146 -0
  455. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/SimpleType.java +250 -0
  456. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBase.java +148 -0
  457. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBindings.java +351 -0
  458. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeFactory.java +1165 -0
  459. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeModifier.java +38 -0
  460. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeParser.java +134 -0
  461. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/package-info.java +10 -0
  462. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Annotations.java +23 -0
  463. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ArrayBuilders.java +293 -0
  464. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/BeanUtil.java +260 -0
  465. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ClassUtil.java +645 -0
  466. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Comparators.java +48 -0
  467. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumResolver.java +108 -0
  468. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumValues.java +82 -0
  469. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601DateFormat.java +52 -0
  470. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601Utils.java +230 -0
  471. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONPObject.java +105 -0
  472. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONWrappedObject.java +117 -0
  473. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LRUMap.java +28 -0
  474. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LinkedNode.java +45 -0
  475. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Named.java +10 -0
  476. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ObjectBuffer.java +257 -0
  477. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/PrimitiveArrayBuilder.java +180 -0
  478. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Provider.java +21 -0
  479. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/RootNameLookup.java +54 -0
  480. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/StdDateFormat.java +348 -0
  481. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/package-info.java +4 -0
  482. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ArrayNode.java +758 -0
  483. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BaseJsonNode.java +122 -0
  484. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BigIntegerNode.java +104 -0
  485. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BinaryNode.java +136 -0
  486. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BooleanNode.java +84 -0
  487. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ContainerNode.java +185 -0
  488. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DecimalNode.java +96 -0
  489. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DoubleNode.java +106 -0
  490. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/IntNode.java +122 -0
  491. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/JsonNodeFactory.java +222 -0
  492. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/LongNode.java +99 -0
  493. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/MissingNode.java +97 -0
  494. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NodeCursor.java +222 -0
  495. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NullNode.java +58 -0
  496. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NumericNode.java +72 -0
  497. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ObjectNode.java +696 -0
  498. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/POJONode.java +145 -0
  499. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TextNode.java +299 -0
  500. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TreeTraversingParser.java +383 -0
  501. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ValueNode.java +58 -0
  502. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/package-info.java +8 -0
  503. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/package-info.java +30 -0
  504. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSchema.java +82 -0
  505. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSerializableSchema.java +46 -0
  506. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/SchemaAware.java +25 -0
  507. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/package-info.java +5 -0
  508. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/BytesToNameCanonicalizer.java +969 -0
  509. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/CharsToNameCanonicalizer.java +578 -0
  510. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name.java +50 -0
  511. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name1.java +44 -0
  512. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name2.java +40 -0
  513. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name3.java +39 -0
  514. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/NameN.java +68 -0
  515. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/package-info.java +5 -0
  516. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/JavaType.java +503 -0
  517. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/TypeReference.java +60 -0
  518. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/package-info.java +8 -0
  519. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/BufferRecycler.java +109 -0
  520. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/ByteArrayBuilder.java +294 -0
  521. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/CharTypes.java +237 -0
  522. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/DefaultPrettyPrinter.java +282 -0
  523. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/InternCache.java +49 -0
  524. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonGeneratorDelegate.java +273 -0
  525. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserDelegate.java +251 -0
  526. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserSequence.java +150 -0
  527. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/MinimalPrettyPrinter.java +152 -0
  528. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TextBuffer.java +707 -0
  529. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TokenBuffer.java +1233 -0
  530. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/VersionUtil.java +79 -0
  531. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/package-info.java +4 -0
  532. metadata +619 -0
@@ -0,0 +1,44 @@
1
+ package sh.calaba.org.codehaus.jackson.map.deser;
2
+
3
+ import java.lang.reflect.Constructor;
4
+ import java.util.Map;
5
+
6
+ import sh.calaba.org.codehaus.jackson.map.*;
7
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
8
+
9
+ /**
10
+ * @deprecated Since 1.9, use {@link sh.calaba.org.codehaus.jackson.map.deser.std.MapDeserializer} instead.
11
+ */
12
+ @Deprecated
13
+ public class MapDeserializer
14
+ extends sh.calaba.org.codehaus.jackson.map.deser.std.MapDeserializer
15
+ {
16
+ /**
17
+ * @deprecated Since 1.9, use variant that takes ValueInstantiator
18
+ */
19
+ @SuppressWarnings("deprecation")
20
+ @Deprecated
21
+ public MapDeserializer(JavaType mapType, Constructor<Map<Object,Object>> defCtor,
22
+ KeyDeserializer keyDeser, JsonDeserializer<Object> valueDeser,
23
+ TypeDeserializer valueTypeDeser)
24
+ {
25
+ super(mapType, defCtor, keyDeser, valueDeser, valueTypeDeser);
26
+ }
27
+
28
+ public MapDeserializer(JavaType mapType, ValueInstantiator valueInstantiator,
29
+ KeyDeserializer keyDeser, JsonDeserializer<Object> valueDeser,
30
+ TypeDeserializer valueTypeDeser)
31
+ {
32
+ super(mapType, valueInstantiator, keyDeser, valueDeser, valueTypeDeser);
33
+ }
34
+
35
+ /**
36
+ * Copy-constructor that can be used by sub-classes to allow
37
+ * copy-on-write styling copying of settings of an existing instance.
38
+ *
39
+ * @since 1.9
40
+ */
41
+ protected MapDeserializer(MapDeserializer src) {
42
+ super(src);
43
+ }
44
+ }
@@ -0,0 +1,177 @@
1
+ package sh.calaba.org.codehaus.jackson.map.deser;
2
+
3
+ import java.io.IOException;
4
+ import java.lang.reflect.*;
5
+
6
+ import sh.calaba.org.codehaus.jackson.*;
7
+ import sh.calaba.org.codehaus.jackson.map.BeanProperty;
8
+ import sh.calaba.org.codehaus.jackson.map.DeserializationContext;
9
+ import sh.calaba.org.codehaus.jackson.map.JsonDeserializer;
10
+ import sh.calaba.org.codehaus.jackson.map.JsonMappingException;
11
+ import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedMethod;
12
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
13
+
14
+ /**
15
+ * Class that represents a "wildcard" set method which can be used
16
+ * to generically set values of otherwise unmapped (aka "unknown")
17
+ * properties read from Json content.
18
+ *<p>
19
+ * !!! Note: might make sense to refactor to share some code
20
+ * with {@link SettableBeanProperty}?
21
+ */
22
+ public final class SettableAnyProperty
23
+ {
24
+ /**
25
+ * Method used for setting "any" properties, along with annotation
26
+ * information. Retained to allow contextualization of any properties.
27
+ *
28
+ * @since 1.7
29
+ */
30
+ final protected BeanProperty _property;
31
+
32
+ /**
33
+ * Physical JDK object used for assigning properties.
34
+ */
35
+ final protected Method _setter;
36
+
37
+ final protected JavaType _type;
38
+
39
+ protected JsonDeserializer<Object> _valueDeserializer;
40
+
41
+ /*
42
+ /**********************************************************
43
+ /* Life-cycle
44
+ /**********************************************************
45
+ */
46
+
47
+ /**
48
+ * @deprecated Since 1.9 - use variant that takes deserializer
49
+ */
50
+ @Deprecated
51
+ public SettableAnyProperty(BeanProperty property, AnnotatedMethod setter, JavaType type) {
52
+ this(property, setter, type, null);
53
+ }
54
+
55
+ public SettableAnyProperty(BeanProperty property, AnnotatedMethod setter, JavaType type,
56
+ JsonDeserializer<Object> valueDeser) {
57
+ this(property, setter.getAnnotated(), type, valueDeser);
58
+ }
59
+
60
+ public SettableAnyProperty(BeanProperty property, Method rawSetter, JavaType type,
61
+ JsonDeserializer<Object> valueDeser) {
62
+ _property = property;
63
+ _type = type;
64
+ _setter = rawSetter;
65
+ _valueDeserializer = valueDeser;
66
+ }
67
+
68
+ public SettableAnyProperty withValueDeserializer(JsonDeserializer<Object> deser) {
69
+ return new SettableAnyProperty(_property, _setter, _type, deser);
70
+ }
71
+
72
+ /**
73
+ * @deprecated Since 1.9 - construct with deserializer
74
+ */
75
+ @Deprecated
76
+ public void setValueDeserializer(JsonDeserializer<Object> deser)
77
+ {
78
+ if (_valueDeserializer != null) { // sanity check
79
+ throw new IllegalStateException("Already had assigned deserializer for SettableAnyProperty");
80
+ }
81
+ _valueDeserializer = deser;
82
+ }
83
+
84
+ /*
85
+ /**********************************************************
86
+ /* Public API, accessors
87
+ /**********************************************************
88
+ */
89
+
90
+ public BeanProperty getProperty() { return _property; }
91
+
92
+ public boolean hasValueDeserializer() { return (_valueDeserializer != null); }
93
+
94
+ public JavaType getType() { return _type; }
95
+
96
+ /*
97
+ /**********************************************************
98
+ /* Public API, deserialization
99
+ /**********************************************************
100
+ */
101
+
102
+ /**
103
+ * Method called to deserialize appropriate value, given parser (and
104
+ * context), and set it using appropriate method (a setter method).
105
+ */
106
+ public final void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
107
+ Object instance, String propName)
108
+ throws IOException, JsonProcessingException
109
+ {
110
+ set(instance, propName, deserialize(jp, ctxt));
111
+ }
112
+
113
+ public final Object deserialize(JsonParser jp, DeserializationContext ctxt)
114
+ throws IOException, JsonProcessingException
115
+ {
116
+ JsonToken t = jp.getCurrentToken();
117
+ if (t == JsonToken.VALUE_NULL) {
118
+ return null;
119
+ }
120
+ return _valueDeserializer.deserialize(jp, ctxt);
121
+ }
122
+
123
+ public final void set(Object instance, String propName, Object value)
124
+ throws IOException
125
+ {
126
+ try {
127
+ _setter.invoke(instance, propName, value);
128
+ } catch (Exception e) {
129
+ _throwAsIOE(e, propName, value);
130
+ }
131
+ }
132
+
133
+ /*
134
+ /**********************************************************
135
+ /* Helper methods
136
+ /**********************************************************
137
+ */
138
+
139
+ /**
140
+ * @param e Exception to re-throw or wrap
141
+ * @param propName Name of property (from Json input) to set
142
+ * @param value Value of the property
143
+ */
144
+ protected void _throwAsIOE(Exception e, String propName, Object value)
145
+ throws IOException
146
+ {
147
+ if (e instanceof IllegalArgumentException) {
148
+ String actType = (value == null) ? "[NULL]" : value.getClass().getName();
149
+ StringBuilder msg = new StringBuilder("Problem deserializing \"any\" property '").append(propName);
150
+ msg.append("' of class "+getClassName()+" (expected type: ").append(_type);
151
+ msg.append("; actual type: ").append(actType).append(")");
152
+ String origMsg = e.getMessage();
153
+ if (origMsg != null) {
154
+ msg.append(", problem: ").append(origMsg);
155
+ } else {
156
+ msg.append(" (no error message provided)");
157
+ }
158
+ throw new JsonMappingException(msg.toString(), null, e);
159
+ }
160
+ if (e instanceof IOException) {
161
+ throw (IOException) e;
162
+ }
163
+ if (e instanceof RuntimeException) {
164
+ throw (RuntimeException) e;
165
+ }
166
+ // let's wrap the innermost problem
167
+ Throwable t = e;
168
+ while (t.getCause() != null) {
169
+ t = t.getCause();
170
+ }
171
+ throw new JsonMappingException(t.getMessage(), null, t);
172
+ }
173
+
174
+ private String getClassName() { return _setter.getDeclaringClass().getName(); }
175
+
176
+ @Override public String toString() { return "[any property on class "+getClassName()+"]"; }
177
+ }
@@ -0,0 +1,827 @@
1
+ package sh.calaba.org.codehaus.jackson.map.deser;
2
+
3
+ import java.io.IOException;
4
+ import java.lang.annotation.Annotation;
5
+ import java.lang.reflect.*;
6
+ import java.util.*;
7
+
8
+ import sh.calaba.org.codehaus.jackson.*;
9
+ import sh.calaba.org.codehaus.jackson.map.*;
10
+ import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedField;
11
+ import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedMember;
12
+ import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedMethod;
13
+ import sh.calaba.org.codehaus.jackson.map.util.Annotations;
14
+ import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
15
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
16
+ import sh.calaba.org.codehaus.jackson.util.InternCache;
17
+
18
+ /**
19
+ * Base class for settable properties of a bean: contains
20
+ * both type and name definitions, and reflection-based set functionality.
21
+ * Concrete sub-classes implement details, so that both field- and
22
+ * setter-backed properties can be handled
23
+ */
24
+ public abstract class SettableBeanProperty
25
+ implements BeanProperty // since 1.7
26
+ {
27
+ /**
28
+ * Logical name of the property (often but not always derived
29
+ * from the setter method name)
30
+ */
31
+ protected final String _propName;
32
+
33
+ /**
34
+ * Base type for property; may be a supertype of actual value.
35
+ */
36
+ protected final JavaType _type;
37
+
38
+ /**
39
+ * Class that contains this property (either class that declares
40
+ * the property or one of its subclasses), class that is
41
+ * deserialized using deserializer that contains this property.
42
+ */
43
+ protected final Annotations _contextAnnotations;
44
+
45
+ /**
46
+ * Deserializer used for handling property value.
47
+ */
48
+ protected JsonDeserializer<Object> _valueDeserializer;
49
+
50
+ /**
51
+ * If value will contain type information (to support
52
+ * polymorphic handling), this is the type deserializer
53
+ * used to handle type resolution.
54
+ */
55
+ protected TypeDeserializer _valueTypeDeserializer;
56
+
57
+ /**
58
+ * Object used to figure out value to be used when 'null' literal is encountered in JSON.
59
+ * For most types simply Java null, but for primitive types must
60
+ * be a non-null value (like Integer.valueOf(0) for int).
61
+ *
62
+ * @since 1.7
63
+ */
64
+ protected NullProvider _nullProvider;
65
+
66
+ /**
67
+ * If property represents a managed (forward) reference
68
+ * (see [JACKSON-235]), we will need name of reference for
69
+ * later linking.
70
+ */
71
+ protected String _managedReferenceName;
72
+
73
+ /**
74
+ * Index of property (within all property of a bean); assigned
75
+ * when all properties have been collected. Order of entries
76
+ * is arbitrary, but once indexes are assigned they are not
77
+ * changed.
78
+ *
79
+ * @since 1.7
80
+ */
81
+ protected int _propertyIndex = -1;
82
+
83
+ /*
84
+ /**********************************************************
85
+ /* Life-cycle (construct & configure)
86
+ /**********************************************************
87
+ */
88
+
89
+ protected SettableBeanProperty(String propName, JavaType type, TypeDeserializer typeDeser,
90
+ Annotations contextAnnotations)
91
+ {
92
+ /* 09-Jan-2009, tatu: Intern()ing makes sense since Jackson parsed
93
+ * field names are (usually) interned too, hence lookups will be faster.
94
+ */
95
+ // 23-Oct-2009, tatu: should this be disabled wrt [JACKSON-180]?
96
+ if (propName == null || propName.length() == 0) {
97
+ _propName = "";
98
+ } else {
99
+ _propName = InternCache.instance.intern(propName);
100
+ }
101
+ _type = type;
102
+ _contextAnnotations = contextAnnotations;
103
+ _valueTypeDeserializer = typeDeser;
104
+ }
105
+
106
+ /**
107
+ * Basic copy-constructor for sub-classes to use.
108
+ *
109
+ * @since 1.9
110
+ */
111
+ protected SettableBeanProperty(SettableBeanProperty src)
112
+ {
113
+ _propName = src._propName;
114
+ _type = src._type;
115
+ _contextAnnotations = src._contextAnnotations;
116
+ _valueDeserializer = src._valueDeserializer;
117
+ _valueTypeDeserializer = src._valueTypeDeserializer;
118
+ _nullProvider = src._nullProvider;
119
+ _managedReferenceName = src._managedReferenceName;
120
+ _propertyIndex = src._propertyIndex;
121
+ }
122
+
123
+ /**
124
+ * Copy-with-deserializer-change constructor for sub-classes to use.
125
+ *
126
+ * @since 1.9
127
+ */
128
+ protected SettableBeanProperty(SettableBeanProperty src, JsonDeserializer<Object> deser)
129
+ {
130
+ _propName = src._propName;
131
+ _type = src._type;
132
+ _contextAnnotations = src._contextAnnotations;
133
+ _valueTypeDeserializer = src._valueTypeDeserializer;
134
+ _managedReferenceName = src._managedReferenceName;
135
+ _propertyIndex = src._propertyIndex;
136
+
137
+ _valueDeserializer = deser;
138
+ if (deser == null) {
139
+ _nullProvider = null;
140
+ } else {
141
+ Object nvl = deser.getNullValue();
142
+ _nullProvider = (nvl == null) ? null : new NullProvider(_type, nvl);
143
+ }
144
+ }
145
+
146
+ @Deprecated
147
+ public void setValueDeserializer(JsonDeserializer<Object> deser)
148
+ {
149
+ if (_valueDeserializer != null) { // sanity check
150
+ throw new IllegalStateException("Already had assigned deserializer for property '"+getName()+"' (class "+getDeclaringClass().getName()+")");
151
+ }
152
+ _valueDeserializer = deser;
153
+ Object nvl = _valueDeserializer.getNullValue();
154
+ _nullProvider = (nvl == null) ? null : new NullProvider(_type, nvl);
155
+ }
156
+
157
+ /**
158
+ * @since 1.9
159
+ */
160
+ public abstract SettableBeanProperty withValueDeserializer(JsonDeserializer<Object> deser);
161
+
162
+ public void setManagedReferenceName(String n) {
163
+ _managedReferenceName = n;
164
+ }
165
+
166
+ /**
167
+ * Method used to assign index for property.
168
+ *
169
+ * @since 1.7
170
+ */
171
+ public void assignIndex(int index) {
172
+ if (_propertyIndex != -1) {
173
+ throw new IllegalStateException("Property '"+getName()+"' already had index ("+_propertyIndex+"), trying to assign "+index);
174
+ }
175
+ _propertyIndex = index;
176
+ }
177
+
178
+ /*
179
+ /**********************************************************
180
+ /* BeanProperty impl
181
+ /**********************************************************
182
+ */
183
+
184
+ @Override
185
+ public final String getName() { return _propName; }
186
+
187
+ @Override
188
+ public JavaType getType() { return _type; }
189
+
190
+ @Override
191
+ public abstract <A extends Annotation> A getAnnotation(Class<A> acls);
192
+
193
+ @Override
194
+ public abstract AnnotatedMember getMember();
195
+
196
+ @Override
197
+ public <A extends Annotation> A getContextAnnotation(Class<A> acls) {
198
+ return _contextAnnotations.get(acls);
199
+ }
200
+
201
+ /*
202
+ /**********************************************************
203
+ /* Accessors
204
+ /**********************************************************
205
+ */
206
+
207
+ protected final Class<?> getDeclaringClass() {
208
+ return getMember().getDeclaringClass();
209
+ }
210
+
211
+ /**
212
+ * @deprecated Since 1.7, use {@link #getName} instead.
213
+ */
214
+ @Deprecated
215
+ public String getPropertyName() { return _propName; }
216
+
217
+ public String getManagedReferenceName() { return _managedReferenceName; }
218
+
219
+ public boolean hasValueDeserializer() { return (_valueDeserializer != null); }
220
+
221
+ /**
222
+ * @since 1.9
223
+ */
224
+ public boolean hasValueTypeDeserializer() { return (_valueTypeDeserializer != null); }
225
+
226
+ /**
227
+ * @since 1.9
228
+ */
229
+ public JsonDeserializer<Object> getValueDeserializer() { return _valueDeserializer; }
230
+
231
+ /**
232
+ * @since 1.9
233
+ */
234
+ public TypeDeserializer getValueTypeDeserializer() { return _valueTypeDeserializer; }
235
+
236
+ /**
237
+ * Method for accessing unique index of this property; indexes are
238
+ * assigned once all properties of a {@link BeanDeserializer} have
239
+ * been collected.
240
+ *
241
+ * @return Index of this property
242
+ *
243
+ * @since 1.7 Although note that it was misspelled as "getProperytIndex"; fixed in 1.9
244
+ */
245
+ public int getPropertyIndex() { return _propertyIndex; }
246
+
247
+ /**
248
+ * @deprecated Since 1.9: use {@link #getPropertyIndex} instead
249
+ */
250
+ @Deprecated
251
+ public int getProperytIndex() { return getPropertyIndex(); }
252
+
253
+ /**
254
+ * Accessor for id of injectable value, if this bean property supports
255
+ * value injection.
256
+ *
257
+ * @since 1.9
258
+ */
259
+ public Object getInjectableValueId() { return null; }
260
+
261
+ /*
262
+ /**********************************************************
263
+ /* Public API
264
+ /**********************************************************
265
+ */
266
+
267
+ /**
268
+ * Method called to deserialize appropriate value, given parser (and
269
+ * context), and set it using appropriate mechanism.
270
+ * Pre-condition is that passed parser must point to the first token
271
+ * that should be consumed to produce the value (the only value for
272
+ * scalars, multiple for Objects and Arrays).
273
+ */
274
+ public abstract void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
275
+ Object instance)
276
+ throws IOException, JsonProcessingException;
277
+
278
+ public abstract void set(Object instance, Object value)
279
+ throws IOException;
280
+
281
+ /**
282
+ * This method is needed by some specialized bean deserializers,
283
+ * and also called by some {@link #deserializeAndSet} implementations.
284
+ *<p>
285
+ * Pre-condition is that passed parser must point to the first token
286
+ * that should be consumed to produce the value (the only value for
287
+ * scalars, multiple for Objects and Arrays).
288
+ */
289
+ public final Object deserialize(JsonParser jp, DeserializationContext ctxt)
290
+ throws IOException, JsonProcessingException
291
+ {
292
+ JsonToken t = jp.getCurrentToken();
293
+ if (t == JsonToken.VALUE_NULL) {
294
+ return (_nullProvider == null) ? null : _nullProvider.nullValue(ctxt);
295
+ }
296
+ if (_valueTypeDeserializer != null) {
297
+ return _valueDeserializer.deserializeWithType(jp, ctxt, _valueTypeDeserializer);
298
+ }
299
+ return _valueDeserializer.deserialize(jp, ctxt);
300
+ }
301
+
302
+ /*
303
+ /**********************************************************
304
+ /* Helper methods
305
+ /**********************************************************
306
+ */
307
+
308
+ /**
309
+ * Method that takes in exception of any type, and casts or wraps it
310
+ * to an IOException or its subclass.
311
+ */
312
+ protected void _throwAsIOE(Exception e, Object value)
313
+ throws IOException
314
+ {
315
+ if (e instanceof IllegalArgumentException) {
316
+ String actType = (value == null) ? "[NULL]" : value.getClass().getName();
317
+ StringBuilder msg = new StringBuilder("Problem deserializing property '").append(getPropertyName());
318
+ msg.append("' (expected type: ").append(getType());
319
+ msg.append("; actual type: ").append(actType).append(")");
320
+ String origMsg = e.getMessage();
321
+ if (origMsg != null) {
322
+ msg.append(", problem: ").append(origMsg);
323
+ } else {
324
+ msg.append(" (no error message provided)");
325
+ }
326
+ throw new JsonMappingException(msg.toString(), null, e);
327
+ }
328
+ _throwAsIOE(e);
329
+ }
330
+
331
+ protected IOException _throwAsIOE(Exception e)
332
+ throws IOException
333
+ {
334
+ if (e instanceof IOException) {
335
+ throw (IOException) e;
336
+ }
337
+ if (e instanceof RuntimeException) {
338
+ throw (RuntimeException) e;
339
+ }
340
+ // let's wrap the innermost problem
341
+ Throwable th = e;
342
+ while (th.getCause() != null) {
343
+ th = th.getCause();
344
+ }
345
+ throw new JsonMappingException(th.getMessage(), null, th);
346
+ }
347
+
348
+ @Override public String toString() { return "[property '"+getName()+"']"; }
349
+
350
+ /*
351
+ /**********************************************************
352
+ /* Implementation classes
353
+ /**********************************************************
354
+ */
355
+
356
+ /**
357
+ * This concrete sub-class implements property that is set
358
+ * using regular "setter" method.
359
+ */
360
+ public final static class MethodProperty
361
+ extends SettableBeanProperty
362
+ {
363
+ protected final AnnotatedMethod _annotated;
364
+
365
+ /**
366
+ * Setter method for modifying property value; used for
367
+ * "regular" method-accessible properties.
368
+ */
369
+ protected final Method _setter;
370
+
371
+ public MethodProperty(String name, JavaType type, TypeDeserializer typeDeser,
372
+ Annotations contextAnnotations, AnnotatedMethod method)
373
+ {
374
+ super(name, type, typeDeser, contextAnnotations);
375
+ _annotated = method;
376
+ _setter = method.getAnnotated();
377
+ }
378
+
379
+ protected MethodProperty(MethodProperty src, JsonDeserializer<Object> deser) {
380
+ super(src, deser);
381
+ _annotated = src._annotated;
382
+ _setter = src._setter;
383
+ }
384
+
385
+ @Override
386
+ public MethodProperty withValueDeserializer(JsonDeserializer<Object> deser) {
387
+ return new MethodProperty(this, deser);
388
+ }
389
+
390
+ /*
391
+ /**********************************************************
392
+ /* BeanProperty impl
393
+ /**********************************************************
394
+ */
395
+
396
+ @Override
397
+ public <A extends Annotation> A getAnnotation(Class<A> acls) {
398
+ return _annotated.getAnnotation(acls);
399
+ }
400
+
401
+ @Override public AnnotatedMember getMember() { return _annotated; }
402
+
403
+ /*
404
+ /**********************************************************
405
+ /* Overridden methods
406
+ /**********************************************************
407
+ */
408
+
409
+ @Override
410
+ public void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
411
+ Object instance)
412
+ throws IOException, JsonProcessingException
413
+ {
414
+ set(instance, deserialize(jp, ctxt));
415
+ }
416
+
417
+ @Override
418
+ public final void set(Object instance, Object value)
419
+ throws IOException
420
+ {
421
+ try {
422
+ _setter.invoke(instance, value);
423
+ } catch (Exception e) {
424
+ _throwAsIOE(e, value);
425
+ }
426
+ }
427
+ }
428
+
429
+ /**
430
+ * This concrete sub-class implements Collection or Map property that is
431
+ * indirectly by getting the property value and directly modifying it.
432
+ */
433
+ public final static class SetterlessProperty
434
+ extends SettableBeanProperty
435
+ {
436
+ protected final AnnotatedMethod _annotated;
437
+
438
+ /**
439
+ * Get method for accessing property value used to access property
440
+ * (of Collection or Map type) to modify.
441
+ */
442
+ protected final Method _getter;
443
+
444
+ public SetterlessProperty(String name, JavaType type, TypeDeserializer typeDeser,
445
+ Annotations contextAnnotations, AnnotatedMethod method)
446
+ {
447
+ super(name, type, typeDeser, contextAnnotations);
448
+ _annotated = method;
449
+ _getter = method.getAnnotated();
450
+ }
451
+
452
+ protected SetterlessProperty(SetterlessProperty src, JsonDeserializer<Object> deser) {
453
+ super(src, deser);
454
+ _annotated = src._annotated;
455
+ _getter = src._getter;
456
+ }
457
+
458
+ @Override
459
+ public SetterlessProperty withValueDeserializer(JsonDeserializer<Object> deser) {
460
+ return new SetterlessProperty(this, deser);
461
+ }
462
+
463
+ /*
464
+ /**********************************************************
465
+ /* BeanProperty impl
466
+ /**********************************************************
467
+ */
468
+
469
+ @Override
470
+ public <A extends Annotation> A getAnnotation(Class<A> acls) {
471
+ return _annotated.getAnnotation(acls);
472
+ }
473
+
474
+ @Override public AnnotatedMember getMember() { return _annotated; }
475
+
476
+ /*
477
+ /**********************************************************
478
+ /* Overridden methods
479
+ /**********************************************************
480
+ */
481
+
482
+ @Override
483
+ public final void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
484
+ Object instance)
485
+ throws IOException, JsonProcessingException
486
+ {
487
+ JsonToken t = jp.getCurrentToken();
488
+ if (t == JsonToken.VALUE_NULL) {
489
+ /* Hmmh. Is this a problem? We won't be setting anything, so it's
490
+ * equivalent of empty Collection/Map in this case
491
+ */
492
+ return;
493
+ }
494
+
495
+ // Ok: then, need to fetch Collection/Map to modify:
496
+ Object toModify;
497
+ try {
498
+ toModify = _getter.invoke(instance);
499
+ } catch (Exception e) {
500
+ _throwAsIOE(e);
501
+ return; // never gets here
502
+ }
503
+ /* Note: null won't work, since we can't then inject anything
504
+ * in. At least that's not good in common case. However,
505
+ * theoretically the case where we get JSON null might
506
+ * be compatible. If so, implementation could be changed.
507
+ */
508
+ if (toModify == null) {
509
+ throw new JsonMappingException("Problem deserializing 'setterless' property '"+getName()+"': get method returned null");
510
+ }
511
+ _valueDeserializer.deserialize(jp, ctxt, toModify);
512
+ }
513
+
514
+ @Override
515
+ public final void set(Object instance, Object value)
516
+ throws IOException
517
+ {
518
+ throw new UnsupportedOperationException("Should never call 'set' on setterless property");
519
+ }
520
+ }
521
+
522
+ /**
523
+ * This concrete sub-class implements property that is set
524
+ * directly assigning to a Field.
525
+ */
526
+ public final static class FieldProperty
527
+ extends SettableBeanProperty
528
+ {
529
+ protected final AnnotatedField _annotated;
530
+
531
+ /**
532
+ * Actual field to set when deserializing this property.
533
+ */
534
+ protected final Field _field;
535
+
536
+ public FieldProperty(String name, JavaType type, TypeDeserializer typeDeser,
537
+ Annotations contextAnnotations, AnnotatedField field)
538
+ {
539
+ super(name, type, typeDeser, contextAnnotations);
540
+ _annotated = field;
541
+ _field = field.getAnnotated();
542
+ }
543
+
544
+ protected FieldProperty(FieldProperty src, JsonDeserializer<Object> deser) {
545
+ super(src, deser);
546
+ _annotated = src._annotated;
547
+ _field = src._field;
548
+ }
549
+
550
+ @Override
551
+ public FieldProperty withValueDeserializer(JsonDeserializer<Object> deser) {
552
+ return new FieldProperty(this, deser);
553
+ }
554
+
555
+ /*
556
+ /**********************************************************
557
+ /* BeanProperty impl
558
+ /**********************************************************
559
+ */
560
+
561
+ @Override
562
+ public <A extends Annotation> A getAnnotation(Class<A> acls) {
563
+ return _annotated.getAnnotation(acls);
564
+ }
565
+
566
+ @Override public AnnotatedMember getMember() { return _annotated; }
567
+
568
+ /*
569
+ /**********************************************************
570
+ /* Overridden methods
571
+ /**********************************************************
572
+ */
573
+
574
+ @Override
575
+ public void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
576
+ Object instance)
577
+ throws IOException, JsonProcessingException
578
+ {
579
+ set(instance, deserialize(jp, ctxt));
580
+ }
581
+
582
+ @Override
583
+ public final void set(Object instance, Object value)
584
+ throws IOException
585
+ {
586
+ try {
587
+ _field.set(instance, value);
588
+ } catch (Exception e) {
589
+ _throwAsIOE(e, value);
590
+ }
591
+ }
592
+ }
593
+
594
+ /**
595
+ * Wrapper property that is used to handle managed (forward) properties
596
+ * (see [JACKSON-235] for more information). Basically just need to
597
+ * delegate first to actual forward property, and
598
+ *
599
+ * @author tatu
600
+ */
601
+ public final static class ManagedReferenceProperty
602
+ extends SettableBeanProperty
603
+ {
604
+ protected final String _referenceName;
605
+
606
+ /**
607
+ * Flag that indicates whether property to handle is a container type
608
+ * (array, Collection, Map) or not.
609
+ */
610
+ protected final boolean _isContainer;
611
+
612
+ protected final SettableBeanProperty _managedProperty;
613
+
614
+ protected final SettableBeanProperty _backProperty;
615
+
616
+ public ManagedReferenceProperty(String refName,
617
+ SettableBeanProperty forward, SettableBeanProperty backward,
618
+ Annotations contextAnnotations,
619
+ boolean isContainer)
620
+ {
621
+ super(forward.getName(), forward.getType(), forward._valueTypeDeserializer,
622
+ contextAnnotations);
623
+ _referenceName = refName;
624
+ _managedProperty = forward;
625
+ _backProperty = backward;
626
+ _isContainer = isContainer;
627
+ }
628
+
629
+ protected ManagedReferenceProperty(ManagedReferenceProperty src, JsonDeserializer<Object> deser)
630
+ {
631
+ super(src, deser);
632
+ _referenceName = src._referenceName;
633
+ _isContainer = src._isContainer;
634
+ _managedProperty = src._managedProperty;
635
+ _backProperty = src._backProperty;
636
+ }
637
+
638
+ @Override
639
+ public ManagedReferenceProperty withValueDeserializer(JsonDeserializer<Object> deser) {
640
+ return new ManagedReferenceProperty(this, deser);
641
+ }
642
+
643
+ /*
644
+ /**********************************************************
645
+ /* BeanProperty impl
646
+ /**********************************************************
647
+ */
648
+
649
+ @Override
650
+ public <A extends Annotation> A getAnnotation(Class<A> acls) {
651
+ return _managedProperty.getAnnotation(acls);
652
+ }
653
+
654
+ @Override public AnnotatedMember getMember() { return _managedProperty.getMember(); }
655
+
656
+ /*
657
+ /**********************************************************
658
+ /* Overridden methods
659
+ /**********************************************************
660
+ */
661
+
662
+ @Override
663
+ public void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
664
+ Object instance)
665
+ throws IOException, JsonProcessingException
666
+ {
667
+ set(instance, _managedProperty.deserialize(jp, ctxt));
668
+ }
669
+
670
+ @Override
671
+ public final void set(Object instance, Object value)
672
+ throws IOException
673
+ {
674
+ _managedProperty.set(instance, value);
675
+ /* And then back reference, if (and only if!) we actually have a non-null
676
+ * reference
677
+ */
678
+ if (value != null) {
679
+ if (_isContainer) { // ok, this gets ugly... but has to do for now
680
+ if (value instanceof Object[]) {
681
+ for (Object ob : (Object[]) value) {
682
+ if (ob != null) {
683
+ _backProperty.set(ob, instance);
684
+ }
685
+ }
686
+ } else if (value instanceof Collection<?>) {
687
+ for (Object ob : (Collection<?>) value) {
688
+ if (ob != null) {
689
+ _backProperty.set(ob, instance);
690
+ }
691
+ }
692
+ } else if (value instanceof Map<?,?>) {
693
+ for (Object ob : ((Map<?,?>) value).values()) {
694
+ if (ob != null) {
695
+ _backProperty.set(ob, instance);
696
+ }
697
+ }
698
+ } else {
699
+ throw new IllegalStateException("Unsupported container type ("+value.getClass().getName()
700
+ +") when resolving reference '"+_referenceName+"'");
701
+ }
702
+ } else {
703
+ _backProperty.set(value, instance);
704
+ }
705
+ }
706
+ }
707
+ }
708
+
709
+ /**
710
+ * This sub-class is used to handle special case of value being a
711
+ * non-static inner class. If so, we will have to use a special
712
+ * alternative for default constructor; but otherwise can delegate
713
+ * to regular implementation.
714
+ *
715
+ * @since 1.9
716
+ */
717
+ public final static class InnerClassProperty
718
+ extends SettableBeanProperty
719
+ {
720
+ /**
721
+ * Actual property that we use after value construction.
722
+ */
723
+ protected final SettableBeanProperty _delegate;
724
+
725
+ /**
726
+ * Single-arg constructor we use for value instantiation.
727
+ */
728
+ protected final Constructor<?> _creator;
729
+
730
+ public InnerClassProperty(SettableBeanProperty delegate,
731
+ Constructor<?> ctor)
732
+ {
733
+ super(delegate);
734
+ _delegate = delegate;
735
+ _creator = ctor;
736
+ }
737
+
738
+ protected InnerClassProperty(InnerClassProperty src, JsonDeserializer<Object> deser)
739
+ {
740
+ super(src, deser);
741
+ _delegate = src._delegate.withValueDeserializer(deser);
742
+ _creator = src._creator;
743
+ }
744
+
745
+ @Override
746
+ public InnerClassProperty withValueDeserializer(JsonDeserializer<Object> deser) {
747
+ return new InnerClassProperty(this, deser);
748
+ }
749
+
750
+ // // // BeanProperty impl
751
+
752
+ @Override
753
+ public <A extends Annotation> A getAnnotation(Class<A> acls) {
754
+ return _delegate.getAnnotation(acls);
755
+ }
756
+
757
+ @Override public AnnotatedMember getMember() { return _delegate.getMember(); }
758
+
759
+ // // // Overridden methods
760
+
761
+ @Override
762
+ public void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
763
+ Object bean)
764
+ throws IOException, JsonProcessingException
765
+ {
766
+ // mostly copied from super class impl:
767
+ JsonToken t = jp.getCurrentToken();
768
+ Object value;
769
+ if (t == JsonToken.VALUE_NULL) {
770
+ value = (_nullProvider == null) ? null : _nullProvider.nullValue(ctxt);
771
+ } else if (_valueTypeDeserializer != null) {
772
+ value = _valueDeserializer.deserializeWithType(jp, ctxt, _valueTypeDeserializer);
773
+ } else { // the usual case
774
+ try {
775
+ value = _creator.newInstance(bean);
776
+ } catch (Exception e) {
777
+ ClassUtil.unwrapAndThrowAsIAE(e, "Failed to instantiate class "+_creator.getDeclaringClass().getName()+", problem: "+e.getMessage());
778
+ value = null;
779
+ }
780
+ _valueDeserializer.deserialize(jp, ctxt, value);
781
+ }
782
+ set(bean, value);
783
+ }
784
+
785
+ @Override
786
+ public final void set(Object instance, Object value) throws IOException
787
+ {
788
+ _delegate.set(instance, value);
789
+ }
790
+ }
791
+
792
+ /*
793
+ /**********************************************************
794
+ /* Other helper classes
795
+ /**********************************************************
796
+ */
797
+
798
+ /**
799
+ * To support [JACKSON-420] we need bit more indirection; this is used to produce
800
+ * artificial failure for primitives that don't accept JSON null as value.
801
+ */
802
+ protected final static class NullProvider
803
+ {
804
+ private final Object _nullValue;
805
+
806
+ private final boolean _isPrimitive;
807
+
808
+ private final Class<?> _rawType;
809
+
810
+ protected NullProvider(JavaType type, Object nullValue)
811
+ {
812
+ _nullValue = nullValue;
813
+ // [JACKSON-420]
814
+ _isPrimitive = type.isPrimitive();
815
+ _rawType = type.getRawClass();
816
+ }
817
+
818
+ public Object nullValue(DeserializationContext ctxt) throws JsonProcessingException
819
+ {
820
+ if (_isPrimitive && ctxt.isEnabled(DeserializationConfig.Feature.FAIL_ON_NULL_FOR_PRIMITIVES)) {
821
+ throw ctxt.mappingException("Can not map JSON null into type "+_rawType.getName()
822
+ +" (set DeserializationConfig.Feature.FAIL_ON_NULL_FOR_PRIMITIVES to 'false' to allow)");
823
+ }
824
+ return _nullValue;
825
+ }
826
+ }
827
+ }