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,23 @@
1
+ package sh.calaba.org.codehaus.jackson.map.ser;
2
+
3
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
4
+
5
+ /**
6
+ * @deprecated Since 1.9 use {@link sh.calaba.org.codehaus.jackson.map.ser.std.SerializerBase}
7
+ */
8
+ @Deprecated
9
+ public abstract class SerializerBase<T>
10
+ extends sh.calaba.org.codehaus.jackson.map.ser.std.SerializerBase<T>
11
+ {
12
+ protected SerializerBase(Class<T> t) {
13
+ super(t);
14
+ }
15
+
16
+ protected SerializerBase(JavaType type) {
17
+ super(type);
18
+ }
19
+
20
+ protected SerializerBase(Class<?> t, boolean dummy) {
21
+ super(t, dummy);
22
+ }
23
+ }
@@ -0,0 +1,10 @@
1
+ package sh.calaba.org.codehaus.jackson.map.ser;
2
+ /**
3
+ * @deprecated Since 1.9 use {@link org.codehaus.jackson.map.ser.std.StdKeySerializer} instead
4
+ */
5
+ @Deprecated
6
+ public final class StdKeySerializer
7
+ extends sh.calaba.org.codehaus.jackson.map.ser.std.StdKeySerializer
8
+ {
9
+ final static StdKeySerializer instace = new StdKeySerializer();
10
+ }
@@ -0,0 +1,852 @@
1
+ package sh.calaba.org.codehaus.jackson.map.ser;
2
+
3
+ import java.io.IOException;
4
+ import java.text.DateFormat;
5
+ import java.util.Date;
6
+
7
+
8
+ import sh.calaba.org.codehaus.jackson.*;
9
+ import sh.calaba.org.codehaus.jackson.map.*;
10
+ import sh.calaba.org.codehaus.jackson.map.ser.impl.FailingSerializer;
11
+ import sh.calaba.org.codehaus.jackson.map.ser.impl.ReadOnlyClassToSerializerMap;
12
+ import sh.calaba.org.codehaus.jackson.map.ser.impl.SerializerCache;
13
+ import sh.calaba.org.codehaus.jackson.map.ser.impl.UnknownSerializer;
14
+ import sh.calaba.org.codehaus.jackson.map.ser.std.NullSerializer;
15
+ import sh.calaba.org.codehaus.jackson.map.ser.std.StdKeySerializer;
16
+ import sh.calaba.org.codehaus.jackson.map.ser.std.StdKeySerializers;
17
+ import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
18
+ import sh.calaba.org.codehaus.jackson.map.util.RootNameLookup;
19
+ import sh.calaba.org.codehaus.jackson.node.ObjectNode;
20
+ import sh.calaba.org.codehaus.jackson.schema.JsonSchema;
21
+ import sh.calaba.org.codehaus.jackson.schema.SchemaAware;
22
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
23
+
24
+ /**
25
+ * Default {@link SerializerProvider} implementation. Handles
26
+ * caching aspects of serializer handling; all construction details
27
+ * are delegated to {@link SerializerFactory} instance.
28
+ *<p>
29
+ * One note about implementation: the main instance constructed will
30
+ * be so-called "blueprint" object, and will NOT be used during actual
31
+ * serialization. Rather, an "instance" instance is created so that
32
+ * state can be carried along, as well as to avoid synchronization
33
+ * during serializer access. Because of this, if sub-classing, one
34
+ * must override method {@link #createInstance}: if this is not done,
35
+ * an exception will get thrown as base class verifies that the
36
+ * instance has same class as the blueprint
37
+ * (<code>instance.getClass() == blueprint.getClass()</code>).
38
+ * Check is done to prevent weird bugs that would otherwise occur.
39
+ *<p>
40
+ * Starting with version 1.5, provider is also responsible for
41
+ * some parts of type serialization; specifically for locating
42
+ * proper type serializers to use for types.
43
+ */
44
+ public class StdSerializerProvider
45
+ extends SerializerProvider
46
+ {
47
+ /**
48
+ * Setting for determining whether mappings for "unknown classes" should be
49
+ * cached for faster resolution. Usually this isn't needed, but maybe it
50
+ * is in some cases?
51
+ */
52
+ final static boolean CACHE_UNKNOWN_MAPPINGS = false;
53
+
54
+ public final static JsonSerializer<Object> DEFAULT_NULL_KEY_SERIALIZER =
55
+ new FailingSerializer("Null key for a Map not allowed in JSON (use a converting NullKeySerializer?)");
56
+
57
+ /**
58
+ * @deprecated Since 1.9, use {@link StdKeySerializers} instead
59
+ */
60
+ @Deprecated
61
+ public final static JsonSerializer<Object> DEFAULT_KEY_SERIALIZER = new StdKeySerializer();
62
+
63
+ public final static JsonSerializer<Object> DEFAULT_UNKNOWN_SERIALIZER = new UnknownSerializer();
64
+
65
+ /*
66
+ /**********************************************************
67
+ /* Configuration, factories
68
+ /**********************************************************
69
+ */
70
+
71
+ final protected SerializerFactory _serializerFactory;
72
+
73
+ /**
74
+ * Cache for doing type-to-value-serializer lookups.
75
+ */
76
+ final protected SerializerCache _serializerCache;
77
+
78
+ /**
79
+ * Helper object for keeping track of introspected root names
80
+ */
81
+ final protected RootNameLookup _rootNames;
82
+
83
+ /*
84
+ /**********************************************************
85
+ /* Configuration, specialized serializers
86
+ /**********************************************************
87
+ */
88
+
89
+ /**
90
+ * Serializer that gets called for values of types for which no
91
+ * serializers can be constructed.
92
+ *<p>
93
+ * The default serializer will simply thrown an exception; a possible
94
+ * alternative that can be used would be
95
+ * {@link ToStringSerializer}.
96
+ */
97
+ protected JsonSerializer<Object> _unknownTypeSerializer = DEFAULT_UNKNOWN_SERIALIZER;
98
+
99
+ /**
100
+ * Serializer used to output non-null keys of Maps (which will get
101
+ * output as JSON Objects), if not null; if null, us the standard
102
+ * default key serializer.
103
+ */
104
+ protected JsonSerializer<Object> _keySerializer;
105
+
106
+ /**
107
+ * Serializer used to output a null value. Default implementation
108
+ * writes nulls using {@link JsonGenerator#writeNull}.
109
+ */
110
+ protected JsonSerializer<Object> _nullValueSerializer = NullSerializer.instance;
111
+
112
+ /**
113
+ * Serializer used to (try to) output a null key, due to an entry of
114
+ * {@link java.util.Map} having null key.
115
+ * The default implementation will throw an exception if this happens;
116
+ * alternative implementation (like one that would write an Empty String)
117
+ * can be defined.
118
+ */
119
+ protected JsonSerializer<Object> _nullKeySerializer = DEFAULT_NULL_KEY_SERIALIZER;
120
+
121
+ /*
122
+ /**********************************************************
123
+ /* State, for non-blueprint instances
124
+ /**********************************************************
125
+ */
126
+
127
+ /**
128
+ * For fast lookups, we will have a local non-shared read-only
129
+ * map that contains serializers previously fetched.
130
+ */
131
+ protected final ReadOnlyClassToSerializerMap _knownSerializers;
132
+
133
+ /**
134
+ * Lazily acquired and instantiated formatter object: initialized
135
+ * first time it is needed, reused afterwards. Used via instances
136
+ * (not blueprints), so that access need not be thread-safe.
137
+ */
138
+ protected DateFormat _dateFormat;
139
+
140
+ /*
141
+ /**********************************************************
142
+ /* Life-cycle
143
+ /**********************************************************
144
+ */
145
+
146
+ /**
147
+ * Constructor for creating master (or "blue-print") provider object,
148
+ * which is only used as the template for constructing per-binding
149
+ * instances.
150
+ */
151
+ public StdSerializerProvider()
152
+ {
153
+ super(null);
154
+ _serializerFactory = null;
155
+ _serializerCache = new SerializerCache();
156
+ // Blueprints doesn't have access to any serializers...
157
+ _knownSerializers = null;
158
+ _rootNames = new RootNameLookup();
159
+ }
160
+
161
+ /**
162
+ * "Copy-constructor", used from {@link #createInstance} (or by
163
+ * sub-classes)
164
+ *
165
+ * @param src Blueprint object used as the baseline for this instance
166
+ */
167
+ protected StdSerializerProvider(SerializationConfig config,
168
+ StdSerializerProvider src, SerializerFactory f)
169
+ {
170
+ super(config);
171
+ if (config == null) {
172
+ throw new NullPointerException();
173
+ }
174
+ _serializerFactory = f;
175
+
176
+ _serializerCache = src._serializerCache;
177
+ _unknownTypeSerializer = src._unknownTypeSerializer;
178
+ _keySerializer = src._keySerializer;
179
+ _nullValueSerializer = src._nullValueSerializer;
180
+ _nullKeySerializer = src._nullKeySerializer;
181
+ _rootNames = src._rootNames;
182
+
183
+ /* Non-blueprint instances do have a read-only map; one that doesn't
184
+ * need synchronization for lookups.
185
+ */
186
+ _knownSerializers = _serializerCache.getReadOnlyLookupMap();
187
+ }
188
+
189
+ /**
190
+ * Overridable method, used to create a non-blueprint instances from the blueprint.
191
+ * This is needed to retain state during serialization.
192
+ */
193
+ protected StdSerializerProvider createInstance(SerializationConfig config, SerializerFactory jsf)
194
+ {
195
+ return new StdSerializerProvider(config, this, jsf);
196
+ }
197
+
198
+ /*
199
+ /**********************************************************
200
+ /* Configuration methods
201
+ /**********************************************************
202
+ */
203
+
204
+ @Override
205
+ public void setDefaultKeySerializer(JsonSerializer<Object> ks)
206
+ {
207
+ if (ks == null) {
208
+ throw new IllegalArgumentException("Can not pass null JsonSerializer");
209
+ }
210
+ _keySerializer = ks;
211
+ }
212
+
213
+ @Override
214
+ public void setNullValueSerializer(JsonSerializer<Object> nvs)
215
+ {
216
+ if (nvs == null) {
217
+ throw new IllegalArgumentException("Can not pass null JsonSerializer");
218
+ }
219
+ _nullValueSerializer = nvs;
220
+ }
221
+
222
+ @Override
223
+ public void setNullKeySerializer(JsonSerializer<Object> nks)
224
+ {
225
+ if (nks == null) {
226
+ throw new IllegalArgumentException("Can not pass null JsonSerializer");
227
+ }
228
+ _nullKeySerializer = nks;
229
+ }
230
+
231
+ /*
232
+ /**********************************************************
233
+ /* Methods to be called by ObjectMapper
234
+ /**********************************************************
235
+ */
236
+
237
+ @Override
238
+ public final void serializeValue(SerializationConfig config,
239
+ JsonGenerator jgen, Object value, SerializerFactory jsf)
240
+ throws IOException, JsonGenerationException
241
+ {
242
+ if (jsf == null) {
243
+ throw new IllegalArgumentException("Can not pass null serializerFactory");
244
+ }
245
+
246
+ /* First: we need a separate instance, which will hold a copy of the
247
+ * non-shared ("local") read-only lookup Map for fast
248
+ * class-to-serializer lookup
249
+ */
250
+ StdSerializerProvider inst = createInstance(config, jsf);
251
+ // sanity check to avoid weird errors; to ensure sub-classes do override createInstance
252
+ if (inst.getClass() != getClass()) {
253
+ throw new IllegalStateException("Broken serializer provider: createInstance returned instance of type "+inst.getClass()+"; blueprint of type "+getClass());
254
+ }
255
+ // And then we can do actual serialization, through the instance
256
+ inst._serializeValue(jgen, value);
257
+ }
258
+
259
+ @Override
260
+ public final void serializeValue(SerializationConfig config, JsonGenerator jgen,
261
+ Object value, JavaType rootType, SerializerFactory jsf)
262
+ throws IOException, JsonGenerationException
263
+ {
264
+ if (jsf == null) {
265
+ throw new IllegalArgumentException("Can not pass null serializerFactory");
266
+ }
267
+ StdSerializerProvider inst = createInstance(config, jsf);
268
+ if (inst.getClass() != getClass()) {
269
+ throw new IllegalStateException("Broken serializer provider: createInstance returned instance of type "+inst.getClass()+"; blueprint of type "+getClass());
270
+ }
271
+ inst._serializeValue(jgen, value, rootType);
272
+ }
273
+
274
+ @Override
275
+ public JsonSchema generateJsonSchema(Class<?> type, SerializationConfig config, SerializerFactory jsf)
276
+ throws JsonMappingException
277
+ {
278
+ if (type == null) {
279
+ throw new IllegalArgumentException("A class must be provided");
280
+ }
281
+
282
+ /* First: we need a separate instance, which will hold a copy of the
283
+ * non-shared ("local") read-only lookup Map for fast
284
+ * class-to-serializer lookup
285
+ */
286
+ StdSerializerProvider inst = createInstance(config, jsf);
287
+ // sanity check to avoid weird errors; to ensure sub-classes do override createInstance
288
+ if (inst.getClass() != getClass()) {
289
+ throw new IllegalStateException("Broken serializer provider: createInstance returned instance of type "+inst.getClass()+"; blueprint of type "+getClass());
290
+ }
291
+ /* no need for embedded type information for JSON schema generation (all
292
+ * type information it needs is accessible via "untyped" serializer)
293
+ */
294
+ JsonSerializer<Object> ser = inst.findValueSerializer(type, null);
295
+ JsonNode schemaNode = (ser instanceof SchemaAware) ?
296
+ ((SchemaAware) ser).getSchema(inst, null) :
297
+ JsonSchema.getDefaultSchemaNode();
298
+ if (!(schemaNode instanceof ObjectNode)) {
299
+ throw new IllegalArgumentException("Class " + type.getName() +
300
+ " would not be serialized as a JSON object and therefore has no schema");
301
+ }
302
+
303
+ return new JsonSchema((ObjectNode) schemaNode);
304
+ }
305
+
306
+ @Override
307
+ public boolean hasSerializerFor(SerializationConfig config,
308
+ Class<?> cls, SerializerFactory jsf)
309
+ {
310
+ return createInstance(config, jsf)._findExplicitUntypedSerializer(cls, null) != null;
311
+ }
312
+
313
+ @Override
314
+ public int cachedSerializersCount() {
315
+ return _serializerCache.size();
316
+ }
317
+
318
+ @Override
319
+ public void flushCachedSerializers() {
320
+ _serializerCache.flush();
321
+ }
322
+
323
+ /*
324
+ /**********************************************************
325
+ /* Abstract method implementations, value/type serializers
326
+ /**********************************************************
327
+ */
328
+
329
+ @Override
330
+ public JsonSerializer<Object> findValueSerializer(Class<?> valueType,
331
+ BeanProperty property)
332
+ throws JsonMappingException
333
+ {
334
+ // Fast lookup from local lookup thingy works?
335
+ JsonSerializer<Object> ser = _knownSerializers.untypedValueSerializer(valueType);
336
+ if (ser == null) {
337
+ // If not, maybe shared map already has it?
338
+ ser = _serializerCache.untypedValueSerializer(valueType);
339
+ if (ser == null) {
340
+ // ... possibly as fully typed?
341
+ ser = _serializerCache.untypedValueSerializer(_config.constructType(valueType));
342
+ if (ser == null) {
343
+ // If neither, must create
344
+ ser = _createAndCacheUntypedSerializer(valueType, property);
345
+ // Not found? Must use the unknown type serializer
346
+ /* Couldn't create? Need to return the fallback serializer, which
347
+ * most likely will report an error: but one question is whether
348
+ * we should cache it?
349
+ */
350
+ if (ser == null) {
351
+ ser = getUnknownTypeSerializer(valueType);
352
+ // Should this be added to lookups?
353
+ if (CACHE_UNKNOWN_MAPPINGS) {
354
+ _serializerCache.addAndResolveNonTypedSerializer(valueType, ser, this);
355
+ }
356
+ return ser;
357
+ }
358
+ }
359
+ }
360
+ }
361
+ return _handleContextualResolvable(ser, property);
362
+ }
363
+
364
+ /**
365
+ * This variant was added in 1.5, to allow for efficient access using full
366
+ * structured types, not just classes. This is necessary for accurate
367
+ * handling of external type information, to handle polymorphic types.
368
+ */
369
+ @Override
370
+ public JsonSerializer<Object> findValueSerializer(JavaType valueType, BeanProperty property)
371
+ throws JsonMappingException
372
+ {
373
+ // Fast lookup from local lookup thingy works?
374
+ JsonSerializer<Object> ser = _knownSerializers.untypedValueSerializer(valueType);
375
+ if (ser == null) {
376
+ // If not, maybe shared map already has it?
377
+ ser = _serializerCache.untypedValueSerializer(valueType);
378
+ if (ser == null) {
379
+ // If neither, must create
380
+ ser = _createAndCacheUntypedSerializer(valueType, property);
381
+ // Not found? Must use the unknown type serializer
382
+ /* Couldn't create? Need to return the fallback serializer, which
383
+ * most likely will report an error: but one question is whether
384
+ * we should cache it?
385
+ */
386
+ if (ser == null) {
387
+ ser = getUnknownTypeSerializer(valueType.getRawClass());
388
+ // Should this be added to lookups?
389
+ if (CACHE_UNKNOWN_MAPPINGS) {
390
+ _serializerCache.addAndResolveNonTypedSerializer(valueType, ser, this);
391
+ }
392
+ return ser;
393
+ }
394
+ }
395
+ }
396
+ return _handleContextualResolvable(ser, property);
397
+ }
398
+
399
+ /**
400
+ * @param cache Whether resulting value serializer should be cached or not; this is just
401
+ * a hint
402
+ */
403
+ @Override
404
+ public JsonSerializer<Object> findTypedValueSerializer(Class<?> valueType, boolean cache,
405
+ BeanProperty property)
406
+ throws JsonMappingException
407
+ {
408
+ // Two-phase lookups; local non-shared cache, then shared:
409
+ JsonSerializer<Object> ser = _knownSerializers.typedValueSerializer(valueType);
410
+ if (ser != null) {
411
+ return ser;
412
+ }
413
+ // If not, maybe shared map already has it?
414
+ ser = _serializerCache.typedValueSerializer(valueType);
415
+ if (ser != null) {
416
+ return ser;
417
+ }
418
+
419
+ // Well, let's just compose from pieces:
420
+ ser = findValueSerializer(valueType, property);
421
+ TypeSerializer typeSer = _serializerFactory.createTypeSerializer(_config,
422
+ _config.constructType(valueType), property);
423
+ if (typeSer != null) {
424
+ ser = new WrappedSerializer(typeSer, ser);
425
+ }
426
+ if (cache) {
427
+ _serializerCache.addTypedSerializer(valueType, ser);
428
+ }
429
+ return ser;
430
+ }
431
+
432
+ @Override
433
+ public JsonSerializer<Object> findTypedValueSerializer(JavaType valueType, boolean cache,
434
+ BeanProperty property)
435
+ throws JsonMappingException
436
+ {
437
+ // Two-phase lookups; local non-shared cache, then shared:
438
+ JsonSerializer<Object> ser = _knownSerializers.typedValueSerializer(valueType);
439
+ if (ser != null) {
440
+ return ser;
441
+ }
442
+ // If not, maybe shared map already has it?
443
+ ser = _serializerCache.typedValueSerializer(valueType);
444
+ if (ser != null) {
445
+ return ser;
446
+ }
447
+
448
+ // Well, let's just compose from pieces:
449
+ ser = findValueSerializer(valueType, property);
450
+ TypeSerializer typeSer = _serializerFactory.createTypeSerializer(_config, valueType, property);
451
+ if (typeSer != null) {
452
+ ser = new WrappedSerializer(typeSer, ser);
453
+ }
454
+ if (cache) {
455
+ _serializerCache.addTypedSerializer(valueType, ser);
456
+ }
457
+ return ser;
458
+ }
459
+
460
+ /*
461
+ /**********************************************************
462
+ /* Abstract method implementations, other serializers
463
+ /**********************************************************
464
+ */
465
+
466
+ @SuppressWarnings("unchecked")
467
+ @Override
468
+ public JsonSerializer<Object> findKeySerializer(JavaType keyType, BeanProperty property)
469
+ throws JsonMappingException
470
+ {
471
+ JsonSerializer<Object> ser = _serializerFactory.createKeySerializer(_config, keyType, property);
472
+
473
+ // First things first: maybe there are registered custom implementations
474
+ // if not, use default one:
475
+ if (ser == null) {
476
+ if (_keySerializer == null) {
477
+ ser = StdKeySerializers.getStdKeySerializer(keyType);
478
+ } else {
479
+ ser = _keySerializer;
480
+ }
481
+ }
482
+ // 25-Feb-2011, tatu: As per [JACKSON-519], need to ensure contextuality works here, too
483
+ if (ser instanceof ContextualSerializer<?>) {
484
+ ContextualSerializer<?> contextual = (ContextualSerializer<?>) ser;
485
+ ser = (JsonSerializer<Object>)contextual.createContextual(_config, property);
486
+ }
487
+ return ser;
488
+ }
489
+
490
+ @Override
491
+ public JsonSerializer<Object> getNullKeySerializer() {
492
+ return _nullKeySerializer;
493
+ }
494
+
495
+ @Override
496
+ public JsonSerializer<Object> getNullValueSerializer() {
497
+ return _nullValueSerializer;
498
+ }
499
+
500
+ @Override
501
+ public JsonSerializer<Object> getUnknownTypeSerializer(Class<?> unknownType) {
502
+ return _unknownTypeSerializer;
503
+ }
504
+
505
+ /*
506
+ /**********************************************************
507
+ /* Abstract method impls, convenience methods
508
+ /**********************************************************
509
+ */
510
+
511
+ /**
512
+ * @param timestamp Millisecond timestamp that defines date, if available;
513
+ */
514
+ @Override
515
+ public final void defaultSerializeDateValue(long timestamp, JsonGenerator jgen)
516
+ throws IOException, JsonProcessingException
517
+ {
518
+ // [JACKSON-87]: Support both numeric timestamps and textual
519
+ if (isEnabled(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS)) {
520
+ jgen.writeNumber(timestamp);
521
+ } else {
522
+ if (_dateFormat == null) {
523
+ // must create a clone since Formats are not thread-safe:
524
+ _dateFormat = (DateFormat)_config.getDateFormat().clone();
525
+ }
526
+ jgen.writeString(_dateFormat.format(new Date(timestamp)));
527
+ }
528
+ }
529
+
530
+ @Override
531
+ public final void defaultSerializeDateValue(Date date, JsonGenerator jgen)
532
+ throws IOException, JsonProcessingException
533
+ {
534
+ // [JACKSON-87]: Support both numeric timestamps and textual
535
+ if (isEnabled(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS)) {
536
+ jgen.writeNumber(date.getTime());
537
+ } else {
538
+ if (_dateFormat == null) {
539
+ DateFormat blueprint = _config.getDateFormat();
540
+ // must create a clone since Formats are not thread-safe:
541
+ _dateFormat = (DateFormat)blueprint.clone();
542
+ }
543
+ jgen.writeString(_dateFormat.format(date));
544
+ }
545
+ }
546
+
547
+ @Override
548
+ public void defaultSerializeDateKey(long timestamp, JsonGenerator jgen)
549
+ throws IOException, JsonProcessingException
550
+ {
551
+ if (isEnabled(SerializationConfig.Feature.WRITE_DATE_KEYS_AS_TIMESTAMPS)) {
552
+ jgen.writeFieldName(String.valueOf(timestamp));
553
+ } else {
554
+ if (_dateFormat == null) {
555
+ DateFormat blueprint = _config.getDateFormat();
556
+ // must create a clone since Formats are not thread-safe:
557
+ _dateFormat = (DateFormat)blueprint.clone();
558
+ }
559
+ jgen.writeFieldName(_dateFormat.format(new Date(timestamp)));
560
+ }
561
+ }
562
+
563
+ @Override
564
+ public void defaultSerializeDateKey(Date date, JsonGenerator jgen)
565
+ throws IOException, JsonProcessingException
566
+ {
567
+ if (isEnabled(SerializationConfig.Feature.WRITE_DATE_KEYS_AS_TIMESTAMPS)) {
568
+ jgen.writeFieldName(String.valueOf(date.getTime()));
569
+ } else {
570
+ if (_dateFormat == null) {
571
+ DateFormat blueprint = _config.getDateFormat();
572
+ // must create a clone since Formats are not thread-safe:
573
+ _dateFormat = (DateFormat)blueprint.clone();
574
+ }
575
+ jgen.writeFieldName(_dateFormat.format(date));
576
+ }
577
+ }
578
+
579
+ /*
580
+ /**********************************************************
581
+ /* Helper methods: can be overridden by sub-classes
582
+ /**********************************************************
583
+ */
584
+
585
+ /**
586
+ * Method called on the actual non-blueprint provider instance object,
587
+ * to kick off the serialization.
588
+ */
589
+ protected void _serializeValue(JsonGenerator jgen, Object value)
590
+ throws IOException, JsonProcessingException
591
+ {
592
+ JsonSerializer<Object> ser;
593
+ boolean wrap;
594
+
595
+ if (value == null) {
596
+ ser = getNullValueSerializer();
597
+ wrap = false; // no name to use for wrapping; can't do!
598
+ } else {
599
+ Class<?> cls = value.getClass();
600
+ // true, since we do want to cache root-level typed serializers (ditto for null property)
601
+ ser = findTypedValueSerializer(cls, true, null);
602
+ // [JACKSON-163]
603
+ wrap = _config.isEnabled(SerializationConfig.Feature.WRAP_ROOT_VALUE);
604
+ if (wrap) {
605
+ jgen.writeStartObject();
606
+ jgen.writeFieldName(_rootNames.findRootName(value.getClass(), _config));
607
+ }
608
+ }
609
+ try {
610
+ ser.serialize(value, jgen, this);
611
+ if (wrap) {
612
+ jgen.writeEndObject();
613
+ }
614
+ } catch (IOException ioe) {
615
+ /* As per [JACKSON-99], should not wrap IOException or its
616
+ * sub-classes (like JsonProcessingException, JsonMappingException)
617
+ */
618
+ throw ioe;
619
+ } catch (Exception e) {
620
+ // but others are wrapped
621
+ String msg = e.getMessage();
622
+ if (msg == null) {
623
+ msg = "[no message for "+e.getClass().getName()+"]";
624
+ }
625
+ throw new JsonMappingException(msg, e);
626
+ }
627
+ }
628
+
629
+ /**
630
+ * Method called on the actual non-blueprint provider instance object,
631
+ * to kick off the serialization, when root type is explicitly
632
+ * specified and not determined from value.
633
+ */
634
+ protected void _serializeValue(JsonGenerator jgen, Object value, JavaType rootType)
635
+ throws IOException, JsonProcessingException
636
+ {
637
+ // [JACKSON-163]
638
+ boolean wrap;
639
+
640
+ JsonSerializer<Object> ser;
641
+ if (value == null) {
642
+ ser = getNullValueSerializer();
643
+ wrap = false;
644
+ } else {
645
+ // Let's ensure types are compatible at this point
646
+ if (!rootType.getRawClass().isAssignableFrom(value.getClass())) {
647
+ _reportIncompatibleRootType(value, rootType);
648
+ }
649
+ // root value, not reached via property:
650
+ ser = findTypedValueSerializer(rootType, true, null);
651
+ // [JACKSON-163]
652
+ wrap = _config.isEnabled(SerializationConfig.Feature.WRAP_ROOT_VALUE);
653
+ if (wrap) {
654
+ jgen.writeStartObject();
655
+ jgen.writeFieldName(_rootNames.findRootName(rootType, _config));
656
+ }
657
+ }
658
+ try {
659
+ ser.serialize(value, jgen, this);
660
+ if (wrap) {
661
+ jgen.writeEndObject();
662
+ }
663
+ } catch (IOException ioe) { // no wrapping for IO (and derived)
664
+ throw ioe;
665
+ } catch (Exception e) { // but others do need to be, to get path etc
666
+ String msg = e.getMessage();
667
+ if (msg == null) {
668
+ msg = "[no message for "+e.getClass().getName()+"]";
669
+ }
670
+ throw new JsonMappingException(msg, e);
671
+ }
672
+ }
673
+
674
+ protected void _reportIncompatibleRootType(Object value, JavaType rootType)
675
+ throws IOException, JsonProcessingException
676
+ {
677
+ /* 07-Jan-2010, tatu: As per [JACKSON-456] better handle distinction between wrapper types,
678
+ * primitives
679
+ */
680
+ if (rootType.isPrimitive()) {
681
+ Class<?> wrapperType = ClassUtil.wrapperType(rootType.getRawClass());
682
+ // If it's just difference between wrapper, primitive, let it slide
683
+ if (wrapperType.isAssignableFrom(value.getClass())) {
684
+ return;
685
+ }
686
+ }
687
+ throw new JsonMappingException("Incompatible types: declared root type ("+rootType+") vs "
688
+ +value.getClass().getName());
689
+ }
690
+
691
+ /**
692
+ * Method that will try to find a serializer, either from cache
693
+ * or by constructing one; but will not return an "unknown" serializer
694
+ * if this can not be done but rather returns null.
695
+ *
696
+ * @return Serializer if one can be found, null if not.
697
+ */
698
+ protected JsonSerializer<Object> _findExplicitUntypedSerializer(Class<?> runtimeType,
699
+ BeanProperty property)
700
+ {
701
+ // Fast lookup from local lookup thingy works?
702
+ JsonSerializer<Object> ser = _knownSerializers.untypedValueSerializer(runtimeType);
703
+ if (ser != null) {
704
+ return ser;
705
+ }
706
+ // If not, maybe shared map already has it?
707
+ ser = _serializerCache.untypedValueSerializer(runtimeType);
708
+ if (ser != null) {
709
+ return ser;
710
+ }
711
+ try {
712
+ return _createAndCacheUntypedSerializer(runtimeType, property);
713
+ } catch (Exception e) {
714
+ return null;
715
+ }
716
+ }
717
+
718
+ /*
719
+ /**********************************************************
720
+ /* Low-level methods for actually constructing and initializing
721
+ /* serializers
722
+ /**********************************************************
723
+ */
724
+
725
+ /**
726
+ * Method that will try to construct a value serializer; and if
727
+ * one is successfully created, cache it for reuse.
728
+ */
729
+ protected JsonSerializer<Object> _createAndCacheUntypedSerializer(Class<?> type,
730
+ BeanProperty property)
731
+ throws JsonMappingException
732
+ {
733
+ JsonSerializer<Object> ser;
734
+ try {
735
+ ser = _createUntypedSerializer(_config.constructType(type), property);
736
+ } catch (IllegalArgumentException iae) {
737
+ /* We better only expose checked exceptions, since those
738
+ * are what caller is expected to handle
739
+ */
740
+ throw new JsonMappingException(iae.getMessage(), null, iae);
741
+ }
742
+
743
+ if (ser != null) {
744
+ _serializerCache.addAndResolveNonTypedSerializer(type, ser, this);
745
+ }
746
+ return ser;
747
+ }
748
+
749
+ /**
750
+ * @since 1.5
751
+ ] */
752
+ protected JsonSerializer<Object> _createAndCacheUntypedSerializer(JavaType type,
753
+ BeanProperty property)
754
+ throws JsonMappingException
755
+ {
756
+ JsonSerializer<Object> ser;
757
+ try {
758
+ ser = _createUntypedSerializer(type, property);
759
+ } catch (IllegalArgumentException iae) {
760
+ /* We better only expose checked exceptions, since those
761
+ * are what caller is expected to handle
762
+ */
763
+ throw new JsonMappingException(iae.getMessage(), null, iae);
764
+ }
765
+
766
+ if (ser != null) {
767
+ _serializerCache.addAndResolveNonTypedSerializer(type, ser, this);
768
+ }
769
+ return ser;
770
+ }
771
+
772
+ protected JsonSerializer<Object> _createUntypedSerializer(JavaType type,
773
+ BeanProperty property)
774
+ throws JsonMappingException
775
+ {
776
+ /* 10-Dec-2008, tatu: Is there a possibility of infinite loops
777
+ * here? Shouldn't be, given that we do not pass back-reference
778
+ * to this provider. But if there is, we'd need to sync calls,
779
+ * and keep track of creation chain to look for loops -- fairly
780
+ * easy to do, but won't add yet since it seems unnecessary.
781
+ */
782
+ return (JsonSerializer<Object>)_serializerFactory.createSerializer(_config, type, property);
783
+ }
784
+
785
+ /**
786
+ * @since 1.8.5
787
+ */
788
+ @SuppressWarnings("unchecked")
789
+ protected JsonSerializer<Object> _handleContextualResolvable(JsonSerializer<Object> ser,
790
+ BeanProperty property)
791
+ throws JsonMappingException
792
+ {
793
+ if (!(ser instanceof ContextualSerializer<?>)) {
794
+ return ser;
795
+ }
796
+ JsonSerializer<Object> ctxtSer = ((ContextualSerializer<Object>) ser).createContextual(_config, property);
797
+ if (ctxtSer != ser) {
798
+ // need to re-resolve?
799
+ if (ctxtSer instanceof ResolvableSerializer) {
800
+ ((ResolvableSerializer) ctxtSer).resolve(this);
801
+ }
802
+ ser = ctxtSer;
803
+ }
804
+ return ser;
805
+ }
806
+
807
+ /*
808
+ /**********************************************************
809
+ /* Helper classes
810
+ /**********************************************************
811
+ */
812
+
813
+ /**
814
+ * Simple serializer that will call configured type serializer, passing
815
+ * in configured data serializer, and exposing it all as a simple
816
+ * serializer.
817
+ */
818
+ private final static class WrappedSerializer
819
+ extends JsonSerializer<Object>
820
+ {
821
+ final protected TypeSerializer _typeSerializer;
822
+ final protected JsonSerializer<Object> _serializer;
823
+
824
+ public WrappedSerializer(TypeSerializer typeSer, JsonSerializer<Object> ser)
825
+ {
826
+ super();
827
+ _typeSerializer = typeSer;
828
+ _serializer = ser;
829
+ }
830
+
831
+ @Override
832
+ public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider)
833
+ throws IOException, JsonProcessingException
834
+ {
835
+ _serializer.serializeWithType(value, jgen, provider, _typeSerializer);
836
+ }
837
+
838
+ @Override
839
+ public void serializeWithType(Object value, JsonGenerator jgen, SerializerProvider provider,
840
+ TypeSerializer typeSer)
841
+ throws IOException, JsonProcessingException
842
+ {
843
+ /* Is this an erroneous call? For now, let's assume it is not, and
844
+ * that type serializer is just overridden if so
845
+ */
846
+ _serializer.serializeWithType(value, jgen, provider, typeSer);
847
+ }
848
+
849
+ @Override
850
+ public Class<Object> handledType() { return Object.class; }
851
+ }
852
+ }