calabash-android 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. data/CHANGES.txt +1 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +8 -0
  4. data/Rakefile +2 -0
  5. data/bin/calabash-android +42 -0
  6. data/bin/calabash-android-build.rb +37 -0
  7. data/bin/calabash-android-generate.rb +26 -0
  8. data/bin/calabash-android-helpers.rb +71 -0
  9. data/bin/calabash-android-run.rb +18 -0
  10. data/bin/calabash-android-setup.rb +392 -0
  11. data/calabash-android.gemspec +23 -0
  12. data/doc/calabash-android-help.txt +21 -0
  13. data/epl-v10.html +261 -0
  14. data/features-skeleton/.irbrc +16 -0
  15. data/features-skeleton/irb_android.sh +2 -0
  16. data/features-skeleton/my_first.feature +5 -0
  17. data/features-skeleton/step_definitions/calabash_steps.rb +1 -0
  18. data/features-skeleton/support/app_installation_hooks.rb +26 -0
  19. data/features-skeleton/support/app_life_cycle_hooks.rb +28 -0
  20. data/features-skeleton/support/env.rb +1 -0
  21. data/features-skeleton/support/hooks.rb +18 -0
  22. data/lib/calabash-android.rb +2 -0
  23. data/lib/calabash-android/calabash_steps.rb +18 -0
  24. data/lib/calabash-android/canned_steps.md +239 -0
  25. data/lib/calabash-android/color_helper.rb +13 -0
  26. data/lib/calabash-android/cucumber.rb +9 -0
  27. data/lib/calabash-android/lib/screenShotTaker.jar +0 -0
  28. data/lib/calabash-android/management/adb.rb +11 -0
  29. data/lib/calabash-android/management/app_installation.rb +21 -0
  30. data/lib/calabash-android/operations.rb +283 -0
  31. data/lib/calabash-android/steps/additions_manual_steps.rb +11 -0
  32. data/lib/calabash-android/steps/app_steps.rb +10 -0
  33. data/lib/calabash-android/steps/assert_steps.rb +32 -0
  34. data/lib/calabash-android/steps/check_box_steps.rb +3 -0
  35. data/lib/calabash-android/steps/context_menu_steps.rb +12 -0
  36. data/lib/calabash-android/steps/date_picker_steps.rb +8 -0
  37. data/lib/calabash-android/steps/enter_text_steps.rb +21 -0
  38. data/lib/calabash-android/steps/location_steps.rb +19 -0
  39. data/lib/calabash-android/steps/navigation_steps.rb +27 -0
  40. data/lib/calabash-android/steps/press_button_steps.rb +35 -0
  41. data/lib/calabash-android/steps/progress_steps.rb +49 -0
  42. data/lib/calabash-android/steps/rotation_steps.rb +8 -0
  43. data/lib/calabash-android/steps/screenshot_steps.rb +11 -0
  44. data/lib/calabash-android/steps/spinner_steps.rb +3 -0
  45. data/lib/calabash-android/steps/time_picker_steps.rb +8 -0
  46. data/lib/calabash-android/version.rb +6 -0
  47. data/test-server/AndroidManifest.xml +13 -0
  48. data/test-server/build.xml +192 -0
  49. data/test-server/calabash-js/src/calabash.js +125 -0
  50. data/test-server/calabash-js/src/set_text.js +132 -0
  51. data/test-server/instrumentation-backend/.classpath +10 -0
  52. data/test-server/instrumentation-backend/.project +33 -0
  53. data/test-server/instrumentation-backend/.settings/org.eclipse.jdt.core.prefs +12 -0
  54. data/test-server/instrumentation-backend/AndroidManifest.xml +15 -0
  55. data/test-server/instrumentation-backend/assets/foo.bar +0 -0
  56. data/test-server/instrumentation-backend/gen/com/lesspainful/simpleui/test/R.java +23 -0
  57. data/test-server/instrumentation-backend/libs/robotium-solo-2.5.jar +0 -0
  58. data/test-server/instrumentation-backend/project.properties +11 -0
  59. data/test-server/instrumentation-backend/res/drawable-hdpi/ic_launcher.png +0 -0
  60. data/test-server/instrumentation-backend/res/drawable-ldpi/ic_launcher.png +0 -0
  61. data/test-server/instrumentation-backend/res/drawable-mdpi/ic_launcher.png +0 -0
  62. data/test-server/instrumentation-backend/res/layout/main.xml +12 -0
  63. data/test-server/instrumentation-backend/res/values/strings.xml +7 -0
  64. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Command.java +48 -0
  65. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/InstrumentationBackend.java +196 -0
  66. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +64 -0
  67. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/TestHelpers.java +136 -0
  68. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Action.java +11 -0
  69. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Actions.java +113 -0
  70. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/NullAction.java +23 -0
  71. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonNumber.java +22 -0
  72. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonText.java +27 -0
  73. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressImageButtonNumber.java +22 -0
  74. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/WaitForButton.java +47 -0
  75. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/checkbox/ToggleCheckboxNumber.java +22 -0
  76. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressText.java +22 -0
  77. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuById.java +26 -0
  78. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByIndex.java +22 -0
  79. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByText.java +26 -0
  80. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/ClickOnScreen.java +31 -0
  81. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/Swipe.java +28 -0
  82. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/helpers/ListActions.java +26 -0
  83. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/LongPressListItems.java +22 -0
  84. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/PressListItems.java +22 -0
  85. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/location/FakeGPSLocation.java +79 -0
  86. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollDown.java +28 -0
  87. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollUp.java +28 -0
  88. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/DownKey.java +24 -0
  89. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/GoBack.java +22 -0
  90. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/PressMenu.java +26 -0
  91. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/SelectFromMenuByText.java +24 -0
  92. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/spinner/SelectSpinnerItemByContentDescription.java +43 -0
  93. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertText.java +31 -0
  94. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertTextOfSpecificTextViewByContentDescription.java +32 -0
  95. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextByIndex.java +22 -0
  96. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextFieldByContentDescription.java +33 -0
  97. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClickOnText.java +22 -0
  98. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByContentDescription.java +32 -0
  99. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByIndex.java +22 -0
  100. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByContentDescription.java +33 -0
  101. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByIndex.java +24 -0
  102. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByContentDescription.java +34 -0
  103. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByIndex.java +26 -0
  104. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/ClickOnViewById.java +63 -0
  105. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/LongPressOnViewById.java +34 -0
  106. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/Press.java +89 -0
  107. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/WaitForViewById.java +41 -0
  108. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/Wait.java +24 -0
  109. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForDialogClose.java +21 -0
  110. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForProgress.java +47 -0
  111. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForScreen.java +49 -0
  112. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForText.java +26 -0
  113. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java +109 -0
  114. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java +33 -0
  115. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java +33 -0
  116. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/EnterTextByCssSelector.java +99 -0
  117. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +43 -0
  118. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Query.java +24 -0
  119. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +99 -0
  120. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ScrollTo.java +74 -0
  121. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetPropertyByCssSelector.java +43 -0
  122. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +50 -0
  123. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Touch.java +44 -0
  124. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variant.java +413 -0
  125. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variants.java +90 -0
  126. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/FormatSchema.java +29 -0
  127. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonEncoding.java +47 -0
  128. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonFactory.java +937 -0
  129. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerationException.java +28 -0
  130. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerator.java +1197 -0
  131. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonLocation.java +141 -0
  132. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonNode.java +879 -0
  133. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParseException.java +23 -0
  134. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParser.java +1434 -0
  135. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonProcessingException.java +80 -0
  136. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonStreamContext.java +122 -0
  137. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonToken.java +161 -0
  138. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/ObjectCodec.java +157 -0
  139. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/PrettyPrinter.java +166 -0
  140. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/SerializableString.java +54 -0
  141. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Version.java +90 -0
  142. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Versioned.java +20 -0
  143. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JacksonAnnotation.java +20 -0
  144. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnyGetter.java +25 -0
  145. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnySetter.java +24 -0
  146. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAutoDetect.java +148 -0
  147. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonBackReference.java +41 -0
  148. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonCreator.java +19 -0
  149. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonGetter.java +35 -0
  150. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnore.java +57 -0
  151. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreProperties.java +48 -0
  152. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreType.java +33 -0
  153. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonManagedReference.java +41 -0
  154. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonMethod.java +90 -0
  155. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonProperty.java +38 -0
  156. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonPropertyOrder.java +46 -0
  157. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonRawValue.java +33 -0
  158. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSetter.java +33 -0
  159. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSubTypes.java +44 -0
  160. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeInfo.java +236 -0
  161. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeName.java +28 -0
  162. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonUnwrapped.java +76 -0
  163. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonValue.java +46 -0
  164. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonWriteNullProperties.java +34 -0
  165. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/package-info.java +16 -0
  166. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatDetector.java +176 -0
  167. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatMatcher.java +117 -0
  168. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/InputAccessor.java +130 -0
  169. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/MatchStrength.java +64 -0
  170. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/package-info.java +8 -0
  171. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ByteSourceBootstrapper.java +518 -0
  172. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/DefaultPrettyPrinter.java +13 -0
  173. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Indenter.java +23 -0
  174. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonGeneratorBase.java +570 -0
  175. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonNumericParserBase.java +20 -0
  176. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserBase.java +1067 -0
  177. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserMinimalBase.java +539 -0
  178. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonReadContext.java +188 -0
  179. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonWriteContext.java +178 -0
  180. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParser.java +1815 -0
  181. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParserBase.java +228 -0
  182. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/StreamBasedParserBase.java +197 -0
  183. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8Generator.java +1757 -0
  184. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8StreamParser.java +2966 -0
  185. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/WriterBasedGenerator.java +1815 -0
  186. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/package-info.java +6 -0
  187. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/BaseReader.java +117 -0
  188. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/CharacterEscapes.java +73 -0
  189. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/IOContext.java +239 -0
  190. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/InputDecorator.java +67 -0
  191. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/JsonStringEncoder.java +408 -0
  192. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/MergedStream.java +145 -0
  193. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberInput.java +303 -0
  194. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberOutput.java +398 -0
  195. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/OutputDecorator.java +40 -0
  196. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SegmentedStringWriter.java +104 -0
  197. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SerializedString.java +114 -0
  198. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF32Reader.java +214 -0
  199. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF8Writer.java +387 -0
  200. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/package.html +4 -0
  201. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AbstractTypeResolver.java +63 -0
  202. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AnnotationIntrospector.java +1485 -0
  203. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanDescription.java +171 -0
  204. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanProperty.java +123 -0
  205. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanPropertyDefinition.java +66 -0
  206. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ClassIntrospector.java +117 -0
  207. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualDeserializer.java +38 -0
  208. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualKeyDeserializer.java +33 -0
  209. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualSerializer.java +38 -0
  210. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationConfig.java +926 -0
  211. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationContext.java +262 -0
  212. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationProblemHandler.java +56 -0
  213. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerFactory.java +356 -0
  214. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerProvider.java +185 -0
  215. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Deserializers.java +339 -0
  216. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/HandlerInstantiator.java +115 -0
  217. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/InjectableValues.java +85 -0
  218. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonDeserializer.java +166 -0
  219. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonMappingException.java +335 -0
  220. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializable.java +34 -0
  221. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializableWithType.java +22 -0
  222. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializer.java +138 -0
  223. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializer.java +31 -0
  224. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializers.java +21 -0
  225. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MapperConfig.java +1154 -0
  226. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingIterator.java +190 -0
  227. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingJsonFactory.java +81 -0
  228. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Module.java +255 -0
  229. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectMapper.java +2885 -0
  230. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectReader.java +958 -0
  231. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectWriter.java +554 -0
  232. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/PropertyNamingStrategy.java +258 -0
  233. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableDeserializer.java +23 -0
  234. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableSerializer.java +23 -0
  235. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/RuntimeJsonMappingException.java +21 -0
  236. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializationConfig.java +1041 -0
  237. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerFactory.java +198 -0
  238. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerProvider.java +552 -0
  239. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Serializers.java +137 -0
  240. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeDeserializer.java +118 -0
  241. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeSerializer.java +164 -0
  242. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonInject.java +30 -0
  243. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonStdImpl.java +25 -0
  244. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonCachable.java +32 -0
  245. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonDeserialize.java +109 -0
  246. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonFilter.java +31 -0
  247. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonRootName.java +29 -0
  248. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonSerialize.java +216 -0
  249. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeIdResolver.java +35 -0
  250. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeResolver.java +28 -0
  251. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonValueInstantiator.java +26 -0
  252. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonView.java +37 -0
  253. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/NoClass.java +19 -0
  254. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/package-info.java +5 -0
  255. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/AbstractDeserializer.java +102 -0
  256. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializer.java +28 -0
  257. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializers.java +11 -0
  258. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java +894 -0
  259. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializer.java +1537 -0
  260. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerBuilder.java +277 -0
  261. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerFactory.java +1474 -0
  262. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerModifier.java +58 -0
  263. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CollectionDeserializer.java +47 -0
  264. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ContainerDeserializer.java +14 -0
  265. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CustomDeserializerFactory.java +227 -0
  266. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/DateDeserializer.java +9 -0
  267. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumDeserializer.java +15 -0
  268. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumResolver.java +17 -0
  269. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/FromStringDeserializer.java +13 -0
  270. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/JsonNodeDeserializer.java +54 -0
  271. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/MapDeserializer.java +44 -0
  272. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableAnyProperty.java +177 -0
  273. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableBeanProperty.java +827 -0
  274. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializationContext.java +326 -0
  275. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializer.java +94 -0
  276. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializerProvider.java +494 -0
  277. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializers.java +119 -0
  278. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializer.java +12 -0
  279. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializers.java +11 -0
  280. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdScalarDeserializer.java +13 -0
  281. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ThrowableDeserializer.java +13 -0
  282. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/UntypedObjectDeserializer.java +9 -0
  283. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiator.java +280 -0
  284. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiators.java +52 -0
  285. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/BeanPropertyMap.java +257 -0
  286. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorCollector.java +141 -0
  287. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorProperty.java +152 -0
  288. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ExternalTypeHandler.java +173 -0
  289. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyBasedCreator.java +117 -0
  290. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValue.java +117 -0
  291. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValueBuffer.java +102 -0
  292. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/UnwrappedPropertyHandler.java +41 -0
  293. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ValueInjector.java +45 -0
  294. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/package-info.java +9 -0
  295. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/package-info.java +5 -0
  296. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicBooleanDeserializer.java +22 -0
  297. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicReferenceDeserializer.java +47 -0
  298. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CalendarDeserializer.java +47 -0
  299. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ClassDeserializer.java +49 -0
  300. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CollectionDeserializer.java +265 -0
  301. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ContainerDeserializerBase.java +37 -0
  302. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/DateDeserializer.java +30 -0
  303. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumDeserializer.java +139 -0
  304. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumMapDeserializer.java +90 -0
  305. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java +89 -0
  306. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/FromStringDeserializer.java +265 -0
  307. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JavaTypeDeserializer.java +38 -0
  308. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JsonNodeDeserializer.java +314 -0
  309. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/MapDeserializer.java +412 -0
  310. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ObjectArrayDeserializer.java +201 -0
  311. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/PrimitiveArrayDeserializers.java +583 -0
  312. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdDeserializer.java +1136 -0
  313. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java +340 -0
  314. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializers.java +108 -0
  315. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdScalarDeserializer.java +34 -0
  316. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdValueInstantiator.java +392 -0
  317. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringCollectionDeserializer.java +227 -0
  318. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringDeserializer.java +55 -0
  319. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ThrowableDeserializer.java +164 -0
  320. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TimestampDeserializer.java +30 -0
  321. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TokenBufferDeserializer.java +36 -0
  322. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/UntypedObjectDeserializer.java +248 -0
  323. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/package-info.java +15 -0
  324. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/exc/UnrecognizedPropertyException.java +75 -0
  325. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLDeserializers.java +114 -0
  326. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLSerializers.java +72 -0
  327. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/DOMDeserializer.java +65 -0
  328. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/OptionalHandlerFactory.java +217 -0
  329. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/package-info.java +23 -0
  330. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/Annotated.java +85 -0
  331. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedClass.java +980 -0
  332. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedConstructor.java +143 -0
  333. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedField.java +119 -0
  334. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMember.java +56 -0
  335. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethod.java +188 -0
  336. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethodMap.java +85 -0
  337. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedParameter.java +191 -0
  338. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedWithParams.java +195 -0
  339. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotationMap.java +101 -0
  340. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicBeanDescription.java +615 -0
  341. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicClassIntrospector.java +364 -0
  342. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/JacksonAnnotationIntrospector.java +813 -0
  343. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MemberKey.java +83 -0
  344. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MethodFilter.java +12 -0
  345. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/NopAnnotationIntrospector.java +209 -0
  346. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertiesCollector.java +713 -0
  347. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertyBuilder.java +648 -0
  348. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/VisibilityChecker.java +424 -0
  349. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/package-info.java +12 -0
  350. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/NamedType.java +53 -0
  351. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/SubtypeResolver.java +39 -0
  352. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeIdResolver.java +74 -0
  353. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeResolverBuilder.java +151 -0
  354. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeDeserializer.java +126 -0
  355. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeSerializer.java +110 -0
  356. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeDeserializer.java +37 -0
  357. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeSerializer.java +129 -0
  358. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeDeserializer.java +191 -0
  359. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeSerializer.java +69 -0
  360. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeDeserializer.java +103 -0
  361. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeSerializer.java +121 -0
  362. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/ClassNameIdResolver.java +138 -0
  363. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/MinimalClassNameIdResolver.java +66 -0
  364. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdSubtypeResolver.java +151 -0
  365. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdTypeResolverBuilder.java +202 -0
  366. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeDeserializerBase.java +154 -0
  367. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeIdResolverBase.java +37 -0
  368. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeNameIdResolver.java +154 -0
  369. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeSerializerBase.java +31 -0
  370. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/package-info.java +9 -0
  371. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/package-info.java +10 -0
  372. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleAbstractTypeResolver.java +86 -0
  373. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleDeserializers.java +130 -0
  374. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleKeyDeserializers.java +59 -0
  375. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleModule.java +265 -0
  376. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleSerializers.java +206 -0
  377. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleValueInstantiators.java +45 -0
  378. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/package-info.java +16 -0
  379. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/package-info.java +34 -0
  380. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/AnyGetterWriter.java +48 -0
  381. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ArraySerializers.java +7 -0
  382. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BasicSerializerFactory.java +806 -0
  383. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyFilter.java +30 -0
  384. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyWriter.java +512 -0
  385. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializer.java +126 -0
  386. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerBuilder.java +140 -0
  387. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerFactory.java +780 -0
  388. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerModifier.java +95 -0
  389. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ContainerSerializers.java +8 -0
  390. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/CustomSerializerFactory.java +293 -0
  391. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/EnumSerializer.java +17 -0
  392. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilterProvider.java +23 -0
  393. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilteredBeanPropertyWriter.java +96 -0
  394. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/JdkSerializers.java +11 -0
  395. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/MapSerializer.java +58 -0
  396. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/PropertyBuilder.java +372 -0
  397. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ScalarSerializerBase.java +18 -0
  398. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/SerializerBase.java +23 -0
  399. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdKeySerializer.java +10 -0
  400. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializerProvider.java +852 -0
  401. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializers.java +372 -0
  402. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ToStringSerializer.java +14 -0
  403. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/FailingSerializer.java +43 -0
  404. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/JsonSerializerMap.java +93 -0
  405. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/PropertySerializerMap.java +231 -0
  406. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/ReadOnlyClassToSerializerMap.java +73 -0
  407. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SerializerCache.java +304 -0
  408. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleBeanPropertyFilter.java +109 -0
  409. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleFilterProvider.java +114 -0
  410. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnknownSerializer.java +54 -0
  411. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanPropertyWriter.java +99 -0
  412. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanSerializer.java +76 -0
  413. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/package-info.java +5 -0
  414. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/package-info.java +5 -0
  415. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/AsArraySerializerBase.java +185 -0
  416. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java +340 -0
  417. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CalendarSerializer.java +43 -0
  418. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CollectionSerializer.java +113 -0
  419. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ContainerSerializerBase.java +51 -0
  420. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/DateSerializer.java +42 -0
  421. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumMapSerializer.java +218 -0
  422. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSerializer.java +84 -0
  423. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSetSerializer.java +47 -0
  424. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IndexedStringListSerializer.java +116 -0
  425. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/InetAddressSerializer.java +51 -0
  426. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IterableSerializer.java +63 -0
  427. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/JsonValueSerializer.java +233 -0
  428. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/MapSerializer.java +422 -0
  429. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NonTypedScalarSerializerBase.java +34 -0
  430. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NullSerializer.java +38 -0
  431. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ObjectArraySerializer.java +281 -0
  432. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/RawSerializer.java +52 -0
  433. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ScalarSerializerBase.java +52 -0
  434. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableSerializer.java +99 -0
  435. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableWithTypeSerializer.java +90 -0
  436. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializerBase.java +184 -0
  437. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StaticListSerializerBase.java +46 -0
  438. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdArraySerializers.java +476 -0
  439. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdContainerSerializers.java +249 -0
  440. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdJdkSerializers.java +195 -0
  441. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializer.java +43 -0
  442. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializers.java +95 -0
  443. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringCollectionSerializer.java +119 -0
  444. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringSerializer.java +36 -0
  445. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TimeZoneSerializer.java +38 -0
  446. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ToStringSerializer.java +73 -0
  447. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TokenBufferSerializer.java +66 -0
  448. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ArrayType.java +260 -0
  449. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ClassKey.java +94 -0
  450. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionLikeType.java +204 -0
  451. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionType.java +94 -0
  452. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/HierarchicType.java +88 -0
  453. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapLikeType.java +265 -0
  454. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapType.java +146 -0
  455. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/SimpleType.java +250 -0
  456. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBase.java +148 -0
  457. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBindings.java +351 -0
  458. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeFactory.java +1165 -0
  459. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeModifier.java +38 -0
  460. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeParser.java +134 -0
  461. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/package-info.java +10 -0
  462. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Annotations.java +23 -0
  463. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ArrayBuilders.java +293 -0
  464. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/BeanUtil.java +260 -0
  465. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ClassUtil.java +645 -0
  466. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Comparators.java +48 -0
  467. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumResolver.java +108 -0
  468. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumValues.java +82 -0
  469. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601DateFormat.java +52 -0
  470. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601Utils.java +230 -0
  471. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONPObject.java +105 -0
  472. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONWrappedObject.java +117 -0
  473. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LRUMap.java +28 -0
  474. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LinkedNode.java +45 -0
  475. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Named.java +10 -0
  476. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ObjectBuffer.java +257 -0
  477. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/PrimitiveArrayBuilder.java +180 -0
  478. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Provider.java +21 -0
  479. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/RootNameLookup.java +54 -0
  480. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/StdDateFormat.java +348 -0
  481. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/package-info.java +4 -0
  482. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ArrayNode.java +758 -0
  483. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BaseJsonNode.java +122 -0
  484. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BigIntegerNode.java +104 -0
  485. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BinaryNode.java +136 -0
  486. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BooleanNode.java +84 -0
  487. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ContainerNode.java +185 -0
  488. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DecimalNode.java +96 -0
  489. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DoubleNode.java +106 -0
  490. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/IntNode.java +122 -0
  491. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/JsonNodeFactory.java +222 -0
  492. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/LongNode.java +99 -0
  493. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/MissingNode.java +97 -0
  494. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NodeCursor.java +222 -0
  495. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NullNode.java +58 -0
  496. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NumericNode.java +72 -0
  497. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ObjectNode.java +696 -0
  498. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/POJONode.java +145 -0
  499. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TextNode.java +299 -0
  500. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TreeTraversingParser.java +383 -0
  501. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ValueNode.java +58 -0
  502. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/package-info.java +8 -0
  503. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/package-info.java +30 -0
  504. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSchema.java +82 -0
  505. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSerializableSchema.java +46 -0
  506. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/SchemaAware.java +25 -0
  507. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/package-info.java +5 -0
  508. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/BytesToNameCanonicalizer.java +969 -0
  509. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/CharsToNameCanonicalizer.java +578 -0
  510. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name.java +50 -0
  511. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name1.java +44 -0
  512. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name2.java +40 -0
  513. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name3.java +39 -0
  514. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/NameN.java +68 -0
  515. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/package-info.java +5 -0
  516. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/JavaType.java +503 -0
  517. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/TypeReference.java +60 -0
  518. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/package-info.java +8 -0
  519. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/BufferRecycler.java +109 -0
  520. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/ByteArrayBuilder.java +294 -0
  521. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/CharTypes.java +237 -0
  522. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/DefaultPrettyPrinter.java +282 -0
  523. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/InternCache.java +49 -0
  524. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonGeneratorDelegate.java +273 -0
  525. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserDelegate.java +251 -0
  526. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserSequence.java +150 -0
  527. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/MinimalPrettyPrinter.java +152 -0
  528. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TextBuffer.java +707 -0
  529. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TokenBuffer.java +1233 -0
  530. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/VersionUtil.java +79 -0
  531. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/package-info.java +4 -0
  532. metadata +619 -0
