calabash-android 0.0.1

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