calabash-android 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (532) hide show
  1. data/CHANGES.txt +1 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +8 -0
  4. data/Rakefile +2 -0
  5. data/bin/calabash-android +42 -0
  6. data/bin/calabash-android-build.rb +37 -0
  7. data/bin/calabash-android-generate.rb +26 -0
  8. data/bin/calabash-android-helpers.rb +71 -0
  9. data/bin/calabash-android-run.rb +18 -0
  10. data/bin/calabash-android-setup.rb +392 -0
  11. data/calabash-android.gemspec +23 -0
  12. data/doc/calabash-android-help.txt +21 -0
  13. data/epl-v10.html +261 -0
  14. data/features-skeleton/.irbrc +16 -0
  15. data/features-skeleton/irb_android.sh +2 -0
  16. data/features-skeleton/my_first.feature +5 -0
  17. data/features-skeleton/step_definitions/calabash_steps.rb +1 -0
  18. data/features-skeleton/support/app_installation_hooks.rb +26 -0
  19. data/features-skeleton/support/app_life_cycle_hooks.rb +28 -0
  20. data/features-skeleton/support/env.rb +1 -0
  21. data/features-skeleton/support/hooks.rb +18 -0
  22. data/lib/calabash-android.rb +2 -0
  23. data/lib/calabash-android/calabash_steps.rb +18 -0
  24. data/lib/calabash-android/canned_steps.md +239 -0
  25. data/lib/calabash-android/color_helper.rb +13 -0
  26. data/lib/calabash-android/cucumber.rb +9 -0
  27. data/lib/calabash-android/lib/screenShotTaker.jar +0 -0
  28. data/lib/calabash-android/management/adb.rb +11 -0
  29. data/lib/calabash-android/management/app_installation.rb +21 -0
  30. data/lib/calabash-android/operations.rb +283 -0
  31. data/lib/calabash-android/steps/additions_manual_steps.rb +11 -0
  32. data/lib/calabash-android/steps/app_steps.rb +10 -0
  33. data/lib/calabash-android/steps/assert_steps.rb +32 -0
  34. data/lib/calabash-android/steps/check_box_steps.rb +3 -0
  35. data/lib/calabash-android/steps/context_menu_steps.rb +12 -0
  36. data/lib/calabash-android/steps/date_picker_steps.rb +8 -0
  37. data/lib/calabash-android/steps/enter_text_steps.rb +21 -0
  38. data/lib/calabash-android/steps/location_steps.rb +19 -0
  39. data/lib/calabash-android/steps/navigation_steps.rb +27 -0
  40. data/lib/calabash-android/steps/press_button_steps.rb +35 -0
  41. data/lib/calabash-android/steps/progress_steps.rb +49 -0
  42. data/lib/calabash-android/steps/rotation_steps.rb +8 -0
  43. data/lib/calabash-android/steps/screenshot_steps.rb +11 -0
  44. data/lib/calabash-android/steps/spinner_steps.rb +3 -0
  45. data/lib/calabash-android/steps/time_picker_steps.rb +8 -0
  46. data/lib/calabash-android/version.rb +6 -0
  47. data/test-server/AndroidManifest.xml +13 -0
  48. data/test-server/build.xml +192 -0
  49. data/test-server/calabash-js/src/calabash.js +125 -0
  50. data/test-server/calabash-js/src/set_text.js +132 -0
  51. data/test-server/instrumentation-backend/.classpath +10 -0
  52. data/test-server/instrumentation-backend/.project +33 -0
  53. data/test-server/instrumentation-backend/.settings/org.eclipse.jdt.core.prefs +12 -0
  54. data/test-server/instrumentation-backend/AndroidManifest.xml +15 -0
  55. data/test-server/instrumentation-backend/assets/foo.bar +0 -0
  56. data/test-server/instrumentation-backend/gen/com/lesspainful/simpleui/test/R.java +23 -0
  57. data/test-server/instrumentation-backend/libs/robotium-solo-2.5.jar +0 -0
  58. data/test-server/instrumentation-backend/project.properties +11 -0
  59. data/test-server/instrumentation-backend/res/drawable-hdpi/ic_launcher.png +0 -0
  60. data/test-server/instrumentation-backend/res/drawable-ldpi/ic_launcher.png +0 -0
  61. data/test-server/instrumentation-backend/res/drawable-mdpi/ic_launcher.png +0 -0
  62. data/test-server/instrumentation-backend/res/layout/main.xml +12 -0
  63. data/test-server/instrumentation-backend/res/values/strings.xml +7 -0
  64. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Command.java +48 -0
  65. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/InstrumentationBackend.java +196 -0
  66. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +64 -0
  67. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/TestHelpers.java +136 -0
  68. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Action.java +11 -0
  69. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Actions.java +113 -0
  70. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/NullAction.java +23 -0
  71. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonNumber.java +22 -0
  72. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonText.java +27 -0
  73. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressImageButtonNumber.java +22 -0
  74. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/WaitForButton.java +47 -0
  75. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/checkbox/ToggleCheckboxNumber.java +22 -0
  76. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressText.java +22 -0
  77. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuById.java +26 -0
  78. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByIndex.java +22 -0
  79. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByText.java +26 -0
  80. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/ClickOnScreen.java +31 -0
  81. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/Swipe.java +28 -0
  82. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/helpers/ListActions.java +26 -0
  83. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/LongPressListItems.java +22 -0
  84. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/PressListItems.java +22 -0
  85. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/location/FakeGPSLocation.java +79 -0
  86. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollDown.java +28 -0
  87. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollUp.java +28 -0
  88. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/DownKey.java +24 -0
  89. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/GoBack.java +22 -0
  90. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/PressMenu.java +26 -0
  91. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/SelectFromMenuByText.java +24 -0
  92. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/spinner/SelectSpinnerItemByContentDescription.java +43 -0
  93. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertText.java +31 -0
  94. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertTextOfSpecificTextViewByContentDescription.java +32 -0
  95. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextByIndex.java +22 -0
  96. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextFieldByContentDescription.java +33 -0
  97. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClickOnText.java +22 -0
  98. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByContentDescription.java +32 -0
  99. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByIndex.java +22 -0
  100. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByContentDescription.java +33 -0
  101. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByIndex.java +24 -0
  102. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByContentDescription.java +34 -0
  103. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByIndex.java +26 -0
  104. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/ClickOnViewById.java +63 -0
  105. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/LongPressOnViewById.java +34 -0
  106. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/Press.java +89 -0
  107. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/WaitForViewById.java +41 -0
  108. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/Wait.java +24 -0
  109. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForDialogClose.java +21 -0
  110. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForProgress.java +47 -0
  111. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForScreen.java +49 -0
  112. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForText.java +26 -0
  113. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java +109 -0
  114. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java +33 -0
  115. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java +33 -0
  116. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/EnterTextByCssSelector.java +99 -0
  117. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +43 -0
  118. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Query.java +24 -0
  119. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +99 -0
  120. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ScrollTo.java +74 -0
  121. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetPropertyByCssSelector.java +43 -0
  122. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +50 -0
  123. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Touch.java +44 -0
  124. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variant.java +413 -0
  125. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variants.java +90 -0
  126. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/FormatSchema.java +29 -0
  127. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonEncoding.java +47 -0
  128. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonFactory.java +937 -0
  129. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerationException.java +28 -0
  130. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerator.java +1197 -0
  131. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonLocation.java +141 -0
  132. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonNode.java +879 -0
  133. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParseException.java +23 -0
  134. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParser.java +1434 -0
  135. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonProcessingException.java +80 -0
  136. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonStreamContext.java +122 -0
  137. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonToken.java +161 -0
  138. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/ObjectCodec.java +157 -0
  139. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/PrettyPrinter.java +166 -0
  140. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/SerializableString.java +54 -0
  141. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Version.java +90 -0
  142. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Versioned.java +20 -0
  143. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JacksonAnnotation.java +20 -0
  144. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnyGetter.java +25 -0
  145. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnySetter.java +24 -0
  146. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAutoDetect.java +148 -0
  147. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonBackReference.java +41 -0
  148. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonCreator.java +19 -0
  149. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonGetter.java +35 -0
  150. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnore.java +57 -0
  151. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreProperties.java +48 -0
  152. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreType.java +33 -0
  153. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonManagedReference.java +41 -0
  154. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonMethod.java +90 -0
  155. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonProperty.java +38 -0
  156. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonPropertyOrder.java +46 -0
  157. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonRawValue.java +33 -0
  158. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSetter.java +33 -0
  159. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSubTypes.java +44 -0
  160. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeInfo.java +236 -0
  161. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeName.java +28 -0
  162. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonUnwrapped.java +76 -0
  163. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonValue.java +46 -0
  164. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonWriteNullProperties.java +34 -0
  165. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/package-info.java +16 -0
  166. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatDetector.java +176 -0
  167. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatMatcher.java +117 -0
  168. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/InputAccessor.java +130 -0
  169. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/MatchStrength.java +64 -0
  170. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/package-info.java +8 -0
  171. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ByteSourceBootstrapper.java +518 -0
  172. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/DefaultPrettyPrinter.java +13 -0
  173. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Indenter.java +23 -0
  174. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonGeneratorBase.java +570 -0
  175. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonNumericParserBase.java +20 -0
  176. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserBase.java +1067 -0
  177. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserMinimalBase.java +539 -0
  178. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonReadContext.java +188 -0
  179. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonWriteContext.java +178 -0
  180. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParser.java +1815 -0
  181. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParserBase.java +228 -0
  182. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/StreamBasedParserBase.java +197 -0
  183. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8Generator.java +1757 -0
  184. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8StreamParser.java +2966 -0
  185. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/WriterBasedGenerator.java +1815 -0
  186. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/package-info.java +6 -0
  187. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/BaseReader.java +117 -0
  188. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/CharacterEscapes.java +73 -0
  189. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/IOContext.java +239 -0
  190. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/InputDecorator.java +67 -0
  191. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/JsonStringEncoder.java +408 -0
  192. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/MergedStream.java +145 -0
  193. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberInput.java +303 -0
  194. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberOutput.java +398 -0
  195. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/OutputDecorator.java +40 -0
  196. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SegmentedStringWriter.java +104 -0
  197. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SerializedString.java +114 -0
  198. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF32Reader.java +214 -0
  199. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF8Writer.java +387 -0
  200. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/package.html +4 -0
  201. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AbstractTypeResolver.java +63 -0
  202. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AnnotationIntrospector.java +1485 -0
  203. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanDescription.java +171 -0
  204. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanProperty.java +123 -0
  205. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanPropertyDefinition.java +66 -0
  206. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ClassIntrospector.java +117 -0
  207. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualDeserializer.java +38 -0
  208. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualKeyDeserializer.java +33 -0
  209. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualSerializer.java +38 -0
  210. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationConfig.java +926 -0
  211. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationContext.java +262 -0
  212. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationProblemHandler.java +56 -0
  213. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerFactory.java +356 -0
  214. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerProvider.java +185 -0
  215. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Deserializers.java +339 -0
  216. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/HandlerInstantiator.java +115 -0
  217. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/InjectableValues.java +85 -0
  218. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonDeserializer.java +166 -0
  219. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonMappingException.java +335 -0
  220. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializable.java +34 -0
  221. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializableWithType.java +22 -0
  222. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializer.java +138 -0
  223. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializer.java +31 -0
  224. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializers.java +21 -0
  225. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MapperConfig.java +1154 -0
  226. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingIterator.java +190 -0
  227. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingJsonFactory.java +81 -0
  228. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Module.java +255 -0
  229. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectMapper.java +2885 -0
  230. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectReader.java +958 -0
  231. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectWriter.java +554 -0
  232. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/PropertyNamingStrategy.java +258 -0
  233. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableDeserializer.java +23 -0
  234. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableSerializer.java +23 -0
  235. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/RuntimeJsonMappingException.java +21 -0
  236. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializationConfig.java +1041 -0
  237. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerFactory.java +198 -0
  238. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerProvider.java +552 -0
  239. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Serializers.java +137 -0
  240. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeDeserializer.java +118 -0
  241. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeSerializer.java +164 -0
  242. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonInject.java +30 -0
  243. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonStdImpl.java +25 -0
  244. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonCachable.java +32 -0
  245. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonDeserialize.java +109 -0
  246. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonFilter.java +31 -0
  247. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonRootName.java +29 -0
  248. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonSerialize.java +216 -0
  249. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeIdResolver.java +35 -0
  250. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeResolver.java +28 -0
  251. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonValueInstantiator.java +26 -0
  252. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonView.java +37 -0
  253. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/NoClass.java +19 -0
  254. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/package-info.java +5 -0
  255. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/AbstractDeserializer.java +102 -0
  256. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializer.java +28 -0
  257. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializers.java +11 -0
  258. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java +894 -0
  259. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializer.java +1537 -0
  260. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerBuilder.java +277 -0
  261. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerFactory.java +1474 -0
  262. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerModifier.java +58 -0
  263. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CollectionDeserializer.java +47 -0
  264. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ContainerDeserializer.java +14 -0
  265. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CustomDeserializerFactory.java +227 -0
  266. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/DateDeserializer.java +9 -0
  267. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumDeserializer.java +15 -0
  268. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumResolver.java +17 -0
  269. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/FromStringDeserializer.java +13 -0
  270. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/JsonNodeDeserializer.java +54 -0
  271. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/MapDeserializer.java +44 -0
  272. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableAnyProperty.java +177 -0
  273. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableBeanProperty.java +827 -0
  274. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializationContext.java +326 -0
  275. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializer.java +94 -0
  276. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializerProvider.java +494 -0
  277. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializers.java +119 -0
  278. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializer.java +12 -0
  279. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializers.java +11 -0
  280. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdScalarDeserializer.java +13 -0
  281. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ThrowableDeserializer.java +13 -0
  282. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/UntypedObjectDeserializer.java +9 -0
  283. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiator.java +280 -0
  284. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiators.java +52 -0
  285. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/BeanPropertyMap.java +257 -0
  286. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorCollector.java +141 -0
  287. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorProperty.java +152 -0
  288. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ExternalTypeHandler.java +173 -0
  289. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyBasedCreator.java +117 -0
  290. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValue.java +117 -0
  291. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValueBuffer.java +102 -0
  292. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/UnwrappedPropertyHandler.java +41 -0
  293. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ValueInjector.java +45 -0
  294. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/package-info.java +9 -0
  295. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/package-info.java +5 -0
  296. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicBooleanDeserializer.java +22 -0
  297. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicReferenceDeserializer.java +47 -0
  298. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CalendarDeserializer.java +47 -0
  299. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ClassDeserializer.java +49 -0
  300. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CollectionDeserializer.java +265 -0
  301. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ContainerDeserializerBase.java +37 -0
  302. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/DateDeserializer.java +30 -0
  303. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumDeserializer.java +139 -0
  304. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumMapDeserializer.java +90 -0
  305. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java +89 -0
  306. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/FromStringDeserializer.java +265 -0
  307. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JavaTypeDeserializer.java +38 -0
  308. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JsonNodeDeserializer.java +314 -0
  309. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/MapDeserializer.java +412 -0
  310. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ObjectArrayDeserializer.java +201 -0
  311. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/PrimitiveArrayDeserializers.java +583 -0
  312. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdDeserializer.java +1136 -0
  313. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java +340 -0
  314. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializers.java +108 -0
  315. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdScalarDeserializer.java +34 -0
  316. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdValueInstantiator.java +392 -0
  317. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringCollectionDeserializer.java +227 -0
  318. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringDeserializer.java +55 -0
  319. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ThrowableDeserializer.java +164 -0
  320. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TimestampDeserializer.java +30 -0
  321. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TokenBufferDeserializer.java +36 -0
  322. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/UntypedObjectDeserializer.java +248 -0
  323. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/package-info.java +15 -0
  324. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/exc/UnrecognizedPropertyException.java +75 -0
  325. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLDeserializers.java +114 -0
  326. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLSerializers.java +72 -0
  327. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/DOMDeserializer.java +65 -0
  328. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/OptionalHandlerFactory.java +217 -0
  329. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/package-info.java +23 -0
  330. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/Annotated.java +85 -0
  331. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedClass.java +980 -0
  332. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedConstructor.java +143 -0
  333. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedField.java +119 -0
  334. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMember.java +56 -0
  335. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethod.java +188 -0
  336. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethodMap.java +85 -0
  337. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedParameter.java +191 -0
  338. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedWithParams.java +195 -0
  339. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotationMap.java +101 -0
  340. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicBeanDescription.java +615 -0
  341. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicClassIntrospector.java +364 -0
  342. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/JacksonAnnotationIntrospector.java +813 -0
  343. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MemberKey.java +83 -0
  344. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MethodFilter.java +12 -0
  345. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/NopAnnotationIntrospector.java +209 -0
  346. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertiesCollector.java +713 -0
  347. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertyBuilder.java +648 -0
  348. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/VisibilityChecker.java +424 -0
  349. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/package-info.java +12 -0
  350. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/NamedType.java +53 -0
  351. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/SubtypeResolver.java +39 -0
  352. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeIdResolver.java +74 -0
  353. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeResolverBuilder.java +151 -0
  354. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeDeserializer.java +126 -0
  355. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeSerializer.java +110 -0
  356. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeDeserializer.java +37 -0
  357. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeSerializer.java +129 -0
  358. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeDeserializer.java +191 -0
  359. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeSerializer.java +69 -0
  360. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeDeserializer.java +103 -0
  361. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeSerializer.java +121 -0
  362. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/ClassNameIdResolver.java +138 -0
  363. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/MinimalClassNameIdResolver.java +66 -0
  364. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdSubtypeResolver.java +151 -0
  365. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdTypeResolverBuilder.java +202 -0
  366. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeDeserializerBase.java +154 -0
  367. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeIdResolverBase.java +37 -0
  368. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeNameIdResolver.java +154 -0
  369. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeSerializerBase.java +31 -0
  370. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/package-info.java +9 -0
  371. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/package-info.java +10 -0
  372. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleAbstractTypeResolver.java +86 -0
  373. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleDeserializers.java +130 -0
  374. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleKeyDeserializers.java +59 -0
  375. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleModule.java +265 -0
  376. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleSerializers.java +206 -0
  377. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleValueInstantiators.java +45 -0
  378. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/package-info.java +16 -0
  379. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/package-info.java +34 -0
  380. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/AnyGetterWriter.java +48 -0
  381. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ArraySerializers.java +7 -0
  382. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BasicSerializerFactory.java +806 -0
  383. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyFilter.java +30 -0
  384. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyWriter.java +512 -0
  385. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializer.java +126 -0
  386. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerBuilder.java +140 -0
  387. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerFactory.java +780 -0
  388. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerModifier.java +95 -0
  389. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ContainerSerializers.java +8 -0
  390. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/CustomSerializerFactory.java +293 -0
  391. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/EnumSerializer.java +17 -0
  392. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilterProvider.java +23 -0
  393. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilteredBeanPropertyWriter.java +96 -0
  394. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/JdkSerializers.java +11 -0
  395. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/MapSerializer.java +58 -0
  396. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/PropertyBuilder.java +372 -0
  397. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ScalarSerializerBase.java +18 -0
  398. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/SerializerBase.java +23 -0
  399. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdKeySerializer.java +10 -0
  400. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializerProvider.java +852 -0
  401. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializers.java +372 -0
  402. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ToStringSerializer.java +14 -0
  403. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/FailingSerializer.java +43 -0
  404. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/JsonSerializerMap.java +93 -0
  405. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/PropertySerializerMap.java +231 -0
  406. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/ReadOnlyClassToSerializerMap.java +73 -0
  407. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SerializerCache.java +304 -0
  408. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleBeanPropertyFilter.java +109 -0
  409. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleFilterProvider.java +114 -0
  410. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnknownSerializer.java +54 -0
  411. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanPropertyWriter.java +99 -0
  412. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanSerializer.java +76 -0
  413. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/package-info.java +5 -0
  414. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/package-info.java +5 -0
  415. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/AsArraySerializerBase.java +185 -0
  416. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java +340 -0
  417. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CalendarSerializer.java +43 -0
  418. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CollectionSerializer.java +113 -0
  419. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ContainerSerializerBase.java +51 -0
  420. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/DateSerializer.java +42 -0
  421. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumMapSerializer.java +218 -0
  422. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSerializer.java +84 -0
  423. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSetSerializer.java +47 -0
  424. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IndexedStringListSerializer.java +116 -0
  425. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/InetAddressSerializer.java +51 -0
  426. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IterableSerializer.java +63 -0
  427. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/JsonValueSerializer.java +233 -0
  428. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/MapSerializer.java +422 -0
  429. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NonTypedScalarSerializerBase.java +34 -0
  430. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NullSerializer.java +38 -0
  431. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ObjectArraySerializer.java +281 -0
  432. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/RawSerializer.java +52 -0
  433. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ScalarSerializerBase.java +52 -0
  434. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableSerializer.java +99 -0
  435. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableWithTypeSerializer.java +90 -0
  436. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializerBase.java +184 -0
  437. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StaticListSerializerBase.java +46 -0
  438. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdArraySerializers.java +476 -0
  439. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdContainerSerializers.java +249 -0
  440. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdJdkSerializers.java +195 -0
  441. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializer.java +43 -0
  442. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializers.java +95 -0
  443. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringCollectionSerializer.java +119 -0
  444. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringSerializer.java +36 -0
  445. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TimeZoneSerializer.java +38 -0
  446. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ToStringSerializer.java +73 -0
  447. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TokenBufferSerializer.java +66 -0
  448. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ArrayType.java +260 -0
  449. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ClassKey.java +94 -0
  450. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionLikeType.java +204 -0
  451. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionType.java +94 -0
  452. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/HierarchicType.java +88 -0
  453. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapLikeType.java +265 -0
  454. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapType.java +146 -0
  455. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/SimpleType.java +250 -0
  456. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBase.java +148 -0
  457. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBindings.java +351 -0
  458. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeFactory.java +1165 -0
  459. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeModifier.java +38 -0
  460. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeParser.java +134 -0
  461. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/package-info.java +10 -0
  462. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Annotations.java +23 -0
  463. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ArrayBuilders.java +293 -0
  464. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/BeanUtil.java +260 -0
  465. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ClassUtil.java +645 -0
  466. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Comparators.java +48 -0
  467. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumResolver.java +108 -0
  468. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumValues.java +82 -0
  469. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601DateFormat.java +52 -0
  470. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601Utils.java +230 -0
  471. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONPObject.java +105 -0
  472. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONWrappedObject.java +117 -0
  473. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LRUMap.java +28 -0
  474. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LinkedNode.java +45 -0
  475. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Named.java +10 -0
  476. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ObjectBuffer.java +257 -0
  477. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/PrimitiveArrayBuilder.java +180 -0
  478. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Provider.java +21 -0
  479. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/RootNameLookup.java +54 -0
  480. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/StdDateFormat.java +348 -0
  481. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/package-info.java +4 -0
  482. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ArrayNode.java +758 -0
  483. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BaseJsonNode.java +122 -0
  484. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BigIntegerNode.java +104 -0
  485. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BinaryNode.java +136 -0
  486. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BooleanNode.java +84 -0
  487. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ContainerNode.java +185 -0
  488. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DecimalNode.java +96 -0
  489. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DoubleNode.java +106 -0
  490. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/IntNode.java +122 -0
  491. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/JsonNodeFactory.java +222 -0
  492. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/LongNode.java +99 -0
  493. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/MissingNode.java +97 -0
  494. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NodeCursor.java +222 -0
  495. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NullNode.java +58 -0
  496. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NumericNode.java +72 -0
  497. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ObjectNode.java +696 -0
  498. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/POJONode.java +145 -0
  499. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TextNode.java +299 -0
  500. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TreeTraversingParser.java +383 -0
  501. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ValueNode.java +58 -0
  502. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/package-info.java +8 -0
  503. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/package-info.java +30 -0
  504. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSchema.java +82 -0
  505. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSerializableSchema.java +46 -0
  506. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/SchemaAware.java +25 -0
  507. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/package-info.java +5 -0
  508. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/BytesToNameCanonicalizer.java +969 -0
  509. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/CharsToNameCanonicalizer.java +578 -0
  510. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name.java +50 -0
  511. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name1.java +44 -0
  512. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name2.java +40 -0
  513. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name3.java +39 -0
  514. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/NameN.java +68 -0
  515. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/package-info.java +5 -0
  516. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/JavaType.java +503 -0
  517. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/TypeReference.java +60 -0
  518. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/package-info.java +8 -0
  519. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/BufferRecycler.java +109 -0
  520. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/ByteArrayBuilder.java +294 -0
  521. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/CharTypes.java +237 -0
  522. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/DefaultPrettyPrinter.java +282 -0
  523. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/InternCache.java +49 -0
  524. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonGeneratorDelegate.java +273 -0
  525. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserDelegate.java +251 -0
  526. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserSequence.java +150 -0
  527. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/MinimalPrettyPrinter.java +152 -0
  528. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TextBuffer.java +707 -0
  529. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TokenBuffer.java +1233 -0
  530. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/VersionUtil.java +79 -0
  531. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/package-info.java +4 -0
  532. metadata +619 -0