@@ -0,0 +1,1233 @@
1
+ package sh.calaba.org.codehaus.jackson.util;
2
+
3
+ import java.io.IOException;
4
+ import java.math.BigDecimal;
5
+ import java.math.BigInteger;
6
+
7
+ import sh.calaba.org.codehaus.jackson.Base64Variant;
8
+ import sh.calaba.org.codehaus.jackson.JsonGenerationException;
9
+ import sh.calaba.org.codehaus.jackson.JsonGenerator;
10
+ import sh.calaba.org.codehaus.jackson.JsonLocation;
11
+ import sh.calaba.org.codehaus.jackson.JsonNode;
12
+ import sh.calaba.org.codehaus.jackson.JsonParseException;
13
+ import sh.calaba.org.codehaus.jackson.JsonParser;
14
+ import sh.calaba.org.codehaus.jackson.JsonProcessingException;
15
+ import sh.calaba.org.codehaus.jackson.JsonStreamContext;
16
+ import sh.calaba.org.codehaus.jackson.JsonToken;
17
+ import sh.calaba.org.codehaus.jackson.ObjectCodec;
18
+ import sh.calaba.org.codehaus.jackson.SerializableString;
19
+ import sh.calaba.org.codehaus.jackson.impl.JsonParserMinimalBase;
20
+ import sh.calaba.org.codehaus.jackson.impl.JsonReadContext;
21
+ import sh.calaba.org.codehaus.jackson.impl.JsonWriteContext;
22
+ import sh.calaba.org.codehaus.jackson.io.SerializedString;
23
+
24
+
25
+
26
+ /**
27
+ * Utility class used for efficient storage of {@link JsonToken}
28
+ * sequences, needed for temporary buffering.
29
+ * Space efficient for different sequence lengths (especially so for smaller
30
+ * ones; but not significantly less efficient for larger), highly esh.calaba.org.codehaus.jacksonar iteration and appending. Implemented as segmented/chunked
31
+ * linked list of tokens; only modifications are via appends.
32
+ *
33
+ * @since 1.5
34
+ */
35
+ public class TokenBuffer
36
+ /* Won't use JsonGeneratorBase, to minimize overhead for validity
37
+ * checking
38
+ */
39
+ extends JsonGenerator
40
+ {
41
+ protected final static int DEFAULT_PARSER_FEATURES = JsonParser.Feature.collectDefaults();
42
+
43
+ /*
44
+ /**********************************************************
45
+ /* Configuration
46
+ /**********************************************************
47
+ */
48
+
49
+ /**
50
+ * Object codec to use for stream-based object
51
+ * conversion through parser/generator interfaces. If null,
52
+ * such methods can not be used.
53
+ */
54
+ protected ObjectCodec _objectCodec;
55
+
56
+ /**
57
+ * Bit flagsh.calaba.org.codehaus.jacksonat indicate which
58
+ * {@link sh.calaba.org.codehaus.jackson.JsonGenerator.Feature}s
59
+ * are enabled.
60
+ *<p>
61
+ * NOTE: most features have no effect on this class
62
+ */
63
+ protected int _generatorFeatures;
64
+
65
+ protected boolean _closed;
66
+
67
+ /*
68
+ /**********************************************************
69
+ /* Token buffering state
70
+ /**********************************************************
71
+ */
72
+
73
+ /**
74
+ * First segment, for contents this buffer has
75
+ */
76
+ protected Segment _first;
77
+
78
+ /**
79
+ * Last segment of this buffer, one that is used
80
+ * for appending more tokens
81
+ */
82
+ protected Segment _last;
83
+
84
+ /**
85
+ * Offset within last segment,
86
+ */
87
+ protected int _appendOffset;
88
+
89
+ /*
90
+ /**********************************************************
91
+ /* Output state
92
+ /**********************************************************
93
+ */
94
+
95
+ protected JsonWriteContext _writeContext;
96
+
97
+ /*
98
+ /**********************************************************
99
+ /* Life-cycle
100
+ /**********************************************************
101
+ */
102
+
103
+ /**
104
+ * @param codec Object codec to use for stream-based object
105
+ * conversion through parser/generator interfaces. If null,
106
+ * such methods can not be used.
107
+ */
108
+ public TokenBuffer(ObjectCodec codec)
109
+ {
110
+ _objectCodec = codec;
111
+ _generatorFeatures = DEFAULT_PARSER_FEATURES;
112
+ _writeContext = JsonWriteContext.createRootContext();
113
+ // at first we have just one segment
114
+ _first = _last = new Segment();
115
+ _appendOffset = 0;
116
+ }
117
+
118
+ /**
119
+ * Method used to create a {@link JsonParser} that can read contents
120
+ * stored in this buffer. Will use default <code>_objectCodec</code> for
121
+ * object conversions.
122
+ *<p>
123
+ * Note: instances are not synchronized, that is, they are not thread-safe
124
+ * if there are concurrent appends to the underlying buffer.
125
+ *
126
+ * @return Parser that can be used for reading contents stored in this buffer
127
+ */
128
+ public JsonParser asParser()
129
+ {
130
+ return asParser(_objectCodec);
131
+ }
132
+
133
+ /**
134
+ * Method used to create a {@link JsonParser} that can read contents
135
+ * stored in this buffer.
136
+ *<p>
137
+ * Note: instances are not synchronized, that is, they are not thread-safe
138
+ * if there are concurrent appends to the underlying buffer.
139
+ *
140
+ * @param codec Object codec to use for stream-based object
141
+ * conversion through parser/generator interfaces. If null,
142
+ * such methods can not be used.
143
+ *
144
+ * @return Parser that can be used for reading contents stored in this buffer
145
+ */
146
+ public JsonParser asParser(ObjectCodec codec)
147
+ {
148
+ return new Parser(_first, codec);
149
+ }
150
+
151
+ /**
152
+ * @param src Parser to use for accessing source information
153
+ * like location, configured codec
154
+ */
155
+ public JsonParser asParser(JsonParser src)
156
+ {
157
+ Parser p = new Parser(_first, src.getCodec());
158
+ p.setLocation(src.getTokenLocation());
159
+ return p;
160
+ }
161
+
162
+ /*
163
+ /**********************************************************
164
+ /* Other custom methods not needed for implementing interfaces
165
+ /**********************************************************
166
+ */
167
+
168
+ /**
169
+ * Helper method that will write all contents of this buffer
170
+ * using given {@link JsonGenerator}.
171
+ *<p>
172
+ * Note: this method would be enough to implement
173
+ * <code>JsonSerializer</code> for <code>TokenBuffer</code> type;
174
+ * but we can not have upwards
175
+ * references (from core to mapper package); and as such we also
176
+ * can not take second argument.
177
+ */
178
+ public void serialize(JsonGenerator jgen)
179
+ throws IOException, JsonGenerationException
180
+ {
181
+ Segment segment = _first;
182
+ int ptr = -1;
183
+
184
+ while (true) {
185
+ if (++ptr >= Segment.TOKENS_PER_SEGMENT) {
186
+ ptr = 0;
187
+ segment = segment.next();
188
+ if (segment == null) break;
189
+ }
190
+ JsonToken t = segment.type(ptr);
191
+ if (t == null) break;
192
+
193
+ // Note: copied from 'copyCurrentEvent'...
194
+ switch (t) {
195
+ case START_OBJECT:
196
+ jgen.writeStartObject();
197
+ break;
198
+ case END_OBJECT:
199
+ jgen.writeEndObject();
200
+ break;
201
+ case START_ARRAY:
202
+ jgen.writeStartArray();
203
+ break;
204
+ case END_ARRAY:
205
+ jgen.writeEndArray();
206
+ break;
207
+ case FIELD_NAME:
208
+ {
209
+ // 13-Dec-2010, tatu: Maybe we should start using different type tokens to reduce casting?
210
+ Object ob = segment.get(ptr);
211
+ if (ob instanceof SerializableString) {
212
+ jgen.writeFieldName((SerializableString) ob);
213
+ } else {
214
+ jgen.writeFieldName((String) ob);
215
+ }
216
+ }
217
+ break;
218
+ case VALUE_STRING:
219
+ {
220
+ Object ob = segment.get(ptr);
221
+ if (ob instanceof SerializableString) {
222
+ jgen.writeString((SerializableString) ob);
223
+ } else {
224
+ jgen.writeString((String) ob);
225
+ }
226
+ }
227
+ break;
228
+ case VALUE_NUMBER_INT:
229
+ {
230
+ Number n = (Number) segment.get(ptr);
231
+ if (n instanceof BigInteger) {
232
+ jgen.writeNumber((BigInteger) n);
233
+ } else if (n instanceof Long) {
234
+ jgen.writeNumber(n.longValue());
235
+ } else {
236
+ jgen.writeNumber(n.intValue());
237
+ }
238
+ }
239
+ break;
240
+ case VALUE_NUMBER_FLOAT:
241
+ {
242
+ Object n = segment.get(ptr);
243
+ if (n instanceof BigDecimal) {
244
+ jgen.writeNumber((BigDecimal) n);
245
+ } else if (n instanceof Float) {
246
+ jgen.writeNumber(((Float) n).floatValue());
247
+ } else if (n instanceof Double) {
248
+ jgen.writeNumber(((Double) n).doubleValue());
249
+ } else if (n == null) {
250
+ jgen.writeNull();
251
+ } else if (n instanceof String) {
252
+ jgen.writeNumber((String) n);
253
+ } else {
254
+ throw new JsonGenerationException("Unrecognized value type for VALUE_NUMBER_FLOAT: "+n.getClass().getName()+", can not serialize");
255
+ }
256
+ }
257
+ break;
258
+ case VALUE_TRUE:
259
+ jgen.writeBoolean(true);
260
+ break;
261
+ case VALUE_FALSE:
262
+ jgen.writeBoolean(false);
263
+ break;
264
+ case VALUE_NULL:
265
+ jgen.writeNull();
266
+ break;
267
+ case VALUE_EMBEDDED_OBJECT:
268
+ jgen.writeObject(segment.get(ptr));
269
+ break;
270
+ default:
271
+ throw new RuntimeException("Internal error: should never end up through this code path");
272
+ }
273
+ }
274
+ }
275
+
276
+ @Override
277
+ public String toString()
278
+ {
279
+ // Let's print up to 100 first tokens...
280
+ final int MAX_COUNT = 100;
281
+
282
+ StringBuilder sb = new StringBuilder();
283
+ sb.append("[TokenBuffer: ");
284
+ JsonParser jp = asParser();
285
+ int count = 0;
286
+
287
+ while (true) {
288
+ JsonToken t;
289
+ try {
290
+ t = jp.nextToken();
291
+ } catch (IOException ioe) { // should never occur
292
+ throw new IllegalStateException(ioe);
293
+ }
294
+ if (t == null) break;
295
+ if (count < MAX_COUNT) {
296
+ if (count > 0) {
297
+ sb.append(", ");
298
+ }
299
+ sb.append(t.toString());
300
+ }
301
+ ++count;
302
+ }
303
+
304
+ if (count >= MAX_COUNT) {
305
+ sb.append(" ... (truncated ").append(count-MAX_COUNT).append(" entries)");
306
+ }
307
+ sb.append(']');
308
+ return sb.toString();
309
+ }
310
+
311
+ /*
312
+ /**********************************************************
313
+ /* JsonGenerator implementation: configuration
314
+ /**********************************************************
315
+ */
316
+
317
+ @Override
318
+ public JsonGenerator enable(Feature f) {
319
+ _generatorFeatures |= f.getMask();
320
+ return this;
321
+ }
322
+
323
+ @Override
324
+ public JsonGenerator disable(Feature f) {
325
+ _generatorFeatures &= ~f.getMask();
326
+ return this;
327
+ }
328
+
329
+ //public JsonGenerator configure(Feature f, boolean state) { }
330
+
331
+ @Override
332
+ public boolean isEnabled(Feature f) {
333
+ return (_generatorFeatures & f.getMask()) != 0;
334
+ }
335
+
336
+ @Override
337
+ public JsonGenerator useDefaultPrettyPrinter() {
338
+ // No-op: we don't indent
339
+ return this;
340
+ }
341
+
342
+ @Override
343
+ public JsonGenerator setCodec(ObjectCodec oc) {
344
+ _objectCodec = oc;
345
+ return this;
346
+ }
347
+
348
+ @Override
349
+ public ObjectCodec getCodec() { return _objectCodec; }
350
+
351
+ @Override
352
+ public final JsonWriteContext getOutputContext() { return _writeContext; }
353
+
354
+ /*
355
+ /**********************************************************
356
+ /* JsonGenerator implementation: low-level output handling
357
+ /**********************************************************
358
+ */
359
+
360
+ @Override
361
+ public void flush() throws IOException { /* NOP */ }
362
+
363
+ @Override
364
+ public void close() throws IOException {
365
+ _closed = true;
366
+ }
367
+
368
+ @Override
369
+ public boolean isClosed() { return _closed; }
370
+
371
+ /*
372
+ /**********************************************************
373
+ /* JsonGenerator implementation: write methods, structural
374
+ /**********************************************************
375
+ */
376
+
377
+ @Override
378
+ public final void writeStartArray()
379
+ throws IOException, JsonGenerationException
380
+ {
381
+ _append(JsonToken.START_ARRAY);
382
+ _writeContext = _writeContext.createChildArrayContext();
383
+ }
384
+
385
+ @Override
386
+ public final void writeEndArray()
387
+ throws IOException, JsonGenerationException
388
+ {
389
+ _append(JsonToken.END_ARRAY);
390
+ // Let's allow unbalanced tho... i.e. not run out of root level, ever
391
+ JsonWriteContext c = _writeContext.getParent();
392
+ if (c != null) {
393
+ _writeContext = c;
394
+ }
395
+ }
396
+
397
+ @Override
398
+ public final void writeStartObject()
399
+ throws IOException, JsonGenerationException
400
+ {
401
+ _append(JsonToken.START_OBJECT);
402
+ _writeContext = _writeContext.createChildObjectContext();
403
+ }
404
+
405
+ @Override
406
+ public final void writeEndObject()
407
+ throws IOException, JsonGenerationException
408
+ {
409
+ _append(JsonToken.END_OBJECT);
410
+ // Let's allow unbalanced tho... i.e. not run out of root level, ever
411
+ JsonWriteContext c = _writeContext.getParent();
412
+ if (c != null) {
413
+ _writeContext = c;
414
+ }
415
+ }
416
+
417
+ @Override
418
+ public final void writeFieldName(String name)
419
+ throws IOException, JsonGenerationException
420
+ {
421
+ _append(JsonToken.FIELD_NAME, name);
422
+ _writeContext.writeFieldName(name);
423
+ }
424
+
425
+ @Override
426
+ public void writeFieldName(SerializableString name)
427
+ throws IOException, JsonGenerationException
428
+ {
429
+ _append(JsonToken.FIELD_NAME, name);
430
+ _writeContext.writeFieldName(name.getValue());
431
+ }
432
+
433
+ @Override
434
+ public void writeFieldName(SerializedString name)
435
+ throws IOException, JsonGenerationException
436
+ {
437
+ _append(JsonToken.FIELD_NAME, name);
438
+ _writeContext.writeFieldName(name.getValue());
439
+ }
440
+
441
+ /*
442
+ /**********************************************************
443
+ /* JsonGenerator implementation: write methods, textual
444
+ /**********************************************************
445
+ */
446
+
447
+ @Override
448
+ public void writeString(String text) throws IOException,JsonGenerationException {
449
+ if (text == null) {
450
+ writeNull();
451
+ } else {
452
+ _append(JsonToken.VALUE_STRING, text);
453
+ }
454
+ }
455
+
456
+ @Override
457
+ public void writeString(char[] text, int offset, int len) throws IOException, JsonGenerationException {
458
+ writeString(new String(text, offset, len));
459
+ }
460
+
461
+ @Override
462
+ public void writeString(SerializableString text) throws IOException, JsonGenerationException {
463
+ if (text == null) {
464
+ writeNull();
465
+ } else {
466
+ _append(JsonToken.VALUE_STRING, text);
467
+ }
468
+ }
469
+
470
+ @Override
471
+ public void writeRawUTF8String(byte[] text, int offset, int length)
472
+ throws IOException, JsonGenerationException
473
+ {
474
+ // could add support for buffering if we really want it...
475
+ _reportUnsupportedOperation();
476
+ }
477
+
478
+ @Override
479
+ public void writeUTF8String(byte[] text, int offset, int length)
480
+ throws IOException, JsonGenerationException
481
+ {
482
+ // could add support for buffering if we really want it...
483
+ _reportUnsupportedOperation();
484
+ }
485
+
486
+ @Override
487
+ public void writeRaw(String text) throws IOException, JsonGenerationException {
488
+ _reportUnsupportedOperation();
489
+ }
490
+
491
+ @Override
492
+ public void writeRaw(String text, int offset, int len) throws IOException, JsonGenerationException {
493
+ _reportUnsupportedOperation();
494
+ }
495
+
496
+ @Override
497
+ public void writeRaw(char[] text, int offset, int len) throws IOException, JsonGenerationException {
498
+ _reportUnsupportedOperation();
499
+ }
500
+
501
+ @Override
502
+ public void writeRaw(char c) throws IOException, JsonGenerationException {
503
+ _reportUnsupportedOperation();
504
+ }
505
+
506
+ @Override
507
+ public void writeRawValue(String text) throws IOException, JsonGenerationException {
508
+ _reportUnsupportedOperation();
509
+ }
510
+
511
+ @Override
512
+ public void writeRawValue(String text, int offset, int len) throws IOException, JsonGenerationException {
513
+ _reportUnsupportedOperation();
514
+ }
515
+
516
+ @Override
517
+ public void writeRawValue(char[] text, int offset, int len) throws IOException, JsonGenerationException {
518
+ _reportUnsupportedOperation();
519
+ }
520
+
521
+ /*
522
+ /**********************************************************
523
+ /* JsonGenerator implementation: write methods, primitive types
524
+ /**********************************************************
525
+ */
526
+
527
+ @Override
528
+ public void writeNumber(int i) throws IOException, JsonGenerationException {
529
+ _append(JsonToken.VALUE_NUMBER_INT, Integer.valueOf(i));
530
+ }
531
+
532
+ @Override
533
+ public void writeNumber(long l) throws IOException, JsonGenerationException {
534
+ _append(JsonToken.VALUE_NUMBER_INT, Long.valueOf(l));
535
+ }
536
+
537
+ @Override
538
+ public void writeNumber(double d) throws IOException,JsonGenerationException {
539
+ _append(JsonToken.VALUE_NUMBER_FLOAT, Double.valueOf(d));
540
+ }
541
+
542
+ @Override
543
+ public void writeNumber(float f) throws IOException, JsonGenerationException {
544
+ _append(JsonToken.VALUE_NUMBER_FLOAT, Float.valueOf(f));
545
+ }
546
+
547
+ @Override
548
+ public void writeNumber(BigDecimal dec) throws IOException,JsonGenerationException {
549
+ if (dec == null) {
550
+ writeNull();
551
+ } else {
552
+ _append(JsonToken.VALUE_NUMBER_FLOAT, dec);
553
+ }
554
+ }
555
+
556
+ @Override
557
+ public void writeNumber(BigInteger v) throws IOException, JsonGenerationException {
558
+ if (v == null) {
559
+ writeNull();
560
+ } else {
561
+ _append(JsonToken.VALUE_NUMBER_INT, v);
562
+ }
563
+ }
564
+
565
+ @Override
566
+ public void writeNumber(String encodedValue) throws IOException, JsonGenerationException {
567
+ /* 03-Dec-2010, tatu: related to [JACKSON-423], should try to keep as numeric
568
+ * identity as long as possible
569
+ */
570
+ _append(JsonToken.VALUE_NUMBER_FLOAT, encodedValue);
571
+ }
572
+
573
+ @Override
574
+ public void writeBoolean(boolean state) throws IOException,JsonGenerationException {
575
+ _append(state ? JsonToken.VALUE_TRUE : JsonToken.VALUE_FALSE);
576
+ }
577
+
578
+ @Override
579
+ public void writeNull() throws IOException, JsonGenerationException {
580
+ _append(JsonToken.VALUE_NULL);
581
+ }
582
+
583
+ /*
584
+ /***********************************************************
585
+ /* JsonGenerator implementation: write methods for POJOs/trees
586
+ /***********************************************************
587
+ */
588
+
589
+ @Override
590
+ public void writeObject(Object value)
591
+ throws IOException, JsonProcessingException
592
+ {
593
+ // embedded means that no conversions should be done...
594
+ _append(JsonToken.VALUE_EMBEDDED_OBJECT, value);
595
+ }
596
+
597
+ @Override
598
+ public void writeTree(JsonNode rootNode)
599
+ throws IOException, JsonProcessingException
600
+ {
601
+ /* 31-Dec-2009, tatu: no need to convert trees either is there?
602
+ * (note: may need to re-evaluate at some point)
603
+ */
604
+ _append(JsonToken.VALUE_EMBEDDED_OBJECT, rootNode);
605
+ }
606
+
607
+ /*
608
+ /***********************************************************
609
+ /* JsonGenerator implementation; binary
610
+ /***********************************************************
611
+ */
612
+
613
+ @Override
614
+ public void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len)
615
+ throws IOException, JsonGenerationException
616
+ {
617
+ /* 31-Dec-2009, tatu: can do this using multiple alternatives; but for
618
+ * now, let's try to limit number of conversions.
619
+ * The only (?) tricky thing is that of whether to preserve variant,
620
+ * seems pointless, so let's not worry about it unless there's some
621
+ * compelling reason to.
622
+ */
623
+ byte[] copy = new byte[len];
624
+ System.arraycopy(data, offset, copy, 0, len);
625
+ writeObject(copy);
626
+ }
627
+
628
+ /*
629
+ /**********************************************************
630
+ /* JsonGenerator implementation; pass-through copy
631
+ /**********************************************************
632
+ */
633
+
634
+ @Override
635
+ public void copyCurrentEvent(JsonParser jp) throws IOException, JsonProcessingException
636
+ {
637
+ switch (jp.getCurrentToken()) {
638
+ case START_OBJECT:
639
+ writeStartObject();
640
+ break;
641
+ case END_OBJECT:
642
+ writeEndObject();
643
+ break;
644
+ case START_ARRAY:
645
+ writeStartArray();
646
+ break;
647
+ case END_ARRAY:
648
+ writeEndArray();
649
+ break;
650
+ case FIELD_NAME:
651
+ writeFieldName(jp.getCurrentName());
652
+ break;
653
+ case VALUE_STRING:
654
+ if (jp.hasTextCharacters()) {
655
+ writeString(jp.getTextCharacters(), jp.getTextOffset(), jp.getTextLength());
656
+ } else {
657
+ writeString(jp.getText());
658
+ }
659
+ break;
660
+ case VALUE_NUMBER_INT:
661
+ switch (jp.getNumberType()) {
662
+ case INT:
663
+ writeNumber(jp.getIntValue());
664
+ break;
665
+ case BIG_INTEGER:
666
+ writeNumber(jp.getBigIntegerValue());
667
+ break;
668
+ default:
669
+ writeNumber(jp.getLongValue());
670
+ }
671
+ break;
672
+ case VALUE_NUMBER_FLOAT:
673
+ switch (jp.getNumberType()) {
674
+ case BIG_DECIMAL:
675
+ writeNumber(jp.getDecimalValue());
676
+ break;
677
+ case FLOAT:
678
+ writeNumber(jp.getFloatValue());
679
+ break;
680
+ default:
681
+ writeNumber(jp.getDoubleValue());
682
+ }
683
+ break;
684
+ case VALUE_TRUE:
685
+ writeBoolean(true);
686
+ break;
687
+ case VALUE_FALSE:
688
+ writeBoolean(false);
689
+ break;
690
+ case VALUE_NULL:
691
+ writeNull();
692
+ break;
693
+ case VALUE_EMBEDDED_OBJECT:
694
+ writeObject(jp.getEmbeddedObject());
695
+ break;
696
+ default:
697
+ throw new RuntimeException("Internal error: should never end up through this code path");
698
+ }
699
+ }
700
+
701
+ @Override
702
+ public void copyCurrentStructure(JsonParser jp) throws IOException, JsonProcessingException {
703
+ JsonToken t = jp.getCurrentToken();
704
+
705
+ // Let's handle field-name separately first
706
+ if (t == JsonToken.FIELD_NAME) {
707
+ writeFieldName(jp.getCurrentName());
708
+ t = jp.nextToken();
709
+ // fall-through to copy the associated value
710
+ }
711
+
712
+ switch (t) {
713
+ case START_ARRAY:
714
+ writeStartArray();
715
+ while (jp.nextToken() != JsonToken.END_ARRAY) {
716
+ copyCurrentStructure(jp);
717
+ }
718
+ writeEndArray();
719
+ break;
720
+ case START_OBJECT:
721
+ writeStartObject();
722
+ while (jp.nextToken() != JsonToken.END_OBJECT) {
723
+ copyCurrentStructure(jp);
724
+ }
725
+ writeEndObject();
726
+ break;
727
+ default: // others are simple:
728
+ copyCurrentEvent(jp);
729
+ }
730
+ }
731
+
732
+ /*
733
+ /**********************************************************
734
+ /* Internal methods
735
+ /**********************************************************
736
+ */
737
+ protected final void _append(JsonToken type) {
738
+ Segment next = _last.append(_appendOffset, type);
739
+ if (next == null) {
740
+ ++_appendOffset;
741
+ } else {
742
+ _last = next;
743
+ _appendOffset = 1; // since we added first at 0
744
+ }
745
+ }
746
+
747
+ protected final void _append(JsonToken type, Object value) {
748
+ Segment next = _last.append(_appendOffset, type, value);
749
+ if (next == null) {
750
+ ++_appendOffset;
751
+ } else {
752
+ _last = next;
753
+ _appendOffset = 1;
754
+ }
755
+ }
756
+
757
+ protected void _reportUnsupportedOperation() {
758
+ throw new UnsupportedOperationException("Called operation not supported for TokenBuffer");
759
+ }
760
+
761
+ /*
762
+ /**********************************************************
763
+ /* Supporting classes
764
+ /**********************************************************
765
+ */
766
+
767
+ protected final static class Parser
768
+ extends JsonParserMinimalBase
769
+ {
770
+ protected ObjectCodec _codec;
771
+
772
+ /*
773
+ /**********************************************************
774
+ /* Parsing state
775
+ /**********************************************************
776
+ */
777
+
778
+ /**
779
+ * Currently active segment
780
+ */
781
+ protected Segment _segment;
782
+
783
+ /**
784
+ * Pointer to current token within current segment
785
+ */
786
+ protected int _segmentPtr;
787
+
788
+ /**
789
+ * Information about parser context, context in which
790
+ * the next token is to be parsed (root, array, object).
791
+ */
792
+ protected JsonReadContext _parsingContext;
793
+
794
+ protected boolean _closed;
795
+
796
+ protected transient ByteArrayBuilder _byteBuilder;
797
+
798
+ protected JsonLocation _location = null;
799
+
800
+ /*
801
+ /**********************************************************
802
+ /* Construction, init
803
+ /**********************************************************
804
+ */
805
+
806
+ public Parser(Segment firstSeg, ObjectCodec codec)
807
+ {
808
+ super(0);
809
+ _segment = firstSeg;
810
+ _segmentPtr = -1; // not yet read
811
+ _codec = codec;
812
+ _parsingContext = JsonReadContext.createRootContext(-1, -1);
813
+ }
814
+
815
+ public void setLocation(JsonLocation l) {
816
+ _location = l;
817
+ }
818
+
819
+ @Override
820
+ public ObjectCodec getCodec() { return _codec; }
821
+
822
+ @Override
823
+ public void setCodec(ObjectCodec c) { _codec = c; }
824
+
825
+ /*
826
+ /**********************************************************
827
+ /* Extended API beyond JsonParser
828
+ /**********************************************************
829
+ */
830
+
831
+ public JsonToken peekNextToken()
832
+ throws IOException, JsonParseException
833
+ {
834
+ // closed? nothing more to peek, either
835
+ if (_closed) return null;
836
+ Segment seg = _segment;
837
+ int ptr = _segmentPtr+1;
838
+ if (ptr >= Segment.TOKENS_PER_SEGMENT) {
839
+ ptr = 0;
840
+ seg = (seg == null) ? null : seg.next();
841
+ }
842
+ return (seg == null) ? null : seg.type(ptr);
843
+ }
844
+
845
+ /*
846
+ /**********************************************************
847
+ /* Closeable implementation
848
+ /**********************************************************
849
+ */
850
+
851
+ @Override
852
+ public void close() throws IOException {
853
+ if (!_closed) {
854
+ _closed = true;
855
+ }
856
+ }
857
+
858
+ /*
859
+ /**********************************************************
860
+ /* Public API, traversal
861
+ /**********************************************************
862
+ */
863
+
864
+ @Override
865
+ public JsonToken nextToken() throws IOException, JsonParseException
866
+ {
867
+ // If we are closed, nothing more to do
868
+ if (_closed || (_segment == null)) return null;
869
+
870
+ // Ok, then: any more tokens?
871
+ if (++_segmentPtr >= Segment.TOKENS_PER_SEGMENT) {
872
+ _segmentPtr = 0;
873
+ _segment = _segment.next();
874
+ if (_segment == null) {
875
+ return null;
876
+ }
877
+ }
878
+ _currToken = _segment.type(_segmentPtr);
879
+ // Field name? Need to update context
880
+ if (_currToken == JsonToken.FIELD_NAME) {
881
+ Object ob = _currentObject();
882
+ String name = (ob instanceof String) ? ((String) ob) : ob.toString();
883
+ _parsingContext.setCurrentName(name);
884
+ } else if (_currToken == JsonToken.START_OBJECT) {
885
+ _parsingContext = _parsingContext.createChildObjectContext(-1, -1);
886
+ } else if (_currToken == JsonToken.START_ARRAY) {
887
+ _parsingContext = _parsingContext.createChildArrayContext(-1, -1);
888
+ } else if (_currToken == JsonToken.END_OBJECT
889
+ || _currToken == JsonToken.END_ARRAY) {
890
+ // Closing JSON Object/Array? Close matching context
891
+ _parsingContext = _parsingContext.getParent();
892
+ // but allow unbalanced cases too (more close markers)
893
+ if (_parsingContext == null) {
894
+ _parsingContext = JsonReadContext.createRootContext(-1, -1);
895
+ }
896
+ }
897
+ return _currToken;
898
+ }
899
+
900
+ @Override
901
+ public boolean isClosed() { return _closed; }
902
+
903
+ /*
904
+ /**********************************************************
905
+ /* Public API, token accessors
906
+ /**********************************************************
907
+ */
908
+
909
+ @Override
910
+ public JsonStreamContext getParsingContext() { return _parsingContext; }
911
+
912
+ @Override
913
+ public JsonLocation getTokenLocation() { return getCurrentLocation(); }
914
+
915
+ @Override
916
+ public JsonLocation getCurrentLocation() {
917
+ return (_location == null) ? JsonLocation.NA : _location;
918
+ }
919
+
920
+ @Override
921
+ public String getCurrentName() { return _parsingContext.getCurrentName(); }
922
+
923
+ /*
924
+ /**********************************************************
925
+ /* Public API, access to token information, text
926
+ /**********************************************************
927
+ */
928
+
929
+ @Override
930
+ public String getText()
931
+ {
932
+ // common cases first:
933
+ if (_currToken == JsonToken.VALUE_STRING
934
+ || _currToken == JsonToken.FIELD_NAME) {
935
+ Object ob = _currentObject();
936
+ if (ob instanceof String) {
937
+ return (String) ob;
938
+ }
939
+ return (ob == null) ? null : ob.toString();
940
+ }
941
+ if (_currToken == null) {
942
+ return null;
943
+ }
944
+ switch (_currToken) {
945
+ case VALUE_NUMBER_INT:
946
+ case VALUE_NUMBER_FLOAT:
947
+ Object ob = _currentObject();
948
+ return (ob == null) ? null : ob.toString();
949
+ }
950
+ return _currToken.asString();
951
+ }
952
+
953
+ @Override
954
+ public char[] getTextCharacters() {
955
+ String str = getText();
956
+ return (str == null) ? null : str.toCharArray();
957
+ }
958
+
959
+ @Override
960
+ public int getTextLength() {
961
+ String str = getText();
962
+ return (str == null) ? 0 : str.length();
963
+ }
964
+
965
+ @Override
966
+ public int getTextOffset() { return 0; }
967
+
968
+ @Override
969
+ public boolean hasTextCharacters() {
970
+ // We never have raw buffer available, so:
971
+ return false;
972
+ }
973
+
974
+ /*
975
+ /**********************************************************
976
+ /* Public API, access to token information, numeric
977
+ /**********************************************************
978
+ */
979
+
980
+ @Override
981
+ public BigInteger getBigIntegerValue() throws IOException, JsonParseException
982
+ {
983
+ Number n = getNumberValue();
984
+ if (n instanceof BigInteger) {
985
+ return (BigInteger) n;
986
+ }
987
+ switch (getNumberType()) {
988
+ case BIG_DECIMAL:
989
+ return ((BigDecimal) n).toBigInteger();
990
+ }
991
+ // int/long is simple, but let's also just truncate float/double:
992
+ return BigInteger.valueOf(n.longValue());
993
+ }
994
+
995
+ @Override
996
+ public BigDecimal getDecimalValue() throws IOException, JsonParseException
997
+ {
998
+ Number n = getNumberValue();
999
+ if (n instanceof BigDecimal) {
1000
+ return (BigDecimal) n;
1001
+ }
1002
+ switch (getNumberType()) {
1003
+ case INT:
1004
+ case LONG:
1005
+ return BigDecimal.valueOf(n.longValue());
1006
+ case BIG_INTEGER:
1007
+ return new BigDecimal((BigInteger) n);
1008
+ }
1009
+ // float or double
1010
+ return BigDecimal.valueOf(n.doubleValue());
1011
+ }
1012
+
1013
+ @Override
1014
+ public double getDoubleValue() throws IOException, JsonParseException {
1015
+ return getNumberValue().doubleValue();
1016
+ }
1017
+
1018
+ @Override
1019
+ public float getFloatValue() throws IOException, JsonParseException {
1020
+ return getNumberValue().floatValue();
1021
+ }
1022
+
1023
+ @Override
1024
+ public int getIntValue() throws IOException, JsonParseException
1025
+ {
1026
+ // optimize common case:
1027
+ if (_currToken == JsonToken.VALUE_NUMBER_INT) {
1028
+ return ((Number) _currentObject()).intValue();
1029
+ }
1030
+ return getNumberValue().intValue();
1031
+ }
1032
+
1033
+ @Override
1034
+ public long getLongValue() throws IOException, JsonParseException {
1035
+ return getNumberValue().longValue();
1036
+ }
1037
+
1038
+ @Override
1039
+ public NumberType getNumberType() throws IOException, JsonParseException
1040
+ {
1041
+ Number n = getNumberValue();
1042
+ if (n instanceof Integer) return NumberType.INT;
1043
+ if (n instanceof Long) return NumberType.LONG;
1044
+ if (n instanceof Double) return NumberType.DOUBLE;
1045
+ if (n instanceof BigDecimal) return NumberType.BIG_DECIMAL;
1046
+ if (n instanceof Float) return NumberType.FLOAT;
1047
+ if (n instanceof BigInteger) return NumberType.BIG_INTEGER;
1048
+ return null;
1049
+ }
1050
+
1051
+ @Override
1052
+ public final Number getNumberValue() throws IOException, JsonParseException {
1053
+ _checkIsNumber();
1054
+ return (Number) _currentObject();
1055
+ }
1056
+
1057
+ /*
1058
+ /**********************************************************
1059
+ /* Public API, access to token information, other
1060
+ /**********************************************************
1061
+ */
1062
+
1063
+ @Override
1064
+ public Object getEmbeddedObject()
1065
+ {
1066
+ if (_currToken == JsonToken.VALUE_EMBEDDED_OBJECT) {
1067
+ return _currentObject();
1068
+ }
1069
+ return null;
1070
+ }
1071
+
1072
+ @Override
1073
+ public byte[] getBinaryValue(Base64Variant b64variant) throws IOException, JsonParseException
1074
+ {
1075
+ // First: maybe we some special types?
1076
+ if (_currToken == JsonToken.VALUE_EMBEDDED_OBJECT) {
1077
+ // Embedded byte array would work nicely...
1078
+ Object ob = _currentObject();
1079
+ if (ob instanceof byte[]) {
1080
+ return (byte[]) ob;
1081
+ }
1082
+ // fall through to error case
1083
+ }
1084
+ if (_currToken != JsonToken.VALUE_STRING) {
1085
+ throw _constructError("Current token ("+_currToken+") not VALUE_STRING (or VALUE_EMBEDDED_OBJECT with byte[]), can not access as binary");
1086
+ }
1087
+ final String str = getText();
1088
+ if (str == null) {
1089
+ return null;
1090
+ }
1091
+ ByteArrayBuilder builder = _byteBuilder;
1092
+ if (builder == null) {
1093
+ _byteBuilder = builder = new ByteArrayBuilder(100);
1094
+ } else {
1095
+ _byteBuilder.reset();
1096
+ }
1097
+ _decodeBase64(str, builder, b64variant);
1098
+ return builder.toByteArray();
1099
+ }
1100
+
1101
+ /*
1102
+ /**********************************************************
1103
+ /* Internal methods
1104
+ /**********************************************************
1105
+ */
1106
+
1107
+ protected final Object _currentObject() {
1108
+ return _segment.get(_segmentPtr);
1109
+ }
1110
+
1111
+ protected final void _checkIsNumber() throws JsonParseException
1112
+ {
1113
+ if (_currToken == null || !_currToken.isNumeric()) {
1114
+ throw _constructError("Current token ("+_currToken+") not numeric, can not use numeric value accessors");
1115
+ }
1116
+ }
1117
+
1118
+ @Override
1119
+ protected void _handleEOF() throws JsonParseException {
1120
+ _throwInternal();
1121
+ }
1122
+ }
1123
+
1124
+ /**
1125
+ * Individual segment of TokenBuffer that can store up to 16 tokens
1126
+ * (limited by 4 bits per token type marker requirement).
1127
+ * Current implementation uses fixed length array; could alternatively
1128
+ * use 16 distinct fields and switch statement (slightly more efficient
1129
+ * storage, slightly slower access)
1130
+ */
1131
+ protected final static class Segment
1132
+ {
1133
+ public final static int TOKENS_PER_SEGMENT = 16;
1134
+
1135
+ /**
1136
+ * Static array used for fast conversion between token markers and
1137
+ * matching {@link JsonToken} instances
1138
+ */
1139
+ private final static JsonToken[] TOKEN_TYPES_BY_INDEX;
1140
+ static {
1141
+ // ... here we know that there are <= 16 values in JsonToken enum
1142
+ TOKEN_TYPES_BY_INDEX = new JsonToken[16];
1143
+ JsonToken[] t = JsonToken.values();
1144
+ System.arraycopy(t, 1, TOKEN_TYPES_BY_INDEX, 1, Math.min(15, t.length - 1));
1145
+ }
1146
+
1147
+ // // // Linking
1148
+
1149
+ protected Segment _next;
1150
+
1151
+ // // // State
1152
+
1153
+ /**
1154
+ * Bit field used to store types of buffered tokens; 4 bits per token.
1155
+ * Value 0 is reserved for "not in use"
1156
+ */
1157
+ protected long _tokenTypes;
1158
+
1159
+
1160
+ // Actual tokens
1161
+
1162
+ protected final Object[] _tokens = new Object[TOKENS_PER_SEGMENT];
1163
+
1164
+ public Segment() { }
1165
+
1166
+ // // // Accessors
1167
+
1168
+ public JsonToken type(int index)
1169
+ {
1170
+ long l = _tokenTypes;
1171
+ if (index > 0) {
1172
+ l >>= (index << 2);
1173
+ }
1174
+ int ix = ((int) l) & 0xF;
1175
+ return TOKEN_TYPES_BY_INDEX[ix];
1176
+ }
1177
+
1178
+ public Object get(int index) {
1179
+ return _tokens[index];
1180
+ }
1181
+
1182
+ public Segment next() { return _next; }
1183
+
1184
+ // // // Mutators
1185
+
1186
+ public Segment append(int index, JsonToken tokenType)
1187
+ {
1188
+ if (index < TOKENS_PER_SEGMENT) {
1189
+ set(index, tokenType);
1190
+ return null;
1191
+ }
1192
+ _next = new Segment();
1193
+ _next.set(0, tokenType);
1194
+ return _next;
1195
+ }
1196
+
1197
+ public Segment append(int index, JsonToken tokenType, Object value)
1198
+ {
1199
+ if (index < TOKENS_PER_SEGMENT) {
1200
+ set(index, tokenType, value);
1201
+ return null;
1202
+ }
1203
+ _next = new Segment();
1204
+ _next.set(0, tokenType, value);
1205
+ return _next;
1206
+ }
1207
+
1208
+ public void set(int index, JsonToken tokenType)
1209
+ {
1210
+ long typeCode = tokenType.ordinal();
1211
+ /* Assumption here is that there are no overwrites, just appends;
1212
+ * and so no masking is needed
1213
+ */
1214
+ if (index > 0) {
1215
+ typeCode <<= (index << 2);
1216
+ }
1217
+ _tokenTypes |= typeCode;
1218
+ }
1219
+
1220
+ public void set(int index, JsonToken tokenType, Object value)
1221
+ {
1222
+ _tokens[index] = value;
1223
+ long typeCode = tokenType.ordinal();
1224
+ /* Assumption here is that there are no overwrites, just appends;
1225
+ * and so no masking is needed
1226
+ */
1227
+ if (index > 0) {
1228
+ typeCode <<= (index << 2);
1229
+ }
1230
+ _tokenTypes |= typeCode;
1231
+ }
1232
+ }
1233
+ }