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,83 @@
1
+ package sh.calaba.org.codehaus.jackson.map.introspect;
2
+
3
+ import java.lang.reflect.Constructor;
4
+ import java.lang.reflect.Method;
5
+
6
+ /**
7
+ * Helper class needed to be able to efficiently access class
8
+ * member functions ({@link Method}s and {@link Constructor}s)
9
+ * in {@link java.util.Map}s.
10
+ */
11
+ public final class MemberKey
12
+ {
13
+ final static Class<?>[] NO_CLASSES = new Class<?>[0];
14
+
15
+ final String _name;
16
+ final Class<?>[] _argTypes;
17
+
18
+ public MemberKey(Method m)
19
+ {
20
+ this(m.getName(), m.getParameterTypes());
21
+ }
22
+
23
+ public MemberKey(Constructor<?> ctor)
24
+ {
25
+ this("", ctor.getParameterTypes());
26
+ }
27
+
28
+ public MemberKey(String name, Class<?>[] argTypes)
29
+ {
30
+ _name = name;
31
+ _argTypes = (argTypes == null) ? NO_CLASSES : argTypes;
32
+ }
33
+
34
+ @Override
35
+ public String toString() {
36
+ return _name + "(" + _argTypes.length+"-args)";
37
+ }
38
+
39
+ @Override
40
+ public int hashCode()
41
+ {
42
+ return _name.hashCode() + _argTypes.length;
43
+ }
44
+
45
+ @Override
46
+ public boolean equals(Object o)
47
+ {
48
+ if (o == this) return true;
49
+ if (o == null) return false;
50
+ if (o.getClass() != getClass()) {
51
+ return false;
52
+ }
53
+ MemberKey other = (MemberKey) o;
54
+ if (!_name.equals(other._name)) {
55
+ return false;
56
+ }
57
+ Class<?>[] otherArgs = other._argTypes;
58
+ int len = _argTypes.length;
59
+ if (otherArgs.length != len) {
60
+ return false;
61
+ }
62
+ for (int i = 0; i < len; ++i) {
63
+ Class<?> type1 = otherArgs[i];
64
+ Class<?> type2 = _argTypes[i];
65
+ if (type1 == type2) {
66
+ continue;
67
+ }
68
+ /* 23-Feb-2009, tatu: Are there any cases where we would have to
69
+ * consider some narrowing conversions or such? For now let's
70
+ * assume exact type match is enough
71
+ */
72
+ /* 07-Apr-2009, tatu: Indeed there are (see [JACKSON-97]).
73
+ * This happens with generics when a bound is specified.
74
+ * I hope this works; check here must be transitive
75
+ */
76
+ if (type1.isAssignableFrom(type2) || type2.isAssignableFrom(type1)) {
77
+ continue;
78
+ }
79
+ return false;
80
+ }
81
+ return true;
82
+ }
83
+ }
@@ -0,0 +1,12 @@
1
+ package sh.calaba.org.codehaus.jackson.map.introspect;
2
+
3
+ import java.lang.reflect.Method;
4
+
5
+ /**
6
+ * Simple interface that defines API used to filter out irrelevant
7
+ * methods
8
+ */
9
+ public interface MethodFilter
10
+ {
11
+ public boolean includeMethod(Method m);
12
+ }
@@ -0,0 +1,209 @@
1
+ package sh.calaba.org.codehaus.jackson.map.introspect;
2
+
3
+ import java.lang.annotation.Annotation;
4
+
5
+ import sh.calaba.org.codehaus.jackson.map.AnnotationIntrospector;
6
+ import sh.calaba.org.codehaus.jackson.map.JsonDeserializer;
7
+ import sh.calaba.org.codehaus.jackson.map.KeyDeserializer;
8
+ import sh.calaba.org.codehaus.jackson.map.annotate.JsonSerialize.Typing;
9
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
10
+
11
+ /**
12
+ * Dummy, "no-operation" implementation of {@link AnnotationIntrospector}.
13
+ * Can be used as is to suppress handling of annotations; or as a basis
14
+ * for simple complementary annotators
15
+ */
16
+ public class NopAnnotationIntrospector
17
+ extends AnnotationIntrospector
18
+ {
19
+ /**
20
+ * Static immutable and shareable instance that can be used as
21
+ * "null" introspector: one that never finds any annotation
22
+ * information.
23
+ */
24
+ public final static NopAnnotationIntrospector instance = new NopAnnotationIntrospector();
25
+
26
+ /*
27
+ /**********************************************************
28
+ /* General annotation properties
29
+ /**********************************************************
30
+ */
31
+
32
+ @Override
33
+ public boolean isHandled(Annotation ann) {
34
+ return false;
35
+ }
36
+
37
+ /*
38
+ /**********************************************************
39
+ /* General annotations
40
+ /**********************************************************
41
+ */
42
+
43
+ @Override
44
+ public String findEnumValue(Enum<?> value) {
45
+ return null;
46
+ }
47
+
48
+ /*
49
+ /**********************************************************
50
+ /* General Class annotations
51
+ /**********************************************************
52
+ */
53
+
54
+ @Override
55
+ public String findRootName(AnnotatedClass ac) {
56
+ return null;
57
+ }
58
+
59
+ @Override
60
+ public String[] findPropertiesToIgnore(AnnotatedClass ac) {
61
+ return null;
62
+ }
63
+
64
+ @Override
65
+ public Boolean findIgnoreUnknownProperties(AnnotatedClass ac) {
66
+ return null;
67
+ }
68
+
69
+ /*
70
+ /**********************************************************
71
+ /* General member (field, method/constructor) annotations
72
+ /**********************************************************
73
+ */
74
+
75
+ @Override
76
+ public boolean hasIgnoreMarker(AnnotatedMember member) {
77
+ return false;
78
+ }
79
+
80
+ /*
81
+ /**********************************************************
82
+ /* General Method annotations
83
+ /**********************************************************
84
+ */
85
+
86
+ @Override
87
+ public boolean isIgnorableConstructor(AnnotatedConstructor c) {
88
+ return false;
89
+ }
90
+
91
+ @Override
92
+ public boolean isIgnorableMethod(AnnotatedMethod m) {
93
+ return false;
94
+ }
95
+
96
+ /*
97
+ /**********************************************************
98
+ /* General field annotations
99
+ /**********************************************************
100
+ */
101
+
102
+ @Override
103
+ public boolean isIgnorableField(AnnotatedField f) {
104
+ return false;
105
+ }
106
+
107
+ /*
108
+ /**********************************************************
109
+ /* Serialization: general annotations
110
+ /**********************************************************
111
+ */
112
+
113
+ @Override
114
+ public Object findSerializer(Annotated am) {
115
+ return null;
116
+ }
117
+
118
+ @Override
119
+ public Class<?> findSerializationType(Annotated a) {
120
+ return null;
121
+ }
122
+
123
+ @Override
124
+ public Typing findSerializationTyping(Annotated a) {
125
+ return null;
126
+ }
127
+
128
+ @Override
129
+ public Class<?>[] findSerializationViews(Annotated a) {
130
+ return null;
131
+ }
132
+
133
+ /*
134
+ /**********************************************************
135
+ /* Serialization: class annotations
136
+ /**********************************************************
137
+ */
138
+
139
+ @Override
140
+ public String[] findSerializationPropertyOrder(AnnotatedClass ac) {
141
+ return null;
142
+ }
143
+
144
+ @Override
145
+ public Boolean findSerializationSortAlphabetically(AnnotatedClass ac) {
146
+ return null;
147
+ }
148
+
149
+ /*
150
+ /**********************************************************
151
+ /* Serialization: method annotations
152
+ /**********************************************************
153
+ */
154
+
155
+ @Override
156
+ public String findGettablePropertyName(AnnotatedMethod am) {
157
+ return null;
158
+ }
159
+
160
+ @Override
161
+ public boolean hasAsValueAnnotation(AnnotatedMethod am) {
162
+ return false;
163
+ }
164
+
165
+ @Override
166
+ public String findDeserializablePropertyName(AnnotatedField af) {
167
+ return null;
168
+ }
169
+
170
+ @Override
171
+ public Class<?> findDeserializationContentType(Annotated am, JavaType t, String propName) {
172
+ return null;
173
+ }
174
+
175
+ @Override
176
+ public Class<?> findDeserializationKeyType(Annotated am, JavaType t, String propName) {
177
+ return null;
178
+ }
179
+
180
+ @Override
181
+ public Class<?> findDeserializationType(Annotated am, JavaType t, String propName) {
182
+ return null;
183
+ }
184
+
185
+ @Override
186
+ public Object findDeserializer(Annotated am) { return null; }
187
+
188
+ @Override
189
+ public Class<KeyDeserializer> findKeyDeserializer(Annotated am) { return null; }
190
+
191
+ @Override
192
+ public Class<JsonDeserializer<?>> findContentDeserializer(Annotated am) { return null; }
193
+
194
+
195
+ @Override
196
+ public String findPropertyNameForParam(AnnotatedParameter param) {
197
+ return null;
198
+ }
199
+
200
+ @Override
201
+ public String findSerializablePropertyName(AnnotatedField af) {
202
+ return null;
203
+ }
204
+
205
+ @Override
206
+ public String findSettablePropertyName(AnnotatedMethod am) {
207
+ return null;
208
+ }
209
+ }
@@ -0,0 +1,713 @@
1
+ package sh.calaba.org.codehaus.jackson.map.introspect;
2
+
3
+ import java.util.*;
4
+
5
+ import sh.calaba.org.codehaus.jackson.map.*;
6
+ import sh.calaba.org.codehaus.jackson.map.util.BeanUtil;
7
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
8
+
9
+ /**
10
+ * Helper class used for aggregating information about all possible
11
+ * properties of a POJO.
12
+ *
13
+ * @since 1.9
14
+ */
15
+ public class POJOPropertiesCollector
16
+ {
17
+ /*
18
+ /**********************************************************
19
+ /* Configuration
20
+ /**********************************************************
21
+ */
22
+
23
+ /**
24
+ * Configuration settings
25
+ */
26
+ protected final MapperConfig<?> _config;
27
+
28
+ /**
29
+ * True if introspection is done for serialization (giving
30
+ * precedence for serialization annotations), or not (false, deserialization)
31
+ */
32
+ protected final boolean _forSerialization;
33
+
34
+ /**
35
+ * Type of POJO for which properties are being collected.
36
+ */
37
+ protected final JavaType _type;
38
+
39
+ /**
40
+ * Low-level introspected class information (methods, fields etc)
41
+ */
42
+ protected final AnnotatedClass _classDef;
43
+
44
+ protected final VisibilityChecker<?> _visibilityChecker;
45
+
46
+ protected final AnnotationIntrospector _annotationIntrospector;
47
+
48
+ /*
49
+ /**********************************************************
50
+ /* Collected information
51
+ /**********************************************************
52
+ */
53
+
54
+ /**
55
+ * Set of logical property information collected so far
56
+ */
57
+ protected final LinkedHashMap<String, POJOPropertyBuilder> _properties
58
+ = new LinkedHashMap<String, POJOPropertyBuilder>();
59
+
60
+ protected LinkedList<POJOPropertyBuilder> _creatorProperties = null;
61
+
62
+ protected LinkedList<AnnotatedMethod> _anyGetters = null;
63
+
64
+ protected LinkedList<AnnotatedMethod> _anySetters = null;
65
+
66
+ /**
67
+ * Method(s) marked with 'JsonValue' annotation
68
+ */
69
+ protected LinkedList<AnnotatedMethod> _jsonValueGetters = null;
70
+
71
+ /**
72
+ * Lazily collected list of properties that can be implicitly
73
+ * ignored during serialization; only updated when collecting
74
+ * information for deserialization purposes
75
+ */
76
+ protected Set<String> _ignoredPropertyNames;
77
+
78
+ /**
79
+ * Alternate set of property names that have been marked for
80
+ * explicit ignoral for deserialization: needed to deal with
81
+ * 1.x definition of ignorable with respect to "any setter"
82
+ * (see [JACKSON-313], [JACKSON-383])
83
+ *
84
+ * @since 1.9.4
85
+ */
86
+ protected Set<String> _ignoredPropertyNamesForDeser;
87
+
88
+ /**
89
+ * Lazily collected list of members that were annotated to
90
+ * indicate that they represent mutators for deserializer
91
+ * value injection.
92
+ */
93
+ protected LinkedHashMap<Object, AnnotatedMember> _injectables;
94
+
95
+ /*
96
+ /**********************************************************
97
+ /* Life-cycle
98
+ /**********************************************************
99
+ */
100
+
101
+ protected POJOPropertiesCollector(MapperConfig<?> config, boolean forSerialization,
102
+ JavaType type, AnnotatedClass classDef)
103
+ {
104
+ _config = config;
105
+ _forSerialization = forSerialization;
106
+ _type = type;
107
+ _classDef = classDef;
108
+ _annotationIntrospector = config.isAnnotationProcessingEnabled() ?
109
+ _config.getAnnotationIntrospector() : null;
110
+ if (_annotationIntrospector == null) {
111
+ _visibilityChecker = _config.getDefaultVisibilityChecker();
112
+ } else {
113
+ _visibilityChecker = _annotationIntrospector.findAutoDetectVisibility(classDef,
114
+ _config.getDefaultVisibilityChecker());
115
+ }
116
+ }
117
+
118
+ /*
119
+ /**********************************************************
120
+ /* Public API
121
+ /**********************************************************
122
+ */
123
+
124
+ public MapperConfig<?> getConfig() {
125
+ return _config;
126
+ }
127
+
128
+ public JavaType getType() {
129
+ return _type;
130
+ }
131
+
132
+ public AnnotatedClass getClassDef() {
133
+ return _classDef;
134
+ }
135
+
136
+ public AnnotationIntrospector getAnnotationIntrospector() {
137
+ return _annotationIntrospector;
138
+ }
139
+
140
+ public List<BeanPropertyDefinition> getProperties() {
141
+ // make sure we return a copy, so caller can remove entries if need be:
142
+ return new ArrayList<BeanPropertyDefinition>(_properties.values());
143
+ }
144
+
145
+ public Map<Object, AnnotatedMember> getInjectables() {
146
+ return _injectables;
147
+ }
148
+
149
+ public AnnotatedMethod getJsonValueMethod()
150
+ {
151
+ // If @JsonValue defined, must have a single one
152
+ if (_jsonValueGetters != null) {
153
+ if (_jsonValueGetters.size() > 1) {
154
+ reportProblem("Multiple value properties defined ("+_jsonValueGetters.get(0)+" vs "
155
+ +_jsonValueGetters.get(1)+")");
156
+ }
157
+ // otherwise we won't greatly care
158
+ return _jsonValueGetters.get(0);
159
+ }
160
+ return null;
161
+ }
162
+
163
+ public AnnotatedMethod getAnyGetterMethod()
164
+ {
165
+ if (_anyGetters != null) {
166
+ if (_anyGetters.size() > 1) {
167
+ reportProblem("Multiple 'any-getters' defined ("+_anyGetters.get(0)+" vs "
168
+ +_anyGetters.get(1)+")");
169
+ }
170
+ return _anyGetters.getFirst();
171
+ }
172
+ return null;
173
+ }
174
+
175
+ public AnnotatedMethod getAnySetterMethod()
176
+ {
177
+ if (_anySetters != null) {
178
+ if (_anySetters.size() > 1) {
179
+ reportProblem("Multiple 'any-setters' defined ("+_anySetters.get(0)+" vs "
180
+ +_anySetters.get(1)+")");
181
+ }
182
+ return _anySetters.getFirst();
183
+ }
184
+ return null;
185
+ }
186
+
187
+ public Set<String> getIgnoredPropertyNames() {
188
+ return _ignoredPropertyNames;
189
+ }
190
+
191
+ /**
192
+ * @since 1.9.4
193
+ */
194
+ public Set<String> getIgnoredPropertyNamesForDeser() {
195
+ return _ignoredPropertyNamesForDeser;
196
+ }
197
+
198
+ // for unit tests:
199
+ protected Map<String, POJOPropertyBuilder> getPropertyMap() {
200
+ return _properties;
201
+ }
202
+
203
+ /*
204
+ /**********************************************************
205
+ /* Public API: main-level collection
206
+ /**********************************************************
207
+ */
208
+
209
+ /**
210
+ * Method that orchestrates collection activities, and needs to be called
211
+ * after creating the instance.
212
+ */
213
+ public POJOPropertiesCollector collect()
214
+ {
215
+ _properties.clear();
216
+
217
+ // First: gather basic data
218
+ _addFields();
219
+ _addMethods();
220
+ _addCreators();
221
+ _addInjectables();
222
+
223
+ // Remove ignored properties, individual entries
224
+ _removeUnwantedProperties();
225
+
226
+ // Rename remaining properties
227
+ _renameProperties();
228
+ // And use custom naming strategy, if applicable...
229
+ PropertyNamingStrategy naming = _config.getPropertyNamingStrategy();
230
+ if (naming != null) {
231
+ _renameUsing(naming);
232
+ }
233
+
234
+ /* Sort by visibility (explicit over implicit); drop all but first
235
+ * of member type (getter, setter etc) if there is visibility
236
+ * difference
237
+ */
238
+ for (POJOPropertyBuilder property : _properties.values()) {
239
+ property.trimByVisibility();
240
+ }
241
+
242
+ // and then the final step, "merge" annotations
243
+ for (POJOPropertyBuilder property : _properties.values()) {
244
+ property.mergeAnnotations(_forSerialization);
245
+ }
246
+
247
+ // well, almost last: there's still ordering...
248
+ _sortProperties();
249
+ return this;
250
+ }
251
+
252
+ /*
253
+ /**********************************************************
254
+ /* Overridable internal methods, sorting
255
+ /**********************************************************
256
+ */
257
+
258
+ /* First, order by [JACKSON-90] (explicit ordering and/or alphabetic)
259
+ * and then for [JACKSON-170] (implicitly order creator properties before others)
260
+ */
261
+ protected void _sortProperties()
262
+ {
263
+ // Then how about explicit ordering?
264
+ AnnotationIntrospector intr = _config.getAnnotationIntrospector();
265
+ boolean sort;
266
+ Boolean alpha = intr.findSerializationSortAlphabetically(_classDef);
267
+
268
+ if (alpha == null) {
269
+ sort = _config.shouldSortPropertiesAlphabetically();
270
+ } else {
271
+ sort = alpha.booleanValue();
272
+ }
273
+ String[] propertyOrder = intr.findSerializationPropertyOrder(_classDef);
274
+
275
+ // no sorting? no need to shuffle, then
276
+ if (!sort && (_creatorProperties == null) && (propertyOrder == null)) {
277
+ return;
278
+ }
279
+ int size = _properties.size();
280
+ Map<String, POJOPropertyBuilder> all;
281
+ // Need to (re)sort alphabetically?
282
+ if (sort) {
283
+ all = new TreeMap<String,POJOPropertyBuilder>();
284
+ } else {
285
+ all = new LinkedHashMap<String,POJOPropertyBuilder>(size+size);
286
+ }
287
+
288
+ for (POJOPropertyBuilder prop : _properties.values()) {
289
+ all.put(prop.getName(), prop);
290
+ }
291
+ Map<String,POJOPropertyBuilder> ordered = new LinkedHashMap<String,POJOPropertyBuilder>(size+size);
292
+ // Ok: primarily by explicit order
293
+ if (propertyOrder != null) {
294
+ for (String name : propertyOrder) {
295
+ POJOPropertyBuilder w = all.get(name);
296
+ if (w == null) { // also, as per [JACKSON-268], we will allow use of "implicit" names
297
+ for (POJOPropertyBuilder prop : _properties.values()) {
298
+ if (name.equals(prop.getInternalName())) {
299
+ w = prop;
300
+ // plus re-map to external name, to avoid dups:
301
+ name = prop.getName();
302
+ break;
303
+ }
304
+ }
305
+ }
306
+ if (w != null) {
307
+ ordered.put(name, w);
308
+ }
309
+ }
310
+ }
311
+ // And secondly by sorting Creator properties before other unordered properties
312
+ if (_creatorProperties != null) {
313
+ for (POJOPropertyBuilder prop : _creatorProperties) {
314
+ ordered.put(prop.getName(), prop);
315
+ }
316
+ }
317
+ // And finally whatever is left (trying to put again will not change ordering)
318
+ ordered.putAll(all);
319
+
320
+ _properties.clear();
321
+ _properties.putAll(ordered);
322
+ }
323
+
324
+ /*
325
+ /**********************************************************
326
+ /* Overridable internal methods, adding members
327
+ /**********************************************************
328
+ */
329
+
330
+ /**
331
+ * Method for collecting basic information on all fields found
332
+ */
333
+ protected void _addFields()
334
+ {
335
+ final AnnotationIntrospector ai = _annotationIntrospector;
336
+
337
+ for (AnnotatedField f : _classDef.fields()) {
338
+ String implName = f.getName();
339
+
340
+ String explName;
341
+ if (ai == null) {
342
+ explName = null;
343
+ } else if (_forSerialization) {
344
+ /* 18-Aug-2011, tatu: As per existing unit tests, we should only
345
+ * use serialization annotation (@JsonSerializer) when serializing
346
+ * fields, and similarly for deserialize-only annotations... so
347
+ * no fallbacks in this particular case.
348
+ */
349
+ explName = ai.findSerializablePropertyName(f);
350
+ } else {
351
+ explName = ai.findDeserializablePropertyName(f);
352
+ }
353
+ if ("".equals(explName)) { // empty String meaning "use default name", here just means "same as field name"
354
+ explName = implName;
355
+ }
356
+ // having explicit name means that field is visible; otherwise need to check the rules
357
+ boolean visible = (explName != null);
358
+ if (!visible) {
359
+ visible = _visibilityChecker.isFieldVisible(f);
360
+ }
361
+ // and finally, may also have explicit ignoral
362
+ boolean ignored = (ai != null) && ai.hasIgnoreMarker(f);
363
+ _property(implName).addField(f, explName, visible, ignored);
364
+ }
365
+ }
366
+
367
+ /**
368
+ * Method for collecting basic information on constructor(s) found
369
+ */
370
+ protected void _addCreators()
371
+ {
372
+ final AnnotationIntrospector ai = _annotationIntrospector;
373
+ // can be null if annotation processing is disabled...
374
+ if (ai == null) {
375
+ return;
376
+ }
377
+ for (AnnotatedConstructor ctor : _classDef.getConstructors()) {
378
+ if (_creatorProperties == null) {
379
+ _creatorProperties = new LinkedList<POJOPropertyBuilder>();
380
+ }
381
+ for (int i = 0, len = ctor.getParameterCount(); i < len; ++i) {
382
+ AnnotatedParameter param = ctor.getParameter(i);
383
+ String name = ai.findPropertyNameForParam(param);
384
+ // is it legal not to have name?
385
+ if (name != null) {
386
+ // shouldn't need to worry about @JsonIgnore (no real point, so)
387
+ POJOPropertyBuilder prop = _property(name);
388
+ prop.addCtor(param, name, true, false);
389
+ _creatorProperties.add(prop);
390
+ }
391
+ }
392
+ }
393
+ for (AnnotatedMethod factory : _classDef.getStaticMethods()) {
394
+ if (_creatorProperties == null) {
395
+ _creatorProperties = new LinkedList<POJOPropertyBuilder>();
396
+ }
397
+ for (int i = 0, len = factory.getParameterCount(); i < len; ++i) {
398
+ AnnotatedParameter param = factory.getParameter(i);
399
+ String name = ai.findPropertyNameForParam(param);
400
+ // is it legal not to have name?
401
+ if (name != null) {
402
+ // shouldn't need to worry about @JsonIgnore (no real point, so)
403
+ POJOPropertyBuilder prop = _property(name);
404
+ prop.addCtor(param, name, true, false);
405
+ _creatorProperties.add(prop);
406
+ }
407
+ }
408
+ }
409
+ }
410
+
411
+ /**
412
+ * Method for collecting basic information on all fields found
413
+ */
414
+ protected void _addMethods()
415
+ {
416
+ final AnnotationIntrospector ai = _annotationIntrospector;
417
+
418
+ for (AnnotatedMethod m : _classDef.memberMethods()) {
419
+ String explName; // from annotation(s)
420
+ String implName; // from naming convention
421
+
422
+ /* For methods, handling differs between getters and setters; and
423
+ * we will also only consider entries that either follow the bean
424
+ * naming convention or are explicitly marked: just being visible
425
+ * is not enough (unlike with fields)
426
+ */
427
+ int argCount = m.getParameterCount();
428
+ boolean visible;
429
+
430
+ if (argCount == 0) { // getters (including 'any getter')
431
+ // any getter?
432
+ if (ai != null) {
433
+ if (ai.hasAnyGetterAnnotation(m)) {
434
+ if (_anyGetters == null) {
435
+ _anyGetters = new LinkedList<AnnotatedMethod>();
436
+ }
437
+ _anyGetters.add(m);
438
+ continue;
439
+ }
440
+ // @JsonValue?
441
+ if (ai.hasAsValueAnnotation(m)) {
442
+ if (_jsonValueGetters == null) {
443
+ _jsonValueGetters = new LinkedList<AnnotatedMethod>();
444
+ }
445
+ _jsonValueGetters.add(m);
446
+ continue;
447
+ }
448
+ }
449
+
450
+ explName = (ai == null) ? null : ai.findGettablePropertyName(m);
451
+ if (explName == null) { // no explicit name; must follow naming convention
452
+ implName = BeanUtil.okNameForRegularGetter(m, m.getName());
453
+ if (implName == null) { // if not, must skip
454
+ implName = BeanUtil.okNameForIsGetter(m, m.getName());
455
+ if (implName == null) {
456
+ continue;
457
+ }
458
+ visible = _visibilityChecker.isIsGetterVisible(m);
459
+ } else {
460
+ visible = _visibilityChecker.isGetterVisible(m);
461
+ }
462
+ } else { // explicit indication of inclusion, but may be empty
463
+ // we still need implicit name to link with other pieces
464
+ implName = BeanUtil.okNameForGetter(m);
465
+ // if not regular getter name, use method name as is
466
+ if (implName == null) {
467
+ implName = m.getName();
468
+ }
469
+ if (explName.length() == 0) {
470
+ explName = implName;
471
+ }
472
+ visible = true;
473
+ }
474
+ boolean ignore = (ai == null) ? false : ai.hasIgnoreMarker(m);
475
+ _property(implName).addGetter(m, explName, visible, ignore);
476
+ } else if (argCount == 1) { // setters
477
+ explName = (ai == null) ? null : ai.findSettablePropertyName(m);
478
+ if (explName == null) { // no explicit name; must follow naming convention
479
+ implName = BeanUtil.okNameForSetter(m);
480
+ if (implName == null) { // if not, must skip
481
+ continue;
482
+ }
483
+ visible = _visibilityChecker.isSetterVisible(m);
484
+ } else { // explicit indication of inclusion, but may be empty
485
+ // we still need implicit name to link with other pieces
486
+ implName = BeanUtil.okNameForSetter(m);
487
+ // if not regular getter name, use method name as is
488
+ if (implName == null) {
489
+ implName = m.getName();
490
+ }
491
+ if (explName.length() == 0) {
492
+ explName = implName;
493
+ }
494
+ visible = true;
495
+ }
496
+ boolean ignore = (ai == null) ? false : ai.hasIgnoreMarker(m);
497
+ _property(implName).addSetter(m, explName, visible, ignore);
498
+
499
+ } else if (argCount == 2) { // any getter?
500
+ if (ai != null && ai.hasAnySetterAnnotation(m)) {
501
+ if (_anySetters == null) {
502
+ _anySetters = new LinkedList<AnnotatedMethod>();
503
+ }
504
+ _anySetters.add(m);
505
+ }
506
+ }
507
+ }
508
+ }
509
+
510
+ protected void _addInjectables()
511
+ {
512
+ final AnnotationIntrospector ai = _annotationIntrospector;
513
+ if (ai == null) {
514
+ return;
515
+ }
516
+
517
+ // first fields, then methods
518
+ for (AnnotatedField f : _classDef.fields()) {
519
+ _doAddInjectable(ai.findInjectableValueId(f), f);
520
+ }
521
+
522
+ for (AnnotatedMethod m : _classDef.memberMethods()) {
523
+ /* for now, only allow injection of a single arg
524
+ * (to be changed in future)
525
+ */
526
+ if (m.getParameterCount() != 1) {
527
+ continue;
528
+ }
529
+ _doAddInjectable(ai.findInjectableValueId(m), m);
530
+ }
531
+ }
532
+
533
+ protected void _doAddInjectable(Object id, AnnotatedMember m)
534
+ {
535
+ if (id == null) {
536
+ return;
537
+ }
538
+ if (_injectables == null) {
539
+ _injectables = new LinkedHashMap<Object, AnnotatedMember>();
540
+ }
541
+ AnnotatedMember prev = _injectables.put(id, m);
542
+ if (prev != null) {
543
+ String type = (id == null) ? "[null]" : id.getClass().getName();
544
+ throw new IllegalArgumentException("Duplicate injectable value with id '"
545
+ +String.valueOf(id)+"' (of type "+type+")");
546
+ }
547
+ }
548
+
549
+ /*
550
+ /**********************************************************
551
+ /* Internal methods; removing ignored properties
552
+ /**********************************************************
553
+ */
554
+
555
+ /**
556
+ * Method called to get rid of candidate properties that are marked
557
+ * as ignored, or that are not visible.
558
+ */
559
+ protected void _removeUnwantedProperties()
560
+ {
561
+ Iterator<Map.Entry<String,POJOPropertyBuilder>> it = _properties.entrySet().iterator();
562
+ while (it.hasNext()) {
563
+ Map.Entry<String, POJOPropertyBuilder> entry = it.next();
564
+ POJOPropertyBuilder prop = entry.getValue();
565
+
566
+ // First: if nothing visible, just remove altogether
567
+ if (!prop.anyVisible()) {
568
+ it.remove();
569
+ continue;
570
+ }
571
+ // Otherwise, check ignorals
572
+ if (prop.anyIgnorals()) {
573
+ _addIgnored(prop);
574
+ // first: if one or more ignorals, and no explicit markers, remove the whole thing
575
+ if (!prop.anyExplicitNames()) {
576
+ it.remove();
577
+ continue;
578
+ }
579
+ // otherwise just remove explicitly ignored (and retain others)
580
+ prop.removeIgnored();
581
+ }
582
+ // and finally, handle removal of individual non-visible elements
583
+ prop.removeNonVisible();
584
+ }
585
+ }
586
+
587
+ private void _addIgnored(POJOPropertyBuilder prop)
588
+ {
589
+ // not used in any way for serialization side:
590
+ if (_forSerialization) {
591
+ return;
592
+ }
593
+ /* and with deserialization, two aspects: whether it's ok to see
594
+ * property ('ignore for failure reporting') and whether we forcifully
595
+ * ignore it even if there was "any setter" available.
596
+ */
597
+ // but do not add unless ignoral was for field, setter or ctor param
598
+ String name = prop.getName();
599
+ _ignoredPropertyNames = addToSet(_ignoredPropertyNames, name);
600
+ if (prop.anyDeserializeIgnorals()) {
601
+ _ignoredPropertyNamesForDeser = addToSet(_ignoredPropertyNamesForDeser, name);
602
+ }
603
+ }
604
+
605
+ /*
606
+ /**********************************************************
607
+ /* Internal methods; renaming properties
608
+ /**********************************************************
609
+ */
610
+
611
+ protected void _renameProperties()
612
+ {
613
+ // With renaming need to do in phases: first, find properties to rename
614
+ Iterator<Map.Entry<String,POJOPropertyBuilder>> it = _properties.entrySet().iterator();
615
+ LinkedList<POJOPropertyBuilder> renamed = null;
616
+ while (it.hasNext()) {
617
+ Map.Entry<String, POJOPropertyBuilder> entry = it.next();
618
+ POJOPropertyBuilder prop = entry.getValue();
619
+ String newName = prop.findNewName();
620
+ if (newName != null) {
621
+ if (renamed == null) {
622
+ renamed = new LinkedList<POJOPropertyBuilder>();
623
+ }
624
+ prop = prop.withName(newName);
625
+ renamed.add(prop);
626
+ it.remove();
627
+ }
628
+ }
629
+
630
+ // and if any were renamed, merge back in...
631
+ if (renamed != null) {
632
+ for (POJOPropertyBuilder prop : renamed) {
633
+ String name = prop.getName();
634
+ POJOPropertyBuilder old = _properties.get(name);
635
+ if (old == null) {
636
+ _properties.put(name, prop);
637
+ } else {
638
+ old.addAll(prop);
639
+ }
640
+ }
641
+ }
642
+ }
643
+
644
+ protected void _renameUsing(PropertyNamingStrategy naming)
645
+ {
646
+ POJOPropertyBuilder[] props = _properties.values().toArray(new POJOPropertyBuilder[_properties.size()]);
647
+ _properties.clear();
648
+ for (POJOPropertyBuilder prop : props) {
649
+ String name = prop.getName();
650
+ if (_forSerialization) {
651
+ if (prop.hasGetter()) {
652
+ name = naming.nameForGetterMethod(_config, prop.getGetter(), name);
653
+ } else if (prop.hasField()) {
654
+ name = naming.nameForField(_config, prop.getField(), name);
655
+ }
656
+ } else {
657
+ if (prop.hasSetter()) {
658
+ name = naming.nameForSetterMethod(_config, prop.getSetter(), name);
659
+ } else if (prop.hasConstructorParameter()) {
660
+ name = naming.nameForConstructorParameter(_config, prop.getConstructorParameter(), name);
661
+ } else if (prop.hasField()) {
662
+ name = naming.nameForField(_config, prop.getField(), name);
663
+ } else if (prop.hasGetter()) {
664
+ /* Plus, when getter-as-setter is used, need to convert that too..
665
+ * (should we verify that's enabled? For now, assume it's ok always)
666
+ */
667
+ name = naming.nameForGetterMethod(_config, prop.getGetter(), name);
668
+ }
669
+ }
670
+ if (!name.equals(prop.getName())) {
671
+ prop = prop.withName(name);
672
+ }
673
+ /* As per [JACKSON-687], need to consider case where there may already be
674
+ * something in there...
675
+ */
676
+ POJOPropertyBuilder old = _properties.get(name);
677
+ if (old == null) {
678
+ _properties.put(name, prop);
679
+ } else {
680
+ old.addAll(prop);
681
+ }
682
+ }
683
+ }
684
+
685
+ /*
686
+ /**********************************************************
687
+ /* Internal methods; helpers
688
+ /**********************************************************
689
+ */
690
+
691
+ protected void reportProblem(String msg) {
692
+ throw new IllegalArgumentException("Problem with definition of "+_classDef+": "+msg);
693
+ }
694
+
695
+ protected POJOPropertyBuilder _property(String implName)
696
+ {
697
+ POJOPropertyBuilder prop = _properties.get(implName);
698
+ if (prop == null) {
699
+ prop = new POJOPropertyBuilder(implName);
700
+ _properties.put(implName, prop);
701
+ }
702
+ return prop;
703
+ }
704
+
705
+ private Set<String> addToSet(Set<String> set, String str)
706
+ {
707
+ if (set == null) {
708
+ set = new HashSet<String>();
709
+ }
710
+ set.add(str);
711
+ return set;
712
+ }
713
+ }