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,90 @@
1
+ /* Jackson JSON-processor.
2
+ *
3
+ * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi
4
+ *
5
+ * Licensed under the License specified in file LICENSE, included with
6
+ * the source code and binary code bundles.
7
+ * You may not use this file except in compliance with the License.
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+ package sh.calaba.org.codehaus.jackson;
16
+
17
+ /**
18
+ * Container for commonly used Base64 variants.
19
+ *
20
+ * @author Tatu Saloranta
21
+ */
22
+ public final class Base64Variants
23
+ {
24
+ final static String STD_BASE64_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
25
+
26
+ /**
27
+ * This variant is what most people would think of "the standard"
28
+ * Base64 encoding.
29
+ *<p>
30
+ * See <a href="">wikipedia Base64 entry</a> for details.
31
+ *<p>
32
+ * Note that although this can be thought of as the standard variant,
33
+ * it is <b>not</b> the default for Jackson: no-linefeeds alternative
34
+ * is because of JSON requirement of escaping all linefeeds.
35
+ */
36
+ public final static Base64Variant MIME;
37
+ static {
38
+ MIME = new Base64Variant("MIME", STD_BASE64_ALPHABET, true, '=', 76);
39
+ }
40
+
41
+ /**
42
+ * Slightly non-standard modification of {@link #MIME} which does not
43
+ * use linefeeds (max line length set to infinite). Useful when linefeeds
44
+ * wouldn't work well (possibly in attributes), or for minor space savings
45
+ * (save 1 linefeed per 76 data chars, ie. ~1.4% savings).
46
+ */
47
+ public final static Base64Variant MIME_NO_LINEFEEDS;
48
+ static {
49
+ MIME_NO_LINEFEEDS = new Base64Variant(MIME, "MIME-NO-LINEFEEDS", Integer.MAX_VALUE);
50
+ }
51
+
52
+ /**
53
+ * This variant is the one that predates {@link #MIME}: it is otherwise
54
+ * identical, except that it mandates shorter line length.
55
+ */
56
+ public final static Base64Variant PEM = new Base64Variant(MIME, "PEM", true, '=', 64);
57
+
58
+ /**
59
+ * This non-standard variant is usually used when encoded data needs to be
60
+ * passed via URLs (such as part of GET request). It differs from the
61
+ * base {@link #MIME} variant in multiple ways.
62
+ * First, no padding is used: this also means that it generally can not
63
+ * be written in multiple separate but adjacent chunks (which would not
64
+ * be the usual use case in any case). Also, no linefeeds are used (max
65
+ * line length set to infinite). And finally, two characters (plus and
66
+ * slash) that would need quoting in URLs are replaced with more
67
+ * optimal alternatives (hyphen and underscore, respectively).
68
+ */
69
+ public final static Base64Variant MODIFIED_FOR_URL;
70
+ static {
71
+ StringBuffer sb = new StringBuffer(STD_BASE64_ALPHABET);
72
+ // Replace plus with hyphen, slash with underscore (and no padding)
73
+ sb.setCharAt(sb.indexOf("+"), '-');
74
+ sb.setCharAt(sb.indexOf("/"), '_');
75
+ /* And finally, let's not split lines either, wouldn't work too
76
+ * well with URLs
77
+ */
78
+ MODIFIED_FOR_URL = new Base64Variant("MODIFIED-FOR-URL", sb.toString(), false, Base64Variant.PADDING_CHAR_NONE, Integer.MAX_VALUE);
79
+ }
80
+
81
+ /**
82
+ * Method used to get the default variant ("MIME_NO_LINEFEEDS") for cases
83
+ * where caller does not explicitly specify the variant.
84
+ * We will prefer no-linefeed version because linefeeds in JSON values
85
+ * must be escaped, making linefeed-containing variants sub-optimal.
86
+ */
87
+ public static Base64Variant getDefaultVariant() {
88
+ return MIME_NO_LINEFEEDS;
89
+ }
90
+ }
@@ -0,0 +1,29 @@
1
+ package sh.calaba.org.codehaus.jackson;
2
+
3
+ /**
4
+ * Simple tag interface used to mark schema objects that are used by some
5
+ * {@link JsonParser} and {@link JsonGenerator} implementations to further
6
+ * specify structure of expected format.
7
+ * Basic JSON-based parsers and generators do not use schemas, but some data
8
+ * formats (like many binary data formats like Thrift, protobuf) mandate
9
+ * use of schemas.
10
+ *<p>
11
+ * Since there is little commonality between schemas for different data formats,
12
+ * this interface does not define much meaningful functionality for accessing
13
+ * schema details; rather, specific parser and generator implementations need
14
+ * to cast to schema implementations they use. This marker interface is mostly
15
+ * used for tagging "some kind of schema" -- instead of passing opaque
16
+ * {@link java.lang.Object} -- for documentation purposes.
17
+ *
18
+ * @since 1.8
19
+ */
20
+ public interface FormatSchema
21
+ {
22
+ /**
23
+ * Method that can be used to get an identifier that can be used for diagnostics
24
+ * purposes, to indicate what kind of data format this schema is used for: typically
25
+ * it is a short name of format itself, but it can also contain additional information
26
+ * in cases where data format supports multiple types of schemas.
27
+ */
28
+ public String getSchemaType();
29
+ }
@@ -0,0 +1,47 @@
1
+ package sh.calaba.org.codehaus.jackson;
2
+
3
+ /**
4
+ * Enumeration that defines legal encodings that can be used
5
+ * for JSON content, based on list of allowed encodings from
6
+ * <a href="http://www.ietf.org/rfc/rfc4627.txt">JSON specification</a>.
7
+ *<p>
8
+ * Note: if application want to explicitly disregard Encoding
9
+ * limitations (to read in JSON encoded using an encoding not
10
+ * listed as allowed), they can use {@link java.io.Reader} /
11
+ * {@link java.io.Writer} instances as input
12
+ */
13
+ public enum JsonEncoding {
14
+ UTF8("UTF-8", false), // N/A for big-endian, really
15
+ UTF16_BE("UTF-16BE", true),
16
+ UTF16_LE("UTF-16LE", false),
17
+ UTF32_BE("UTF-32BE", true),
18
+ UTF32_LE("UTF-32LE", false)
19
+ ;
20
+
21
+ protected final String _javaName;
22
+
23
+ protected final boolean _bigEndian;
24
+
25
+ JsonEncoding(String javaName, boolean bigEndian)
26
+ {
27
+ _javaName = javaName;
28
+ _bigEndian = bigEndian;
29
+ }
30
+
31
+ /**
32
+ * Method for accessing encoding name that JDK will support.
33
+ *
34
+ * @return Matching encoding name that JDK will support.
35
+ */
36
+ public String getJavaName() { return _javaName; }
37
+
38
+ /**
39
+ * Whether encoding is big-endian (if encoding supports such
40
+ * notion). If no such distinction is made (as is the case for
41
+ * {@link #UTF8}), return value is undefined.
42
+ *
43
+ * @return True for big-endian encodings; false for little-endian
44
+ * (or if not applicable)
45
+ */
46
+ public boolean isBigEndian() { return _bigEndian; }
47
+ }
@@ -0,0 +1,937 @@
1
+ /* Jackson JSON-processor.
2
+ *
3
+ * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi
4
+ *
5
+ * Licensed under the License specified in file LICENSE, included with
6
+ * the source code and binary code bundles.
7
+ * You may not use this file except in compliance with the License.
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+ package sh.calaba.org.codehaus.jackson;
16
+
17
+ import java.io.*;
18
+ import java.lang.ref.SoftReference;
19
+ import java.net.URL;
20
+
21
+ import sh.calaba.org.codehaus.jackson.format.InputAccessor;
22
+ import sh.calaba.org.codehaus.jackson.format.MatchStrength;
23
+ import sh.calaba.org.codehaus.jackson.impl.ByteSourceBootstrapper;
24
+ import sh.calaba.org.codehaus.jackson.impl.ReaderBasedParser;
25
+ import sh.calaba.org.codehaus.jackson.impl.Utf8Generator;
26
+ import sh.calaba.org.codehaus.jackson.impl.WriterBasedGenerator;
27
+ import sh.calaba.org.codehaus.jackson.io.*;
28
+ import sh.calaba.org.codehaus.jackson.sym.BytesToNameCanonicalizer;
29
+ import sh.calaba.org.codehaus.jackson.sym.CharsToNameCanonicalizer;
30
+ import sh.calaba.org.codehaus.jackson.util.BufferRecycler;
31
+ import sh.calaba.org.codehaus.jackson.util.VersionUtil;
32
+
33
+ /**
34
+ * The main factory class of Jackson package, used to configure and
35
+ * construct reader (aka parser, {@link JsonParser})
36
+ * and writer (aka generator, {@link JsonGenerator})
37
+ * instances.
38
+ *<p>
39
+ * Factory instances are thread-safe and reusable after configuration
40
+ * (if any). Typically applications and services use only a single
41
+ * globally shared factory instance, unless they need differently
42
+ * configured factories. Factory reuse is important if efficiency matters;
43
+ * most recycling of expensive construct is done on per-factory basis.
44
+ *<p>
45
+ * Creation of a factory instance is a light-weight operation,
46
+ * and since there is no need for pluggable alternative implementations
47
+ * (as there is no "standard" JSON processor API to implement),
48
+ * the default constructor is used for constructing factory
49
+ * instances.
50
+ *
51
+ * @author Tatu Saloranta
52
+ */
53
+ public class JsonFactory implements Versioned
54
+ {
55
+ /**
56
+ * Name used to identify JSON format
57
+ * (and returned by {@link #getFormatName()}
58
+ */
59
+ public final static String FORMAT_NAME_JSON = "JSON";
60
+
61
+ /**
62
+ * Bitfield (set of flags) of all parser features that are enabled
63
+ * by default.
64
+ */
65
+ final static int DEFAULT_PARSER_FEATURE_FLAGS = JsonParser.Feature.collectDefaults();
66
+
67
+ /**
68
+ * Bitfield (set of flags) of all generator features that are enabled
69
+ * by default.
70
+ */
71
+ final static int DEFAULT_GENERATOR_FEATURE_FLAGS = JsonGenerator.Feature.collectDefaults();
72
+
73
+ /*
74
+ /**********************************************************
75
+ /* Buffer, symbol table management
76
+ /**********************************************************
77
+ */
78
+
79
+ /**
80
+ * This <code>ThreadLocal</code> contains a {@link java.lang.ref.SoftRerefence}
81
+ * to a {@link BufferRecycler} used to provide a low-cost
82
+ * buffer recycling between reader and writer instances.
83
+ */
84
+ final protected static ThreadLocal<SoftReference<BufferRecycler>> _recyclerRef
85
+ = new ThreadLocal<SoftReference<BufferRecycler>>();
86
+
87
+ /**
88
+ * Each factory comes equipped with a shared root symbol table.
89
+ * It should not be linked back to the original blueprint, to
90
+ * avoid contents from leaking between factories.
91
+ */
92
+ protected CharsToNameCanonicalizer _rootCharSymbols = CharsToNameCanonicalizer.createRoot();
93
+
94
+ /**
95
+ * Alternative to the basic symbol table, some stream-based
96
+ * parsers use different name canonicalization method.
97
+ *<p>
98
+ * TODO: should clean up this; looks messy having 2 alternatives
99
+ * with not very clear differences.
100
+ */
101
+ protected BytesToNameCanonicalizer _rootByteSymbols = BytesToNameCanonicalizer.createRoot();
102
+
103
+ /*
104
+ /**********************************************************
105
+ /* Configuration
106
+ /**********************************************************
107
+ */
108
+
109
+ /**
110
+ * Object that implements conversion functionality between
111
+ * Java objects and JSON content. For base JsonFactory implementation
112
+ * usually not set by default, but can be explicitly set.
113
+ * Sub-classes (like @link sh.calaba.org.codehaus.jackson.map.MappingJsonFactory}
114
+ * usually provide an implementation.
115
+ */
116
+ protected ObjectCodec _objectCodec;
117
+
118
+ /**
119
+ * Currently enabled parser features.
120
+ */
121
+ protected int _parserFeatures = DEFAULT_PARSER_FEATURE_FLAGS;
122
+
123
+ /**
124
+ * Currently enabled generator features.
125
+ */
126
+ protected int _generatorFeatures = DEFAULT_GENERATOR_FEATURE_FLAGS;
127
+
128
+ /**
129
+ * Definition of custom character escapes to use for generators created
130
+ * by this factory, if any. If null, standard data format specific
131
+ * escapes are used.
132
+ *
133
+ * @since 1.8
134
+ */
135
+ protected CharacterEscapes _characterEscapes;
136
+
137
+ /**
138
+ * Optional helper object that may decorate input sources, to do
139
+ * additional processing on input during parsing.
140
+ *
141
+ * @since 1.8
142
+ */
143
+ protected InputDecorator _inputDecorator;
144
+
145
+ /**
146
+ * Optional helper object that may decorate output object, to do
147
+ * additional processing on output during content generation.
148
+ *
149
+ * @since 1.8
150
+ */
151
+ protected OutputDecorator _outputDecorator;
152
+
153
+ /*
154
+ /**********************************************************
155
+ /* Construction
156
+ /**********************************************************
157
+ */
158
+
159
+ /**
160
+ * Default constructor used to create factory instances.
161
+ * Creation of a factory instance is a light-weight operation,
162
+ * but it is still a good idea to reuse limited number of
163
+ * factory instances (and quite often just a single instance):
164
+ * factories are used as context for storing some reused
165
+ * processing objects (such as symbol tables parsers use)
166
+ * and this reuse only works within context of a single
167
+ * factory instance.
168
+ */
169
+ public JsonFactory() { this(null); }
170
+
171
+ public JsonFactory(ObjectCodec oc) { _objectCodec = oc; }
172
+
173
+ /*
174
+ /**********************************************************
175
+ /* Format detection functionality (since 1.8)
176
+ /**********************************************************
177
+ */
178
+
179
+ /**
180
+ * Method that returns short textual id identifying format
181
+ * this factory supports.
182
+ *<p>
183
+ * Note: sub-classes should override this method; default
184
+ * implementation will return null for all sub-classes
185
+ *
186
+ * @since 1.8
187
+ */
188
+ public String getFormatName()
189
+ {
190
+ /* Somewhat nasty check: since we can't make this abstract
191
+ * (due to backwards compatibility concerns), need to prevent
192
+ * format name "leakage"
193
+ */
194
+ if (getClass() == JsonFactory.class) {
195
+ return FORMAT_NAME_JSON;
196
+ }
197
+ return null;
198
+ }
199
+
200
+ public MatchStrength hasFormat(InputAccessor acc) throws IOException
201
+ {
202
+ // since we can't keep this abstract, only implement for "vanilla" instance
203
+ if (getClass() == JsonFactory.class) {
204
+ return hasJSONFormat(acc);
205
+ }
206
+ return null;
207
+ }
208
+
209
+ protected MatchStrength hasJSONFormat(InputAccessor acc) throws IOException
210
+ {
211
+ return ByteSourceBootstrapper.hasJSONFormat(acc);
212
+ }
213
+
214
+ /*
215
+ /**********************************************************
216
+ /* Versioned
217
+ /**********************************************************
218
+ */
219
+
220
+ @Override
221
+ public Version version() {
222
+ // VERSION is included under impl, so can't pass this class:
223
+ return VersionUtil.versionFor(Utf8Generator.class);
224
+ }
225
+
226
+ /*
227
+ /**********************************************************
228
+ /* Configuration, parser settings
229
+ /**********************************************************
230
+ */
231
+
232
+ /**
233
+ * Method for enabling or disabling specified parser feature
234
+ * (check {@link JsonParser.Feature} for list of features)
235
+ *
236
+ * @since 1.2
237
+ */
238
+ public final JsonFactory configure(JsonParser.Feature f, boolean state)
239
+ {
240
+ if (state) {
241
+ enable(f);
242
+ } else {
243
+ disable(f);
244
+ }
245
+ return this;
246
+ }
247
+
248
+ /**
249
+ * Method for enabling specified parser feature
250
+ * (check {@link JsonParser.Feature} for list of features)
251
+ *
252
+ * @since 1.2
253
+ */
254
+ public JsonFactory enable(JsonParser.Feature f) {
255
+ _parserFeatures |= f.getMask();
256
+ return this;
257
+ }
258
+
259
+ /**
260
+ * Method for disabling specified parser features
261
+ * (check {@link JsonParser.Feature} for list of features)
262
+ *
263
+ * @since 1.2
264
+ */
265
+ public JsonFactory disable(JsonParser.Feature f) {
266
+ _parserFeatures &= ~f.getMask();
267
+ return this;
268
+ }
269
+
270
+ /**
271
+ * Checked whether specified parser feature is enabled.
272
+ *
273
+ * @since 1.2
274
+ */
275
+ public final boolean isEnabled(JsonParser.Feature f) {
276
+ return (_parserFeatures & f.getMask()) != 0;
277
+ }
278
+
279
+ // // // Older deprecated (as of 1.2) methods
280
+
281
+ /**
282
+ * @deprecated Use {@link #enable(JsonParser.Feature)} instead
283
+ */
284
+ @SuppressWarnings("dep-ann")
285
+ public final void enableParserFeature(JsonParser.Feature f) {
286
+ enable(f);
287
+ }
288
+
289
+ /**
290
+ * @deprecated Use {@link #disable(JsonParser.Feature)} instead
291
+ */
292
+ @SuppressWarnings("dep-ann")
293
+ public final void disableParserFeature(JsonParser.Feature f) {
294
+ disable(f);
295
+ }
296
+
297
+ /**
298
+ * @deprecated Use {@link #configure(JsonParser.Feature, boolean)} instead
299
+ */
300
+ @SuppressWarnings("dep-ann")
301
+ public final void setParserFeature(JsonParser.Feature f, boolean state) {
302
+ configure(f, state);
303
+ }
304
+
305
+ /**
306
+ * @deprecated Use {@link #isEnabled(JsonParser.Feature)} instead
307
+ */
308
+ @SuppressWarnings("dep-ann")
309
+ public final boolean isParserFeatureEnabled(JsonParser.Feature f) {
310
+ return (_parserFeatures & f.getMask()) != 0;
311
+ }
312
+
313
+ /**
314
+ * Method for getting currently configured input decorator (if any;
315
+ * there is no default decorator).
316
+ *
317
+ * @since 1.8
318
+ */
319
+ public InputDecorator getInputDecorator() {
320
+ return _inputDecorator;
321
+ }
322
+
323
+ /**
324
+ * Method for overriding currently configured input decorator
325
+ *
326
+ * @since 1.8
327
+ */
328
+ public JsonFactory setInputDecorator(InputDecorator d) {
329
+ _inputDecorator = d;
330
+ return this;
331
+ }
332
+
333
+ /*
334
+ /**********************************************************
335
+ /* Configuration, generator settings
336
+ /**********************************************************
337
+ */
338
+
339
+ /**
340
+ * Method for enabling or disabling specified generator feature
341
+ * (check {@link JsonGenerator.Feature} for list of features)
342
+ *
343
+ * @since 1.2
344
+ */
345
+ public final JsonFactory configure(JsonGenerator.Feature f, boolean state) {
346
+ if (state) {
347
+ enable(f);
348
+ } else {
349
+ disable(f);
350
+ }
351
+ return this;
352
+ }
353
+
354
+
355
+ /**
356
+ * Method for enabling specified generator features
357
+ * (check {@link JsonGenerator.Feature} for list of features)
358
+ *
359
+ * @since 1.2
360
+ */
361
+ public JsonFactory enable(JsonGenerator.Feature f) {
362
+ _generatorFeatures |= f.getMask();
363
+ return this;
364
+ }
365
+
366
+ /**
367
+ * Method for disabling specified generator feature
368
+ * (check {@link JsonGenerator.Feature} for list of features)
369
+ *
370
+ * @since 1.2
371
+ */
372
+ public JsonFactory disable(JsonGenerator.Feature f) {
373
+ _generatorFeatures &= ~f.getMask();
374
+ return this;
375
+ }
376
+
377
+ /**
378
+ * Check whether specified generator feature is enabled.
379
+ *
380
+ * @since 1.2
381
+ */
382
+ public final boolean isEnabled(JsonGenerator.Feature f) {
383
+ return (_generatorFeatures & f.getMask()) != 0;
384
+ }
385
+
386
+ // // // Older deprecated (as of 1.2) methods
387
+
388
+ /**
389
+ * @deprecated Use {@link #enable(JsonGenerator.Feature)} instead
390
+ */
391
+ @Deprecated
392
+ public final void enableGeneratorFeature(JsonGenerator.Feature f) {
393
+ enable(f);
394
+ }
395
+
396
+ /**
397
+ * @deprecated Use {@link #disable(JsonGenerator.Feature)} instead
398
+ */
399
+ @Deprecated
400
+ public final void disableGeneratorFeature(JsonGenerator.Feature f) {
401
+ disable(f);
402
+ }
403
+
404
+ /**
405
+ * @deprecated Use {@link #configure(JsonGenerator.Feature, boolean)} instead
406
+ */
407
+ @Deprecated
408
+ public final void setGeneratorFeature(JsonGenerator.Feature f, boolean state) {
409
+ configure(f, state);
410
+ }
411
+
412
+ /**
413
+ * @deprecated Use {@link #isEnabled(JsonGenerator.Feature)} instead
414
+ */
415
+ @Deprecated
416
+ public final boolean isGeneratorFeatureEnabled(JsonGenerator.Feature f) {
417
+ return isEnabled(f);
418
+ }
419
+
420
+ /**
421
+ * Method for accessing custom escapes factory uses for {@link JsonGenerator}s
422
+ * it creates.
423
+ *
424
+ * @since 1.8
425
+ */
426
+ public CharacterEscapes getCharacterEscapes() {
427
+ return _characterEscapes;
428
+ }
429
+
430
+ /**
431
+ * Method for defining custom escapes factory uses for {@link JsonGenerator}s
432
+ * it creates.
433
+ *
434
+ * @since 1.8
435
+ */
436
+ public JsonFactory setCharacterEscapes(CharacterEscapes esc) {
437
+ _characterEscapes = esc;
438
+ return this;
439
+ }
440
+
441
+ /**
442
+ * Method for getting currently configured output decorator (if any;
443
+ * there is no default decorator).
444
+ *
445
+ * @since 1.8
446
+ */
447
+ public OutputDecorator getOutputDecorator() {
448
+ return _outputDecorator;
449
+ }
450
+
451
+ /**
452
+ * Method for overriding currently configured output decorator
453
+ *
454
+ * @since 1.8
455
+ */
456
+ public JsonFactory setOutputDecorator(OutputDecorator d) {
457
+ _outputDecorator = d;
458
+ return this;
459
+ }
460
+
461
+ /*
462
+ /**********************************************************
463
+ /* Configuration, other
464
+ /**********************************************************
465
+ */
466
+
467
+ /**
468
+ * Method for associating a {@link ObjectCodec} (typically
469
+ * a {@link sh.calaba.org.codehaus.jackson.map.ObjectMapper}) with
470
+ * this factory (and more importantly, parsers and generators
471
+ * it constructs). This is needed to use data-binding methods
472
+ * of {@link JsonParser} and {@link JsonGenerator} instances.
473
+ */
474
+ public JsonFactory setCodec(ObjectCodec oc) {
475
+ _objectCodec = oc;
476
+ return this;
477
+ }
478
+
479
+ public ObjectCodec getCodec() { return _objectCodec; }
480
+
481
+ /*
482
+ /**********************************************************
483
+ /* Reader factories
484
+ /**********************************************************
485
+ */
486
+
487
+ /**
488
+ * Method for constructing JSON parser instance to parse
489
+ * contents of specified file. Encoding is auto-detected
490
+ * from contents according to JSON specification recommended
491
+ * mechanism.
492
+ *<p>
493
+ * Underlying input stream (needed for reading contents)
494
+ * will be <b>owned</b> (and managed, i.e. closed as need be) by
495
+ * the parser, since caller has no access to it.
496
+ *
497
+ * @param f File that contains JSON content to parse
498
+ */
499
+ public JsonParser createJsonParser(File f)
500
+ throws IOException, JsonParseException
501
+ {
502
+ // true, since we create InputStream from File
503
+ IOContext ctxt = _createContext(f, true);
504
+ InputStream in = new FileInputStream(f);
505
+ // [JACKSON-512]: allow wrapping with InputDecorator
506
+ if (_inputDecorator != null) {
507
+ in = _inputDecorator.decorate(ctxt, in);
508
+ }
509
+ return _createJsonParser(in, ctxt);
510
+ }
511
+
512
+ /**
513
+ * Method for constructing JSON parser instance to parse
514
+ * contents of resource reference by given URL.
515
+ * Encoding is auto-detected
516
+ * from contents according to JSON specification recommended
517
+ * mechanism.
518
+ *<p>
519
+ * Underlying input stream (needed for reading contents)
520
+ * will be <b>owned</b> (and managed, i.e. closed as need be) by
521
+ * the parser, since caller has no access to it.
522
+ *
523
+ * @param url URL pointing to resource that contains JSON content to parse
524
+ */
525
+ public JsonParser createJsonParser(URL url)
526
+ throws IOException, JsonParseException
527
+ {
528
+ // true, since we create InputStream from URL
529
+ IOContext ctxt = _createContext(url, true);
530
+ InputStream in = _optimizedStreamFromURL(url);
531
+ // [JACKSON-512]: allow wrapping with InputDecorator
532
+ if (_inputDecorator != null) {
533
+ in = _inputDecorator.decorate(ctxt, in);
534
+ }
535
+ return _createJsonParser(in, ctxt);
536
+ }
537
+
538
+ /**
539
+ * Method for constructing JSON parser instance to parse
540
+ * the contents accessed via specified input stream.
541
+ *<p>
542
+ * The input stream will <b>not be owned</b> by
543
+ * the parser, it will still be managed (i.e. closed if
544
+ * end-of-stream is reacher, or parser close method called)
545
+ * if (and only if) {@link sh.calaba.org.codehaus.jackson.JsonParser.Feature#AUTO_CLOSE_SOURCE}
546
+ * is enabled.
547
+ *<p>
548
+ * Note: no encoding argument is taken since it can always be
549
+ * auto-detected as suggested by Json RFC.
550
+ *
551
+ * @param in InputStream to use for reading JSON content to parse
552
+ */
553
+ public JsonParser createJsonParser(InputStream in)
554
+ throws IOException, JsonParseException
555
+ {
556
+ IOContext ctxt = _createContext(in, false);
557
+ // [JACKSON-512]: allow wrapping with InputDecorator
558
+ if (_inputDecorator != null) {
559
+ in = _inputDecorator.decorate(ctxt, in);
560
+ }
561
+ return _createJsonParser(in, ctxt);
562
+ }
563
+
564
+ /**
565
+ * Method for constructing parser for parsing
566
+ * the contents accessed via specified Reader.
567
+ <p>
568
+ * The read stream will <b>not be owned</b> by
569
+ * the parser, it will still be managed (i.e. closed if
570
+ * end-of-stream is reacher, or parser close method called)
571
+ * if (and only if) {@link sh.calaba.org.codehaus.jackson.JsonParser.Feature#AUTO_CLOSE_SOURCE}
572
+ * is enabled.
573
+ *<p>
574
+ *
575
+ * @param r Reader to use for reading JSON content to parse
576
+ */
577
+ public JsonParser createJsonParser(Reader r)
578
+ throws IOException, JsonParseException
579
+ {
580
+ // false -> we do NOT own Reader (did not create it)
581
+ IOContext ctxt = _createContext(r, false);
582
+ // [JACKSON-512]: allow wrapping with InputDecorator
583
+ if (_inputDecorator != null) {
584
+ r = _inputDecorator.decorate(ctxt, r);
585
+ }
586
+ return _createJsonParser(r, ctxt);
587
+ }
588
+
589
+ /**
590
+ * Method for constructing parser for parsing
591
+ * the contents of given byte array.
592
+ */
593
+ public JsonParser createJsonParser(byte[] data)
594
+ throws IOException, JsonParseException
595
+ {
596
+ IOContext ctxt = _createContext(data, true);
597
+ // [JACKSON-512]: allow wrapping with InputDecorator
598
+ if (_inputDecorator != null) {
599
+ InputStream in = _inputDecorator.decorate(ctxt, data, 0, data.length);
600
+ if (in != null) {
601
+ return _createJsonParser(in, ctxt);
602
+ }
603
+ }
604
+ return _createJsonParser(data, 0, data.length, ctxt);
605
+ }
606
+
607
+ /**
608
+ * Method for constructing parser for parsing
609
+ * the contents of given byte array.
610
+ *
611
+ * @param data Buffer that contains data to parse
612
+ * @param offset Offset of the first data byte within buffer
613
+ * @param len Length of contents to parse within buffer
614
+ */
615
+ public JsonParser createJsonParser(byte[] data, int offset, int len)
616
+ throws IOException, JsonParseException
617
+ {
618
+ IOContext ctxt = _createContext(data, true);
619
+ // [JACKSON-512]: allow wrapping with InputDecorator
620
+ if (_inputDecorator != null) {
621
+ InputStream in = _inputDecorator.decorate(ctxt, data, offset, len);
622
+ if (in != null) {
623
+ return _createJsonParser(in, ctxt);
624
+ }
625
+ }
626
+ return _createJsonParser(data, offset, len, ctxt);
627
+ }
628
+
629
+ /**
630
+ * Method for constructing parser for parsing
631
+ * contens of given String.
632
+ */
633
+ public JsonParser createJsonParser(String content)
634
+ throws IOException, JsonParseException
635
+ {
636
+ Reader r = new StringReader(content);
637
+ // true -> we own the Reader (and must close); not a big deal
638
+ IOContext ctxt = _createContext(r, true);
639
+ // [JACKSON-512]: allow wrapping with InputDecorator
640
+ if (_inputDecorator != null) {
641
+ r = _inputDecorator.decorate(ctxt, r);
642
+ }
643
+ return _createJsonParser(r, ctxt);
644
+ }
645
+
646
+ /*
647
+ /**********************************************************
648
+ /* Generator factories
649
+ /**********************************************************
650
+ */
651
+
652
+ /**
653
+ * Method for constructing JSON generator for writing JSON content
654
+ * using specified output stream.
655
+ * Encoding to use must be specified, and needs to be one of available
656
+ * types (as per JSON specification).
657
+ *<p>
658
+ * Underlying stream <b>is NOT owned</b> by the generator constructed,
659
+ * so that generator will NOT close the output stream when
660
+ * {@link JsonGenerator#close} is called (unless auto-closing
661
+ * feature,
662
+ * {@link sh.calaba.org.codehaus.jackson.JsonGenerator.Feature#AUTO_CLOSE_TARGET}
663
+ * is enabled).
664
+ * Using application needs to close it explicitly if this is the case.
665
+ *<p>
666
+ * Note: there are formats that use fixed encoding (like most binary data formats)
667
+ * and that ignore passed in encoding.
668
+ *
669
+ * @param out OutputStream to use for writing JSON content
670
+ * @param enc Character encoding to use
671
+ */
672
+ public JsonGenerator createJsonGenerator(OutputStream out, JsonEncoding enc)
673
+ throws IOException
674
+ {
675
+ // false -> we won't manage the stream unless explicitly directed to
676
+ IOContext ctxt = _createContext(out, false);
677
+ ctxt.setEncoding(enc);
678
+ if (enc == JsonEncoding.UTF8) {
679
+ // [JACKSON-512]: allow wrapping with _outputDecorator
680
+ if (_outputDecorator != null) {
681
+ out = _outputDecorator.decorate(ctxt, out);
682
+ }
683
+ return _createUTF8JsonGenerator(out, ctxt);
684
+ }
685
+ Writer w = _createWriter(out, enc, ctxt);
686
+ // [JACKSON-512]: allow wrapping with _outputDecorator
687
+ if (_outputDecorator != null) {
688
+ w = _outputDecorator.decorate(ctxt, w);
689
+ }
690
+ return _createJsonGenerator(w, ctxt);
691
+ }
692
+
693
+ /**
694
+ * Method for constructing JSON generator for writing JSON content
695
+ * using specified Writer.
696
+ *<p>
697
+ * Underlying stream <b>is NOT owned</b> by the generator constructed,
698
+ * so that generator will NOT close the Reader when
699
+ * {@link JsonGenerator#close} is called (unless auto-closing
700
+ * feature,
701
+ * {@link sh.calaba.org.codehaus.jackson.JsonGenerator.Feature#AUTO_CLOSE_TARGET} is enabled).
702
+ * Using application needs to close it explicitly.
703
+ *
704
+ * @param out Writer to use for writing JSON content
705
+ */
706
+ public JsonGenerator createJsonGenerator(Writer out)
707
+ throws IOException
708
+ {
709
+ IOContext ctxt = _createContext(out, false);
710
+ // [JACKSON-512]: allow wrapping with _outputDecorator
711
+ if (_outputDecorator != null) {
712
+ out = _outputDecorator.decorate(ctxt, out);
713
+ }
714
+ return _createJsonGenerator(out, ctxt);
715
+ }
716
+
717
+ /**
718
+ * Convenience method for constructing generator that uses default
719
+ * encoding of the format (UTF-8 for JSON and most other data formats).
720
+ *<p>
721
+ * Note: there are formats that use fixed encoding (like most binary data formats).
722
+ *
723
+ * @since 1.8
724
+ */
725
+ public JsonGenerator createJsonGenerator(OutputStream out) throws IOException {
726
+ return createJsonGenerator(out, JsonEncoding.UTF8);
727
+ }
728
+
729
+ /**
730
+ * Method for constructing JSON generator for writing JSON content
731
+ * to specified file, overwriting contents it might have (or creating
732
+ * it if such file does not yet exist).
733
+ * Encoding to use must be specified, and needs to be one of available
734
+ * types (as per JSON specification).
735
+ *<p>
736
+ * Underlying stream <b>is owned</b> by the generator constructed,
737
+ * i.e. generator will handle closing of file when
738
+ * {@link JsonGenerator#close} is called.
739
+ *
740
+ * @param f File to write contents to
741
+ * @param enc Character encoding to use
742
+ */
743
+ public JsonGenerator createJsonGenerator(File f, JsonEncoding enc)
744
+ throws IOException
745
+ {
746
+ OutputStream out = new FileOutputStream(f);
747
+ // true -> yes, we have to manage the stream since we created it
748
+ IOContext ctxt = _createContext(out, true);
749
+ ctxt.setEncoding(enc);
750
+ if (enc == JsonEncoding.UTF8) {
751
+ // [JACKSON-512]: allow wrapping with _outputDecorator
752
+ if (_outputDecorator != null) {
753
+ out = _outputDecorator.decorate(ctxt, out);
754
+ }
755
+ return _createUTF8JsonGenerator(out, ctxt);
756
+ }
757
+ Writer w = _createWriter(out, enc, ctxt);
758
+ // [JACKSON-512]: allow wrapping with _outputDecorator
759
+ if (_outputDecorator != null) {
760
+ w = _outputDecorator.decorate(ctxt, w);
761
+ }
762
+ return _createJsonGenerator(w, ctxt);
763
+ }
764
+
765
+ /*
766
+ /**********************************************************
767
+ /* Factory methods used by factory for creating parser instances,
768
+ /* overridable by sub-classes
769
+ /**********************************************************
770
+ */
771
+
772
+ /**
773
+ * Overridable factory method that actually instantiates desired parser
774
+ * given {@link InputStream} and context object.
775
+ *<p>
776
+ * This method is specifically designed to remain
777
+ * compatible between minor versions so that sub-classes can count
778
+ * on it being called as expected. That is, it is part of official
779
+ * interface from sub-class perspective, although not a public
780
+ * method available to users of factory implementations.
781
+ */
782
+ protected JsonParser _createJsonParser(InputStream in, IOContext ctxt)
783
+ throws IOException, JsonParseException
784
+ {
785
+ return new ByteSourceBootstrapper(ctxt, in).constructParser(_parserFeatures,
786
+ _objectCodec, _rootByteSymbols, _rootCharSymbols);
787
+ }
788
+
789
+ /**
790
+ * Overridable factory method that actually instantiates parser
791
+ * using given {@link Reader} object for reading content.
792
+ *<p>
793
+ * This method is specifically designed to remain
794
+ * compatible between minor versions so that sub-classes can count
795
+ * on it being called as expected. That is, it is part of official
796
+ * interface from sub-class perspective, although not a public
797
+ * method available to users of factory implementations.
798
+ */
799
+ protected JsonParser _createJsonParser(Reader r, IOContext ctxt)
800
+ throws IOException, JsonParseException
801
+ {
802
+ return new ReaderBasedParser(ctxt, _parserFeatures, r, _objectCodec,
803
+ _rootCharSymbols.makeChild(isEnabled(JsonParser.Feature.CANONICALIZE_FIELD_NAMES),
804
+ isEnabled(JsonParser.Feature.INTERN_FIELD_NAMES)));
805
+ }
806
+
807
+ /**
808
+ * Overridable factory method that actually instantiates parser
809
+ * using given {@link Reader} object for reading content
810
+ * passed as raw byte array.
811
+ *<p>
812
+ * This method is specifically designed to remain
813
+ * compatible between minor versions so that sub-classes can count
814
+ * on it being called as expected. That is, it is part of official
815
+ * interface from sub-class perspective, although not a public
816
+ * method available to users of factory implementations.
817
+ */
818
+ protected JsonParser _createJsonParser(byte[] data, int offset, int len, IOContext ctxt)
819
+ throws IOException, JsonParseException
820
+ {
821
+ return new ByteSourceBootstrapper(ctxt, data, offset, len).constructParser(_parserFeatures,
822
+ _objectCodec, _rootByteSymbols, _rootCharSymbols);
823
+ }
824
+
825
+ /*
826
+ /**********************************************************
827
+ /* Factory methods used by factory for creating generator instances,
828
+ /* overridable by sub-classes
829
+ /**********************************************************
830
+ */
831
+
832
+ /**
833
+ * Overridable factory method that actually instantiates generator for
834
+ * given {@link Writer} and context object.
835
+ *<p>
836
+ * This method is specifically designed to remain
837
+ * compatible between minor versions so that sub-classes can count
838
+ * on it being called as expected. That is, it is part of official
839
+ * interface from sub-class perspective, although not a public
840
+ * method available to users of factory implementations.
841
+ */
842
+ protected JsonGenerator _createJsonGenerator(Writer out, IOContext ctxt)
843
+ throws IOException
844
+ {
845
+ WriterBasedGenerator gen = new WriterBasedGenerator(ctxt, _generatorFeatures, _objectCodec, out);
846
+ if (_characterEscapes != null) {
847
+ gen.setCharacterEscapes(_characterEscapes);
848
+ }
849
+ return gen;
850
+ }
851
+
852
+ /**
853
+ * Overridable factory method that actually instantiates generator for
854
+ * given {@link OutputStream} and context object, using UTF-8 encoding.
855
+ *<p>
856
+ * This method is specifically designed to remain
857
+ * compatible between minor versions so that sub-classes can count
858
+ * on it being called as expected. That is, it is part of official
859
+ * interface from sub-class perspective, although not a public
860
+ * method available to users of factory implementations.
861
+ */
862
+ protected JsonGenerator _createUTF8JsonGenerator(OutputStream out, IOContext ctxt)
863
+ throws IOException
864
+ {
865
+ Utf8Generator gen = new Utf8Generator(ctxt, _generatorFeatures, _objectCodec, out);
866
+ if (_characterEscapes != null) {
867
+ gen.setCharacterEscapes(_characterEscapes);
868
+ }
869
+ return gen;
870
+ }
871
+
872
+ protected Writer _createWriter(OutputStream out, JsonEncoding enc, IOContext ctxt) throws IOException
873
+ {
874
+ // note: this should not get called any more (caller checks, dispatches)
875
+ if (enc == JsonEncoding.UTF8) { // We have optimized writer for UTF-8
876
+ return new UTF8Writer(ctxt, out);
877
+ }
878
+ // not optimal, but should do unless we really care about UTF-16/32 encoding speed
879
+ return new OutputStreamWriter(out, enc.getJavaName());
880
+ }
881
+
882
+ /*
883
+ /**********************************************************
884
+ /* Internal factory methods, other
885
+ /**********************************************************
886
+ */
887
+
888
+ /**
889
+ * Overridable factory method that actually instantiates desired
890
+ * context object.
891
+ */
892
+ protected IOContext _createContext(Object srcRef, boolean resourceManaged)
893
+ {
894
+ return new IOContext(_getBufferRecycler(), srcRef, resourceManaged);
895
+ }
896
+
897
+ /**
898
+ * Method used by factory to create buffer recycler instances
899
+ * for parsers and generators.
900
+ *<p>
901
+ * Note: only public to give access for <code>ObjectMapper</code>
902
+ */
903
+ public BufferRecycler _getBufferRecycler()
904
+ {
905
+ SoftReference<BufferRecycler> ref = _recyclerRef.get();
906
+ BufferRecycler br = (ref == null) ? null : ref.get();
907
+
908
+ if (br == null) {
909
+ br = new BufferRecycler();
910
+ _recyclerRef.set(new SoftReference<BufferRecycler>(br));
911
+ }
912
+ return br;
913
+ }
914
+
915
+ /**
916
+ * Helper methods used for constructing an optimal stream for
917
+ * parsers to use, when input is to be read from an URL.
918
+ * This helps when reading file content via URL.
919
+ */
920
+ protected InputStream _optimizedStreamFromURL(URL url)
921
+ throws IOException
922
+ {
923
+ if ("file".equals(url.getProtocol())) {
924
+ /* Can not do this if the path refers
925
+ * to a network drive on windows. This fixes the problem;
926
+ * might not be needed on all platforms (NFS?), but should not
927
+ * matter a lot: performance penalty of extra wrapping is more
928
+ * relevant when accessing local file system.
929
+ */
930
+ String host = url.getHost();
931
+ if (host == null || host.length() == 0) {
932
+ return new FileInputStream(url.getPath());
933
+ }
934
+ }
935
+ return url.openStream();
936
+ }
937
+ }