calabash-android 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (532) hide show
  1. data/CHANGES.txt +1 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +8 -0
  4. data/Rakefile +2 -0
  5. data/bin/calabash-android +42 -0
  6. data/bin/calabash-android-build.rb +37 -0
  7. data/bin/calabash-android-generate.rb +26 -0
  8. data/bin/calabash-android-helpers.rb +71 -0
  9. data/bin/calabash-android-run.rb +18 -0
  10. data/bin/calabash-android-setup.rb +392 -0
  11. data/calabash-android.gemspec +23 -0
  12. data/doc/calabash-android-help.txt +21 -0
  13. data/epl-v10.html +261 -0
  14. data/features-skeleton/.irbrc +16 -0
  15. data/features-skeleton/irb_android.sh +2 -0
  16. data/features-skeleton/my_first.feature +5 -0
  17. data/features-skeleton/step_definitions/calabash_steps.rb +1 -0
  18. data/features-skeleton/support/app_installation_hooks.rb +26 -0
  19. data/features-skeleton/support/app_life_cycle_hooks.rb +28 -0
  20. data/features-skeleton/support/env.rb +1 -0
  21. data/features-skeleton/support/hooks.rb +18 -0
  22. data/lib/calabash-android.rb +2 -0
  23. data/lib/calabash-android/calabash_steps.rb +18 -0
  24. data/lib/calabash-android/canned_steps.md +239 -0
  25. data/lib/calabash-android/color_helper.rb +13 -0
  26. data/lib/calabash-android/cucumber.rb +9 -0
  27. data/lib/calabash-android/lib/screenShotTaker.jar +0 -0
  28. data/lib/calabash-android/management/adb.rb +11 -0
  29. data/lib/calabash-android/management/app_installation.rb +21 -0
  30. data/lib/calabash-android/operations.rb +283 -0
  31. data/lib/calabash-android/steps/additions_manual_steps.rb +11 -0
  32. data/lib/calabash-android/steps/app_steps.rb +10 -0
  33. data/lib/calabash-android/steps/assert_steps.rb +32 -0
  34. data/lib/calabash-android/steps/check_box_steps.rb +3 -0
  35. data/lib/calabash-android/steps/context_menu_steps.rb +12 -0
  36. data/lib/calabash-android/steps/date_picker_steps.rb +8 -0
  37. data/lib/calabash-android/steps/enter_text_steps.rb +21 -0
  38. data/lib/calabash-android/steps/location_steps.rb +19 -0
  39. data/lib/calabash-android/steps/navigation_steps.rb +27 -0
  40. data/lib/calabash-android/steps/press_button_steps.rb +35 -0
  41. data/lib/calabash-android/steps/progress_steps.rb +49 -0
  42. data/lib/calabash-android/steps/rotation_steps.rb +8 -0
  43. data/lib/calabash-android/steps/screenshot_steps.rb +11 -0
  44. data/lib/calabash-android/steps/spinner_steps.rb +3 -0
  45. data/lib/calabash-android/steps/time_picker_steps.rb +8 -0
  46. data/lib/calabash-android/version.rb +6 -0
  47. data/test-server/AndroidManifest.xml +13 -0
  48. data/test-server/build.xml +192 -0
  49. data/test-server/calabash-js/src/calabash.js +125 -0
  50. data/test-server/calabash-js/src/set_text.js +132 -0
  51. data/test-server/instrumentation-backend/.classpath +10 -0
  52. data/test-server/instrumentation-backend/.project +33 -0
  53. data/test-server/instrumentation-backend/.settings/org.eclipse.jdt.core.prefs +12 -0
  54. data/test-server/instrumentation-backend/AndroidManifest.xml +15 -0
  55. data/test-server/instrumentation-backend/assets/foo.bar +0 -0
  56. data/test-server/instrumentation-backend/gen/com/lesspainful/simpleui/test/R.java +23 -0
  57. data/test-server/instrumentation-backend/libs/robotium-solo-2.5.jar +0 -0
  58. data/test-server/instrumentation-backend/project.properties +11 -0
  59. data/test-server/instrumentation-backend/res/drawable-hdpi/ic_launcher.png +0 -0
  60. data/test-server/instrumentation-backend/res/drawable-ldpi/ic_launcher.png +0 -0
  61. data/test-server/instrumentation-backend/res/drawable-mdpi/ic_launcher.png +0 -0
  62. data/test-server/instrumentation-backend/res/layout/main.xml +12 -0
  63. data/test-server/instrumentation-backend/res/values/strings.xml +7 -0
  64. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Command.java +48 -0
  65. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/InstrumentationBackend.java +196 -0
  66. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +64 -0
  67. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/TestHelpers.java +136 -0
  68. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Action.java +11 -0
  69. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Actions.java +113 -0
  70. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/NullAction.java +23 -0
  71. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonNumber.java +22 -0
  72. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonText.java +27 -0
  73. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressImageButtonNumber.java +22 -0
  74. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/WaitForButton.java +47 -0
  75. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/checkbox/ToggleCheckboxNumber.java +22 -0
  76. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressText.java +22 -0
  77. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuById.java +26 -0
  78. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByIndex.java +22 -0
  79. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByText.java +26 -0
  80. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/ClickOnScreen.java +31 -0
  81. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/Swipe.java +28 -0
  82. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/helpers/ListActions.java +26 -0
  83. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/LongPressListItems.java +22 -0
  84. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/PressListItems.java +22 -0
  85. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/location/FakeGPSLocation.java +79 -0
  86. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollDown.java +28 -0
  87. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollUp.java +28 -0
  88. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/DownKey.java +24 -0
  89. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/GoBack.java +22 -0
  90. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/PressMenu.java +26 -0
  91. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/SelectFromMenuByText.java +24 -0
  92. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/spinner/SelectSpinnerItemByContentDescription.java +43 -0
  93. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertText.java +31 -0
  94. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertTextOfSpecificTextViewByContentDescription.java +32 -0
  95. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextByIndex.java +22 -0
  96. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextFieldByContentDescription.java +33 -0
  97. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClickOnText.java +22 -0
  98. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByContentDescription.java +32 -0
  99. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByIndex.java +22 -0
  100. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByContentDescription.java +33 -0
  101. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByIndex.java +24 -0
  102. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByContentDescription.java +34 -0
  103. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByIndex.java +26 -0
  104. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/ClickOnViewById.java +63 -0
  105. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/LongPressOnViewById.java +34 -0
  106. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/Press.java +89 -0
  107. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/WaitForViewById.java +41 -0
  108. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/Wait.java +24 -0
  109. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForDialogClose.java +21 -0
  110. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForProgress.java +47 -0
  111. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForScreen.java +49 -0
  112. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForText.java +26 -0
  113. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java +109 -0
  114. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java +33 -0
  115. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java +33 -0
  116. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/EnterTextByCssSelector.java +99 -0
  117. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +43 -0
  118. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Query.java +24 -0
  119. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +99 -0
  120. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ScrollTo.java +74 -0
  121. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetPropertyByCssSelector.java +43 -0
  122. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +50 -0
  123. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Touch.java +44 -0
  124. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variant.java +413 -0
  125. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variants.java +90 -0
  126. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/FormatSchema.java +29 -0
  127. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonEncoding.java +47 -0
  128. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonFactory.java +937 -0
  129. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerationException.java +28 -0
  130. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerator.java +1197 -0
  131. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonLocation.java +141 -0
  132. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonNode.java +879 -0
  133. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParseException.java +23 -0
  134. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParser.java +1434 -0
  135. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonProcessingException.java +80 -0
  136. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonStreamContext.java +122 -0
  137. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonToken.java +161 -0
  138. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/ObjectCodec.java +157 -0
  139. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/PrettyPrinter.java +166 -0
  140. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/SerializableString.java +54 -0
  141. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Version.java +90 -0
  142. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Versioned.java +20 -0
  143. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JacksonAnnotation.java +20 -0
  144. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnyGetter.java +25 -0
  145. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnySetter.java +24 -0
  146. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAutoDetect.java +148 -0
  147. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonBackReference.java +41 -0
  148. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonCreator.java +19 -0
  149. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonGetter.java +35 -0
  150. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnore.java +57 -0
  151. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreProperties.java +48 -0
  152. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreType.java +33 -0
  153. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonManagedReference.java +41 -0
  154. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonMethod.java +90 -0
  155. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonProperty.java +38 -0
  156. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonPropertyOrder.java +46 -0
  157. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonRawValue.java +33 -0
  158. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSetter.java +33 -0
  159. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSubTypes.java +44 -0
  160. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeInfo.java +236 -0
  161. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeName.java +28 -0
  162. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonUnwrapped.java +76 -0
  163. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonValue.java +46 -0
  164. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonWriteNullProperties.java +34 -0
  165. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/package-info.java +16 -0
  166. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatDetector.java +176 -0
  167. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatMatcher.java +117 -0
  168. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/InputAccessor.java +130 -0
  169. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/MatchStrength.java +64 -0
  170. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/package-info.java +8 -0
  171. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ByteSourceBootstrapper.java +518 -0
  172. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/DefaultPrettyPrinter.java +13 -0
  173. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Indenter.java +23 -0
  174. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonGeneratorBase.java +570 -0
  175. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonNumericParserBase.java +20 -0
  176. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserBase.java +1067 -0
  177. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserMinimalBase.java +539 -0
  178. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonReadContext.java +188 -0
  179. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonWriteContext.java +178 -0
  180. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParser.java +1815 -0
  181. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParserBase.java +228 -0
  182. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/StreamBasedParserBase.java +197 -0
  183. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8Generator.java +1757 -0
  184. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8StreamParser.java +2966 -0
  185. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/WriterBasedGenerator.java +1815 -0
  186. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/package-info.java +6 -0
  187. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/BaseReader.java +117 -0
  188. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/CharacterEscapes.java +73 -0
  189. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/IOContext.java +239 -0
  190. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/InputDecorator.java +67 -0
  191. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/JsonStringEncoder.java +408 -0
  192. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/MergedStream.java +145 -0
  193. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberInput.java +303 -0
  194. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberOutput.java +398 -0
  195. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/OutputDecorator.java +40 -0
  196. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SegmentedStringWriter.java +104 -0
  197. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SerializedString.java +114 -0
  198. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF32Reader.java +214 -0
  199. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF8Writer.java +387 -0
  200. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/package.html +4 -0
  201. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AbstractTypeResolver.java +63 -0
  202. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AnnotationIntrospector.java +1485 -0
  203. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanDescription.java +171 -0
  204. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanProperty.java +123 -0
  205. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanPropertyDefinition.java +66 -0
  206. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ClassIntrospector.java +117 -0
  207. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualDeserializer.java +38 -0
  208. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualKeyDeserializer.java +33 -0
  209. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualSerializer.java +38 -0
  210. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationConfig.java +926 -0
  211. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationContext.java +262 -0
  212. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationProblemHandler.java +56 -0
  213. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerFactory.java +356 -0
  214. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerProvider.java +185 -0
  215. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Deserializers.java +339 -0
  216. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/HandlerInstantiator.java +115 -0
  217. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/InjectableValues.java +85 -0
  218. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonDeserializer.java +166 -0
  219. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonMappingException.java +335 -0
  220. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializable.java +34 -0
  221. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializableWithType.java +22 -0
  222. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializer.java +138 -0
  223. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializer.java +31 -0
  224. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializers.java +21 -0
  225. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MapperConfig.java +1154 -0
  226. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingIterator.java +190 -0
  227. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingJsonFactory.java +81 -0
  228. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Module.java +255 -0
  229. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectMapper.java +2885 -0
  230. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectReader.java +958 -0
  231. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectWriter.java +554 -0
  232. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/PropertyNamingStrategy.java +258 -0
  233. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableDeserializer.java +23 -0
  234. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableSerializer.java +23 -0
  235. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/RuntimeJsonMappingException.java +21 -0
  236. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializationConfig.java +1041 -0
  237. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerFactory.java +198 -0
  238. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerProvider.java +552 -0
  239. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Serializers.java +137 -0
  240. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeDeserializer.java +118 -0
  241. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeSerializer.java +164 -0
  242. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonInject.java +30 -0
  243. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonStdImpl.java +25 -0
  244. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonCachable.java +32 -0
  245. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonDeserialize.java +109 -0
  246. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonFilter.java +31 -0
  247. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonRootName.java +29 -0
  248. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonSerialize.java +216 -0
  249. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeIdResolver.java +35 -0
  250. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeResolver.java +28 -0
  251. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonValueInstantiator.java +26 -0
  252. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonView.java +37 -0
  253. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/NoClass.java +19 -0
  254. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/package-info.java +5 -0
  255. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/AbstractDeserializer.java +102 -0
  256. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializer.java +28 -0
  257. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializers.java +11 -0
  258. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java +894 -0
  259. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializer.java +1537 -0
  260. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerBuilder.java +277 -0
  261. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerFactory.java +1474 -0
  262. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerModifier.java +58 -0
  263. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CollectionDeserializer.java +47 -0
  264. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ContainerDeserializer.java +14 -0
  265. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CustomDeserializerFactory.java +227 -0
  266. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/DateDeserializer.java +9 -0
  267. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumDeserializer.java +15 -0
  268. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumResolver.java +17 -0
  269. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/FromStringDeserializer.java +13 -0
  270. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/JsonNodeDeserializer.java +54 -0
  271. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/MapDeserializer.java +44 -0
  272. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableAnyProperty.java +177 -0
  273. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableBeanProperty.java +827 -0
  274. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializationContext.java +326 -0
  275. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializer.java +94 -0
  276. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializerProvider.java +494 -0
  277. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializers.java +119 -0
  278. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializer.java +12 -0
  279. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializers.java +11 -0
  280. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdScalarDeserializer.java +13 -0
  281. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ThrowableDeserializer.java +13 -0
  282. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/UntypedObjectDeserializer.java +9 -0
  283. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiator.java +280 -0
  284. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiators.java +52 -0
  285. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/BeanPropertyMap.java +257 -0
  286. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorCollector.java +141 -0
  287. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorProperty.java +152 -0
  288. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ExternalTypeHandler.java +173 -0
  289. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyBasedCreator.java +117 -0
  290. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValue.java +117 -0
  291. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValueBuffer.java +102 -0
  292. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/UnwrappedPropertyHandler.java +41 -0
  293. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ValueInjector.java +45 -0
  294. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/package-info.java +9 -0
  295. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/package-info.java +5 -0
  296. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicBooleanDeserializer.java +22 -0
  297. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicReferenceDeserializer.java +47 -0
  298. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CalendarDeserializer.java +47 -0
  299. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ClassDeserializer.java +49 -0
  300. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CollectionDeserializer.java +265 -0
  301. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ContainerDeserializerBase.java +37 -0
  302. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/DateDeserializer.java +30 -0
  303. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumDeserializer.java +139 -0
  304. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumMapDeserializer.java +90 -0
  305. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java +89 -0
  306. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/FromStringDeserializer.java +265 -0
  307. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JavaTypeDeserializer.java +38 -0
  308. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JsonNodeDeserializer.java +314 -0
  309. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/MapDeserializer.java +412 -0
  310. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ObjectArrayDeserializer.java +201 -0
  311. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/PrimitiveArrayDeserializers.java +583 -0
  312. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdDeserializer.java +1136 -0
  313. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java +340 -0
  314. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializers.java +108 -0
  315. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdScalarDeserializer.java +34 -0
  316. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdValueInstantiator.java +392 -0
  317. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringCollectionDeserializer.java +227 -0
  318. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringDeserializer.java +55 -0
  319. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ThrowableDeserializer.java +164 -0
  320. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TimestampDeserializer.java +30 -0
  321. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TokenBufferDeserializer.java +36 -0
  322. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/UntypedObjectDeserializer.java +248 -0
  323. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/package-info.java +15 -0
  324. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/exc/UnrecognizedPropertyException.java +75 -0
  325. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLDeserializers.java +114 -0
  326. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLSerializers.java +72 -0
  327. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/DOMDeserializer.java +65 -0
  328. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/OptionalHandlerFactory.java +217 -0
  329. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/package-info.java +23 -0
  330. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/Annotated.java +85 -0
  331. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedClass.java +980 -0
  332. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedConstructor.java +143 -0
  333. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedField.java +119 -0
  334. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMember.java +56 -0
  335. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethod.java +188 -0
  336. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethodMap.java +85 -0
  337. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedParameter.java +191 -0
  338. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedWithParams.java +195 -0
  339. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotationMap.java +101 -0
  340. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicBeanDescription.java +615 -0
  341. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicClassIntrospector.java +364 -0
  342. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/JacksonAnnotationIntrospector.java +813 -0
  343. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MemberKey.java +83 -0
  344. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MethodFilter.java +12 -0
  345. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/NopAnnotationIntrospector.java +209 -0
  346. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertiesCollector.java +713 -0
  347. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertyBuilder.java +648 -0
  348. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/VisibilityChecker.java +424 -0
  349. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/package-info.java +12 -0
  350. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/NamedType.java +53 -0
  351. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/SubtypeResolver.java +39 -0
  352. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeIdResolver.java +74 -0
  353. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeResolverBuilder.java +151 -0
  354. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeDeserializer.java +126 -0
  355. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeSerializer.java +110 -0
  356. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeDeserializer.java +37 -0
  357. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeSerializer.java +129 -0
  358. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeDeserializer.java +191 -0
  359. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeSerializer.java +69 -0
  360. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeDeserializer.java +103 -0
  361. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeSerializer.java +121 -0
  362. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/ClassNameIdResolver.java +138 -0
  363. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/MinimalClassNameIdResolver.java +66 -0
  364. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdSubtypeResolver.java +151 -0
  365. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdTypeResolverBuilder.java +202 -0
  366. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeDeserializerBase.java +154 -0
  367. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeIdResolverBase.java +37 -0
  368. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeNameIdResolver.java +154 -0
  369. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeSerializerBase.java +31 -0
  370. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/package-info.java +9 -0
  371. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/package-info.java +10 -0
  372. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleAbstractTypeResolver.java +86 -0
  373. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleDeserializers.java +130 -0
  374. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleKeyDeserializers.java +59 -0
  375. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleModule.java +265 -0
  376. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleSerializers.java +206 -0
  377. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleValueInstantiators.java +45 -0
  378. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/package-info.java +16 -0
  379. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/package-info.java +34 -0
  380. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/AnyGetterWriter.java +48 -0
  381. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ArraySerializers.java +7 -0
  382. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BasicSerializerFactory.java +806 -0
  383. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyFilter.java +30 -0
  384. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyWriter.java +512 -0
  385. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializer.java +126 -0
  386. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerBuilder.java +140 -0
  387. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerFactory.java +780 -0
  388. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerModifier.java +95 -0
  389. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ContainerSerializers.java +8 -0
  390. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/CustomSerializerFactory.java +293 -0
  391. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/EnumSerializer.java +17 -0
  392. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilterProvider.java +23 -0
  393. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilteredBeanPropertyWriter.java +96 -0
  394. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/JdkSerializers.java +11 -0
  395. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/MapSerializer.java +58 -0
  396. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/PropertyBuilder.java +372 -0
  397. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ScalarSerializerBase.java +18 -0
  398. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/SerializerBase.java +23 -0
  399. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdKeySerializer.java +10 -0
  400. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializerProvider.java +852 -0
  401. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializers.java +372 -0
  402. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ToStringSerializer.java +14 -0
  403. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/FailingSerializer.java +43 -0
  404. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/JsonSerializerMap.java +93 -0
  405. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/PropertySerializerMap.java +231 -0
  406. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/ReadOnlyClassToSerializerMap.java +73 -0
  407. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SerializerCache.java +304 -0
  408. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleBeanPropertyFilter.java +109 -0
  409. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleFilterProvider.java +114 -0
  410. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnknownSerializer.java +54 -0
  411. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanPropertyWriter.java +99 -0
  412. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanSerializer.java +76 -0
  413. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/package-info.java +5 -0
  414. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/package-info.java +5 -0
  415. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/AsArraySerializerBase.java +185 -0
  416. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java +340 -0
  417. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CalendarSerializer.java +43 -0
  418. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CollectionSerializer.java +113 -0
  419. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ContainerSerializerBase.java +51 -0
  420. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/DateSerializer.java +42 -0
  421. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumMapSerializer.java +218 -0
  422. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSerializer.java +84 -0
  423. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSetSerializer.java +47 -0
  424. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IndexedStringListSerializer.java +116 -0
  425. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/InetAddressSerializer.java +51 -0
  426. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IterableSerializer.java +63 -0
  427. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/JsonValueSerializer.java +233 -0
  428. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/MapSerializer.java +422 -0
  429. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NonTypedScalarSerializerBase.java +34 -0
  430. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NullSerializer.java +38 -0
  431. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ObjectArraySerializer.java +281 -0
  432. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/RawSerializer.java +52 -0
  433. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ScalarSerializerBase.java +52 -0
  434. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableSerializer.java +99 -0
  435. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableWithTypeSerializer.java +90 -0
  436. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializerBase.java +184 -0
  437. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StaticListSerializerBase.java +46 -0
  438. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdArraySerializers.java +476 -0
  439. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdContainerSerializers.java +249 -0
  440. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdJdkSerializers.java +195 -0
  441. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializer.java +43 -0
  442. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializers.java +95 -0
  443. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringCollectionSerializer.java +119 -0
  444. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringSerializer.java +36 -0
  445. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TimeZoneSerializer.java +38 -0
  446. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ToStringSerializer.java +73 -0
  447. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TokenBufferSerializer.java +66 -0
  448. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ArrayType.java +260 -0
  449. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ClassKey.java +94 -0
  450. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionLikeType.java +204 -0
  451. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionType.java +94 -0
  452. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/HierarchicType.java +88 -0
  453. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapLikeType.java +265 -0
  454. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapType.java +146 -0
  455. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/SimpleType.java +250 -0
  456. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBase.java +148 -0
  457. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBindings.java +351 -0
  458. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeFactory.java +1165 -0
  459. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeModifier.java +38 -0
  460. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeParser.java +134 -0
  461. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/package-info.java +10 -0
  462. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Annotations.java +23 -0
  463. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ArrayBuilders.java +293 -0
  464. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/BeanUtil.java +260 -0
  465. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ClassUtil.java +645 -0
  466. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Comparators.java +48 -0
  467. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumResolver.java +108 -0
  468. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumValues.java +82 -0
  469. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601DateFormat.java +52 -0
  470. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601Utils.java +230 -0
  471. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONPObject.java +105 -0
  472. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONWrappedObject.java +117 -0
  473. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LRUMap.java +28 -0
  474. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LinkedNode.java +45 -0
  475. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Named.java +10 -0
  476. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ObjectBuffer.java +257 -0
  477. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/PrimitiveArrayBuilder.java +180 -0
  478. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Provider.java +21 -0
  479. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/RootNameLookup.java +54 -0
  480. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/StdDateFormat.java +348 -0
  481. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/package-info.java +4 -0
  482. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ArrayNode.java +758 -0
  483. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BaseJsonNode.java +122 -0
  484. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BigIntegerNode.java +104 -0
  485. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BinaryNode.java +136 -0
  486. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BooleanNode.java +84 -0
  487. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ContainerNode.java +185 -0
  488. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DecimalNode.java +96 -0
  489. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DoubleNode.java +106 -0
  490. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/IntNode.java +122 -0
  491. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/JsonNodeFactory.java +222 -0
  492. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/LongNode.java +99 -0
  493. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/MissingNode.java +97 -0
  494. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NodeCursor.java +222 -0
  495. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NullNode.java +58 -0
  496. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NumericNode.java +72 -0
  497. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ObjectNode.java +696 -0
  498. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/POJONode.java +145 -0
  499. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TextNode.java +299 -0
  500. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TreeTraversingParser.java +383 -0
  501. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ValueNode.java +58 -0
  502. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/package-info.java +8 -0
  503. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/package-info.java +30 -0
  504. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSchema.java +82 -0
  505. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSerializableSchema.java +46 -0
  506. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/SchemaAware.java +25 -0
  507. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/package-info.java +5 -0
  508. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/BytesToNameCanonicalizer.java +969 -0
  509. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/CharsToNameCanonicalizer.java +578 -0
  510. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name.java +50 -0
  511. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name1.java +44 -0
  512. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name2.java +40 -0
  513. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name3.java +39 -0
  514. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/NameN.java +68 -0
  515. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/package-info.java +5 -0
  516. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/JavaType.java +503 -0
  517. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/TypeReference.java +60 -0
  518. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/package-info.java +8 -0
  519. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/BufferRecycler.java +109 -0
  520. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/ByteArrayBuilder.java +294 -0
  521. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/CharTypes.java +237 -0
  522. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/DefaultPrettyPrinter.java +282 -0
  523. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/InternCache.java +49 -0
  524. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonGeneratorDelegate.java +273 -0
  525. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserDelegate.java +251 -0
  526. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserSequence.java +150 -0
  527. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/MinimalPrettyPrinter.java +152 -0
  528. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TextBuffer.java +707 -0
  529. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TokenBuffer.java +1233 -0
  530. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/VersionUtil.java +79 -0
  531. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/package-info.java +4 -0
  532. metadata +619 -0
@@ -0,0 +1,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
+ }