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,34 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import java.io.IOException;
4
+
5
+ import sh.calaba.org.codehaus.jackson.JsonGenerator;
6
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
7
+
8
+ /**
9
+ * Interface that can be implemented by objects that know how to
10
+ * serialize themselves to JSON, using {@link JsonGenerator}
11
+ * (and {@link SerializerProvider} if necessary).
12
+ *<p>
13
+ * Note that implementing this interface binds implementing object
14
+ * closely to Jackson API, and that it is often not necessary to do
15
+ * so -- if class is a bean, it can be serialized without
16
+ * implementing this interface.
17
+ *<p>
18
+ * NOTE: as of version 1.5, this interface is missing one crucial
19
+ * aspect, that of dealing with type information embedding.
20
+ * Because of this, this interface is deprecated, although will be
21
+ * fully supported for all 1.x releases, and will work except for
22
+ * cases where polymorphic type information handling is needed for
23
+ * type (in which case implementing if {@link JsonSerializableWithType} is crucial).
24
+ *
25
+ * @see sh.calaba.org.codehaus.jackson.map.JsonSerializableWithType
26
+ *
27
+ * @since 1.5
28
+ */
29
+ @Deprecated
30
+ public interface JsonSerializable
31
+ {
32
+ public void serialize(JsonGenerator jgen, SerializerProvider provider)
33
+ throws IOException, JsonProcessingException;
34
+ }
@@ -0,0 +1,22 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import java.io.IOException;
4
+
5
+ import sh.calaba.org.codehaus.jackson.JsonGenerator;
6
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
7
+
8
+ /**
9
+ * Interface that is to replace {@link JsonSerializable} to
10
+ * allow for dynamic type information embedding.
11
+ *
12
+ * @since 1.5
13
+ * @author tatu
14
+ */
15
+ @SuppressWarnings("deprecation")
16
+ public interface JsonSerializableWithType
17
+ extends JsonSerializable
18
+ {
19
+ public void serializeWithType(JsonGenerator jgen, SerializerProvider provider,
20
+ TypeSerializer typeSer)
21
+ throws IOException, JsonProcessingException;
22
+ }
@@ -0,0 +1,138 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import java.io.IOException;
4
+
5
+ import sh.calaba.org.codehaus.jackson.JsonGenerator;
6
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
7
+
8
+ /**
9
+ * Abstract class that defines API used by {@link ObjectMapper} (and
10
+ * other chained {@link JsonSerializer}s too) to serialize Objects of
11
+ * arbitrary types into JSON, using provided {@link JsonGenerator}.
12
+ *<p>
13
+ * NOTE: it is recommended that custom serializers extend
14
+ * {@link sh.calaba.org.codehaus.jackson.map.ser.std.SerializerBase} instead
15
+ * of this class, since it will implement many of optional
16
+ * methods of this class.
17
+ */
18
+ public abstract class JsonSerializer<T>
19
+ {
20
+ /*
21
+ /**********************************************************
22
+ /* Fluent factory methods for constructing decorated versions
23
+ /**********************************************************
24
+ */
25
+
26
+ /**
27
+ * Method that will return serializer instance that produces
28
+ * "unwrapped" serialization, if applicable for type being
29
+ * serialized (which is the case for some serializers
30
+ * that produce JSON Objects as output).
31
+ * If no unwrapped serializer can be constructed, will simply
32
+ * return serializer as-is.
33
+ *<p>
34
+ * Default implementation just returns serializer as-is,
35
+ * indicating that no unwrapped variant exists
36
+ *
37
+ * @since 1.9
38
+ */
39
+ public JsonSerializer<T> unwrappingSerializer() {
40
+ return this;
41
+ }
42
+
43
+ /**
44
+ * Accessor for checking whether this serializer is an
45
+ * "unwrapping" serializer; this is necessary to know since
46
+ * it may also require caller to suppress writing of the
47
+ * leading property name.
48
+ *
49
+ * @since 1.9
50
+ */
51
+ public boolean isUnwrappingSerializer() {
52
+ return false;
53
+ }
54
+
55
+ /*
56
+ /**********************************************************
57
+ /* Serialization methods
58
+ /**********************************************************
59
+ */
60
+
61
+ /**
62
+ * Method that can be called to ask implementation to serialize
63
+ * values of type this serializer handles.
64
+ *
65
+ * @param value Value to serialize; can <b>not</b> be null.
66
+ * @param jgen Generator used to output resulting Json content
67
+ * @param provider Provider that can be used to get serializers for
68
+ * serializing Objects value contains, if any.
69
+ */
70
+ public abstract void serialize(T value, JsonGenerator jgen, SerializerProvider provider)
71
+ throws IOException, JsonProcessingException;
72
+
73
+ /**
74
+ * Method that can be called to ask implementation to serialize
75
+ * values of type this serializer handles, using specified type serializer
76
+ * for embedding necessary type information.
77
+ *<p>
78
+ * Default implementation will ignore serialization of type information,
79
+ * and just calls {@link #serialize}: serializers that can embed
80
+ * type information should override this to implement actual handling.
81
+ * Most common such handling is done by something like:
82
+ *<pre>
83
+ * // note: method to call depends on whether this type is serialized as JSON scalar, object or Array!
84
+ * typeSer.writeTypePrefixForScalar(value, jgen);
85
+ * serialize(value, jgen, provider);
86
+ * typeSer.writeTypeSuffixForScalar(value, jgen);
87
+ *</pre>
88
+ *
89
+ * @param value Value to serialize; can <b>not</b> be null.
90
+ * @param jgen Generator used to output resulting Json content
91
+ * @param provider Provider that can be used to get serializers for
92
+ * serializing Objects value contains, if any.
93
+ * @param typeSer Type serializer to use for including type information
94
+ *
95
+ * @since 1.5
96
+ */
97
+ public void serializeWithType(T value, JsonGenerator jgen, SerializerProvider provider,
98
+ TypeSerializer typeSer)
99
+ throws IOException, JsonProcessingException
100
+ {
101
+ serialize(value, jgen, provider);
102
+ }
103
+
104
+ /*
105
+ /**********************************************************
106
+ /* Introspection methods needed for type handling
107
+ /**********************************************************
108
+ */
109
+
110
+ /**
111
+ * Method for accessing type of Objects this serializer can handle.
112
+ * Note that this information is not guaranteed to be exact -- it
113
+ * may be a more generic (super-type) -- but it should not be
114
+ * incorrect (return a non-related type).
115
+ *<p>
116
+ * Default implementation will return null, which essentially means
117
+ * same as returning <code>Object.class</code> would; that is, that
118
+ * nothing is known about handled type.
119
+ *<p>
120
+ */
121
+ public Class<T> handledType() { return null; }
122
+
123
+ /*
124
+ /**********************************************************
125
+ /* Helper class(es)
126
+ /**********************************************************
127
+ */
128
+
129
+ /**
130
+ * This marker class is only to be used with annotations, to
131
+ * indicate that <b>no serializer is configured</b>.
132
+ *<p>
133
+ * Specifically, this class is to be used as the marker for
134
+ * annotation {@link sh.calaba.org.codehaus.jackson.map.annotate.JsonSerialize}.
135
+ */
136
+ public abstract static class None
137
+ extends JsonSerializer<Object> { }
138
+ }
@@ -0,0 +1,31 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import java.io.IOException;
4
+
5
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
6
+
7
+ /**
8
+ * Abstract class that defines API used for deserializing JSON content
9
+ * field names into Java Map keys. These deserializers are only used
10
+ * if the Map key class is not <code>String</code> or <code>Object</code>.
11
+ */
12
+ public abstract class KeyDeserializer
13
+ {
14
+ /**
15
+ * Method called to deserialize a {@link java.util.Map} key from JSON property name.
16
+ */
17
+ public abstract Object deserializeKey(String key, DeserializationContext ctxt)
18
+ throws IOException, JsonProcessingException;
19
+
20
+ /**
21
+ * This marker class is only to be used with annotations, to
22
+ * indicate that <b>no deserializer is configured</b>.
23
+ *<p>
24
+ * Specifically, this class is to be used as the marker for
25
+ * annotation {@link sh.calaba.org.codehaus.jackson.map.annotate.JsonDeserialize}.
26
+ *
27
+ * @since 1.3
28
+ */
29
+ public abstract static class None
30
+ extends KeyDeserializer { }
31
+ }
@@ -0,0 +1,21 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
4
+
5
+ /**
6
+ * Interface that defines API for simple extensions that can provide additional deserializers
7
+ * for deserializer Map keys of various types, from JSON property names.
8
+ * Access is by a single callback method; instance is to either return
9
+ * a configured {@link KeyDeserializer} for specified type, or null to indicate that it
10
+ * does not support handling of the type. In latter case, further calls can be made
11
+ * for other providers; in former case returned key deserializer is used for handling of
12
+ * key instances of specified type.
13
+ *
14
+ * @since 1.8
15
+ */
16
+ public interface KeyDeserializers
17
+ {
18
+ public KeyDeserializer findKeyDeserializer(JavaType type, DeserializationConfig config,
19
+ BeanDescription beanDesc, BeanProperty property)
20
+ throws JsonMappingException;
21
+ }
@@ -0,0 +1,1154 @@
1
+ package sh.calaba.org.codehaus.jackson.map;
2
+
3
+ import java.text.DateFormat;
4
+ import java.util.HashMap;
5
+ import java.util.Map;
6
+
7
+ import sh.calaba.org.codehaus.jackson.annotate.JsonAutoDetect;
8
+ import sh.calaba.org.codehaus.jackson.annotate.JsonMethod;
9
+ import sh.calaba.org.codehaus.jackson.map.introspect.Annotated;
10
+ import sh.calaba.org.codehaus.jackson.map.introspect.VisibilityChecker;
11
+ import sh.calaba.org.codehaus.jackson.map.jsontype.SubtypeResolver;
12
+ import sh.calaba.org.codehaus.jackson.map.jsontype.TypeIdResolver;
13
+ import sh.calaba.org.codehaus.jackson.map.jsontype.TypeResolverBuilder;
14
+ import sh.calaba.org.codehaus.jackson.map.jsontype.impl.StdSubtypeResolver;
15
+ import sh.calaba.org.codehaus.jackson.map.type.ClassKey;
16
+ import sh.calaba.org.codehaus.jackson.map.type.TypeBindings;
17
+ import sh.calaba.org.codehaus.jackson.map.type.TypeFactory;
18
+ import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
19
+ import sh.calaba.org.codehaus.jackson.map.util.StdDateFormat;
20
+ import sh.calaba.org.codehaus.jackson.type.JavaType;
21
+ import sh.calaba.org.codehaus.jackson.type.TypeReference;
22
+
23
+ /**
24
+ * Interface that defines functionality accessible through both
25
+ * serialization and deserialization configuration objects;
26
+ * accessors to mode-independent configuration settings
27
+ * and such.
28
+ *<p>
29
+ * As of version 1.9, the goal is to make this class eventually immutable.
30
+ * Because of this, existing methods that allow changing state of this
31
+ * instance are deprecated in favor of methods that create new instances
32
+ * with different configuration ("fluent factories").
33
+ * One major remaining issue is that of handling mix-in annotations, which
34
+ * still represent a bit of mutable state; may need to implement a
35
+ * functional-style immutable map for storing those.
36
+ *
37
+ * @since 1.2 -- major change in 1.8, changed from interface to
38
+ * abstract class
39
+ */
40
+ public abstract class MapperConfig<T extends MapperConfig<T>>
41
+ implements ClassIntrospector.MixInResolver
42
+ {
43
+ /*
44
+ /**********************************************************
45
+ /* Constants, default values
46
+ /**********************************************************
47
+ */
48
+
49
+ /**
50
+ * This is the default {@link DateFormat} used unless overridden by
51
+ * custom implementation.
52
+ */
53
+ protected final static DateFormat DEFAULT_DATE_FORMAT = StdDateFormat.instance;
54
+
55
+ /*
56
+ /**********************************************************
57
+ /* Simple immutable basic settings
58
+ /**********************************************************
59
+ */
60
+
61
+ /**
62
+ * Immutable container object for simple configuration settings.
63
+ *<p>
64
+ * Note: ideally this would be final, but until we can eliminate
65
+ * mutators, must keep it mutable.
66
+ */
67
+ protected Base _base;
68
+
69
+ /*
70
+ /**********************************************************
71
+ /* Mix-in annotations
72
+ /**********************************************************
73
+ */
74
+
75
+ /**
76
+ * Mapping that defines how to apply mix-in annotations: key is
77
+ * the type to received additional annotations, and value is the
78
+ * type that has annotations to "mix in".
79
+ *<p>
80
+ * Annotations associated with the value classes will be used to
81
+ * override annotations of the key class, associated with the
82
+ * same field or method. They can be further masked by sub-classes:
83
+ * you can think of it as injecting annotations between the target
84
+ * class and its sub-classes (or interfaces)
85
+ *
86
+ * @since 1.2
87
+ */
88
+ protected HashMap<ClassKey,Class<?>> _mixInAnnotations;
89
+
90
+ /**
91
+ * Flag used to detect when a copy if mix-in annotations is
92
+ * needed: set when current copy is shared, cleared when a
93
+ * fresh copy is made
94
+ *
95
+ * @since 1.2
96
+ */
97
+ protected boolean _mixInAnnotationsShared;
98
+
99
+ /*
100
+ /**********************************************************
101
+ /* "Late bound" settings
102
+ /**********************************************************
103
+ */
104
+
105
+ /**
106
+ * Registered concrete subtypes that can be used instead of (or
107
+ * in addition to) ones declared using annotations.
108
+ * Unlike most other settings, it is not configured as early
109
+ * as it is set, but rather only when a non-shared instance
110
+ * is constructed by <code>ObjectMapper</code> (or -Reader
111
+ * or -Writer)
112
+ *<p>
113
+ * Note: this is the only property left as non-final, to allow
114
+ * lazy construction of the instance as necessary.
115
+ *
116
+ * @since 1.6
117
+ */
118
+ protected SubtypeResolver _subtypeResolver;
119
+
120
+ /*
121
+ /**********************************************************
122
+ /* Life-cycle: constructors
123
+ /**********************************************************
124
+ */
125
+
126
+ protected MapperConfig(ClassIntrospector<? extends BeanDescription> ci, AnnotationIntrospector ai,
127
+ VisibilityChecker<?> vc, SubtypeResolver str, PropertyNamingStrategy pns, TypeFactory tf,
128
+ HandlerInstantiator hi)
129
+ {
130
+ _base = new Base(ci, ai, vc, pns, tf, null, DEFAULT_DATE_FORMAT, hi);
131
+ _subtypeResolver = str;
132
+ // by default, assumed to be shared; only cleared when explicit copy is made
133
+ _mixInAnnotationsShared = true;
134
+ }
135
+
136
+ /**
137
+ * Simple copy constructor
138
+ *
139
+ * @since 1.8
140
+ */
141
+ protected MapperConfig(MapperConfig<T> src) {
142
+ this(src, src._base, src._subtypeResolver);
143
+ }
144
+
145
+ /**
146
+ * @since 1.8
147
+ */
148
+ protected MapperConfig(MapperConfig<T> src, MapperConfig.Base base, SubtypeResolver str)
149
+ {
150
+ _base = base;
151
+ _subtypeResolver = str;
152
+ // by default, assumed to be shared; only cleared when explicit copy is made
153
+ _mixInAnnotationsShared = true;
154
+ _mixInAnnotations = src._mixInAnnotations;
155
+ }
156
+
157
+ /*
158
+ /**********************************************************
159
+ /* Life-cycle: factory methods
160
+ /**********************************************************
161
+ */
162
+
163
+ /**
164
+ * Method that checks class annotations that the argument Object has,
165
+ * and modifies settings of this configuration object accordingly,
166
+ * similar to how those annotations would affect actual value classes
167
+ * annotated with them, but with global scope. Note that not all
168
+ * annotations have global significance, and thus only subset of
169
+ * Jackson annotations will have any effect.
170
+ *
171
+ * @deprecated Since 1.9, it is preferably to explicitly configure
172
+ * instances; this method also modifies existing instance which is
173
+ * against immutable design goals of this class.
174
+ */
175
+ @Deprecated
176
+ public abstract void fromAnnotations(Class<?> cls);
177
+
178
+ /**
179
+ * Method to use for constructing an instance that is not shared
180
+ * between multiple operations but only used for a single one
181
+ * (which may be this instance, if it is immutable; if not, a copy
182
+ * is constructed with same settings)
183
+ *
184
+ * @since 1.8
185
+ */
186
+ public abstract T createUnshared(SubtypeResolver subtypeResolver);
187
+
188
+ /**
189
+ * Method for constructing and returning a new instance with different
190
+ * {@link ClassIntrospector}
191
+ * to use.
192
+ *<p>
193
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
194
+ * if directly calling this method.
195
+ *
196
+ * @since 1.8
197
+ */
198
+ public abstract T withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci);
199
+
200
+ /**
201
+ * Method for constructing and returning a new instance with different
202
+ * {@link AnnotationIntrospector} to use (replacing old one).
203
+ *<p>
204
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
205
+ * if directly calling this method.
206
+ *
207
+ * @since 1.8
208
+ */
209
+ public abstract T withAnnotationIntrospector(AnnotationIntrospector ai);
210
+
211
+ /**
212
+ * Method for constructing and returning a new instance with different
213
+ * {@link VisibilityChecker}
214
+ * to use.
215
+ *<p>
216
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
217
+ * if directly calling this method.
218
+ *
219
+ * @since 1.8
220
+ */
221
+ public abstract T withVisibilityChecker(VisibilityChecker<?> vc);
222
+
223
+ /**
224
+ * Method for constructing and returning a new instance with different
225
+ * minimal visibility level for specified property type
226
+ *<p>
227
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
228
+ * if directly calling this method.
229
+ *
230
+ * @since 1.9
231
+ */
232
+ public abstract T withVisibility(JsonMethod forMethod, JsonAutoDetect.Visibility visibility);
233
+
234
+ /**
235
+ * Method for constructing and returning a new instance with different
236
+ * {@link TypeResolverBuilder}
237
+ * to use.
238
+ *<p>
239
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
240
+ * if directly calling this method.
241
+ *
242
+ * @since 1.8
243
+ */
244
+ public abstract T withTypeResolverBuilder(TypeResolverBuilder<?> trb);
245
+
246
+ /**
247
+ * Method for constructing and returning a new instance with different
248
+ * {@link SubtypeResolver}
249
+ * to use.
250
+ *<p>
251
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
252
+ * if directly calling this method.
253
+ *
254
+ * @since 1.8
255
+ */
256
+ public abstract T withSubtypeResolver(SubtypeResolver str);
257
+
258
+ /**
259
+ * Method for constructing and returning a new instance with different
260
+ * {@link PropertyNamingStrategy}
261
+ * to use.
262
+ *<p>
263
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
264
+ * if directly calling this method.
265
+ *
266
+ * @since 1.8
267
+ */
268
+ public abstract T withPropertyNamingStrategy(PropertyNamingStrategy strategy);
269
+
270
+ /**
271
+ * Method for constructing and returning a new instance with different
272
+ * {@link TypeFactory}
273
+ * to use.
274
+ *<p>
275
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
276
+ * if directly calling this method.
277
+ *
278
+ * @since 1.8
279
+ */
280
+ public abstract T withTypeFactory(TypeFactory typeFactory);
281
+
282
+ /**
283
+ * Method for constructing and returning a new instance with different
284
+ * {@link DateFormat}
285
+ * to use.
286
+ *<p>
287
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
288
+ * if directly calling this method.
289
+ *
290
+ * @since 1.8
291
+ */
292
+ public abstract T withDateFormat(DateFormat df);
293
+
294
+ /**
295
+ * Method for constructing and returning a new instance with different
296
+ * {@link HandlerInstantiator}
297
+ * to use.
298
+ *<p>
299
+ * NOTE: make sure to register new instance with <code>ObjectMapper</code>
300
+ * if directly calling this method.
301
+ *
302
+ * @since 1.8
303
+ */
304
+ public abstract T withHandlerInstantiator(HandlerInstantiator hi);
305
+
306
+ /**
307
+ * Method for constructing and returning a new instance with additional
308
+ * {@link AnnotationIntrospector} inserted (as the highest priority one)
309
+ *
310
+ * @since 1.9
311
+ */
312
+ public abstract T withInsertedAnnotationIntrospector(AnnotationIntrospector introspector);
313
+
314
+ /**
315
+ * Method for constructing and returning a new instance with additional
316
+ * {@link AnnotationIntrospector} appended (as the lowest priority one)
317
+ *
318
+ * @since 1.9
319
+ */
320
+ public abstract T withAppendedAnnotationIntrospector(AnnotationIntrospector introspector);
321
+
322
+ /*
323
+ /**********************************************************
324
+ /* Configuration: simple features
325
+ /**********************************************************
326
+ */
327
+
328
+ /**
329
+ * Method for checking whether given feature is enabled or not
330
+ */
331
+ public abstract boolean isEnabled(ConfigFeature f);
332
+
333
+ /**
334
+ * Method for determining whether annotation processing is enabled or not
335
+ * (default settings are typically that it is enabled; must explicitly disable).
336
+ *
337
+ * @return True if annotation processing is enabled; false if not
338
+ *
339
+ * @since 1.8
340
+ */
341
+ public abstract boolean isAnnotationProcessingEnabled();
342
+
343
+ /**
344
+ * Accessor for determining whether it is ok to try to force override of access
345
+ * modifiers to be able to get or set values of non-public Methods, Fields;
346
+ * to invoke non-public Constructors, Methods; or to instantiate non-public
347
+ * Classes. By default this is enabled, but on some platforms it needs to be
348
+ * prevented since if this would violate security constraints and cause failures.
349
+ *
350
+ * @return True if access modifier overriding is allowed (and may be done for
351
+ * any Field, Method, Constructor or Class); false to prevent any attempts
352
+ * to override.
353
+ *
354
+ * @since 1.8
355
+ */
356
+ public abstract boolean canOverrideAccessModifiers();
357
+
358
+ /**
359
+ * Accessor for checking whether default settings for property handling
360
+ * indicate that properties should be alphabetically ordered or not.
361
+ *
362
+ * @since 1.9
363
+ */
364
+ public abstract boolean shouldSortPropertiesAlphabetically();
365
+
366
+ /*
367
+ /**********************************************************
368
+ /* Configuration: introspectors, mix-ins
369
+ /**********************************************************
370
+ */
371
+
372
+ public ClassIntrospector<? extends BeanDescription> getClassIntrospector() {
373
+ return _base.getClassIntrospector();
374
+ }
375
+
376
+ /**
377
+ * Method for getting {@link AnnotationIntrospector} configured
378
+ * to introspect annotation values used for configuration.
379
+ *<p>
380
+ * Non-final since it is actually overridden by sub-classes (for now?)
381
+ */
382
+ public AnnotationIntrospector getAnnotationIntrospector() {
383
+ return _base.getAnnotationIntrospector();
384
+ }
385
+
386
+ /**
387
+ * Method for registering specified {@link AnnotationIntrospector} as the highest
388
+ * priority introspector (will be chained with existing introspector(s) which
389
+ * will be used as fallbacks for cases this introspector does not handle)
390
+ *
391
+ * @param introspector Annotation introspector to register.
392
+ *
393
+ * @since 1.7
394
+ *
395
+ * @deprecated Since 1.9 use {@link #withInsertedAnnotationIntrospector(AnnotationIntrospector)} instead;
396
+ * this method is deprecated as it changes state, preventing immutability of instances
397
+ */
398
+ @Deprecated
399
+ public final void insertAnnotationIntrospector(AnnotationIntrospector introspector) {
400
+ _base = _base.withAnnotationIntrospector(AnnotationIntrospector.Pair.create(introspector,
401
+ getAnnotationIntrospector()));
402
+ }
403
+
404
+ /**
405
+ * Method for registering specified {@link AnnotationIntrospector} as the lowest
406
+ * priority introspector, chained with existing introspector(s) and called
407
+ * as fallback for cases not otherwise handled.
408
+ *
409
+ * @param introspector Annotation introspector to register.
410
+ *
411
+ * @since 1.7
412
+ *
413
+ * @deprecated Since 1.9 use {@link #withAppendedAnnotationIntrospector(AnnotationIntrospector)} instead;
414
+ * this method is deprecated as it changes state, preventing immutability of instances
415
+ */
416
+ @Deprecated
417
+ public final void appendAnnotationIntrospector(AnnotationIntrospector introspector) {
418
+ _base = _base.withAnnotationIntrospector(AnnotationIntrospector.Pair.create(getAnnotationIntrospector(),
419
+ introspector));
420
+ }
421
+
422
+ /**
423
+ * Accessor for object used for determining whether specific property elements
424
+ * (method, constructors, fields) can be auto-detected based on
425
+ * their visibility (access modifiers). Can be changed to allow
426
+ * different minimum visibility levels for auto-detection. Note
427
+ * that this is the global handler; individual types (classes)
428
+ * can further override active checker used (using
429
+ * {@link JsonAutoDetect} annotation)
430
+ *
431
+ * @since 1.5
432
+ */
433
+ public VisibilityChecker<?> getDefaultVisibilityChecker() {
434
+ return _base.getVisibilityChecker();
435
+ }
436
+
437
+ /**
438
+ * @since 1.8
439
+ */
440
+ public final PropertyNamingStrategy getPropertyNamingStrategy() {
441
+ return _base.getPropertyNamingStrategy();
442
+ }
443
+
444
+ /**
445
+ * @since 1.8
446
+ */
447
+ public final HandlerInstantiator getHandlerInstantiator() {
448
+ return _base.getHandlerInstantiator();
449
+ }
450
+
451
+ /*
452
+ /**********************************************************
453
+ /* Configuration: mix-in annotations
454
+ /**********************************************************
455
+ */
456
+
457
+ /**
458
+ * Method to use for defining mix-in annotations to use for augmenting
459
+ * annotations that processable (serializable / deserializable)
460
+ * classes have.
461
+ * Mixing in is done when introspecting class annotations and properties.
462
+ * Map passed contains keys that are target classes (ones to augment
463
+ * with new annotation overrides), and values that are source classes
464
+ * (have annotations to use for augmentation).
465
+ * Annotations from source classes (and their supertypes)
466
+ * will <b>override</b>
467
+ * annotations that target classes (and their super-types) have.
468
+ *
469
+ * @since 1.2
470
+ */
471
+ public final void setMixInAnnotations(Map<Class<?>, Class<?>> sourceMixins)
472
+ {
473
+ HashMap<ClassKey,Class<?>> mixins = null;
474
+ if (sourceMixins != null && sourceMixins.size() > 0) {
475
+ mixins = new HashMap<ClassKey,Class<?>>(sourceMixins.size());
476
+ for (Map.Entry<Class<?>,Class<?>> en : sourceMixins.entrySet()) {
477
+ mixins.put(new ClassKey(en.getKey()), en.getValue());
478
+ }
479
+ }
480
+ _mixInAnnotationsShared = false;
481
+ _mixInAnnotations = mixins;
482
+ }
483
+
484
+ /**
485
+ * Method to use for adding mix-in annotations to use for augmenting
486
+ * specified class or interface. All annotations from
487
+ * <code>mixinSource</code> are taken to override annotations
488
+ * that <code>target</code> (or its supertypes) has.
489
+ *
490
+ * @since 1.2
491
+ *
492
+ * @param target Class (or interface) whose annotations to effectively override
493
+ * @param mixinSource Class (or interface) whose annotations are to
494
+ * be "added" to target's annotations, overriding as necessary
495
+ */
496
+ public final void addMixInAnnotations(Class<?> target, Class<?> mixinSource)
497
+ {
498
+ if (_mixInAnnotations == null) {
499
+ _mixInAnnotationsShared = false;
500
+ _mixInAnnotations = new HashMap<ClassKey,Class<?>>();
501
+ } else if (_mixInAnnotationsShared) {
502
+ _mixInAnnotationsShared = false;
503
+ _mixInAnnotations = new HashMap<ClassKey,Class<?>>(_mixInAnnotations);
504
+ }
505
+ _mixInAnnotations.put(new ClassKey(target), mixinSource);
506
+ }
507
+
508
+ // ClassIntrospector.MixInResolver impl:
509
+
510
+ /**
511
+ * Method that will check if there are "mix-in" classes (with mix-in
512
+ * annotations) for given class
513
+ *
514
+ * @since 1.2
515
+ */
516
+ @Override
517
+ public final Class<?> findMixInClassFor(Class<?> cls) {
518
+ return (_mixInAnnotations == null) ? null : _mixInAnnotations.get(new ClassKey(cls));
519
+ }
520
+
521
+ /**
522
+ * @since 1.8.1
523
+ */
524
+ public final int mixInCount() {
525
+ return (_mixInAnnotations == null) ? 0 : _mixInAnnotations.size();
526
+ }
527
+
528
+ /*
529
+ /**********************************************************
530
+ /* Configuration: type and subtype handling
531
+ /**********************************************************
532
+ */
533
+
534
+ /**
535
+ * Method called to locate a type info handler for types that do not have
536
+ * one explicitly declared via annotations (or other configuration).
537
+ * If such default handler is configured, it is returned; otherwise
538
+ * null is returned.
539
+ *
540
+ * @since 1.5
541
+ */
542
+ public final TypeResolverBuilder<?> getDefaultTyper(JavaType baseType) {
543
+ return _base.getTypeResolverBuilder();
544
+ }
545
+
546
+ /**
547
+ * Accessor for object used for finding out all reachable subtypes
548
+ * for supertypes; needed when a logical type name is used instead
549
+ * of class name (or custom scheme).
550
+ *
551
+ * @since 1.6
552
+ */
553
+ public final SubtypeResolver getSubtypeResolver() {
554
+ if (_subtypeResolver == null) {
555
+ _subtypeResolver = new StdSubtypeResolver();
556
+ }
557
+ return _subtypeResolver;
558
+ }
559
+
560
+ /**
561
+ * @since 1.8
562
+ */
563
+ public final TypeFactory getTypeFactory() {
564
+ return _base.getTypeFactory();
565
+ }
566
+
567
+ /**
568
+ * Helper method that will construct {@link JavaType} for given
569
+ * raw class.
570
+ * This is a simple short-cut for:
571
+ *<pre>
572
+ * getTypeFactory().constructType(cls);
573
+ *</pre>
574
+ *
575
+ * @since 1.8
576
+ */
577
+ public final JavaType constructType(Class<?> cls) {
578
+ return getTypeFactory().constructType(cls, (TypeBindings) null);
579
+ }
580
+
581
+ /**
582
+ * Helper method that will construct {@link JavaType} for given
583
+ * type reference
584
+ * This is a simple short-cut for:
585
+ *<pre>
586
+ * getTypeFactory().constructType(valueTypeRef);
587
+ *</pre>
588
+ *
589
+ * @since 1.9
590
+ */
591
+ public final JavaType constructType(TypeReference<?> valueTypeRef) {
592
+ return getTypeFactory().constructType(valueTypeRef.getType(), (TypeBindings) null);
593
+ }
594
+
595
+ /**
596
+ * @since 1.9.1
597
+ */
598
+ public JavaType constructSpecializedType(JavaType baseType, Class<?> subclass) {
599
+ return getTypeFactory().constructSpecializedType(baseType, subclass);
600
+ }
601
+
602
+ /*
603
+ /**********************************************************
604
+ /* Configuration: other
605
+ /**********************************************************
606
+ */
607
+
608
+ /**
609
+ * Method for accessing currently configured (textual) date format
610
+ * that will be used for reading or writing date values (in case
611
+ * of writing, only if textual output is configured; not if dates
612
+ * are to be serialized as time stamps).
613
+ *<p>
614
+ * Note that typically {@link DateFormat} instances are <b>not thread-safe</b>
615
+ * (at least ones provided by JDK):
616
+ * this means that calling code should clone format instance before
617
+ * using it.
618
+ *<p>
619
+ * This method is usually only called by framework itself, since there
620
+ * are convenience methods available via
621
+ * {@link DeserializationContext} and {@link SerializerProvider} that
622
+ * take care of cloning and thread-safe reuse.
623
+ */
624
+ public final DateFormat getDateFormat() { return _base.getDateFormat(); }
625
+
626
+ /**
627
+ * Accessor for getting bean description that only contains class
628
+ * annotations: useful if no getter/setter/creator information is needed.
629
+ *
630
+ * @since 1.7
631
+ */
632
+ @SuppressWarnings("unchecked")
633
+ public <DESC extends BeanDescription> DESC introspectClassAnnotations(Class<?> cls) {
634
+ return (DESC) introspectClassAnnotations(constructType(cls));
635
+ }
636
+
637
+ /**
638
+ * Accessor for getting bean description that only contains class
639
+ * annotations: useful if no getter/setter/creator information is needed.
640
+ *
641
+ * @since 1.9
642
+ */
643
+ public abstract <DESC extends BeanDescription> DESC introspectClassAnnotations(JavaType type);
644
+
645
+ /**
646
+ * Accessor for getting bean description that only contains immediate class
647
+ * annotations: ones from the class, and its direct mix-in, if any, but
648
+ * not from super types.
649
+ *
650
+ * @since 1.7
651
+ */
652
+ @SuppressWarnings("unchecked")
653
+ public <DESC extends BeanDescription> DESC introspectDirectClassAnnotations(Class<?> cls) {
654
+ return (DESC) introspectDirectClassAnnotations(constructType(cls));
655
+ }
656
+ /**
657
+ * Accessor for getting bean description that only contains immediate class
658
+ * annotations: ones from the class, and its direct mix-in, if any, but
659
+ * not from super types.
660
+ */
661
+ public abstract <DESC extends BeanDescription> DESC introspectDirectClassAnnotations(JavaType type);
662
+
663
+ /*
664
+ /**********************************************************
665
+ /* Methods for instantiating handlers
666
+ /**********************************************************
667
+ */
668
+
669
+ /**
670
+ * Method that can be called to obtain an instance of <code>TypeIdResolver</code> of
671
+ * specified type.
672
+ *
673
+ * @since 1.8
674
+ */
675
+ public TypeResolverBuilder<?> typeResolverBuilderInstance(Annotated annotated,
676
+ Class<? extends TypeResolverBuilder<?>> builderClass)
677
+ {
678
+ HandlerInstantiator hi = getHandlerInstantiator();
679
+ if (hi != null) {
680
+ TypeResolverBuilder<?> builder = hi.typeResolverBuilderInstance(this, annotated, builderClass);
681
+ if (builder != null) {
682
+ return builder;
683
+ }
684
+ }
685
+ return (TypeResolverBuilder<?>) ClassUtil.createInstance(builderClass, canOverrideAccessModifiers());
686
+ }
687
+
688
+ /**
689
+ * Method that can be called to obtain an instance of <code>TypeIdResolver</code> of
690
+ * specified type.
691
+ *
692
+ * @since 1.8
693
+ */
694
+ public TypeIdResolver typeIdResolverInstance(Annotated annotated,
695
+ Class<? extends TypeIdResolver> resolverClass)
696
+ {
697
+ HandlerInstantiator hi = getHandlerInstantiator();
698
+ if (hi != null) {
699
+ TypeIdResolver builder = hi.typeIdResolverInstance(this, annotated, resolverClass);
700
+ if (builder != null) {
701
+ return builder;
702
+ }
703
+ }
704
+ return (TypeIdResolver) ClassUtil.createInstance(resolverClass, canOverrideAccessModifiers());
705
+ }
706
+
707
+ /*
708
+ /**********************************************************
709
+ /* Deprecated methods
710
+ /**********************************************************
711
+ */
712
+
713
+ /**
714
+ * Method for replacing existing annotation introspector(s) with specified
715
+ * introspector.
716
+ * Since this method modifies state of configuration object directly, its use
717
+ * is not recommended.
718
+ *
719
+ * @deprecated Since 1.8, use either
720
+ * {@link #withAnnotationIntrospector(AnnotationIntrospector)} or
721
+ * Module API instead
722
+ */
723
+ @Deprecated
724
+ public final void setAnnotationIntrospector(AnnotationIntrospector ai) {
725
+ _base = _base.withAnnotationIntrospector(ai);
726
+ }
727
+
728
+ /**
729
+ * Method that will define specific date format to use for reading/writing
730
+ * Date and Calendar values.
731
+ * If null is passed, will use {@link StdDateFormat}.
732
+ * Instance is used as is, without creating a clone.
733
+ * Format object in use can be accessed using {@link #getDateFormat}.
734
+ *
735
+ * @param df Date format to use, if not null; if null, the default format
736
+ * will be used
737
+ *
738
+ * @deprecated As of version 1.8, it is preferable to call method in
739
+ * {@link ObjectMapper} instead; or construct new instance with
740
+ * {@link #withDateFormat(DateFormat)}
741
+ */
742
+ @Deprecated
743
+ public void setDateFormat(DateFormat df) {
744
+ if (df == null) {
745
+ df = DEFAULT_DATE_FORMAT;
746
+ }
747
+ _base = _base.withDateFormat(df);
748
+ }
749
+
750
+ /*
751
+ /**********************************************************
752
+ /* Helper interface used with simple on/off features
753
+ /**********************************************************
754
+ */
755
+
756
+ /**
757
+ * Interface that actual Feature enumerations used by
758
+ * {@link MapperConfig} implementations must implement.
759
+ * Necessary since enums can not be extended using normal
760
+ * inheritance, but can implement interfaces
761
+ *
762
+ * @since 1.9
763
+ */
764
+ public interface ConfigFeature
765
+ {
766
+ /**
767
+ * Accessor for checking whether this feature is enabled by default.
768
+ */
769
+ public boolean enabledByDefault();
770
+
771
+ /**
772
+ * Returns bit mask for this feature instance
773
+ */
774
+ public int getMask();
775
+ }
776
+
777
+ /*
778
+ /**********************************************************
779
+ /* Helper class to contain basic state needed to implement
780
+ /* MapperConfig.
781
+ /**********************************************************
782
+ */
783
+
784
+ /**
785
+ * Immutable container class used to store simple configuration
786
+ * settings. Since instances are fully immutable, instances can
787
+ * be freely shared and used without synchronization.
788
+ */
789
+ public static class Base
790
+ {
791
+ /*
792
+ /**********************************************************
793
+ /* Configuration settings; introspection, related
794
+ /**********************************************************
795
+ */
796
+
797
+ /**
798
+ * Introspector used to figure out Bean properties needed for bean serialization
799
+ * and deserialization. Overridable so that it is possible to change low-level
800
+ * details of introspection, like adding new annotation types.
801
+ */
802
+ protected final ClassIntrospector<? extends BeanDescription> _classIntrospector;
803
+
804
+ /**
805
+ * Introspector used for accessing annotation value based configuration.
806
+ */
807
+ protected final AnnotationIntrospector _annotationIntrospector;
808
+
809
+ /**
810
+ * Object used for determining whether specific property elements
811
+ * (method, constructors, fields) can be auto-detected based on
812
+ * their visibility (access modifiers). Can be changed to allow
813
+ * different minimum visibility levels for auto-detection. Note
814
+ * that this is the global handler; individual types (classes)
815
+ * can further override active checker used (using
816
+ * {@link JsonAutoDetect} annotation)
817
+ *
818
+ * @since 1.5
819
+ */
820
+ protected final VisibilityChecker<?> _visibilityChecker;
821
+
822
+ /**
823
+ * Custom property naming strategy in use, if any.
824
+ *
825
+ * @since 1.8
826
+ */
827
+ protected final PropertyNamingStrategy _propertyNamingStrategy;
828
+
829
+ /**
830
+ * Specific factory used for creating {@link JavaType} instances;
831
+ * needed to allow modules to add more custom type handling
832
+ * (mostly to support types of non-Java JVM languages)
833
+ */
834
+ protected final TypeFactory _typeFactory;
835
+
836
+ /*
837
+ /**********************************************************
838
+ /* Configuration settings; type resolution
839
+ /**********************************************************
840
+ */
841
+
842
+ /**
843
+ * Type information handler used for "untyped" values (ones declared
844
+ * to have type <code>Object.class</code>)
845
+ *
846
+ * @since 1.5
847
+ */
848
+ protected final TypeResolverBuilder<?> _typeResolverBuilder;
849
+
850
+ /*
851
+ /**********************************************************
852
+ /* Configuration settings; other
853
+ /**********************************************************
854
+ */
855
+
856
+ /**
857
+ * Custom date format to use for de-serialization. If specified, will be
858
+ * used instead of {@link sh.calaba.org.codehaus.jackson.map.util.StdDateFormat}.
859
+ *<p>
860
+ * Note that the configured format object will be cloned once per
861
+ * deserialization process (first time it is needed)
862
+ */
863
+ protected final DateFormat _dateFormat;
864
+
865
+ /**
866
+ * Object used for creating instances of handlers (serializers, deserializers,
867
+ * type and type id resolvers), given class to instantiate. This is typically
868
+ * used to do additional configuration (with dependency injection, for example)
869
+ * beyond simply construction of instances; or to use alternative constructors.
870
+ */
871
+ protected final HandlerInstantiator _handlerInstantiator;
872
+
873
+ /*
874
+ /**********************************************************
875
+ /* Construction
876
+ /**********************************************************
877
+ */
878
+
879
+ public Base(ClassIntrospector<? extends BeanDescription> ci, AnnotationIntrospector ai,
880
+ VisibilityChecker<?> vc, PropertyNamingStrategy pns, TypeFactory tf,
881
+ TypeResolverBuilder<?> typer, DateFormat dateFormat, HandlerInstantiator hi)
882
+ {
883
+ _classIntrospector = ci;
884
+ _annotationIntrospector = ai;
885
+ _visibilityChecker = vc;
886
+ _propertyNamingStrategy = pns;
887
+ _typeFactory = tf;
888
+ _typeResolverBuilder = typer;
889
+ _dateFormat = dateFormat;
890
+ _handlerInstantiator = hi;
891
+ }
892
+
893
+ /*
894
+ /**********************************************************
895
+ /* Factory methods
896
+ /**********************************************************
897
+ */
898
+
899
+ public Base withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci) {
900
+ return new Base(ci, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
901
+ _typeResolverBuilder, _dateFormat, _handlerInstantiator);
902
+ }
903
+
904
+ public Base withAnnotationIntrospector(AnnotationIntrospector ai) {
905
+ return new Base(_classIntrospector, ai, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
906
+ _typeResolverBuilder, _dateFormat, _handlerInstantiator);
907
+ }
908
+
909
+ public Base withInsertedAnnotationIntrospector(AnnotationIntrospector ai) {
910
+ return withAnnotationIntrospector(AnnotationIntrospector.Pair.create(ai, _annotationIntrospector));
911
+ }
912
+
913
+ public Base withAppendedAnnotationIntrospector(AnnotationIntrospector ai) {
914
+ return withAnnotationIntrospector(AnnotationIntrospector.Pair.create(_annotationIntrospector, ai));
915
+ }
916
+
917
+ public Base withVisibilityChecker(VisibilityChecker<?> vc) {
918
+ return new Base(_classIntrospector, _annotationIntrospector, vc, _propertyNamingStrategy, _typeFactory,
919
+ _typeResolverBuilder, _dateFormat, _handlerInstantiator);
920
+ }
921
+
922
+ public Base withVisibility(JsonMethod forMethod, JsonAutoDetect.Visibility visibility) {
923
+ return new Base(_classIntrospector, _annotationIntrospector,
924
+ _visibilityChecker.withVisibility(forMethod, visibility),
925
+ _propertyNamingStrategy, _typeFactory,
926
+ _typeResolverBuilder, _dateFormat, _handlerInstantiator);
927
+ }
928
+
929
+ public Base withPropertyNamingStrategy(PropertyNamingStrategy pns) {
930
+ return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, pns, _typeFactory,
931
+ _typeResolverBuilder, _dateFormat, _handlerInstantiator);
932
+ }
933
+
934
+ public Base withTypeFactory(TypeFactory tf) {
935
+ return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, tf,
936
+ _typeResolverBuilder, _dateFormat, _handlerInstantiator);
937
+ }
938
+
939
+ public Base withTypeResolverBuilder(TypeResolverBuilder<?> typer) {
940
+ return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
941
+ typer, _dateFormat, _handlerInstantiator);
942
+ }
943
+
944
+ public Base withDateFormat(DateFormat df) {
945
+ return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
946
+ _typeResolverBuilder, df, _handlerInstantiator);
947
+ }
948
+
949
+ public Base withHandlerInstantiator(HandlerInstantiator hi) {
950
+ return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
951
+ _typeResolverBuilder, _dateFormat, hi);
952
+ }
953
+
954
+ /*
955
+ /**********************************************************
956
+ /* API
957
+ /**********************************************************
958
+ */
959
+
960
+ public ClassIntrospector<? extends BeanDescription> getClassIntrospector() {
961
+ return _classIntrospector;
962
+ }
963
+
964
+ public AnnotationIntrospector getAnnotationIntrospector() {
965
+ return _annotationIntrospector;
966
+ }
967
+
968
+
969
+ public VisibilityChecker<?> getVisibilityChecker() {
970
+ return _visibilityChecker;
971
+ }
972
+
973
+ public PropertyNamingStrategy getPropertyNamingStrategy() {
974
+ return _propertyNamingStrategy;
975
+ }
976
+
977
+ public TypeFactory getTypeFactory() {
978
+ return _typeFactory;
979
+ }
980
+
981
+ public TypeResolverBuilder<?> getTypeResolverBuilder() {
982
+ return _typeResolverBuilder;
983
+ }
984
+
985
+ public DateFormat getDateFormat() {
986
+ return _dateFormat;
987
+ }
988
+
989
+ public HandlerInstantiator getHandlerInstantiator() {
990
+ return _handlerInstantiator;
991
+ }
992
+ }
993
+
994
+ /*
995
+ /**********************************************************
996
+ /* Basic extension; added to avoid having to change generic
997
+ /* signature of MapperConfig
998
+ /*
999
+ /* NOTE: May be merge in MapperConfig for 2.0, depending
1000
+ /* on how much we value backwards compatibility
1001
+ /**********************************************************
1002
+ */
1003
+
1004
+ static abstract class Impl<CFG extends MapperConfig.ConfigFeature,
1005
+ T extends Impl<CFG,T>>
1006
+ extends MapperConfig<T>
1007
+ {
1008
+ /**
1009
+ *<p>
1010
+ * Note: moved to base class in 1.9; was stored by sub-class earlier
1011
+ */
1012
+ protected int _featureFlags;
1013
+
1014
+ /*
1015
+ /**********************************************************
1016
+ /* Construction
1017
+ /**********************************************************
1018
+ */
1019
+
1020
+ protected Impl(ClassIntrospector<? extends BeanDescription> ci, AnnotationIntrospector ai,
1021
+ VisibilityChecker<?> vc, SubtypeResolver str, PropertyNamingStrategy pns, TypeFactory tf,
1022
+ HandlerInstantiator hi,
1023
+ int defaultFeatures)
1024
+ {
1025
+ super(ci, ai, vc, str, pns, tf, hi);
1026
+ _featureFlags = defaultFeatures;
1027
+ }
1028
+
1029
+ protected Impl(Impl<CFG,T> src) {
1030
+ super(src);
1031
+ _featureFlags = src._featureFlags;
1032
+ }
1033
+
1034
+ protected Impl(Impl<CFG,T> src, int features) {
1035
+ super(src);
1036
+ _featureFlags = features;
1037
+ }
1038
+
1039
+ /**
1040
+ * @since 1.8
1041
+ */
1042
+ protected Impl(Impl<CFG,T> src, MapperConfig.Base base, SubtypeResolver str)
1043
+ {
1044
+ super(src, base, str);
1045
+ _featureFlags = src._featureFlags;
1046
+ }
1047
+
1048
+ /**
1049
+ * Method that calculates bit set (flags) of all features that
1050
+ * are enabled by default.
1051
+ */
1052
+ static <F extends Enum<F> & MapperConfig.ConfigFeature> int collectFeatureDefaults(Class<F> enumClass)
1053
+ {
1054
+ int flags = 0;
1055
+ for (F value : enumClass.getEnumConstants()) {
1056
+ if (value.enabledByDefault()) {
1057
+ flags |= value.getMask();
1058
+ }
1059
+ }
1060
+ return flags;
1061
+ }
1062
+
1063
+ /*
1064
+ /**********************************************************
1065
+ /* Additional fluent-factory methods
1066
+ /**********************************************************
1067
+ */
1068
+
1069
+ /**
1070
+ * Fluent factory method that will construct and return a new configuration
1071
+ * object instance with specified features enabled.
1072
+ *
1073
+ * @since 1.9
1074
+ */
1075
+ public abstract T with(CFG... features);
1076
+
1077
+ /**
1078
+ * Fluent factory method that will construct and return a new configuration
1079
+ * object instance with specified features disabled.
1080
+ *
1081
+ * @since 1.9
1082
+ */
1083
+ public abstract T without(CFG... features);
1084
+
1085
+ /*
1086
+ /**********************************************************
1087
+ /* Configuration: simple features
1088
+ /**********************************************************
1089
+ */
1090
+
1091
+ /* NOTE: this method was added in 1.9, but should be
1092
+ * removed from 2.0 -- overloads do not work nicely with
1093
+ * enums, so we better not try
1094
+ *<p>
1095
+ * Also note that we can NOT use type variable CFG here, because
1096
+ * non-generic base class had to use base type.
1097
+ *
1098
+ * @Deprecated
1099
+ */
1100
+ @Override
1101
+ public boolean isEnabled(MapperConfig.ConfigFeature f) {
1102
+ return (_featureFlags & f.getMask()) != 0;
1103
+ }
1104
+
1105
+ /*
1106
+ /**********************************************************
1107
+ /* Configuration: deprecated methods
1108
+ /**********************************************************
1109
+ */
1110
+
1111
+ /**
1112
+ * Method for enabling specified feature.
1113
+ *
1114
+ * @deprecated Since 1.9, it is preferable to use {@link #with} instead;
1115
+ * this method is deprecated as it modifies current instance instead of
1116
+ * creating a new one (as the goal is to make this class immutable)
1117
+ */
1118
+ @Deprecated
1119
+ public void enable(CFG f) {
1120
+ _featureFlags |= f.getMask();
1121
+ }
1122
+
1123
+ /**
1124
+ * Method for disabling specified feature.
1125
+ *
1126
+ * @deprecated Since 1.9, it is preferable to use {@link #without} instead;
1127
+ * this method is deprecated as it modifies current instance instead of
1128
+ * creating a new one (as the goal is to make this class immutable)
1129
+ */
1130
+ @Deprecated
1131
+ public void disable(CFG f) {
1132
+ _featureFlags &= ~f.getMask();
1133
+ }
1134
+
1135
+ /**
1136
+ * Method for enabling or disabling specified feature.
1137
+ *
1138
+ * @deprecated Since 1.9, it is preferable to use {@link #with} and
1139
+ * {@link #without} methods instead;
1140
+ * this method is deprecated as it modifies current instance instead of
1141
+ * creating a new one (as the goal is to make this class immutable)
1142
+ */
1143
+ @SuppressWarnings("deprecation")
1144
+ @Deprecated
1145
+ public void set(CFG f, boolean state)
1146
+ {
1147
+ if (state) {
1148
+ enable(f);
1149
+ } else {
1150
+ disable(f);
1151
+ }
1152
+ }
1153
+ }
1154
+ }