calabash-android 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. data/CHANGES.txt +1 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +8 -0
  4. data/Rakefile +2 -0
  5. data/bin/calabash-android +42 -0
  6. data/bin/calabash-android-build.rb +37 -0
  7. data/bin/calabash-android-generate.rb +26 -0
  8. data/bin/calabash-android-helpers.rb +71 -0
  9. data/bin/calabash-android-run.rb +18 -0
  10. data/bin/calabash-android-setup.rb +392 -0
  11. data/calabash-android.gemspec +23 -0
  12. data/doc/calabash-android-help.txt +21 -0
  13. data/epl-v10.html +261 -0
  14. data/features-skeleton/.irbrc +16 -0
  15. data/features-skeleton/irb_android.sh +2 -0
  16. data/features-skeleton/my_first.feature +5 -0
  17. data/features-skeleton/step_definitions/calabash_steps.rb +1 -0
  18. data/features-skeleton/support/app_installation_hooks.rb +26 -0
  19. data/features-skeleton/support/app_life_cycle_hooks.rb +28 -0
  20. data/features-skeleton/support/env.rb +1 -0
  21. data/features-skeleton/support/hooks.rb +18 -0
  22. data/lib/calabash-android.rb +2 -0
  23. data/lib/calabash-android/calabash_steps.rb +18 -0
  24. data/lib/calabash-android/canned_steps.md +239 -0
  25. data/lib/calabash-android/color_helper.rb +13 -0
  26. data/lib/calabash-android/cucumber.rb +9 -0
  27. data/lib/calabash-android/lib/screenShotTaker.jar +0 -0
  28. data/lib/calabash-android/management/adb.rb +11 -0
  29. data/lib/calabash-android/management/app_installation.rb +21 -0
  30. data/lib/calabash-android/operations.rb +283 -0
  31. data/lib/calabash-android/steps/additions_manual_steps.rb +11 -0
  32. data/lib/calabash-android/steps/app_steps.rb +10 -0
  33. data/lib/calabash-android/steps/assert_steps.rb +32 -0
  34. data/lib/calabash-android/steps/check_box_steps.rb +3 -0
  35. data/lib/calabash-android/steps/context_menu_steps.rb +12 -0
  36. data/lib/calabash-android/steps/date_picker_steps.rb +8 -0
  37. data/lib/calabash-android/steps/enter_text_steps.rb +21 -0
  38. data/lib/calabash-android/steps/location_steps.rb +19 -0
  39. data/lib/calabash-android/steps/navigation_steps.rb +27 -0
  40. data/lib/calabash-android/steps/press_button_steps.rb +35 -0
  41. data/lib/calabash-android/steps/progress_steps.rb +49 -0
  42. data/lib/calabash-android/steps/rotation_steps.rb +8 -0
  43. data/lib/calabash-android/steps/screenshot_steps.rb +11 -0
  44. data/lib/calabash-android/steps/spinner_steps.rb +3 -0
  45. data/lib/calabash-android/steps/time_picker_steps.rb +8 -0
  46. data/lib/calabash-android/version.rb +6 -0
  47. data/test-server/AndroidManifest.xml +13 -0
  48. data/test-server/build.xml +192 -0
  49. data/test-server/calabash-js/src/calabash.js +125 -0
  50. data/test-server/calabash-js/src/set_text.js +132 -0
  51. data/test-server/instrumentation-backend/.classpath +10 -0
  52. data/test-server/instrumentation-backend/.project +33 -0
  53. data/test-server/instrumentation-backend/.settings/org.eclipse.jdt.core.prefs +12 -0
  54. data/test-server/instrumentation-backend/AndroidManifest.xml +15 -0
  55. data/test-server/instrumentation-backend/assets/foo.bar +0 -0
  56. data/test-server/instrumentation-backend/gen/com/lesspainful/simpleui/test/R.java +23 -0
  57. data/test-server/instrumentation-backend/libs/robotium-solo-2.5.jar +0 -0
  58. data/test-server/instrumentation-backend/project.properties +11 -0
  59. data/test-server/instrumentation-backend/res/drawable-hdpi/ic_launcher.png +0 -0
  60. data/test-server/instrumentation-backend/res/drawable-ldpi/ic_launcher.png +0 -0
  61. data/test-server/instrumentation-backend/res/drawable-mdpi/ic_launcher.png +0 -0
  62. data/test-server/instrumentation-backend/res/layout/main.xml +12 -0
  63. data/test-server/instrumentation-backend/res/values/strings.xml +7 -0
  64. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Command.java +48 -0
  65. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/InstrumentationBackend.java +196 -0
  66. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +64 -0
  67. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/TestHelpers.java +136 -0
  68. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Action.java +11 -0
  69. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Actions.java +113 -0
  70. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/NullAction.java +23 -0
  71. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonNumber.java +22 -0
  72. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonText.java +27 -0
  73. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressImageButtonNumber.java +22 -0
  74. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/WaitForButton.java +47 -0
  75. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/checkbox/ToggleCheckboxNumber.java +22 -0
  76. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressText.java +22 -0
  77. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuById.java +26 -0
  78. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByIndex.java +22 -0
  79. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByText.java +26 -0
  80. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/ClickOnScreen.java +31 -0
  81. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/Swipe.java +28 -0
  82. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/helpers/ListActions.java +26 -0
  83. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/LongPressListItems.java +22 -0
  84. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/PressListItems.java +22 -0
  85. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/location/FakeGPSLocation.java +79 -0
  86. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollDown.java +28 -0
  87. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollUp.java +28 -0
  88. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/DownKey.java +24 -0
  89. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/GoBack.java +22 -0
  90. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/PressMenu.java +26 -0
  91. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/SelectFromMenuByText.java +24 -0
  92. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/spinner/SelectSpinnerItemByContentDescription.java +43 -0
  93. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertText.java +31 -0
  94. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertTextOfSpecificTextViewByContentDescription.java +32 -0
  95. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextByIndex.java +22 -0
  96. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextFieldByContentDescription.java +33 -0
  97. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClickOnText.java +22 -0
  98. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByContentDescription.java +32 -0
  99. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByIndex.java +22 -0
  100. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByContentDescription.java +33 -0
  101. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByIndex.java +24 -0
  102. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByContentDescription.java +34 -0
  103. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByIndex.java +26 -0
  104. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/ClickOnViewById.java +63 -0
  105. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/LongPressOnViewById.java +34 -0
  106. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/Press.java +89 -0
  107. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/WaitForViewById.java +41 -0
  108. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/Wait.java +24 -0
  109. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForDialogClose.java +21 -0
  110. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForProgress.java +47 -0
  111. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForScreen.java +49 -0
  112. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForText.java +26 -0
  113. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java +109 -0
  114. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java +33 -0
  115. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java +33 -0
  116. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/EnterTextByCssSelector.java +99 -0
  117. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +43 -0
  118. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Query.java +24 -0
  119. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +99 -0
  120. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ScrollTo.java +74 -0
  121. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetPropertyByCssSelector.java +43 -0
  122. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +50 -0
  123. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Touch.java +44 -0
  124. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variant.java +413 -0
  125. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variants.java +90 -0
  126. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/FormatSchema.java +29 -0
  127. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonEncoding.java +47 -0
  128. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonFactory.java +937 -0
  129. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerationException.java +28 -0
  130. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerator.java +1197 -0
  131. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonLocation.java +141 -0
  132. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonNode.java +879 -0
  133. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParseException.java +23 -0
  134. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParser.java +1434 -0
  135. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonProcessingException.java +80 -0
  136. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonStreamContext.java +122 -0
  137. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonToken.java +161 -0
  138. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/ObjectCodec.java +157 -0
  139. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/PrettyPrinter.java +166 -0
  140. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/SerializableString.java +54 -0
  141. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Version.java +90 -0
  142. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Versioned.java +20 -0
  143. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JacksonAnnotation.java +20 -0
  144. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnyGetter.java +25 -0
  145. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnySetter.java +24 -0
  146. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAutoDetect.java +148 -0
  147. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonBackReference.java +41 -0
  148. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonCreator.java +19 -0
  149. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonGetter.java +35 -0
  150. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnore.java +57 -0
  151. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreProperties.java +48 -0
  152. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreType.java +33 -0
  153. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonManagedReference.java +41 -0
  154. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonMethod.java +90 -0
  155. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonProperty.java +38 -0
  156. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonPropertyOrder.java +46 -0
  157. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonRawValue.java +33 -0
  158. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSetter.java +33 -0
  159. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSubTypes.java +44 -0
  160. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeInfo.java +236 -0
  161. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeName.java +28 -0
  162. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonUnwrapped.java +76 -0
  163. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonValue.java +46 -0
  164. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonWriteNullProperties.java +34 -0
  165. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/package-info.java +16 -0
  166. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatDetector.java +176 -0
  167. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatMatcher.java +117 -0
  168. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/InputAccessor.java +130 -0
  169. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/MatchStrength.java +64 -0
  170. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/package-info.java +8 -0
  171. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ByteSourceBootstrapper.java +518 -0
  172. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/DefaultPrettyPrinter.java +13 -0
  173. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Indenter.java +23 -0
  174. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonGeneratorBase.java +570 -0
  175. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonNumericParserBase.java +20 -0
  176. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserBase.java +1067 -0
  177. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserMinimalBase.java +539 -0
  178. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonReadContext.java +188 -0
  179. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonWriteContext.java +178 -0
  180. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParser.java +1815 -0
  181. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParserBase.java +228 -0
  182. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/StreamBasedParserBase.java +197 -0
  183. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8Generator.java +1757 -0
  184. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8StreamParser.java +2966 -0
  185. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/WriterBasedGenerator.java +1815 -0
  186. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/package-info.java +6 -0
  187. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/BaseReader.java +117 -0
  188. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/CharacterEscapes.java +73 -0
  189. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/IOContext.java +239 -0
  190. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/InputDecorator.java +67 -0
  191. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/JsonStringEncoder.java +408 -0
  192. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/MergedStream.java +145 -0
  193. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberInput.java +303 -0
  194. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberOutput.java +398 -0
  195. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/OutputDecorator.java +40 -0
  196. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SegmentedStringWriter.java +104 -0
  197. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SerializedString.java +114 -0
  198. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF32Reader.java +214 -0
  199. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF8Writer.java +387 -0
  200. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/package.html +4 -0
  201. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AbstractTypeResolver.java +63 -0
  202. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AnnotationIntrospector.java +1485 -0
  203. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanDescription.java +171 -0
  204. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanProperty.java +123 -0
  205. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanPropertyDefinition.java +66 -0
  206. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ClassIntrospector.java +117 -0
  207. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualDeserializer.java +38 -0
  208. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualKeyDeserializer.java +33 -0
  209. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualSerializer.java +38 -0
  210. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationConfig.java +926 -0
  211. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationContext.java +262 -0
  212. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationProblemHandler.java +56 -0
  213. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerFactory.java +356 -0
  214. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerProvider.java +185 -0
  215. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Deserializers.java +339 -0
  216. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/HandlerInstantiator.java +115 -0
  217. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/InjectableValues.java +85 -0
  218. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonDeserializer.java +166 -0
  219. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonMappingException.java +335 -0
  220. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializable.java +34 -0
  221. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializableWithType.java +22 -0
  222. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializer.java +138 -0
  223. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializer.java +31 -0
  224. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializers.java +21 -0
  225. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MapperConfig.java +1154 -0
  226. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingIterator.java +190 -0
  227. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingJsonFactory.java +81 -0
  228. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Module.java +255 -0
  229. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectMapper.java +2885 -0
  230. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectReader.java +958 -0
  231. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectWriter.java +554 -0
  232. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/PropertyNamingStrategy.java +258 -0
  233. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableDeserializer.java +23 -0
  234. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableSerializer.java +23 -0
  235. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/RuntimeJsonMappingException.java +21 -0
  236. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializationConfig.java +1041 -0
  237. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerFactory.java +198 -0
  238. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerProvider.java +552 -0
  239. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Serializers.java +137 -0
  240. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeDeserializer.java +118 -0
  241. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeSerializer.java +164 -0
  242. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonInject.java +30 -0
  243. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonStdImpl.java +25 -0
  244. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonCachable.java +32 -0
  245. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonDeserialize.java +109 -0
  246. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonFilter.java +31 -0
  247. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonRootName.java +29 -0
  248. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonSerialize.java +216 -0
  249. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeIdResolver.java +35 -0
  250. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeResolver.java +28 -0
  251. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonValueInstantiator.java +26 -0
  252. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonView.java +37 -0
  253. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/NoClass.java +19 -0
  254. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/package-info.java +5 -0
  255. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/AbstractDeserializer.java +102 -0
  256. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializer.java +28 -0
  257. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializers.java +11 -0
  258. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java +894 -0
  259. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializer.java +1537 -0
  260. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerBuilder.java +277 -0
  261. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerFactory.java +1474 -0
  262. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerModifier.java +58 -0
  263. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CollectionDeserializer.java +47 -0
  264. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ContainerDeserializer.java +14 -0
  265. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CustomDeserializerFactory.java +227 -0
  266. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/DateDeserializer.java +9 -0
  267. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumDeserializer.java +15 -0
  268. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumResolver.java +17 -0
  269. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/FromStringDeserializer.java +13 -0
  270. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/JsonNodeDeserializer.java +54 -0
  271. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/MapDeserializer.java +44 -0
  272. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableAnyProperty.java +177 -0
  273. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableBeanProperty.java +827 -0
  274. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializationContext.java +326 -0
  275. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializer.java +94 -0
  276. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializerProvider.java +494 -0
  277. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializers.java +119 -0
  278. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializer.java +12 -0
  279. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializers.java +11 -0
  280. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdScalarDeserializer.java +13 -0
  281. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ThrowableDeserializer.java +13 -0
  282. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/UntypedObjectDeserializer.java +9 -0
  283. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiator.java +280 -0
  284. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiators.java +52 -0
  285. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/BeanPropertyMap.java +257 -0
  286. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorCollector.java +141 -0
  287. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorProperty.java +152 -0
  288. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ExternalTypeHandler.java +173 -0
  289. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyBasedCreator.java +117 -0
  290. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValue.java +117 -0
  291. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValueBuffer.java +102 -0
  292. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/UnwrappedPropertyHandler.java +41 -0
  293. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ValueInjector.java +45 -0
  294. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/package-info.java +9 -0
  295. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/package-info.java +5 -0
  296. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicBooleanDeserializer.java +22 -0
  297. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicReferenceDeserializer.java +47 -0
  298. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CalendarDeserializer.java +47 -0
  299. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ClassDeserializer.java +49 -0
  300. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CollectionDeserializer.java +265 -0
  301. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ContainerDeserializerBase.java +37 -0
  302. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/DateDeserializer.java +30 -0
  303. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumDeserializer.java +139 -0
  304. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumMapDeserializer.java +90 -0
  305. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java +89 -0
  306. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/FromStringDeserializer.java +265 -0
  307. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JavaTypeDeserializer.java +38 -0
  308. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JsonNodeDeserializer.java +314 -0
  309. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/MapDeserializer.java +412 -0
  310. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ObjectArrayDeserializer.java +201 -0
  311. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/PrimitiveArrayDeserializers.java +583 -0
  312. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdDeserializer.java +1136 -0
  313. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java +340 -0
  314. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializers.java +108 -0
  315. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdScalarDeserializer.java +34 -0
  316. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdValueInstantiator.java +392 -0
  317. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringCollectionDeserializer.java +227 -0
  318. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringDeserializer.java +55 -0
  319. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ThrowableDeserializer.java +164 -0
  320. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TimestampDeserializer.java +30 -0
  321. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TokenBufferDeserializer.java +36 -0
  322. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/UntypedObjectDeserializer.java +248 -0
  323. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/package-info.java +15 -0
  324. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/exc/UnrecognizedPropertyException.java +75 -0
  325. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLDeserializers.java +114 -0
  326. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLSerializers.java +72 -0
  327. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/DOMDeserializer.java +65 -0
  328. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/OptionalHandlerFactory.java +217 -0
  329. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/package-info.java +23 -0
  330. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/Annotated.java +85 -0
  331. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedClass.java +980 -0
  332. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedConstructor.java +143 -0
  333. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedField.java +119 -0
  334. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMember.java +56 -0
  335. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethod.java +188 -0
  336. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethodMap.java +85 -0
  337. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedParameter.java +191 -0
  338. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedWithParams.java +195 -0
  339. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotationMap.java +101 -0
  340. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicBeanDescription.java +615 -0
  341. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicClassIntrospector.java +364 -0
  342. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/JacksonAnnotationIntrospector.java +813 -0
  343. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MemberKey.java +83 -0
  344. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MethodFilter.java +12 -0
  345. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/NopAnnotationIntrospector.java +209 -0
  346. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertiesCollector.java +713 -0
  347. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertyBuilder.java +648 -0
  348. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/VisibilityChecker.java +424 -0
  349. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/package-info.java +12 -0
  350. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/NamedType.java +53 -0
  351. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/SubtypeResolver.java +39 -0
  352. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeIdResolver.java +74 -0
  353. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeResolverBuilder.java +151 -0
  354. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeDeserializer.java +126 -0
  355. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeSerializer.java +110 -0
  356. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeDeserializer.java +37 -0
  357. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeSerializer.java +129 -0
  358. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeDeserializer.java +191 -0
  359. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeSerializer.java +69 -0
  360. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeDeserializer.java +103 -0
  361. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeSerializer.java +121 -0
  362. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/ClassNameIdResolver.java +138 -0
  363. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/MinimalClassNameIdResolver.java +66 -0
  364. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdSubtypeResolver.java +151 -0
  365. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdTypeResolverBuilder.java +202 -0
  366. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeDeserializerBase.java +154 -0
  367. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeIdResolverBase.java +37 -0
  368. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeNameIdResolver.java +154 -0
  369. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeSerializerBase.java +31 -0
  370. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/package-info.java +9 -0
  371. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/package-info.java +10 -0
  372. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleAbstractTypeResolver.java +86 -0
  373. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleDeserializers.java +130 -0
  374. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleKeyDeserializers.java +59 -0
  375. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleModule.java +265 -0
  376. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleSerializers.java +206 -0
  377. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleValueInstantiators.java +45 -0
  378. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/package-info.java +16 -0
  379. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/package-info.java +34 -0
  380. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/AnyGetterWriter.java +48 -0
  381. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ArraySerializers.java +7 -0
  382. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BasicSerializerFactory.java +806 -0
  383. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyFilter.java +30 -0
  384. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyWriter.java +512 -0
  385. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializer.java +126 -0
  386. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerBuilder.java +140 -0
  387. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerFactory.java +780 -0
  388. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerModifier.java +95 -0
  389. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ContainerSerializers.java +8 -0
  390. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/CustomSerializerFactory.java +293 -0
  391. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/EnumSerializer.java +17 -0
  392. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilterProvider.java +23 -0
  393. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilteredBeanPropertyWriter.java +96 -0
  394. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/JdkSerializers.java +11 -0
  395. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/MapSerializer.java +58 -0
  396. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/PropertyBuilder.java +372 -0
  397. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ScalarSerializerBase.java +18 -0
  398. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/SerializerBase.java +23 -0
  399. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdKeySerializer.java +10 -0
  400. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializerProvider.java +852 -0
  401. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializers.java +372 -0
  402. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ToStringSerializer.java +14 -0
  403. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/FailingSerializer.java +43 -0
  404. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/JsonSerializerMap.java +93 -0
  405. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/PropertySerializerMap.java +231 -0
  406. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/ReadOnlyClassToSerializerMap.java +73 -0
  407. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SerializerCache.java +304 -0
  408. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleBeanPropertyFilter.java +109 -0
  409. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleFilterProvider.java +114 -0
  410. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnknownSerializer.java +54 -0
  411. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanPropertyWriter.java +99 -0
  412. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanSerializer.java +76 -0
  413. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/package-info.java +5 -0
  414. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/package-info.java +5 -0
  415. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/AsArraySerializerBase.java +185 -0
  416. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java +340 -0
  417. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CalendarSerializer.java +43 -0
  418. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CollectionSerializer.java +113 -0
  419. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ContainerSerializerBase.java +51 -0
  420. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/DateSerializer.java +42 -0
  421. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumMapSerializer.java +218 -0
  422. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSerializer.java +84 -0
  423. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSetSerializer.java +47 -0
  424. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IndexedStringListSerializer.java +116 -0
  425. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/InetAddressSerializer.java +51 -0
  426. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IterableSerializer.java +63 -0
  427. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/JsonValueSerializer.java +233 -0
  428. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/MapSerializer.java +422 -0
  429. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NonTypedScalarSerializerBase.java +34 -0
  430. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NullSerializer.java +38 -0
  431. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ObjectArraySerializer.java +281 -0
  432. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/RawSerializer.java +52 -0
  433. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ScalarSerializerBase.java +52 -0
  434. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableSerializer.java +99 -0
  435. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableWithTypeSerializer.java +90 -0
  436. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializerBase.java +184 -0
  437. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StaticListSerializerBase.java +46 -0
  438. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdArraySerializers.java +476 -0
  439. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdContainerSerializers.java +249 -0
  440. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdJdkSerializers.java +195 -0
  441. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializer.java +43 -0
  442. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializers.java +95 -0
  443. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringCollectionSerializer.java +119 -0
  444. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringSerializer.java +36 -0
  445. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TimeZoneSerializer.java +38 -0
  446. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ToStringSerializer.java +73 -0
  447. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TokenBufferSerializer.java +66 -0
  448. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ArrayType.java +260 -0
  449. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ClassKey.java +94 -0
  450. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionLikeType.java +204 -0
  451. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionType.java +94 -0
  452. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/HierarchicType.java +88 -0
  453. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapLikeType.java +265 -0
  454. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapType.java +146 -0
  455. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/SimpleType.java +250 -0
  456. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBase.java +148 -0
  457. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBindings.java +351 -0
  458. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeFactory.java +1165 -0
  459. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeModifier.java +38 -0
  460. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeParser.java +134 -0
  461. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/package-info.java +10 -0
  462. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Annotations.java +23 -0
  463. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ArrayBuilders.java +293 -0
  464. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/BeanUtil.java +260 -0
  465. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ClassUtil.java +645 -0
  466. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Comparators.java +48 -0
  467. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumResolver.java +108 -0
  468. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumValues.java +82 -0
  469. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601DateFormat.java +52 -0
  470. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601Utils.java +230 -0
  471. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONPObject.java +105 -0
  472. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONWrappedObject.java +117 -0
  473. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LRUMap.java +28 -0
  474. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LinkedNode.java +45 -0
  475. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Named.java +10 -0
  476. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ObjectBuffer.java +257 -0
  477. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/PrimitiveArrayBuilder.java +180 -0
  478. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Provider.java +21 -0
  479. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/RootNameLookup.java +54 -0
  480. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/StdDateFormat.java +348 -0
  481. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/package-info.java +4 -0
  482. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ArrayNode.java +758 -0
  483. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BaseJsonNode.java +122 -0
  484. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BigIntegerNode.java +104 -0
  485. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BinaryNode.java +136 -0
  486. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BooleanNode.java +84 -0
  487. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ContainerNode.java +185 -0
  488. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DecimalNode.java +96 -0
  489. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DoubleNode.java +106 -0
  490. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/IntNode.java +122 -0
  491. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/JsonNodeFactory.java +222 -0
  492. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/LongNode.java +99 -0
  493. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/MissingNode.java +97 -0
  494. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NodeCursor.java +222 -0
  495. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NullNode.java +58 -0
  496. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NumericNode.java +72 -0
  497. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ObjectNode.java +696 -0
  498. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/POJONode.java +145 -0
  499. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TextNode.java +299 -0
  500. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TreeTraversingParser.java +383 -0
  501. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ValueNode.java +58 -0
  502. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/package-info.java +8 -0
  503. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/package-info.java +30 -0
  504. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSchema.java +82 -0
  505. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSerializableSchema.java +46 -0
  506. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/SchemaAware.java +25 -0
  507. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/package-info.java +5 -0
  508. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/BytesToNameCanonicalizer.java +969 -0
  509. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/CharsToNameCanonicalizer.java +578 -0
  510. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name.java +50 -0
  511. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name1.java +44 -0
  512. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name2.java +40 -0
  513. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name3.java +39 -0
  514. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/NameN.java +68 -0
  515. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/package-info.java +5 -0
  516. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/JavaType.java +503 -0
  517. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/TypeReference.java +60 -0
  518. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/package-info.java +8 -0
  519. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/BufferRecycler.java +109 -0
  520. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/ByteArrayBuilder.java +294 -0
  521. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/CharTypes.java +237 -0
  522. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/DefaultPrettyPrinter.java +282 -0
  523. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/InternCache.java +49 -0
  524. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonGeneratorDelegate.java +273 -0
  525. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserDelegate.java +251 -0
  526. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserSequence.java +150 -0
  527. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/MinimalPrettyPrinter.java +152 -0
  528. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TextBuffer.java +707 -0
  529. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TokenBuffer.java +1233 -0
  530. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/VersionUtil.java +79 -0
  531. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/package-info.java +4 -0
  532. metadata +619 -0