@@ -0,0 +1,23 @@
1
+ package sh.calaba.org.codehaus.jackson;
2
+
3
+ /**
4
+ * Exception type for parsing problems, used when non-well-formed content
5
+ * (content that does not conform to JSON syntax as per specification)
6
+ * is encountered.
7
+ */
8
+ public class JsonParseException
9
+ extends JsonProcessingException
10
+ {
11
+ @SuppressWarnings("hiding")
12
+ final static long serialVersionUID = 123; // Stupid eclipse...
13
+
14
+ public JsonParseException(String msg, JsonLocation loc)
15
+ {
16
+ super(msg, loc);
17
+ }
18
+
19
+ public JsonParseException(String msg, JsonLocation loc, Throwable root)
20
+ {
21
+ super(msg, loc, root);
22
+ }
23
+ }
@@ -0,0 +1,1434 @@
1
+ /* Jackson JSON-processor.
2
+ *
3
+ * Copyright (c) 2007- Tatu Saloranta, tatu.saloranta@iki.fi
4
+ *
5
+ * Licensed under the License specified in file LICENSE, included with
6
+ * the source code and binary code bundles.
7
+ * You may not use this file except in compliance with the License.
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software
10
+ * distributed under the License is distributed on an "AS IS" BASIS,
11
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ * See the License for the specific language governing permissions and
13
+ * limitations under the License.
14
+ */
15
+
16
+ package sh.calaba.org.codehaus.jackson;
17
+
18
+ import java.io.*;
19
+ import java.math.BigDecimal;
20
+ import java.math.BigInteger;
21
+ import java.util.Iterator;
22
+
23
+ import sh.calaba.org.codehaus.jackson.type.TypeReference;
24
+
25
+ /**
26
+ * Base class that defines public API for reading JSON content.
27
+ * Instances are created using factory methods of
28
+ * a {@link JsonFactory} instance.
29
+ *
30
+ * @author Tatu Saloranta
31
+ */
32
+ public abstract class JsonParser
33
+ implements Closeable, Versioned
34
+ {
35
+ private final static int MIN_BYTE_I = (int) Byte.MIN_VALUE;
36
+ private final static int MAX_BYTE_I = (int) Byte.MAX_VALUE;
37
+
38
+ private final static int MIN_SHORT_I = (int) Short.MIN_VALUE;
39
+ private final static int MAX_SHORT_I = (int) Short.MAX_VALUE;
40
+
41
+ /**
42
+ * Enumeration of possible "native" (optimal) types that can be
43
+ * used for numbers.
44
+ */
45
+ public enum NumberType {
46
+ INT, LONG, BIG_INTEGER, FLOAT, DOUBLE, BIG_DECIMAL
47
+ };
48
+
49
+ /**
50
+ * Enumeration that defines all togglable features for parsers.
51
+ */
52
+ public enum Feature {
53
+
54
+ // // // Low-level I/O handling features:
55
+
56
+ /**
57
+ * Feature that determines whether parser will automatically
58
+ * close underlying input source that is NOT owned by the
59
+ * parser. If disabled, calling application has to separately
60
+ * close the underlying {@link InputStream} and {@link Reader}
61
+ * instances used to create the parser. If enabled, parser
62
+ * will handle closing, as long as parser itself gets closed:
63
+ * this happens when end-of-input is encountered, or parser
64
+ * is closed by a call to {@link JsonParser#close}.
65
+ *<p>
66
+ * Feature is enabled by default.
67
+ */
68
+ AUTO_CLOSE_SOURCE(true),
69
+
70
+ // // // Support for non-standard data format constructs
71
+
72
+ /**
73
+ * Feature that determines whether parser will allow use
74
+ * of Java/C++ style comments (both '/'+'*' and
75
+ * '//' varieties) within parsed content or not.
76
+ *<p>
77
+ * Since JSON specification does not mention comments as legal
78
+ * construct,
79
+ * this is a non-standard feature; however, in the wild
80
+ * this is extensively used. As such, feature is
81
+ * <b>disabled by default</b> for parsers and must be
82
+ * explicitly enabled (via factory or parser instance).
83
+ *<p>
84
+ * This feature can be changed for parser instances.
85
+ */
86
+ ALLOW_COMMENTS(false),
87
+
88
+ /**
89
+ * Feature that determines whether parser will allow use
90
+ * of unquoted field names (which is allowed by Javascript,
91
+ * but not by JSON specification).
92
+ *<p>
93
+ * Since JSON specification requires use of double quotes for
94
+ * field names,
95
+ * this is a non-standard feature, and as such disabled by
96
+ * default.
97
+ *<p>
98
+ * This feature can be changed for parser instances.
99
+ *
100
+ * @since 1.2
101
+ */
102
+ ALLOW_UNQUOTED_FIELD_NAMES(false),
103
+
104
+ /**
105
+ * Feature that determines whether parser will allow use
106
+ * of single quotes (apostrophe, character '\'') for
107
+ * quoting Strings (names and String values). If so,
108
+ * this is in addition to other acceptabl markers.
109
+ * but not by JSON specification).
110
+ *<p>
111
+ * Since JSON specification requires use of double quotes for
112
+ * field names,
113
+ * this is a non-standard feature, and as such disabled by
114
+ * default.
115
+ *<p>
116
+ * This feature can be changed for parser instances.
117
+ *
118
+ * @since 1.3
119
+ */
120
+ ALLOW_SINGLE_QUOTES(false),
121
+
122
+ /**
123
+ * Feature that determines whether parser will allow
124
+ * JSON Strings to contain unquoted control characters
125
+ * (ASCII characters with value less than 32, including
126
+ * tab and line feed characters) or not.
127
+ * If feature is set false, an exception is thrown if such a
128
+ * character is encountered.
129
+ *<p>
130
+ * Since JSON specification requires quoting for all control characters,
131
+ * this is a non-standard feature, and as such disabled by default.
132
+ *<p>
133
+ * This feature can be changed for parser instances.
134
+ *
135
+ * @since 1.4
136
+ */
137
+ ALLOW_UNQUOTED_CONTROL_CHARS(false),
138
+
139
+ /**
140
+ * Feature that can be enabled to accept quoting of all character
141
+ * using backslash qooting mechanism: if not enabled, only characters
142
+ * that are explicitly listed by JSON specification can be thus
143
+ * escaped (see JSON spec for small list of these characters)
144
+ *<p>
145
+ * Since JSON specification requires quoting for all control characters,
146
+ * this is a non-standard feature, and as such disabled by default.
147
+ *<p>
148
+ * This feature can be changed for parser instances.
149
+ *
150
+ * @since 1.6
151
+ */
152
+ ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER(false),
153
+
154
+ /**
155
+ * Feature that determines whether parser will allow
156
+ * JSON integral numbers to start with additional (ignorable)
157
+ * zeroes (like: 000001). If enabled, no exception is thrown, and extra
158
+ * nulls are silently ignored (and not included in textual representation
159
+ * exposed via {@link JsonParser#getText}).
160
+ *<p>
161
+ * Since JSON specification does not allow leading zeroes,
162
+ * this is a non-standard feature, and as such disabled by default.
163
+ *<p>
164
+ * This feature can be changed for parser instances.
165
+ *
166
+ * @since 1.8
167
+ */
168
+ ALLOW_NUMERIC_LEADING_ZEROS(false),
169
+
170
+ /**
171
+ * Feature that allows parser to recognize set of
172
+ * "Not-a-Number" (NaN) tokens as legal floating number
173
+ * values (similar to how many other data formats and
174
+ * programming language source code allows it).
175
+ * Specific subset contains values that
176
+ * <a href="http://www.w3.org/TR/xmlschema-2/">XML Schema</a>
177
+ * (see section 3.2.4.1, Lexical Representation)
178
+ * allows (tokens are quoted contents, not including quotes):
179
+ *<ul>
180
+ * <li>"INF" (for positive infinity), as well as alias of "Infinity"
181
+ * <li>"-INF" (for negative infinity), alias "-Infinity"
182
+ * <li>"NaN" (for other not-a-numbers, like result of division by zero)
183
+ *</ul>
184
+ */
185
+
186
+ ALLOW_NON_NUMERIC_NUMBERS(false),
187
+
188
+ // // // Controlling canonicalization (interning etc)
189
+
190
+ /**
191
+ * Feature that determines whether JSON object field names are
192
+ * to be canonicalized using {@link String#intern} or not:
193
+ * if enabled, all field names will be intern()ed (and caller
194
+ * can count on this being true for all such names); if disabled,
195
+ * no intern()ing is done. There may still be basic
196
+ * canonicalization (that is, same String will be used to represent
197
+ * all identical object property names for a single document).
198
+ *<p>
199
+ * Note: this setting only has effect if
200
+ * {@link #CANONICALIZE_FIELD_NAMES} is true -- otherwise no
201
+ * canonicalization of any sort is done.
202
+ *
203
+ * @since 1.3
204
+ */
205
+ INTERN_FIELD_NAMES(true),
206
+
207
+ /**
208
+ * Feature that determines whether JSON object field names are
209
+ * to be canonicalized (details of how canonicalization is done
210
+ * then further specified by
211
+ * {@link #INTERN_FIELD_NAMES}).
212
+ *
213
+ * @since 1.5
214
+ */
215
+ CANONICALIZE_FIELD_NAMES(true),
216
+
217
+
218
+ ;
219
+
220
+ final boolean _defaultState;
221
+
222
+ /**
223
+ * Method that calculates bit set (flags) of all features that
224
+ * are enabled by default.
225
+ */
226
+ public static int collectDefaults()
227
+ {
228
+ int flags = 0;
229
+ for (Feature f : values()) {
230
+ if (f.enabledByDefault()) {
231
+ flags |= f.getMask();
232
+ }
233
+ }
234
+ return flags;
235
+ }
236
+
237
+ private Feature(boolean defaultState) {
238
+ _defaultState = defaultState;
239
+ }
240
+
241
+ public boolean enabledByDefault() { return _defaultState; }
242
+
243
+ public boolean enabledIn(int flags) { return (flags & getMask()) != 0; }
244
+
245
+ public int getMask() { return (1 << ordinal()); }
246
+ };
247
+
248
+ /*
249
+ /**********************************************************
250
+ /* Minimal configuration state
251
+ /**********************************************************
252
+ */
253
+
254
+ /**
255
+ * Bit flag composed of bits that indicate which
256
+ * {@link sh.calaba.org.codehaus.jackson.JsonParser.Feature}s
257
+ * are enabled.
258
+ */
259
+ protected int _features;
260
+
261
+ /*
262
+ /**********************************************************
263
+ /* Minimal generic state
264
+ /**********************************************************
265
+ */
266
+
267
+ /**
268
+ * Last token retrieved via {@link #nextToken}, if any.
269
+ * Null before the first call to <code>nextToken()</code>,
270
+ * as well as if token has been explicitly cleared
271
+ * (by call to {@link #clearCurrentToken})
272
+ */
273
+ protected JsonToken _currToken;
274
+
275
+ /**
276
+ * Last cleared token, if any: that is, value that was in
277
+ * effect when {@link #clearCurrentToken} was called.
278
+ */
279
+ protected JsonToken _lastClearedToken;
280
+
281
+ /*
282
+ /**********************************************************
283
+ /* Construction, configuration, initialization
284
+ /**********************************************************
285
+ */
286
+
287
+ protected JsonParser() { }
288
+ protected JsonParser(int features) {
289
+ _features = features;
290
+ }
291
+
292
+ /**
293
+ * Accessor for {@link ObjectCodec} associated with this
294
+ * parser, if any. Codec is used by {@link #readValueAs(Class)}
295
+ * method (and its variants).
296
+ *
297
+ * @since 1.3
298
+ */
299
+ public abstract ObjectCodec getCodec();
300
+
301
+ /**
302
+ * Setter that allows defining {@link ObjectCodec} associated with this
303
+ * parser, if any. Codec is used by {@link #readValueAs(Class)}
304
+ * method (and its variants).
305
+ *
306
+ * @since 1.3
307
+ */
308
+ public abstract void setCodec(ObjectCodec c);
309
+
310
+ /**
311
+ * Method to call to make this parser use specified schema. Method must
312
+ * be called before trying to parse any content, right after parser instance
313
+ * has been created.
314
+ * Note that not all parsers support schemas; and those that do usually only
315
+ * accept specific types of schemas: ones defined for data format parser can read.
316
+ *<p>
317
+ * If parser does not support specified schema, {@link UnsupportedOperationException}
318
+ * is thrown.
319
+ *
320
+ * @param schema Schema to use
321
+ *
322
+ * @throws UnsupportedOperationException if parser does not support schema
323
+ *
324
+ * @since 1.8
325
+ */
326
+ public void setSchema(FormatSchema schema)
327
+ {
328
+ throw new UnsupportedOperationException("Parser of type "+getClass().getName()+" does not support schema of type '"
329
+ +schema.getSchemaType()+"'");
330
+ }
331
+
332
+ /**
333
+ * Method that can be used to verify that given schema can be used with
334
+ * this parser (using {@link #setSchema}).
335
+ *
336
+ * @param schema Schema to check
337
+ *
338
+ * @return True if this parser can use given schema; false if not
339
+ *
340
+ * @since 1.8
341
+ */
342
+ public boolean canUseSchema(FormatSchema schema) {
343
+ return false;
344
+ }
345
+
346
+ /**
347
+ * @since 1.6
348
+ */
349
+ @Override
350
+ public Version version() {
351
+ return Version.unknownVersion();
352
+ }
353
+
354
+ /**
355
+ * Method that can be used to get access to object that is used
356
+ * to access input being parsed; this is usually either
357
+ * {@link InputStream} or {@link Reader}, depending on what
358
+ * parser was constructed with.
359
+ * Note that returned value may be null in some cases; including
360
+ * case where parser implementation does not want to exposed raw
361
+ * source to caller.
362
+ * In cases where input has been decorated, object returned here
363
+ * is the decorated version; this allows some level of interaction
364
+ * between users of parser and decorator object.
365
+ *<p>
366
+ * In general use of this accessor should be considered as
367
+ * "last effort", i.e. only used if no other mechanism is applicable.
368
+ *
369
+ * @since 1.8
370
+ */
371
+ public Object getInputSource() {
372
+ return null;
373
+ }
374
+
375
+ /*
376
+ /**********************************************************
377
+ /* Closeable implementation
378
+ /**********************************************************
379
+ */
380
+
381
+ /**
382
+ * Closes the parser so that no further iteration or data access
383
+ * can be made; will also close the underlying input source
384
+ * if parser either <b>owns</b> the input source, or feature
385
+ * {@link Feature#AUTO_CLOSE_SOURCE} is enabled.
386
+ * Whether parser owns the input source depends on factory
387
+ * method that was used to construct instance (so check
388
+ * {@link sh.calaba.org.codehaus.jackson.JsonFactory} for details,
389
+ * but the general
390
+ * idea is that if caller passes in closable resource (such
391
+ * as {@link InputStream} or {@link Reader}) parser does NOT
392
+ * own the source; but if it passes a reference (such as
393
+ * {@link java.io.File} or {@link java.net.URL} and creates
394
+ * stream or reader it does own them.
395
+ */
396
+ @Override
397
+ public abstract void close() throws IOException;
398
+
399
+ /*
400
+ /**********************************************************
401
+ /* Buffer handling
402
+ /**********************************************************
403
+ */
404
+
405
+ /**
406
+ * Method that can be called to push back any content that
407
+ * has been read but not consumed by the parser. This is usually
408
+ * done after reading all content of interest using parser.
409
+ * Content is released by writing it to given stream if possible;
410
+ * if underlying input is byte-based it can released, if not (char-based)
411
+ * it can not.
412
+ *
413
+ * @return -1 if the underlying content source is not byte based
414
+ * (that is, input can not be sent to {@link OutputStream};
415
+ * otherwise number of bytes released (0 if there was nothing to release)
416
+ *
417
+ * @throws IOException if write to stream threw exception
418
+ *
419
+ * @since 1.6
420
+ */
421
+ public int releaseBuffered(OutputStream out) throws IOException
422
+ {
423
+ return -1;
424
+ }
425
+
426
+ /**
427
+ * Method that can be called to push back any content that
428
+ * has been read but not consumed by the parser.
429
+ * This is usually
430
+ * done after reading all content of interest using parser.
431
+ * Content is released by writing it to given writer if possible;
432
+ * if underlying input is char-based it can released, if not (byte-based)
433
+ * it can not.
434
+ *
435
+ * @return -1 if the underlying content source is not char-based
436
+ * (that is, input can not be sent to {@link Writer};
437
+ * otherwise number of chars released (0 if there was nothing to release)
438
+ *
439
+ * @throws IOException if write using Writer threw exception
440
+ *
441
+ * @since 1.6
442
+ */
443
+ public int releaseBuffered(Writer w) throws IOException
444
+ {
445
+ return -1;
446
+ }
447
+
448
+ /*
449
+ /***************************************************
450
+ /* Public API, configuration
451
+ /***************************************************
452
+ */
453
+
454
+ /**
455
+ * Method for enabling specified parser feature
456
+ * (check {@link Feature} for list of features)
457
+ *
458
+ * @since 1.2
459
+ */
460
+ public JsonParser enable(Feature f)
461
+ {
462
+ _features |= f.getMask();
463
+ return this;
464
+ }
465
+
466
+ /**
467
+ * Method for disabling specified feature
468
+ * (check {@link Feature} for list of features)
469
+ *
470
+ * @since 1.2
471
+ */
472
+ public JsonParser disable(Feature f)
473
+ {
474
+ _features &= ~f.getMask();
475
+ return this;
476
+ }
477
+
478
+ /**
479
+ * Method for enabling or disabling specified feature
480
+ * (check {@link Feature} for list of features)
481
+ *
482
+ * @since 1.2
483
+ */
484
+ public JsonParser configure(Feature f, boolean state)
485
+ {
486
+ if (state) {
487
+ enableFeature(f);
488
+ } else {
489
+ disableFeature(f);
490
+ }
491
+ return this;
492
+ }
493
+
494
+ /**
495
+ * Method for checking whether specified {@link Feature}
496
+ * is enabled.
497
+ *
498
+ * @since 1.2
499
+ */
500
+ public boolean isEnabled(Feature f) {
501
+ return (_features & f.getMask()) != 0;
502
+ }
503
+
504
+ /** @deprecated Use {@link #configure} instead
505
+ */
506
+ @SuppressWarnings("dep-ann")
507
+ public void setFeature(Feature f, boolean state) { configure(f, state); }
508
+
509
+ /** @deprecated Use {@link #enable(Feature)} instead
510
+ */
511
+ @SuppressWarnings("dep-ann")
512
+ public void enableFeature(Feature f) { enable(f); }
513
+
514
+ /** @deprecated Use {@link #disable(Feature)} instead
515
+ */
516
+ @SuppressWarnings("dep-ann")
517
+ public void disableFeature(Feature f) { disable(f); }
518
+
519
+ /** @deprecated Use {@link #isEnabled(Feature)} instead
520
+ */
521
+ @SuppressWarnings("dep-ann")
522
+ public final boolean isFeatureEnabled(Feature f) { return isEnabled(f); }
523
+
524
+
525
+ /*
526
+ /**********************************************************
527
+ /* Public API, traversal
528
+ /**********************************************************
529
+ */
530
+
531
+ /**
532
+ * Main iteration method, which will advance stream enough
533
+ * to determine type of the next token, if any. If none
534
+ * remaining (stream has no content other than possible
535
+ * white space before ending), null will be returned.
536
+ *
537
+ * @return Next token from the stream, if any found, or null
538
+ * to indicate end-of-input
539
+ */
540
+ public abstract JsonToken nextToken()
541
+ throws IOException, JsonParseException;
542
+
543
+ /**
544
+ * Iteration method that will advance stream enough
545
+ * to determine type of the next token that is a value type
546
+ * (including JSON Array and Object start/end markers).
547
+ * Or put another way, nextToken() will be called once,
548
+ * and if {@link JsonToken#FIELD_NAME} is returned, another
549
+ * time to get the value for the field.
550
+ * Method is most useful for iterating over value entries
551
+ * of JSON objects; field name will still be available
552
+ * by calling {@link #getCurrentName} when parser points to
553
+ * the value.
554
+ *
555
+ * @return Next non-field-name token from the stream, if any found,
556
+ * or null to indicate end-of-input (or, for non-blocking
557
+ * parsers, {@link JsonToken#NOT_AVAILABLE} if no tokens were
558
+ * available yet)
559
+ */
560
+ public JsonToken nextValue()
561
+ throws IOException, JsonParseException
562
+ {
563
+ /* Implementation should be as trivial as follows; only
564
+ * needs to change if we are to skip other tokens (for
565
+ * example, if comments were exposed as tokens)
566
+ */
567
+ JsonToken t = nextToken();
568
+ if (t == JsonToken.FIELD_NAME) {
569
+ t = nextToken();
570
+ }
571
+ return t;
572
+ }
573
+
574
+ /**
575
+ * Method that fetches next token (as if calling {@link #nextToken}) and
576
+ * verifies whether it is {@link JsonToken#FIELD_NAME} with specified name
577
+ * and returns result of that comparison.
578
+ * It is functionally equivalent to:
579
+ *<pre>
580
+ * return (nextToken() == JsonToken.FIELD_NAME) && str.getValue().equals(getCurrentName());
581
+ *</pre>
582
+ * but may be faster for parser to verify, and can therefore be used if caller
583
+ * expects to get such a property name from input next.
584
+ *
585
+ * @param str Property name to compare next token to (if next token is <code>JsonToken.FIELD_NAME<code>)
586
+ *
587
+ * @since 1.9
588
+ */
589
+ public boolean nextFieldName(SerializableString str)
590
+ throws IOException, JsonParseException
591
+ {
592
+ return (nextToken() == JsonToken.FIELD_NAME) && str.getValue().equals(getCurrentName());
593
+ }
594
+
595
+ /**
596
+ * Method that fetches next token (as if calling {@link #nextToken}) and
597
+ * if it is {@link JsonToken#VALUE_STRING} returns contained String value;
598
+ * otherwise returns null.
599
+ * It is functionally equivalent to:
600
+ *<pre>
601
+ * return (nextToken() == JsonToken.VALUE_STRING) ? getText() : null;
602
+ *</pre>
603
+ * but may be faster for parser to process, and can therefore be used if caller
604
+ * expects to get a String value next from input.
605
+ *
606
+ * @since 1.9
607
+ */
608
+ public String nextTextValue()
609
+ throws IOException, JsonParseException
610
+ {
611
+ return (nextToken() == JsonToken.VALUE_STRING) ? getText() : null;
612
+ }
613
+
614
+ /**
615
+ * Method that fetches next token (as if calling {@link #nextToken}) and
616
+ * if it is {@link JsonToken#VALUE_NUMBER_INT} returns 32-bit int value;
617
+ * otherwise returns specified default value
618
+ * It is functionally equivalent to:
619
+ *<pre>
620
+ * return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getIntValue() : defaultValue;
621
+ *</pre>
622
+ * but may be faster for parser to process, and can therefore be used if caller
623
+ * expects to get a String value next from input.
624
+ *
625
+ * @since 1.9
626
+ */
627
+ public int nextIntValue(int defaultValue)
628
+ throws IOException, JsonParseException
629
+ {
630
+ return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getIntValue() : defaultValue;
631
+ }
632
+
633
+ /**
634
+ * Method that fetches next token (as if calling {@link #nextToken}) and
635
+ * if it is {@link JsonToken#VALUE_NUMBER_INT} returns 64-bit long value;
636
+ * otherwise returns specified default value
637
+ * It is functionally equivalent to:
638
+ *<pre>
639
+ * return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getLongValue() : defaultValue;
640
+ *</pre>
641
+ * but may be faster for parser to process, and can therefore be used if caller
642
+ * expects to get a String value next from input.
643
+ *
644
+ * @since 1.9
645
+ */
646
+ public long nextLongValue(long defaultValue)
647
+ throws IOException, JsonParseException
648
+ {
649
+ return (nextToken() == JsonToken.VALUE_NUMBER_INT) ? getLongValue() : defaultValue;
650
+ }
651
+
652
+ /**
653
+ * Method that fetches next token (as if calling {@link #nextToken}) and
654
+ * if it is {@link JsonToken#VALUE_TRUE} or {@link JsonToken#VALUE_FALSE}
655
+ * returns matching Boolean value; otherwise return null.
656
+ * It is functionally equivalent to:
657
+ *<pre>
658
+ * JsonToken t = nextToken();
659
+ * if (t == JsonToken.VALUE_TRUE) return Boolean.TRUE;
660
+ * if (t == JsonToken.VALUE_FALSE) return Boolean.FALSE;
661
+ * return null;
662
+ *</pre>
663
+ * but may be faster for parser to process, and can therefore be used if caller
664
+ * expects to get a String value next from input.
665
+ *
666
+ * @since 1.9
667
+ */
668
+ public Boolean nextBooleanValue()
669
+ throws IOException, JsonParseException
670
+ {
671
+ switch (nextToken()) {
672
+ case VALUE_TRUE:
673
+ return Boolean.TRUE;
674
+ case VALUE_FALSE:
675
+ return Boolean.FALSE;
676
+ }
677
+ return null;
678
+ }
679
+
680
+ /**
681
+ * Method that will skip all child tokens of an array or
682
+ * object token that the parser currently points to,
683
+ * iff stream points to
684
+ * {@link JsonToken#START_OBJECT} or {@link JsonToken#START_ARRAY}.
685
+ * If not, it will do nothing.
686
+ * After skipping, stream will point to <b>matching</b>
687
+ * {@link JsonToken#END_OBJECT} or {@link JsonToken#END_ARRAY}
688
+ * (possibly skipping nested pairs of START/END OBJECT/ARRAY tokens
689
+ * as well as value tokens).
690
+ * The idea is that after calling this method, application
691
+ * will call {@link #nextToken} to point to the next
692
+ * available token, if any.
693
+ */
694
+ public abstract JsonParser skipChildren()
695
+ throws IOException, JsonParseException;
696
+
697
+ /**
698
+ * Method that can be called to determine whether this parser
699
+ * is closed or not. If it is closed, no new tokens can be
700
+ * retrieved by calling {@link #nextToken} (and the underlying
701
+ * stream may be closed). Closing may be due to an explicit
702
+ * call to {@link #close} or because parser has encountered
703
+ * end of input.
704
+ */
705
+ public abstract boolean isClosed();
706
+
707
+ /*
708
+ /**********************************************************
709
+ /* Public API, token accessors
710
+ /**********************************************************
711
+ */
712
+
713
+ /**
714
+ * Accessor to find which token parser currently points to, if any;
715
+ * null will be returned if none.
716
+ * If return value is non-null, data associated with the token
717
+ * is available via other accessor methods.
718
+ *
719
+ * @return Type of the token this parser currently points to,
720
+ * if any: null before any tokens have been read, and
721
+ * after end-of-input has been encountered, as well as
722
+ * if the current token has been explicitly cleared.
723
+ */
724
+ public JsonToken getCurrentToken() {
725
+ return _currToken;
726
+ }
727
+
728
+ /**
729
+ * Method for checking whether parser currently points to
730
+ * a token (and data for that token is available).
731
+ * Equivalent to check for <code>parser.getCurrentToken() != null</code>.
732
+ *
733
+ * @return True if the parser just returned a valid
734
+ * token via {@link #nextToken}; false otherwise (parser
735
+ * was just constructed, encountered end-of-input
736
+ * and returned null from {@link #nextToken}, or the token
737
+ * has been consumed)
738
+ */
739
+ public boolean hasCurrentToken() {
740
+ return _currToken != null;
741
+ }
742
+
743
+
744
+ /**
745
+ * Method called to "consume" the current token by effectively
746
+ * removing it so that {@link #hasCurrentToken} returns false, and
747
+ * {@link #getCurrentToken} null).
748
+ * Cleared token value can still be accessed by calling
749
+ * {@link #getLastClearedToken} (if absolutely needed), but
750
+ * usually isn't.
751
+ *<p>
752
+ * Method was added to be used by the optional data binder, since
753
+ * it has to be able to consume last token used for binding (so that
754
+ * it will not be used again).
755
+ */
756
+ public void clearCurrentToken() {
757
+ if (_currToken != null) {
758
+ _lastClearedToken = _currToken;
759
+ _currToken = null;
760
+ }
761
+ }
762
+
763
+ /**
764
+ * Method that can be called to get the name associated with
765
+ * the current token: for {@link JsonToken#FIELD_NAME}s it will
766
+ * be the same as what {@link #getText} returns;
767
+ * for field values it will be preceding field name;
768
+ * and for others (array values, root-level values) null.
769
+ */
770
+ public abstract String getCurrentName()
771
+ throws IOException, JsonParseException;
772
+
773
+ /**
774
+ * Method that can be used to access current parsing context reader
775
+ * is in. There are 3 different types: root, array and object contexts,
776
+ * with slightly different available information. Contexts are
777
+ * hierarchically nested, and can be used for example for figuring
778
+ * out part of the input document that correspond to specific
779
+ * array or object (for highlighting purposes, or error reporting).
780
+ * Contexts can also be used for simple xpath-like matching of
781
+ * input, if so desired.
782
+ */
783
+ public abstract JsonStreamContext getParsingContext();
784
+
785
+ /**
786
+ * Method that return the <b>starting</b> location of the current
787
+ * token; that is, position of the first character from input
788
+ * that starts the current token.
789
+ */
790
+ public abstract JsonLocation getTokenLocation();
791
+
792
+ /**
793
+ * Method that returns location of the last processed character;
794
+ * usually for error reporting purposes.
795
+ */
796
+ public abstract JsonLocation getCurrentLocation();
797
+
798
+ /**
799
+ * Method that can be called to get the last token that was
800
+ * cleared using {@link #clearCurrentToken}. This is not necessarily
801
+ * the latest token read.
802
+ * Will return null if no tokens have been cleared,
803
+ * or if parser has been closed.
804
+ */
805
+ public JsonToken getLastClearedToken() {
806
+ return _lastClearedToken;
807
+ }
808
+
809
+ /**
810
+ * Specialized accessor that can be used to verify that the current
811
+ * token indicates start array (usually meaning that current token
812
+ * is {@link JsonToken#START_ARRAY}) when start array is expected.
813
+ * For some specialized parsers this can return true for other cases
814
+ * as well; this is usually done to emulate arrays.
815
+ *<p>
816
+ * Default implementation is equivalent to:
817
+ *<pre>
818
+ * getCurrentToken() == JsonToken.START_ARRAY
819
+ *</pre>
820
+ * but may be overridden by custom parser implementations.
821
+ *
822
+ * @return True if the current token can be considered as a
823
+ * start-array marker (such {@link JsonToken#START_ARRAY});
824
+ * false if not.
825
+ *
826
+ * @since 1.7
827
+ */
828
+ public boolean isExpectedStartArrayToken() {
829
+ return getCurrentToken() == JsonToken.START_ARRAY;
830
+ }
831
+
832
+ /*
833
+ /**********************************************************
834
+ /* Public API, access to token information, text
835
+ /**********************************************************
836
+ */
837
+
838
+ /**
839
+ * Method for accessing textual representation of the current token;
840
+ * if no current token (before first call to {@link #nextToken}, or
841
+ * after encountering end-of-input), returns null.
842
+ * Method can be called for any token type.
843
+ */
844
+ public abstract String getText()
845
+ throws IOException, JsonParseException;
846
+
847
+ /**
848
+ * Method similar to {@link #getText}, but that will return
849
+ * underlying (unmodifiable) character array that contains
850
+ * textual value, instead of constructing a String object
851
+ * to contain this information.
852
+ * Note, however, that:
853
+ *<ul>
854
+ * <li>Textual contents are not guaranteed to start at
855
+ * index 0 (rather, call {@link #getTextOffset}) to
856
+ * know the actual offset
857
+ * </li>
858
+ * <li>Length of textual contents may be less than the
859
+ * length of returned buffer: call {@link #getTextLength}
860
+ * for actual length of returned content.
861
+ * </li>
862
+ * </ul>
863
+ *<p>
864
+ * Note that caller <b>MUST NOT</b> modify the returned
865
+ * character array in any way -- doing so may corrupt
866
+ * current parser state and render parser instance useless.
867
+ *<p>
868
+ * The only reason to call this method (over {@link #getText})
869
+ * is to avoid construction of a String object (which
870
+ * will make a copy of contents).
871
+ */
872
+ public abstract char[] getTextCharacters()
873
+ throws IOException, JsonParseException;
874
+
875
+ /**
876
+ * Accessor used with {@link #getTextCharacters}, to know length
877
+ * of String stored in returned buffer.
878
+ *
879
+ * @return Number of characters within buffer returned
880
+ * by {@link #getTextCharacters} that are part of
881
+ * textual content of the current token.
882
+ */
883
+ public abstract int getTextLength()
884
+ throws IOException, JsonParseException;
885
+
886
+ /**
887
+ * Accessor used with {@link #getTextCharacters}, to know offset
888
+ * of the first text content character within buffer.
889
+ *
890
+ * @return Offset of the first character within buffer returned
891
+ * by {@link #getTextCharacters} that is part of
892
+ * textual content of the current token.
893
+ */
894
+ public abstract int getTextOffset()
895
+ throws IOException, JsonParseException;
896
+
897
+ /**
898
+ * Method that can be used to determine whether calling of
899
+ * {@link #getTextCharacters} would be the most efficient
900
+ * way to access textual content for the event parser currently
901
+ * points to.
902
+ *<p>
903
+ * Default implementation simply returns false since only actual
904
+ * implementation class has knowledge of its internal buffering
905
+ * state.
906
+ * Implementations are strongly encouraged to properly override
907
+ * this method, to allow efficient copying of content by other
908
+ * code.
909
+ *
910
+ * @return True if parser currently has character array that can
911
+ * be efficiently returned via {@link #getTextCharacters}; false
912
+ * means that it may or may not exist
913
+ *
914
+ * @since 1.6
915
+ */
916
+ public boolean hasTextCharacters() {
917
+ return false;
918
+ }
919
+
920
+ /*
921
+ /**********************************************************
922
+ /* Public API, access to token information, numeric
923
+ /**********************************************************
924
+ */
925
+
926
+ /**
927
+ * Generic number value accessor method that will work for
928
+ * all kinds of numeric values. It will return the optimal
929
+ * (simplest/smallest possible) wrapper object that can
930
+ * express the numeric value just parsed.
931
+ */
932
+ public abstract Number getNumberValue()
933
+ throws IOException, JsonParseException;
934
+
935
+ /**
936
+ * If current token is of type
937
+ * {@link JsonToken#VALUE_NUMBER_INT} or
938
+ * {@link JsonToken#VALUE_NUMBER_FLOAT}, returns
939
+ * one of {@link NumberType} constants; otherwise returns null.
940
+ */
941
+ public abstract NumberType getNumberType()
942
+ throws IOException, JsonParseException;
943
+
944
+ /**
945
+ * Numeric accessor that can be called when the current
946
+ * token is of type {@link JsonToken#VALUE_NUMBER_INT} and
947
+ * it can be expressed as a value of Java byte primitive type.
948
+ * It can also be called for {@link JsonToken#VALUE_NUMBER_FLOAT};
949
+ * if so, it is equivalent to calling {@link #getDoubleValue}
950
+ * and then casting; except for possible overflow/underflow
951
+ * exception.
952
+ *<p>
953
+ * Note: if the resulting integer value falls outside range of
954
+ * Java byte, a {@link JsonParseException}
955
+ * will be thrown to indicate numeric overflow/underflow.
956
+ */
957
+ public byte getByteValue()
958
+ throws IOException, JsonParseException
959
+ {
960
+ int value = getIntValue();
961
+ // So far so good: but does it fit?
962
+ if (value < MIN_BYTE_I || value > MAX_BYTE_I) {
963
+ throw _constructError("Numeric value ("+getText()+") out of range of Java byte");
964
+ }
965
+ return (byte) value;
966
+ }
967
+
968
+ /**
969
+ * Numeric accessor that can be called when the current
970
+ * token is of type {@link JsonToken#VALUE_NUMBER_INT} and
971
+ * it can be expressed as a value of Java short primitive type.
972
+ * It can also be called for {@link JsonToken#VALUE_NUMBER_FLOAT};
973
+ * if so, it is equivalent to calling {@link #getDoubleValue}
974
+ * and then casting; except for possible overflow/underflow
975
+ * exception.
976
+ *<p>
977
+ * Note: if the resulting integer value falls outside range of
978
+ * Java short, a {@link JsonParseException}
979
+ * will be thrown to indicate numeric overflow/underflow.
980
+ */
981
+ public short getShortValue()
982
+ throws IOException, JsonParseException
983
+ {
984
+ int value = getIntValue();
985
+ if (value < MIN_SHORT_I || value > MAX_SHORT_I) {
986
+ throw _constructError("Numeric value ("+getText()+") out of range of Java short");
987
+ }
988
+ return (short) value;
989
+ }
990
+
991
+ /**
992
+ * Numeric accessor that can be called when the current
993
+ * token is of type {@link JsonToken#VALUE_NUMBER_INT} and
994
+ * it can be expressed as a value of Java int primitive type.
995
+ * It can also be called for {@link JsonToken#VALUE_NUMBER_FLOAT};
996
+ * if so, it is equivalent to calling {@link #getDoubleValue}
997
+ * and then casting; except for possible overflow/underflow
998
+ * exception.
999
+ *<p>
1000
+ * Note: if the resulting integer value falls outside range of
1001
+ * Java int, a {@link JsonParseException}
1002
+ * may be thrown to indicate numeric overflow/underflow.
1003
+ */
1004
+ public abstract int getIntValue()
1005
+ throws IOException, JsonParseException;
1006
+
1007
+ /**
1008
+ * Numeric accessor that can be called when the current
1009
+ * token is of type {@link JsonToken#VALUE_NUMBER_INT} and
1010
+ * it can be expressed as a Java long primitive type.
1011
+ * It can also be called for {@link JsonToken#VALUE_NUMBER_FLOAT};
1012
+ * if so, it is equivalent to calling {@link #getDoubleValue}
1013
+ * and then casting to int; except for possible overflow/underflow
1014
+ * exception.
1015
+ *<p>
1016
+ * Note: if the token is an integer, but its value falls
1017
+ * outside of range of Java long, a {@link JsonParseException}
1018
+ * may be thrown to indicate numeric overflow/underflow.
1019
+ */
1020
+ public abstract long getLongValue()
1021
+ throws IOException, JsonParseException;
1022
+
1023
+ /**
1024
+ * Numeric accessor that can be called when the current
1025
+ * token is of type {@link JsonToken#VALUE_NUMBER_INT} and
1026
+ * it can not be used as a Java long primitive type due to its
1027
+ * magnitude.
1028
+ * It can also be called for {@link JsonToken#VALUE_NUMBER_FLOAT};
1029
+ * if so, it is equivalent to calling {@link #getDecimalValue}
1030
+ * and then constructing a {@link BigInteger} from that value.
1031
+ */
1032
+ public abstract BigInteger getBigIntegerValue()
1033
+ throws IOException, JsonParseException;
1034
+
1035
+ /**
1036
+ * Numeric accessor that can be called when the current
1037
+ * token is of type {@link JsonToken#VALUE_NUMBER_FLOAT} and
1038
+ * it can be expressed as a Java float primitive type.
1039
+ * It can also be called for {@link JsonToken#VALUE_NUMBER_INT};
1040
+ * if so, it is equivalent to calling {@link #getLongValue}
1041
+ * and then casting; except for possible overflow/underflow
1042
+ * exception.
1043
+ *<p>
1044
+ * Note: if the value falls
1045
+ * outside of range of Java float, a {@link JsonParseException}
1046
+ * will be thrown to indicate numeric overflow/underflow.
1047
+ */
1048
+ public abstract float getFloatValue()
1049
+ throws IOException, JsonParseException;
1050
+
1051
+ /**
1052
+ * Numeric accessor that can be called when the current
1053
+ * token is of type {@link JsonToken#VALUE_NUMBER_FLOAT} and
1054
+ * it can be expressed as a Java double primitive type.
1055
+ * It can also be called for {@link JsonToken#VALUE_NUMBER_INT};
1056
+ * if so, it is equivalent to calling {@link #getLongValue}
1057
+ * and then casting; except for possible overflow/underflow
1058
+ * exception.
1059
+ *<p>
1060
+ * Note: if the value falls
1061
+ * outside of range of Java double, a {@link JsonParseException}
1062
+ * will be thrown to indicate numeric overflow/underflow.
1063
+ */
1064
+ public abstract double getDoubleValue()
1065
+ throws IOException, JsonParseException;
1066
+
1067
+ /**
1068
+ * Numeric accessor that can be called when the current
1069
+ * token is of type {@link JsonToken#VALUE_NUMBER_FLOAT} or
1070
+ * {@link JsonToken#VALUE_NUMBER_INT}. No under/overflow exceptions
1071
+ * are ever thrown.
1072
+ */
1073
+ public abstract BigDecimal getDecimalValue()
1074
+ throws IOException, JsonParseException;
1075
+
1076
+ /*
1077
+ /**********************************************************
1078
+ /* Public API, access to token information, other
1079
+ /**********************************************************
1080
+ */
1081
+
1082
+ /**
1083
+ * Convenience accessor that can be called when the current
1084
+ * token is {@link JsonToken#VALUE_TRUE} or
1085
+ * {@link JsonToken#VALUE_FALSE}.
1086
+ *<p>
1087
+ * Note: if the token is not of above-mentioned boolean types,
1088
+ an integer, but its value falls
1089
+ * outside of range of Java long, a {@link JsonParseException}
1090
+ * may be thrown to indicate numeric overflow/underflow.
1091
+ *
1092
+ * @since 1.3
1093
+ */
1094
+ public boolean getBooleanValue()
1095
+ throws IOException, JsonParseException
1096
+ {
1097
+ if (getCurrentToken() == JsonToken.VALUE_TRUE) return true;
1098
+ if (getCurrentToken() == JsonToken.VALUE_FALSE) return false;
1099
+ throw new JsonParseException("Current token ("+_currToken+") not of boolean type", getCurrentLocation());
1100
+ }
1101
+
1102
+ /**
1103
+ * Accessor that can be called if (and only if) the current token
1104
+ * is {@link JsonToken#VALUE_EMBEDDED_OBJECT}. For other token types,
1105
+ * null is returned.
1106
+ *<p>
1107
+ * Note: only some specialized parser implementations support
1108
+ * embedding of objects (usually ones that are facades on top
1109
+ * of non-streaming sources, such as object trees).
1110
+ *
1111
+ * @since 1.3
1112
+ */
1113
+ public Object getEmbeddedObject()
1114
+ throws IOException, JsonParseException
1115
+ {
1116
+ // By default we will always return null
1117
+ return null;
1118
+ }
1119
+
1120
+ /*
1121
+ /**********************************************************
1122
+ /* Public API, access to token information, binary
1123
+ /**********************************************************
1124
+ */
1125
+
1126
+ /**
1127
+ * Method that can be used to read (and consume -- results
1128
+ * may not be accessible using other methods after the call)
1129
+ * base64-encoded binary data
1130
+ * included in the current textual JSON value.
1131
+ * It works similar to getting String value via {@link #getText}
1132
+ * and decoding result (except for decoding part),
1133
+ * but should be significantly more performant.
1134
+ *<p>
1135
+ * Note that non-decoded textual contents of the current token
1136
+ * are not guaranteed to be accessible after this method
1137
+ * is called. Current implementation, for example, clears up
1138
+ * textual content during decoding.
1139
+ * Decoded binary content, however, will be retained until
1140
+ * parser is advanced to the next event.
1141
+ *
1142
+ * @param b64variant Expected variant of base64 encoded
1143
+ * content (see {@link Base64Variants} for definitions
1144
+ * of "standard" variants).
1145
+ *
1146
+ * @return Decoded binary data
1147
+ */
1148
+ public abstract byte[] getBinaryValue(Base64Variant b64variant) throws IOException, JsonParseException;
1149
+
1150
+ /**
1151
+ * Convenience alternative to {@link #getBinaryValue(Base64Variant)}
1152
+ * that defaults to using
1153
+ * {@link Base64Variants#getDefaultVariant} as the default encoding.
1154
+ */
1155
+ public byte[] getBinaryValue() throws IOException, JsonParseException
1156
+ {
1157
+ return getBinaryValue(Base64Variants.getDefaultVariant());
1158
+ }
1159
+
1160
+ /*
1161
+ /**********************************************************
1162
+ /* Public API, access to token information, coercion/conversion
1163
+ /**********************************************************
1164
+ */
1165
+
1166
+ /**
1167
+ * Method that will try to convert value of current token to a
1168
+ * <b>int</b>.
1169
+ * Numbers are coerced using default Java rules; booleans convert to 0 (false)
1170
+ * and 1 (true), and Strings are parsed using default Java language integer
1171
+ * parsing rules.
1172
+ *<p>
1173
+ * If representation can not be converted to an int (including structured type
1174
+ * markers like start/end Object/Array)
1175
+ * default value of <b>0</b> will be returned; no exceptions are thrown.
1176
+ *
1177
+ * @since 1.6
1178
+ */
1179
+ public int getValueAsInt() throws IOException, JsonParseException {
1180
+ return getValueAsInt(0);
1181
+ }
1182
+
1183
+ /**
1184
+ * Method that will try to convert value of current token to a
1185
+ * <b>int</b>.
1186
+ * Numbers are coerced using default Java rules; booleans convert to 0 (false)
1187
+ * and 1 (true), and Strings are parsed using default Java language integer
1188
+ * parsing rules.
1189
+ *<p>
1190
+ * If representation can not be converted to an int (including structured type
1191
+ * markers like start/end Object/Array)
1192
+ * specified <b>defaultValue</b> will be returned; no exceptions are thrown.
1193
+ *
1194
+ * @since 1.6
1195
+ */
1196
+ public int getValueAsInt(int defaultValue) throws IOException, JsonParseException {
1197
+ return defaultValue;
1198
+ }
1199
+
1200
+ /**
1201
+ * Method that will try to convert value of current token to a
1202
+ * <b>long</b>.
1203
+ * Numbers are coerced using default Java rules; booleans convert to 0 (false)
1204
+ * and 1 (true), and Strings are parsed using default Java language integer
1205
+ * parsing rules.
1206
+ *<p>
1207
+ * If representation can not be converted to an int (including structured type
1208
+ * markers like start/end Object/Array)
1209
+ * default value of <b>0</b> will be returned; no exceptions are thrown.
1210
+ *
1211
+ * @since 1.6
1212
+ */
1213
+ public long getValueAsLong() throws IOException, JsonParseException {
1214
+ return getValueAsInt(0);
1215
+ }
1216
+
1217
+ /**
1218
+ * Method that will try to convert value of current token to a
1219
+ * <b>long</b>.
1220
+ * Numbers are coerced using default Java rules; booleans convert to 0 (false)
1221
+ * and 1 (true), and Strings are parsed using default Java language integer
1222
+ * parsing rules.
1223
+ *<p>
1224
+ * If representation can not be converted to an int (including structured type
1225
+ * markers like start/end Object/Array)
1226
+ * specified <b>defaultValue</b> will be returned; no exceptions are thrown.
1227
+ *
1228
+ * @since 1.6
1229
+ */
1230
+ public long getValueAsLong(long defaultValue) throws IOException, JsonParseException {
1231
+ return defaultValue;
1232
+ }
1233
+
1234
+ /**
1235
+ * Method that will try to convert value of current token to a Java
1236
+ * <b>double</b>.
1237
+ * Numbers are coerced using default Java rules; booleans convert to 0.0 (false)
1238
+ * and 1.0 (true), and Strings are parsed using default Java language integer
1239
+ * parsing rules.
1240
+ *<p>
1241
+ * If representation can not be converted to an int (including structured types
1242
+ * like Objects and Arrays),
1243
+ * default value of <b>0.0</b> will be returned; no exceptions are thrown.
1244
+ *
1245
+ * @since 1.6
1246
+ */
1247
+ public double getValueAsDouble() throws IOException, JsonParseException {
1248
+ return getValueAsDouble(0.0);
1249
+ }
1250
+
1251
+ /**
1252
+ * Method that will try to convert value of current token to a
1253
+ * Java <b>double</b>.
1254
+ * Numbers are coerced using default Java rules; booleans convert to 0.0 (false)
1255
+ * and 1.0 (true), and Strings are parsed using default Java language integer
1256
+ * parsing rules.
1257
+ *<p>
1258
+ * If representation can not be converted to an int (including structured types
1259
+ * like Objects and Arrays),
1260
+ * specified <b>defaultValue</b> will be returned; no exceptions are thrown.
1261
+ *
1262
+ * @since 1.6
1263
+ */
1264
+ public double getValueAsDouble(double defaultValue) throws IOException, JsonParseException {
1265
+ return defaultValue;
1266
+ }
1267
+
1268
+ /**
1269
+ * Method that will try to convert value of current token to a
1270
+ * <b>boolean</b>.
1271
+ * JSON booleans map naturally; integer numbers other than 0 map to true, and
1272
+ * 0 maps to false
1273
+ * and Strings 'true' and 'false' map to corresponding values.
1274
+ *<p>
1275
+ * If representation can not be converted to a boolean value (including structured types
1276
+ * like Objects and Arrays),
1277
+ * default value of <b>false</b> will be returned; no exceptions are thrown.
1278
+ *
1279
+ * @since 1.7
1280
+ */
1281
+ public boolean getValueAsBoolean() throws IOException, JsonParseException {
1282
+ return getValueAsBoolean(false);
1283
+ }
1284
+
1285
+ /**
1286
+ * Method that will try to convert value of current token to a
1287
+ * <b>boolean</b>.
1288
+ * JSON booleans map naturally; integer numbers other than 0 map to true, and
1289
+ * 0 maps to false
1290
+ * and Strings 'true' and 'false' map to corresponding values.
1291
+ *<p>
1292
+ * If representation can not be converted to a boolean value (including structured types
1293
+ * like Objects and Arrays),
1294
+ * specified <b>defaultValue</b> will be returned; no exceptions are thrown.
1295
+ *
1296
+ * @since 1.7
1297
+ */
1298
+ public boolean getValueAsBoolean(boolean defaultValue) throws IOException, JsonParseException {
1299
+ return defaultValue;
1300
+ }
1301
+
1302
+ /*
1303
+ /**********************************************************
1304
+ /* Public API, optional data binding functionality
1305
+ /**********************************************************
1306
+ */
1307
+
1308
+ /**
1309
+ * Method to deserialize JSON content into a non-container
1310
+ * type (it can be an array type, however): typically a bean, array
1311
+ * or a wrapper type (like {@link java.lang.Boolean}).
1312
+ * <b>Note</b>: method can only be called if the parser has
1313
+ * an object codec assigned; this is true for parsers constructed
1314
+ * by {@link sh.calaba.org.codehaus.jackson.map.MappingJsonFactory} but
1315
+ * not for {@link JsonFactory} (unless its <code>setCodec</code>
1316
+ * method has been explicitly called).
1317
+ *<p>
1318
+ * This method may advance the event stream, for structured types
1319
+ * the current token will be the closing end marker (END_ARRAY,
1320
+ * END_OBJECT) of the bound structure. For non-structured Json types
1321
+ * (and for {@link JsonToken#VALUE_EMBEDDED_OBJECT})
1322
+ * stream is not advanced.
1323
+ *<p>
1324
+ * Note: this method should NOT be used if the result type is a
1325
+ * container ({@link java.util.Collection} or {@link java.util.Map}.
1326
+ * The reason is that due to type erasure, key and value types
1327
+ * can not be introspected when using this method.
1328
+ */
1329
+ public <T> T readValueAs(Class<T> valueType)
1330
+ throws IOException, JsonProcessingException
1331
+ {
1332
+ ObjectCodec codec = getCodec();
1333
+ if (codec == null) {
1334
+ throw new IllegalStateException("No ObjectCodec defined for the parser, can not deserialize JSON into Java objects");
1335
+ }
1336
+ return codec.readValue(this, valueType);
1337
+ }
1338
+
1339
+ /**
1340
+ * Method to deserialize JSON content into a Java type, reference
1341
+ * to which is passed as argument. Type is passed using so-called
1342
+ * "super type token"
1343
+ * and specifically needs to be used if the root type is a
1344
+ * parameterized (generic) container type.
1345
+ * <b>Note</b>: method can only be called if the parser has
1346
+ * an object codec assigned; this is true for parsers constructed
1347
+ * by {@link sh.calaba.org.codehaus.jackson.map.MappingJsonFactory} but
1348
+ * not for {@link JsonFactory} (unless its <code>setCodec</code>
1349
+ * method has been explicitly called).
1350
+ *<p>
1351
+ * This method may advance the event stream, for structured types
1352
+ * the current token will be the closing end marker (END_ARRAY,
1353
+ * END_OBJECT) of the bound structure. For non-structured Json types
1354
+ * (and for {@link JsonToken#VALUE_EMBEDDED_OBJECT})
1355
+ * stream is not advanced.
1356
+ */
1357
+ @SuppressWarnings("unchecked")
1358
+ public <T> T readValueAs(TypeReference<?> valueTypeRef)
1359
+ throws IOException, JsonProcessingException
1360
+ {
1361
+ ObjectCodec codec = getCodec();
1362
+ if (codec == null) {
1363
+ throw new IllegalStateException("No ObjectCodec defined for the parser, can not deserialize JSON into Java objects");
1364
+ }
1365
+ /* Ugh. Stupid Java type erasure... can't just chain call,s
1366
+ * must cast here also.
1367
+ */
1368
+ return (T) codec.readValue(this, valueTypeRef);
1369
+ }
1370
+
1371
+ /**
1372
+ * Method for reading sequence of Objects from parser stream,
1373
+ * all with same specified value type.
1374
+ *
1375
+ * @since 1.9
1376
+ */
1377
+ public <T> Iterator<T> readValuesAs(Class<T> valueType)
1378
+ throws IOException, JsonProcessingException
1379
+ {
1380
+ ObjectCodec codec = getCodec();
1381
+ if (codec == null) {
1382
+ throw new IllegalStateException("No ObjectCodec defined for the parser, can not deserialize JSON into Java objects");
1383
+ }
1384
+ return codec.readValues(this, valueType);
1385
+ }
1386
+
1387
+ /**
1388
+ * Method for reading sequence of Objects from parser stream,
1389
+ * all with same specified value type.
1390
+ *
1391
+ * @since 1.9
1392
+ */
1393
+ public <T> Iterator<T> readValuesAs(TypeReference<?> valueTypeRef)
1394
+ throws IOException, JsonProcessingException
1395
+ {
1396
+ ObjectCodec codec = getCodec();
1397
+ if (codec == null) {
1398
+ throw new IllegalStateException("No ObjectCodec defined for the parser, can not deserialize JSON into Java objects");
1399
+ }
1400
+ return codec.readValues(this, valueTypeRef);
1401
+ }
1402
+
1403
+ /**
1404
+ * Method to deserialize JSON content into equivalent "tree model",
1405
+ * represented by root {@link JsonNode} of resulting model.
1406
+ * For JSON Arrays it will an array node (with child nodes),
1407
+ * for objects object node (with child nodes), and for other types
1408
+ * matching leaf node type
1409
+ */
1410
+ public JsonNode readValueAsTree()
1411
+ throws IOException, JsonProcessingException
1412
+ {
1413
+ ObjectCodec codec = getCodec();
1414
+ if (codec == null) {
1415
+ throw new IllegalStateException("No ObjectCodec defined for the parser, can not deserialize JSON into JsonNode tree");
1416
+ }
1417
+ return codec.readTree(this);
1418
+ }
1419
+
1420
+ /*
1421
+ /**********************************************************
1422
+ /* Internal methods
1423
+ /**********************************************************
1424
+ */
1425
+
1426
+ /**
1427
+ * Helper method for constructing {@link JsonParseException}s
1428
+ * based on current state of the parser
1429
+ */
1430
+ protected JsonParseException _constructError(String msg)
1431
+ {
1432
+ return new JsonParseException(msg, getCurrentLocation());
1433
+ }
1434
+ }