@@ -0,0 +1,364 @@
1
+ package sh.calaba.org.codehaus.jackson.map.introspect;
2
+
3
+ import java.lang.reflect.Method;
4
+ import java.lang.reflect.Modifier;
5
+ import java.util.*;
6
+
7
+ import sh.calaba.org.codehaus.jackson.map.AnnotationIntrospector;
8
+ import sh.calaba.org.codehaus.jackson.map.ClassIntrospector;
9
+ import sh.calaba.org.codehaus.jackson.map.DeserializationConfig;
10
+ import sh.calaba.org.codehaus.jackson.map.MapperConfig;
11
+ import sh.calaba.org.codehaus.jackson.map.SerializationConfig;
12
+ import sh.calaba.org.codehaus.jackson.map.type.SimpleType;
13
+ import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
14
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
15
+
16
+ public class BasicClassIntrospector
17
+ extends ClassIntrospector<BasicBeanDescription>
18
+ {
19
+ /* We keep a small set of pre-constructed descriptions to use for
20
+ * common non-structured values, such as Numbers and Strings.
21
+ * This is strictly performance optimization to reduce what is
22
+ * usually one-time cost, but seems useful for some cases considering
23
+ * simplicity.
24
+ */
25
+
26
+ protected final static BasicBeanDescription STRING_DESC;
27
+ static {
28
+ AnnotatedClass ac = AnnotatedClass.constructWithoutSuperTypes(String.class, null, null);
29
+ STRING_DESC = BasicBeanDescription.forOtherUse(null, SimpleType.constructUnsafe(String.class), ac);
30
+ }
31
+ protected final static BasicBeanDescription BOOLEAN_DESC;
32
+ static {
33
+ AnnotatedClass ac = AnnotatedClass.constructWithoutSuperTypes(Boolean.TYPE, null, null);
34
+ BOOLEAN_DESC = BasicBeanDescription.forOtherUse(null, SimpleType.constructUnsafe(Boolean.TYPE), ac);
35
+ }
36
+ protected final static BasicBeanDescription INT_DESC;
37
+ static {
38
+ AnnotatedClass ac = AnnotatedClass.constructWithoutSuperTypes(Integer.TYPE, null, null);
39
+ INT_DESC = BasicBeanDescription.forOtherUse(null, SimpleType.constructUnsafe(Integer.TYPE), ac);
40
+ }
41
+ protected final static BasicBeanDescription LONG_DESC;
42
+ static {
43
+ AnnotatedClass ac = AnnotatedClass.constructWithoutSuperTypes(Long.TYPE, null, null);
44
+ LONG_DESC = BasicBeanDescription.forOtherUse(null, SimpleType.constructUnsafe(Long.TYPE), ac);
45
+ }
46
+
47
+
48
+ // // // Then static filter singletons
49
+
50
+ /**
51
+ * @since 1.8
52
+ * @deprecated Since 1.9 just don't use
53
+ */
54
+ @Deprecated
55
+ public final static GetterMethodFilter DEFAULT_GETTER_FILTER = new GetterMethodFilter();
56
+
57
+ /**
58
+ * @since 1.8
59
+ * @deprecated Since 1.9 just don't use
60
+ */
61
+ @Deprecated
62
+ public final static SetterMethodFilter DEFAULT_SETTER_FILTER = new SetterMethodFilter();
63
+
64
+ /**
65
+ * @since 1.8
66
+ * @deprecated Since 1.9 just don't use
67
+ */
68
+ @Deprecated
69
+ public final static SetterAndGetterMethodFilter DEFAULT_SETTER_AND_GETTER_FILTER = new SetterAndGetterMethodFilter();
70
+
71
+ protected final static MethodFilter MINIMAL_FILTER = new MinimalMethodFilter();
72
+
73
+ /*
74
+ /**********************************************************
75
+ /* Life cycle
76
+ /**********************************************************
77
+ */
78
+
79
+ public final static BasicClassIntrospector instance = new BasicClassIntrospector();
80
+
81
+ public BasicClassIntrospector() { }
82
+
83
+ /*
84
+ /**********************************************************
85
+ /* Factory method impls
86
+ /**********************************************************
87
+ */
88
+
89
+ @Override
90
+ public BasicBeanDescription forSerialization(SerializationConfig cfg,
91
+ JavaType type, MixInResolver r)
92
+ {
93
+ // minor optimization: for JDK types do minimal introspection
94
+ BasicBeanDescription desc = _findCachedDesc(type);
95
+ if (desc == null) {
96
+ desc = BasicBeanDescription.forSerialization(collectProperties(cfg, type, r, true));
97
+ }
98
+ return desc;
99
+ }
100
+
101
+ @Override
102
+ public BasicBeanDescription forDeserialization(DeserializationConfig cfg,
103
+ JavaType type, MixInResolver r)
104
+ {
105
+ // minor optimization: for JDK types do minimal introspection
106
+ BasicBeanDescription desc = _findCachedDesc(type);
107
+ if (desc == null) {
108
+ desc = BasicBeanDescription.forDeserialization(collectProperties(cfg, type, r, false));
109
+ }
110
+ return desc;
111
+ }
112
+
113
+ @Override
114
+ public BasicBeanDescription forCreation(DeserializationConfig cfg,
115
+ JavaType type, MixInResolver r)
116
+ {
117
+ BasicBeanDescription desc = _findCachedDesc(type);
118
+ if (desc == null) {
119
+ desc = BasicBeanDescription.forDeserialization(collectProperties(cfg, type, r, false));
120
+ }
121
+ return desc;
122
+ }
123
+
124
+ @Override
125
+ public BasicBeanDescription forClassAnnotations(MapperConfig<?> cfg,
126
+ JavaType type, MixInResolver r)
127
+ {
128
+ boolean useAnnotations = cfg.isAnnotationProcessingEnabled();
129
+ AnnotationIntrospector ai = cfg.getAnnotationIntrospector();
130
+ AnnotatedClass ac = AnnotatedClass.construct(type.getRawClass(), (useAnnotations ? ai : null), r);
131
+ return BasicBeanDescription.forOtherUse(cfg, type, ac);
132
+ }
133
+
134
+ @Override
135
+ public BasicBeanDescription forDirectClassAnnotations(MapperConfig<?> cfg,
136
+ JavaType type, MixInResolver r)
137
+ {
138
+ boolean useAnnotations = cfg.isAnnotationProcessingEnabled();
139
+ AnnotationIntrospector ai = cfg.getAnnotationIntrospector();
140
+ AnnotatedClass ac = AnnotatedClass.constructWithoutSuperTypes(type.getRawClass(),
141
+ (useAnnotations ? ai : null), r);
142
+ return BasicBeanDescription.forOtherUse(cfg, type, ac);
143
+ }
144
+
145
+ /*
146
+ /**********************************************************
147
+ /* Overridable helper methods
148
+ /**********************************************************
149
+ */
150
+
151
+ /**
152
+ * @since 1.9
153
+ */
154
+ public POJOPropertiesCollector collectProperties(MapperConfig<?> config,
155
+ JavaType type, MixInResolver r, boolean forSerialization)
156
+ {
157
+ AnnotatedClass ac = classWithCreators(config, type, r);
158
+ ac.resolveMemberMethods(MINIMAL_FILTER);
159
+ ac.resolveFields();
160
+ return constructPropertyCollector(config, ac, type, forSerialization).collect();
161
+ }
162
+
163
+ /**
164
+ * Overridable method called for creating {@link POJOPropertiesCollector} instance
165
+ * to use; override is needed if a custom sub-class is to be used.
166
+ *
167
+ * @since 1.9
168
+ */
169
+ protected POJOPropertiesCollector constructPropertyCollector(MapperConfig<?> config,
170
+ AnnotatedClass ac, JavaType type,
171
+ boolean forSerialization)
172
+ {
173
+ return new POJOPropertiesCollector(config, forSerialization, type, ac);
174
+ }
175
+
176
+ /**
177
+ * @since 1.9
178
+ */
179
+ public AnnotatedClass classWithCreators(MapperConfig<?> config,
180
+ JavaType type, MixInResolver r)
181
+ {
182
+ boolean useAnnotations = config.isAnnotationProcessingEnabled();
183
+ AnnotationIntrospector ai = config.getAnnotationIntrospector();
184
+ AnnotatedClass ac = AnnotatedClass.construct(type.getRawClass(), (useAnnotations ? ai : null), r);
185
+ ac.resolveMemberMethods(MINIMAL_FILTER);
186
+ // true -> include all creators, not just default constructor
187
+ ac.resolveCreators(true);
188
+ return ac;
189
+ }
190
+
191
+ /**
192
+ * Method called to see if type is one of core JDK types
193
+ * that we have cached for efficiency.
194
+ *
195
+ * @since 1.9
196
+ */
197
+ protected BasicBeanDescription _findCachedDesc(JavaType type)
198
+ {
199
+ Class<?> cls = type.getRawClass();
200
+ if (cls == String.class) {
201
+ return STRING_DESC;
202
+ }
203
+ if (cls == Boolean.TYPE) {
204
+ return BOOLEAN_DESC;
205
+ }
206
+ if (cls == Integer.TYPE) {
207
+ return INT_DESC;
208
+ }
209
+ if (cls == Long.TYPE) {
210
+ return LONG_DESC;
211
+ }
212
+ return null;
213
+ }
214
+
215
+ /**
216
+ * Helper method for getting access to filter that only guarantees
217
+ * that methods used for serialization are to be included.
218
+ *
219
+ * @deprecated Since 1.9 just don't use
220
+ */
221
+ @Deprecated
222
+ protected MethodFilter getSerializationMethodFilter(SerializationConfig cfg)
223
+ {
224
+ return DEFAULT_GETTER_FILTER;
225
+ }
226
+
227
+ /**
228
+ * Helper method for getting access to filter that only guarantees
229
+ * that methods used for deserialization are to be included.
230
+ *
231
+ * @deprecated Since 1.9 just don't use
232
+ */
233
+ @Deprecated
234
+ protected MethodFilter getDeserializationMethodFilter(DeserializationConfig cfg)
235
+ {
236
+ /* [JACKSON-88]: may also need to include getters (at least for
237
+ * Collection and Map types)
238
+ */
239
+ if (cfg.isEnabled(DeserializationConfig.Feature.USE_GETTERS_AS_SETTERS)) {
240
+ return DEFAULT_SETTER_AND_GETTER_FILTER;
241
+
242
+ }
243
+ return DEFAULT_SETTER_FILTER;
244
+ }
245
+
246
+ /*
247
+ /**********************************************************
248
+ /* Helper classes
249
+ /**********************************************************
250
+ */
251
+
252
+ /**
253
+ * Going forward, we will only do very minimal filtering;
254
+ * mostly just gets rid of static methods really.
255
+ *
256
+ * @since 1.9
257
+ */
258
+ private static class MinimalMethodFilter
259
+ implements MethodFilter
260
+ {
261
+ @Override
262
+ public boolean includeMethod(Method m)
263
+ {
264
+ if (Modifier.isStatic(m.getModifiers())) {
265
+ return false;
266
+ }
267
+ int pcount = m.getParameterTypes().length;
268
+ return (pcount <= 2);
269
+ }
270
+ }
271
+
272
+ /**
273
+ * Filter used to only include methods that have signature that is
274
+ * compatible with "getters": take no arguments, are non-static,
275
+ * and return something.
276
+ *
277
+ * @deprecated Since 1.9 just don't use
278
+ */
279
+ @Deprecated
280
+ public static class GetterMethodFilter
281
+ implements MethodFilter
282
+ {
283
+ private GetterMethodFilter() { }
284
+
285
+ @Override
286
+ public boolean includeMethod(Method m)
287
+ {
288
+ return ClassUtil.hasGetterSignature(m);
289
+ }
290
+ }
291
+
292
+ /**
293
+ * Filter used to only include methods that have signature that is
294
+ * compatible with "setters": take one and only argument and
295
+ * are non-static.
296
+ *<p>
297
+ * Actually, also need to include 2-arg methods to support
298
+ * "any setters"; as well as 0-arg getters as long as they
299
+ * return Collection or Map type.
300
+ *
301
+ * @deprecated Since 1.9 just don't use
302
+ */
303
+ @Deprecated
304
+ public static class SetterMethodFilter
305
+ implements MethodFilter
306
+ {
307
+ @Override
308
+ public boolean includeMethod(Method m)
309
+ {
310
+ // First: we can't use static methods
311
+ if (Modifier.isStatic(m.getModifiers())) {
312
+ return false;
313
+ }
314
+ int pcount = m.getParameterTypes().length;
315
+ // Ok; multiple acceptable parameter counts:
316
+ switch (pcount) {
317
+ case 1:
318
+ // Regular setters take just one param, so include:
319
+ return true;
320
+ case 2:
321
+ /* 2-arg version only for "AnySetters"; they are not
322
+ * auto-detected, and need to have an annotation.
323
+ * However, due to annotation inheritance we do, we
324
+ * don't yet know if sub-classes might have annotations...
325
+ * so shouldn't leave out any methods quite yet.
326
+ */
327
+ //if (m.getAnnotation(JsonAnySetter.class) != null) { ... }
328
+
329
+ return true;
330
+ }
331
+ return false;
332
+ }
333
+ }
334
+
335
+ /**
336
+ * Filter used if some getters (namely, once needed for "setterless
337
+ * collection injection") are also needed, not just setters.
338
+ *
339
+ * @deprecated Since 1.9 just don't use
340
+ */
341
+ @Deprecated
342
+ public final static class SetterAndGetterMethodFilter
343
+ extends SetterMethodFilter
344
+ {
345
+ @SuppressWarnings("deprecation")
346
+ @Override
347
+ public boolean includeMethod(Method m)
348
+ {
349
+ if (super.includeMethod(m)) {
350
+ return true;
351
+ }
352
+ if (!ClassUtil.hasGetterSignature(m)) {
353
+ return false;
354
+ }
355
+ // but furthermore, only accept Collections & Maps, for now
356
+ Class<?> rt = m.getReturnType();
357
+ if (Collection.class.isAssignableFrom(rt)
358
+ || Map.class.isAssignableFrom(rt)) {
359
+ return true;
360
+ }
361
+ return false;
362
+ }
363
+ }
364
+ }
@@ -0,0 +1,813 @@
1
+ package sh.calaba.org.codehaus.jackson.map.introspect;
2
+
3
+ import java.lang.annotation.Annotation;
4
+ import java.util.ArrayList;
5
+ import java.util.List;
6
+
7
+ import sh.calaba.org.codehaus.jackson.annotate.*;
8
+ import sh.calaba.org.codehaus.jackson.map.*;
9
+ import sh.calaba.org.codehaus.jackson.map.annotate.*;
10
+ import sh.calaba.org.codehaus.jackson.map.jsontype.NamedType;
11
+ import sh.calaba.org.codehaus.jackson.map.jsontype.TypeIdResolver;
12
+ import sh.calaba.org.codehaus.jackson.map.jsontype.TypeResolverBuilder;
13
+ import sh.calaba.org.codehaus.jackson.map.jsontype.impl.StdTypeResolverBuilder;
14
+ import sh.calaba.org.codehaus.jackson.map.ser.std.RawSerializer;
15
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
16
+
17
+ /**
18
+ * {@link AnnotationIntrospector} implementation that handles standard
19
+ * Jackson annotations.
20
+ */
21
+ public class JacksonAnnotationIntrospector
22
+ extends AnnotationIntrospector
23
+ {
24
+ public JacksonAnnotationIntrospector() { }
25
+
26
+ /*
27
+ /**********************************************************
28
+ /* General annotation properties
29
+ /**********************************************************
30
+ */
31
+
32
+ @Override
33
+ public boolean isHandled(Annotation ann)
34
+ {
35
+ Class<? extends Annotation> acls = ann.annotationType();
36
+
37
+ /* 16-May-2009, tatu: used to check this like so...
38
+ final String JACKSON_PKG_PREFIX = "sh.calaba.org.codehaus.jackson";
39
+
40
+ Package pkg = acls.getPackage();
41
+ return (pkg != null) && (pkg.getName().startsWith(JACKSON_PKG_PREFIX));
42
+ */
43
+
44
+ // but this is more reliable, now that we have tag annotation:
45
+ return acls.getAnnotation(JacksonAnnotation.class) != null;
46
+ }
47
+
48
+ /*
49
+ /**********************************************************
50
+ /* General annotations
51
+ /**********************************************************
52
+ */
53
+
54
+ @Override
55
+ public String findEnumValue(Enum<?> value)
56
+ {
57
+ return value.name();
58
+ }
59
+
60
+ /*
61
+ /**********************************************************
62
+ /* General class annotations
63
+ /**********************************************************
64
+ */
65
+
66
+ @Override
67
+ public Boolean findCachability(AnnotatedClass ac)
68
+ {
69
+ JsonCachable ann = ac.getAnnotation(JsonCachable.class);
70
+ if (ann == null) {
71
+ return null;
72
+ }
73
+ return ann.value() ? Boolean.TRUE : Boolean.FALSE;
74
+ }
75
+
76
+ @Override
77
+ public String findRootName(AnnotatedClass ac)
78
+ {
79
+ JsonRootName ann = ac.getAnnotation(JsonRootName.class);
80
+ return (ann == null) ? null : ann.value();
81
+ }
82
+
83
+ @Override
84
+ public String[] findPropertiesToIgnore(AnnotatedClass ac) {
85
+ JsonIgnoreProperties ignore = ac.getAnnotation(JsonIgnoreProperties.class);
86
+ return (ignore == null) ? null : ignore.value();
87
+ }
88
+
89
+ @Override
90
+ public Boolean findIgnoreUnknownProperties(AnnotatedClass ac) {
91
+ JsonIgnoreProperties ignore = ac.getAnnotation(JsonIgnoreProperties.class);
92
+ return (ignore == null) ? null : ignore.ignoreUnknown();
93
+ }
94
+
95
+ @Override
96
+ public Boolean isIgnorableType(AnnotatedClass ac) {
97
+ JsonIgnoreType ignore = ac.getAnnotation(JsonIgnoreType.class);
98
+ return (ignore == null) ? null : ignore.value();
99
+ }
100
+
101
+ @Override
102
+ public Object findFilterId(AnnotatedClass ac)
103
+ {
104
+ JsonFilter ann = ac.getAnnotation(JsonFilter.class);
105
+ if (ann != null) {
106
+ String id = ann.value();
107
+ // Empty String is same as not having annotation, to allow overrides
108
+ if (id.length() > 0) {
109
+ return id;
110
+ }
111
+ }
112
+ return null;
113
+ }
114
+
115
+ /*
116
+ /**********************************************************
117
+ /* Property auto-detection
118
+ /**********************************************************
119
+ */
120
+
121
+ @Override
122
+ public VisibilityChecker<?> findAutoDetectVisibility(AnnotatedClass ac,
123
+ VisibilityChecker<?> checker)
124
+ {
125
+ JsonAutoDetect ann = ac.getAnnotation(JsonAutoDetect.class);
126
+ return (ann == null) ? checker : checker.with(ann);
127
+ }
128
+
129
+ /*
130
+ /**********************************************************
131
+ /* General member (field, method/constructor) annotations
132
+ /**********************************************************
133
+ */
134
+
135
+ // @since 1.6
136
+ @Override
137
+ public ReferenceProperty findReferenceType(AnnotatedMember member)
138
+ {
139
+ JsonManagedReference ref1 = member.getAnnotation(JsonManagedReference.class);
140
+ if (ref1 != null) {
141
+ return AnnotationIntrospector.ReferenceProperty.managed(ref1.value());
142
+ }
143
+ JsonBackReference ref2 = member.getAnnotation(JsonBackReference.class);
144
+ if (ref2 != null) {
145
+ return AnnotationIntrospector.ReferenceProperty.back(ref2.value());
146
+ }
147
+ return null;
148
+ }
149
+
150
+ @Override
151
+ public Boolean shouldUnwrapProperty(AnnotatedMember member)
152
+ {
153
+ JsonUnwrapped ann = member.getAnnotation(JsonUnwrapped.class);
154
+ // if not enabled, just means annotation is not enabled; not necessarily
155
+ // that unwrapping should not be done (relevant when using chained introspectors)
156
+ return (ann != null && ann.enabled()) ? Boolean.TRUE : null;
157
+ }
158
+
159
+ @Override
160
+ public boolean hasIgnoreMarker(AnnotatedMember m) {
161
+ return _isIgnorable(m);
162
+ }
163
+
164
+ @Override
165
+ public Object findInjectableValueId(AnnotatedMember m)
166
+ {
167
+ JacksonInject ann = m.getAnnotation(JacksonInject.class);
168
+ if (ann == null) {
169
+ return null;
170
+ }
171
+ /* Empty String means that we should use name of declared
172
+ * value class.
173
+ */
174
+ String id = ann.value();
175
+ if (id.length() == 0) {
176
+ // slight complication; for setters, type
177
+ if (!(m instanceof AnnotatedMethod)) {
178
+ return m.getRawType().getName();
179
+ }
180
+ AnnotatedMethod am = (AnnotatedMethod) m;
181
+ if (am.getParameterCount() == 0) {
182
+ return m.getRawType().getName();
183
+ }
184
+ return am.getParameterClass(0).getName();
185
+ }
186
+ return id;
187
+ }
188
+
189
+ /*
190
+ /**********************************************************
191
+ /* Class annotations for PM type handling (1.5+)
192
+ /**********************************************************
193
+ */
194
+
195
+ @Override
196
+ public TypeResolverBuilder<?> findTypeResolver(MapperConfig<?> config,
197
+ AnnotatedClass ac, JavaType baseType)
198
+ {
199
+ return _findTypeResolver(config, ac, baseType);
200
+ }
201
+
202
+ /**
203
+ * Since 1.7, it is possible to use {@link JsonTypeInfo} from a property too.
204
+ */
205
+ @Override
206
+ public TypeResolverBuilder<?> findPropertyTypeResolver(MapperConfig<?> config,
207
+ AnnotatedMember am, JavaType baseType)
208
+ {
209
+ /* As per definition of @JsonTypeInfo, should only apply to contents of container
210
+ * (collection, map) types, not container types themselves:
211
+ */
212
+ if (baseType.isContainerType()) return null;
213
+ // No per-member type overrides (yet)
214
+ return _findTypeResolver(config, am, baseType);
215
+ }
216
+
217
+ /**
218
+ * Since 1.7, it is possible to use {@link JsonTypeInfo} from a property too.
219
+ */
220
+ @Override
221
+ public TypeResolverBuilder<?> findPropertyContentTypeResolver(MapperConfig<?> config,
222
+ AnnotatedMember am, JavaType containerType)
223
+ {
224
+ /* First: let's ensure property is a container type: caller should have
225
+ * verified but just to be sure
226
+ */
227
+ if (!containerType.isContainerType()) {
228
+ throw new IllegalArgumentException("Must call method with a container type (got "+containerType+")");
229
+ }
230
+ return _findTypeResolver(config, am, containerType);
231
+ }
232
+
233
+ @Override
234
+ public List<NamedType> findSubtypes(Annotated a)
235
+ {
236
+ JsonSubTypes t = a.getAnnotation(JsonSubTypes.class);
237
+ if (t == null) return null;
238
+ JsonSubTypes.Type[] types = t.value();
239
+ ArrayList<NamedType> result = new ArrayList<NamedType>(types.length);
240
+ for (JsonSubTypes.Type type : types) {
241
+ result.add(new NamedType(type.value(), type.name()));
242
+ }
243
+ return result;
244
+ }
245
+
246
+ @Override
247
+ public String findTypeName(AnnotatedClass ac)
248
+ {
249
+ JsonTypeName tn = ac.getAnnotation(JsonTypeName.class);
250
+ return (tn == null) ? null : tn.value();
251
+ }
252
+
253
+ /*
254
+ /**********************************************************
255
+ /* General method annotations
256
+ /**********************************************************
257
+ */
258
+
259
+ @Override
260
+ public boolean isIgnorableMethod(AnnotatedMethod m) {
261
+ return _isIgnorable(m);
262
+ }
263
+
264
+ @Override
265
+ public boolean isIgnorableConstructor(AnnotatedConstructor c) {
266
+ return _isIgnorable(c);
267
+ }
268
+
269
+ /*
270
+ /**********************************************************
271
+ /* General field annotations
272
+ /**********************************************************
273
+ */
274
+
275
+ @Override
276
+ public boolean isIgnorableField(AnnotatedField f) {
277
+ return _isIgnorable(f);
278
+ }
279
+
280
+ /*
281
+ /**********************************************************
282
+ /* Serialization: general annotations
283
+ /**********************************************************
284
+ */
285
+
286
+ @Override
287
+ public Object findSerializer(Annotated a)
288
+ {
289
+ /* 21-May-2009, tatu: Slight change; primary annotation is now
290
+ * @JsonSerialize; @JsonUseSerializer is deprecated
291
+ */
292
+ JsonSerialize ann = a.getAnnotation(JsonSerialize.class);
293
+ if (ann != null) {
294
+ Class<? extends JsonSerializer<?>> serClass = ann.using();
295
+ if (serClass != JsonSerializer.None.class) {
296
+ return serClass;
297
+ }
298
+ }
299
+
300
+ /* 18-Oct-2010, tatu: [JACKSON-351] @JsonRawValue handled just here, for now;
301
+ * if we need to get raw indicator from other sources need to add
302
+ * separate accessor within {@link AnnotationIntrospector} interface.
303
+ */
304
+ JsonRawValue annRaw = a.getAnnotation(JsonRawValue.class);
305
+ if ((annRaw != null) && annRaw.value()) {
306
+ // let's construct instance with nominal type:
307
+ Class<?> cls = a.getRawType();
308
+ return new RawSerializer<Object>(cls);
309
+ }
310
+ return null;
311
+ }
312
+
313
+ @Override
314
+ public Class<? extends JsonSerializer<?>> findKeySerializer(Annotated a)
315
+ {
316
+ JsonSerialize ann = a.getAnnotation(JsonSerialize.class);
317
+ if (ann != null) {
318
+ Class<? extends JsonSerializer<?>> serClass = ann.keyUsing();
319
+ if (serClass != JsonSerializer.None.class) {
320
+ return serClass;
321
+ }
322
+ }
323
+ return null;
324
+ }
325
+
326
+ @Override
327
+ public Class<? extends JsonSerializer<?>> findContentSerializer(Annotated a)
328
+ {
329
+ JsonSerialize ann = a.getAnnotation(JsonSerialize.class);
330
+ if (ann != null) {
331
+ Class<? extends JsonSerializer<?>> serClass = ann.contentUsing();
332
+ if (serClass != JsonSerializer.None.class) {
333
+ return serClass;
334
+ }
335
+ }
336
+ return null;
337
+ }
338
+
339
+ @SuppressWarnings("deprecation")
340
+ @Override
341
+ public JsonSerialize.Inclusion findSerializationInclusion(Annotated a, JsonSerialize.Inclusion defValue)
342
+ {
343
+ JsonSerialize ann = a.getAnnotation(JsonSerialize.class);
344
+ if (ann != null) {
345
+ return ann.include();
346
+ }
347
+ /* 23-May-2009, tatu: Will still support now-deprecated (as of 1.1)
348
+ * legacy annotation too:
349
+ */
350
+ JsonWriteNullProperties oldAnn = a.getAnnotation(JsonWriteNullProperties.class);
351
+ if (oldAnn != null) {
352
+ boolean writeNulls = oldAnn.value();
353
+ return writeNulls ? JsonSerialize.Inclusion.ALWAYS : JsonSerialize.Inclusion.NON_NULL;
354
+ }
355
+ return defValue;
356
+ }
357
+
358
+ @Override
359
+ public Class<?> findSerializationType(Annotated am)
360
+ {
361
+ JsonSerialize ann = am.getAnnotation(JsonSerialize.class);
362
+ if (ann != null) {
363
+ Class<?> cls = ann.as();
364
+ if (cls != NoClass.class) {
365
+ return cls;
366
+ }
367
+ }
368
+ return null;
369
+ }
370
+
371
+ @Override
372
+ public Class<?> findSerializationKeyType(Annotated am, JavaType baseType)
373
+ {
374
+ JsonSerialize ann = am.getAnnotation(JsonSerialize.class);
375
+ if (ann != null) {
376
+ Class<?> cls = ann.keyAs();
377
+ if (cls != NoClass.class) {
378
+ return cls;
379
+ }
380
+ }
381
+ return null;
382
+ }
383
+
384
+ @Override
385
+ public Class<?> findSerializationContentType(Annotated am, JavaType baseType)
386
+ {
387
+ JsonSerialize ann = am.getAnnotation(JsonSerialize.class);
388
+ if (ann != null) {
389
+ Class<?> cls = ann.contentAs();
390
+ if (cls != NoClass.class) {
391
+ return cls;
392
+ }
393
+ }
394
+ return null;
395
+ }
396
+
397
+ @Override
398
+ public JsonSerialize.Typing findSerializationTyping(Annotated a)
399
+ {
400
+ JsonSerialize ann = a.getAnnotation(JsonSerialize.class);
401
+ return (ann == null) ? null : ann.typing();
402
+ }
403
+
404
+ @Override
405
+ public Class<?>[] findSerializationViews(Annotated a)
406
+ {
407
+ JsonView ann = a.getAnnotation(JsonView.class);
408
+ return (ann == null) ? null : ann.value();
409
+ }
410
+
411
+ /*
412
+ /**********************************************************
413
+ /* Serialization: class annotations
414
+ /**********************************************************
415
+ */
416
+
417
+ @Override
418
+ public String[] findSerializationPropertyOrder(AnnotatedClass ac) {
419
+ JsonPropertyOrder order = ac.getAnnotation(JsonPropertyOrder.class);
420
+ return (order == null) ? null : order.value();
421
+ }
422
+
423
+ @Override
424
+ public Boolean findSerializationSortAlphabetically(AnnotatedClass ac) {
425
+ JsonPropertyOrder order = ac.getAnnotation(JsonPropertyOrder.class);
426
+ return (order == null) ? null : order.alphabetic();
427
+ }
428
+
429
+ /*
430
+ /**********************************************************
431
+ /* Serialization: method annotations
432
+ /**********************************************************
433
+ */
434
+
435
+ @SuppressWarnings("deprecation")
436
+ @Override
437
+ public String findGettablePropertyName(AnnotatedMethod am)
438
+ {
439
+ /* 22-May-2009, tatu: JsonProperty is the primary annotation
440
+ * to check for
441
+ */
442
+ JsonProperty pann = am.getAnnotation(JsonProperty.class);
443
+ if (pann != null) {
444
+ return pann.value();
445
+ }
446
+ /* 22-May-2009, tatu: JsonGetter is deprecated as of 1.1
447
+ * but still supported
448
+ */
449
+ JsonGetter ann = am.getAnnotation(JsonGetter.class);
450
+ if (ann != null) {
451
+ return ann.value();
452
+ }
453
+ /* 22-May-2009, tatu: And finally, JsonSerialize implies
454
+ * that there is a property, although doesn't define name
455
+ */
456
+ // 09-Apr-2010, tatu: Ditto for JsonView
457
+ if (am.hasAnnotation(JsonSerialize.class) || am.hasAnnotation(JsonView.class)) {
458
+ return "";
459
+ }
460
+ return null;
461
+ }
462
+
463
+ @Override
464
+ public boolean hasAsValueAnnotation(AnnotatedMethod am)
465
+ {
466
+ JsonValue ann = am.getAnnotation(JsonValue.class);
467
+ // value of 'false' means disabled...
468
+ return (ann != null && ann.value());
469
+ }
470
+
471
+ /*
472
+ /**********************************************************
473
+ /* Serialization: field annotations
474
+ /**********************************************************
475
+ */
476
+
477
+ @Override
478
+ public String findSerializablePropertyName(AnnotatedField af)
479
+ {
480
+ JsonProperty pann = af.getAnnotation(JsonProperty.class);
481
+ if (pann != null) {
482
+ return pann.value();
483
+ }
484
+ // Also: having JsonSerialize implies it is such a property
485
+ // 09-Apr-2010, tatu: Ditto for JsonView
486
+ if (af.hasAnnotation(JsonSerialize.class) || af.hasAnnotation(JsonView.class)) {
487
+ return "";
488
+ }
489
+ return null;
490
+ }
491
+
492
+ /*
493
+ /**********************************************************
494
+ /* Deserialization: general annotations
495
+ /**********************************************************
496
+ */
497
+
498
+ @Override
499
+ public Class<? extends JsonDeserializer<?>> findDeserializer(Annotated a)
500
+ {
501
+ /* 21-May-2009, tatu: Slight change; primary annotation is now
502
+ * @JsonDeserialize; @JsonUseDeserializer is deprecated
503
+ */
504
+ JsonDeserialize ann = a.getAnnotation(JsonDeserialize.class);
505
+ if (ann != null) {
506
+ Class<? extends JsonDeserializer<?>> deserClass = ann.using();
507
+ if (deserClass != JsonDeserializer.None.class) {
508
+ return deserClass;
509
+ }
510
+ }
511
+ // 31-Jan-2010, tatus: @JsonUseDeserializer removed as of 1.5
512
+ return null;
513
+ }
514
+
515
+ @Override
516
+ public Class<? extends KeyDeserializer> findKeyDeserializer(Annotated a)
517
+ {
518
+ JsonDeserialize ann = a.getAnnotation(JsonDeserialize.class);
519
+ if (ann != null) {
520
+ Class<? extends KeyDeserializer> deserClass = ann.keyUsing();
521
+ if (deserClass != KeyDeserializer.None.class) {
522
+ return deserClass;
523
+ }
524
+ }
525
+ return null;
526
+ }
527
+
528
+ @Override
529
+ public Class<? extends JsonDeserializer<?>> findContentDeserializer(Annotated a)
530
+ {
531
+ JsonDeserialize ann = a.getAnnotation(JsonDeserialize.class);
532
+ if (ann != null) {
533
+ Class<? extends JsonDeserializer<?>> deserClass = ann.contentUsing();
534
+ if (deserClass != JsonDeserializer.None.class) {
535
+ return deserClass;
536
+ }
537
+ }
538
+ return null;
539
+ }
540
+
541
+ @Override
542
+ public Class<?> findDeserializationType(Annotated am, JavaType baseType,
543
+ String propName)
544
+ {
545
+ // Primary annotation, JsonDeserialize
546
+ JsonDeserialize ann = am.getAnnotation(JsonDeserialize.class);
547
+ if (ann != null) {
548
+ Class<?> cls = ann.as();
549
+ if (cls != NoClass.class) {
550
+ return cls;
551
+ }
552
+ }
553
+ /* 30-Jun-2011, tatu: Here we used to have support for @JsonClass;
554
+ * removed in 1.9
555
+ */
556
+ return null;
557
+ }
558
+
559
+ @Override
560
+ public Class<?> findDeserializationKeyType(Annotated am, JavaType baseKeyType,
561
+ String propName)
562
+ {
563
+ // Primary annotation, JsonDeserialize
564
+ JsonDeserialize ann = am.getAnnotation(JsonDeserialize.class);
565
+ if (ann != null) {
566
+ Class<?> cls = ann.keyAs();
567
+ if (cls != NoClass.class) {
568
+ return cls;
569
+ }
570
+ }
571
+ /* 30-Jun-2011, tatu: Here we used to have support for @JsonKeyClass;
572
+ * removed in 1.9
573
+ */
574
+ return null;
575
+ }
576
+
577
+ @Override
578
+ public Class<?> findDeserializationContentType(Annotated am, JavaType baseContentType,
579
+ String propName)
580
+ {
581
+ // Primary annotation, JsonDeserialize
582
+ JsonDeserialize ann = am.getAnnotation(JsonDeserialize.class);
583
+ if (ann != null) {
584
+ Class<?> cls = ann.contentAs();
585
+ if (cls != NoClass.class) {
586
+ return cls;
587
+ }
588
+ }
589
+ /* 30-Jun-2011, tatu: Here we used to have support for @JsonContentClass;
590
+ * removed in 1.9
591
+ */
592
+ return null;
593
+ }
594
+
595
+ /*
596
+ /**********************************************************
597
+ /* Deserialization: Class annotations
598
+ /**********************************************************
599
+ */
600
+
601
+ @Override
602
+ public Object findValueInstantiator(AnnotatedClass ac)
603
+ {
604
+ JsonValueInstantiator ann = ac.getAnnotation(JsonValueInstantiator.class);
605
+ // no 'null' marker yet, so:
606
+ return (ann == null) ? null : ann.value();
607
+ }
608
+
609
+ /*
610
+ /**********************************************************
611
+ /* Deserialization: Method annotations
612
+ /**********************************************************
613
+ */
614
+
615
+ @Override
616
+ public String findSettablePropertyName(AnnotatedMethod am)
617
+ {
618
+ /* 16-Apr-2010, tatu: Existing priority (since 1.1) is that
619
+ * @JsonProperty is checked first; and @JsonSetter next.
620
+ * This is not quite optimal now that @JsonSetter is un-deprecated.
621
+ * However, it is better to have stable behavior rather than
622
+ * cause compatibility problems by fine-tuning.
623
+ */
624
+ JsonProperty pann = am.getAnnotation(JsonProperty.class);
625
+ if (pann != null) {
626
+ return pann.value();
627
+ }
628
+ JsonSetter ann = am.getAnnotation(JsonSetter.class);
629
+ if (ann != null) {
630
+ return ann.value();
631
+ }
632
+ /* 22-May-2009, tatu: And finally, JsonSerialize implies
633
+ * that there is a property, although doesn't define name
634
+ */
635
+ // 09-Apr-2010, tatu: Ditto for JsonView
636
+ // 19-Oct-2011, tatu: And JsonBackReference/JsonManagedReference
637
+ if (am.hasAnnotation(JsonDeserialize.class)
638
+ || am.hasAnnotation(JsonView.class)
639
+ || am.hasAnnotation(JsonBackReference.class)
640
+ || am.hasAnnotation(JsonManagedReference.class)
641
+ ) {
642
+ return "";
643
+ }
644
+ return null;
645
+ }
646
+
647
+ @Override
648
+ public boolean hasAnySetterAnnotation(AnnotatedMethod am)
649
+ {
650
+ /* No dedicated disabling; regular @JsonIgnore used
651
+ * if needs to be ignored (and if so, is handled prior
652
+ * to this method getting called)
653
+ */
654
+ return am.hasAnnotation(JsonAnySetter.class);
655
+ }
656
+
657
+ @Override
658
+ public boolean hasAnyGetterAnnotation(AnnotatedMethod am)
659
+ {
660
+ /* No dedicated disabling; regular @JsonIgnore used
661
+ * if needs to be ignored (handled separately
662
+ */
663
+ return am.hasAnnotation(JsonAnyGetter.class);
664
+ }
665
+
666
+ @Override
667
+ public boolean hasCreatorAnnotation(Annotated a)
668
+ {
669
+ /* No dedicated disabling; regular @JsonIgnore used
670
+ * if needs to be ignored (and if so, is handled prior
671
+ * to this method getting called)
672
+ */
673
+ return a.hasAnnotation(JsonCreator.class);
674
+ }
675
+
676
+ /*
677
+ /**********************************************************
678
+ /* Deserialization: field annotations
679
+ /**********************************************************
680
+ */
681
+
682
+ @Override
683
+ public String findDeserializablePropertyName(AnnotatedField af)
684
+ {
685
+ JsonProperty pann = af.getAnnotation(JsonProperty.class);
686
+ if (pann != null) {
687
+ return pann.value();
688
+ }
689
+ // Also: having JsonDeserialize implies it is such a property
690
+ // 09-Apr-2010, tatu: Ditto for JsonView
691
+ if (af.hasAnnotation(JsonDeserialize.class)
692
+ || af.hasAnnotation(JsonView.class)
693
+ || af.hasAnnotation(JsonBackReference.class)
694
+ || af.hasAnnotation(JsonManagedReference.class)
695
+ ) {
696
+ return "";
697
+ }
698
+ return null;
699
+ }
700
+
701
+ /*
702
+ /**********************************************************
703
+ /* Deserialization: parameters annotations
704
+ /**********************************************************
705
+ */
706
+
707
+ @Override
708
+ public String findPropertyNameForParam(AnnotatedParameter param)
709
+ {
710
+ if (param != null) {
711
+ JsonProperty pann = param.getAnnotation(JsonProperty.class);
712
+ if (pann != null) {
713
+ return pann.value();
714
+ }
715
+ /* And can not use JsonDeserialize as we can not use
716
+ * name auto-detection (names of local variables including
717
+ * parameters are not necessarily preserved in bytecode)
718
+ */
719
+ }
720
+ return null;
721
+ }
722
+
723
+ /*
724
+ /**********************************************************
725
+ /* Helper methods
726
+ /**********************************************************
727
+ */
728
+
729
+ protected boolean _isIgnorable(Annotated a)
730
+ {
731
+ JsonIgnore ann = a.getAnnotation(JsonIgnore.class);
732
+ return (ann != null && ann.value());
733
+ }
734
+
735
+ /**
736
+ * Helper method called to construct and initialize instance of {@link TypeResolverBuilder}
737
+ * if given annotated element indicates one is needed.
738
+ */
739
+ protected TypeResolverBuilder<?> _findTypeResolver(MapperConfig<?> config,
740
+ Annotated ann, JavaType baseType)
741
+ {
742
+ // First: maybe we have explicit type resolver?
743
+ TypeResolverBuilder<?> b;
744
+ JsonTypeInfo info = ann.getAnnotation(JsonTypeInfo.class);
745
+ JsonTypeResolver resAnn = ann.getAnnotation(JsonTypeResolver.class);
746
+ if (resAnn != null) {
747
+ /* 14-Aug-2010, tatu: not sure if this can ever happen normally, but unit
748
+ * tests were able to trigger this... so let's check:
749
+ */
750
+ if (info == null) {
751
+ return null;
752
+ }
753
+ /* let's not try to force access override (would need to pass
754
+ * settings through if we did, since that's not doable on some
755
+ * platforms)
756
+ */
757
+ b = config.typeResolverBuilderInstance(ann, resAnn.value());
758
+ } else { // if not, use standard one, if indicated by annotations
759
+ if (info == null) {
760
+ return null;
761
+ }
762
+ // bit special; must return 'marker' to block use of default typing:
763
+ if (info.use() == JsonTypeInfo.Id.NONE) {
764
+ return _constructNoTypeResolverBuilder();
765
+ }
766
+ b = _constructStdTypeResolverBuilder();
767
+ }
768
+ // Does it define a custom type id resolver?
769
+ JsonTypeIdResolver idResInfo = ann.getAnnotation(JsonTypeIdResolver.class);
770
+ TypeIdResolver idRes = (idResInfo == null) ? null
771
+ : config.typeIdResolverInstance(ann, idResInfo.value());
772
+ if (idRes != null) { // [JACKSON-359]
773
+ idRes.init(baseType);
774
+ }
775
+ b = b.init(info.use(), idRes);
776
+ /* 13-Aug-2011, tatu: One complication wrt [JACKSON-453]; external id
777
+ * only works for properties; so if declared for a Class, we will need
778
+ * to map it to "PROPERTY" instead of "EXTERNAL_PROPERTY"
779
+ */
780
+ JsonTypeInfo.As inclusion = info.include();
781
+ if (inclusion == JsonTypeInfo.As.EXTERNAL_PROPERTY && (ann instanceof AnnotatedClass)) {
782
+ inclusion = JsonTypeInfo.As.PROPERTY;
783
+ }
784
+ b = b.inclusion(inclusion);
785
+ b = b.typeProperty(info.property());
786
+ Class<?> defaultImpl = info.defaultImpl();
787
+ if (defaultImpl != JsonTypeInfo.None.class) {
788
+ b = b.defaultImpl(defaultImpl);
789
+ }
790
+ return b;
791
+ }
792
+
793
+ /**
794
+ * Helper method for constructing standard {@link TypeResolverBuilder}
795
+ * implementation.
796
+ *
797
+ * @since 1.7
798
+ */
799
+ protected StdTypeResolverBuilder _constructStdTypeResolverBuilder()
800
+ {
801
+ return new StdTypeResolverBuilder();
802
+ }
803
+
804
+ /**
805
+ * Helper method for dealing with "no type info" marker; can't be null
806
+ * (as it'd be replaced by default typing)
807
+ *
808
+ * @since 1.9.4
809
+ */
810
+ protected StdTypeResolverBuilder _constructNoTypeResolverBuilder() {
811
+ return StdTypeResolverBuilder.noTypeInfoBuilder();
812
+ }
813
+ }