calabash-android 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (532) hide show
  1. data/CHANGES.txt +1 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +8 -0
  4. data/Rakefile +2 -0
  5. data/bin/calabash-android +42 -0
  6. data/bin/calabash-android-build.rb +37 -0
  7. data/bin/calabash-android-generate.rb +26 -0
  8. data/bin/calabash-android-helpers.rb +71 -0
  9. data/bin/calabash-android-run.rb +18 -0
  10. data/bin/calabash-android-setup.rb +392 -0
  11. data/calabash-android.gemspec +23 -0
  12. data/doc/calabash-android-help.txt +21 -0
  13. data/epl-v10.html +261 -0
  14. data/features-skeleton/.irbrc +16 -0
  15. data/features-skeleton/irb_android.sh +2 -0
  16. data/features-skeleton/my_first.feature +5 -0
  17. data/features-skeleton/step_definitions/calabash_steps.rb +1 -0
  18. data/features-skeleton/support/app_installation_hooks.rb +26 -0
  19. data/features-skeleton/support/app_life_cycle_hooks.rb +28 -0
  20. data/features-skeleton/support/env.rb +1 -0
  21. data/features-skeleton/support/hooks.rb +18 -0
  22. data/lib/calabash-android.rb +2 -0
  23. data/lib/calabash-android/calabash_steps.rb +18 -0
  24. data/lib/calabash-android/canned_steps.md +239 -0
  25. data/lib/calabash-android/color_helper.rb +13 -0
  26. data/lib/calabash-android/cucumber.rb +9 -0
  27. data/lib/calabash-android/lib/screenShotTaker.jar +0 -0
  28. data/lib/calabash-android/management/adb.rb +11 -0
  29. data/lib/calabash-android/management/app_installation.rb +21 -0
  30. data/lib/calabash-android/operations.rb +283 -0
  31. data/lib/calabash-android/steps/additions_manual_steps.rb +11 -0
  32. data/lib/calabash-android/steps/app_steps.rb +10 -0
  33. data/lib/calabash-android/steps/assert_steps.rb +32 -0
  34. data/lib/calabash-android/steps/check_box_steps.rb +3 -0
  35. data/lib/calabash-android/steps/context_menu_steps.rb +12 -0
  36. data/lib/calabash-android/steps/date_picker_steps.rb +8 -0
  37. data/lib/calabash-android/steps/enter_text_steps.rb +21 -0
  38. data/lib/calabash-android/steps/location_steps.rb +19 -0
  39. data/lib/calabash-android/steps/navigation_steps.rb +27 -0
  40. data/lib/calabash-android/steps/press_button_steps.rb +35 -0
  41. data/lib/calabash-android/steps/progress_steps.rb +49 -0
  42. data/lib/calabash-android/steps/rotation_steps.rb +8 -0
  43. data/lib/calabash-android/steps/screenshot_steps.rb +11 -0
  44. data/lib/calabash-android/steps/spinner_steps.rb +3 -0
  45. data/lib/calabash-android/steps/time_picker_steps.rb +8 -0
  46. data/lib/calabash-android/version.rb +6 -0
  47. data/test-server/AndroidManifest.xml +13 -0
  48. data/test-server/build.xml +192 -0
  49. data/test-server/calabash-js/src/calabash.js +125 -0
  50. data/test-server/calabash-js/src/set_text.js +132 -0
  51. data/test-server/instrumentation-backend/.classpath +10 -0
  52. data/test-server/instrumentation-backend/.project +33 -0
  53. data/test-server/instrumentation-backend/.settings/org.eclipse.jdt.core.prefs +12 -0
  54. data/test-server/instrumentation-backend/AndroidManifest.xml +15 -0
  55. data/test-server/instrumentation-backend/assets/foo.bar +0 -0
  56. data/test-server/instrumentation-backend/gen/com/lesspainful/simpleui/test/R.java +23 -0
  57. data/test-server/instrumentation-backend/libs/robotium-solo-2.5.jar +0 -0
  58. data/test-server/instrumentation-backend/project.properties +11 -0
  59. data/test-server/instrumentation-backend/res/drawable-hdpi/ic_launcher.png +0 -0
  60. data/test-server/instrumentation-backend/res/drawable-ldpi/ic_launcher.png +0 -0
  61. data/test-server/instrumentation-backend/res/drawable-mdpi/ic_launcher.png +0 -0
  62. data/test-server/instrumentation-backend/res/layout/main.xml +12 -0
  63. data/test-server/instrumentation-backend/res/values/strings.xml +7 -0
  64. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Command.java +48 -0
  65. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/InstrumentationBackend.java +196 -0
  66. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +64 -0
  67. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/TestHelpers.java +136 -0
  68. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Action.java +11 -0
  69. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/Actions.java +113 -0
  70. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/NullAction.java +23 -0
  71. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonNumber.java +22 -0
  72. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonText.java +27 -0
  73. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressImageButtonNumber.java +22 -0
  74. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/WaitForButton.java +47 -0
  75. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/checkbox/ToggleCheckboxNumber.java +22 -0
  76. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressText.java +22 -0
  77. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuById.java +26 -0
  78. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByIndex.java +22 -0
  79. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByText.java +26 -0
  80. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/ClickOnScreen.java +31 -0
  81. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/Swipe.java +28 -0
  82. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/helpers/ListActions.java +26 -0
  83. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/LongPressListItems.java +22 -0
  84. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/PressListItems.java +22 -0
  85. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/location/FakeGPSLocation.java +79 -0
  86. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollDown.java +28 -0
  87. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollUp.java +28 -0
  88. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/DownKey.java +24 -0
  89. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/GoBack.java +22 -0
  90. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/PressMenu.java +26 -0
  91. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/SelectFromMenuByText.java +24 -0
  92. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/spinner/SelectSpinnerItemByContentDescription.java +43 -0
  93. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertText.java +31 -0
  94. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertTextOfSpecificTextViewByContentDescription.java +32 -0
  95. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextByIndex.java +22 -0
  96. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextFieldByContentDescription.java +33 -0
  97. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClickOnText.java +22 -0
  98. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByContentDescription.java +32 -0
  99. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByIndex.java +22 -0
  100. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByContentDescription.java +33 -0
  101. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByIndex.java +24 -0
  102. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByContentDescription.java +34 -0
  103. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByIndex.java +26 -0
  104. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/ClickOnViewById.java +63 -0
  105. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/LongPressOnViewById.java +34 -0
  106. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/Press.java +89 -0
  107. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/WaitForViewById.java +41 -0
  108. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/Wait.java +24 -0
  109. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForDialogClose.java +21 -0
  110. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForProgress.java +47 -0
  111. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForScreen.java +49 -0
  112. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForText.java +26 -0
  113. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java +109 -0
  114. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java +33 -0
  115. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java +33 -0
  116. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/EnterTextByCssSelector.java +99 -0
  117. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +43 -0
  118. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Query.java +24 -0
  119. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +99 -0
  120. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ScrollTo.java +74 -0
  121. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetPropertyByCssSelector.java +43 -0
  122. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +50 -0
  123. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Touch.java +44 -0
  124. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variant.java +413 -0
  125. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Base64Variants.java +90 -0
  126. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/FormatSchema.java +29 -0
  127. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonEncoding.java +47 -0
  128. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonFactory.java +937 -0
  129. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerationException.java +28 -0
  130. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonGenerator.java +1197 -0
  131. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonLocation.java +141 -0
  132. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonNode.java +879 -0
  133. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParseException.java +23 -0
  134. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonParser.java +1434 -0
  135. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonProcessingException.java +80 -0
  136. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonStreamContext.java +122 -0
  137. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/JsonToken.java +161 -0
  138. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/ObjectCodec.java +157 -0
  139. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/PrettyPrinter.java +166 -0
  140. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/SerializableString.java +54 -0
  141. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Version.java +90 -0
  142. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/Versioned.java +20 -0
  143. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JacksonAnnotation.java +20 -0
  144. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnyGetter.java +25 -0
  145. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAnySetter.java +24 -0
  146. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonAutoDetect.java +148 -0
  147. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonBackReference.java +41 -0
  148. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonCreator.java +19 -0
  149. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonGetter.java +35 -0
  150. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnore.java +57 -0
  151. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreProperties.java +48 -0
  152. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonIgnoreType.java +33 -0
  153. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonManagedReference.java +41 -0
  154. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonMethod.java +90 -0
  155. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonProperty.java +38 -0
  156. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonPropertyOrder.java +46 -0
  157. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonRawValue.java +33 -0
  158. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSetter.java +33 -0
  159. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonSubTypes.java +44 -0
  160. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeInfo.java +236 -0
  161. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonTypeName.java +28 -0
  162. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonUnwrapped.java +76 -0
  163. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonValue.java +46 -0
  164. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/JsonWriteNullProperties.java +34 -0
  165. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/annotate/package-info.java +16 -0
  166. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatDetector.java +176 -0
  167. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/DataFormatMatcher.java +117 -0
  168. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/InputAccessor.java +130 -0
  169. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/MatchStrength.java +64 -0
  170. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/format/package-info.java +8 -0
  171. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ByteSourceBootstrapper.java +518 -0
  172. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/DefaultPrettyPrinter.java +13 -0
  173. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Indenter.java +23 -0
  174. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonGeneratorBase.java +570 -0
  175. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonNumericParserBase.java +20 -0
  176. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserBase.java +1067 -0
  177. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonParserMinimalBase.java +539 -0
  178. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonReadContext.java +188 -0
  179. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/JsonWriteContext.java +178 -0
  180. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParser.java +1815 -0
  181. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/ReaderBasedParserBase.java +228 -0
  182. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/StreamBasedParserBase.java +197 -0
  183. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8Generator.java +1757 -0
  184. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/Utf8StreamParser.java +2966 -0
  185. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/WriterBasedGenerator.java +1815 -0
  186. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/impl/package-info.java +6 -0
  187. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/BaseReader.java +117 -0
  188. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/CharacterEscapes.java +73 -0
  189. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/IOContext.java +239 -0
  190. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/InputDecorator.java +67 -0
  191. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/JsonStringEncoder.java +408 -0
  192. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/MergedStream.java +145 -0
  193. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberInput.java +303 -0
  194. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/NumberOutput.java +398 -0
  195. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/OutputDecorator.java +40 -0
  196. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SegmentedStringWriter.java +104 -0
  197. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/SerializedString.java +114 -0
  198. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF32Reader.java +214 -0
  199. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/UTF8Writer.java +387 -0
  200. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/io/package.html +4 -0
  201. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AbstractTypeResolver.java +63 -0
  202. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/AnnotationIntrospector.java +1485 -0
  203. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanDescription.java +171 -0
  204. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanProperty.java +123 -0
  205. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/BeanPropertyDefinition.java +66 -0
  206. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ClassIntrospector.java +117 -0
  207. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualDeserializer.java +38 -0
  208. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualKeyDeserializer.java +33 -0
  209. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ContextualSerializer.java +38 -0
  210. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationConfig.java +926 -0
  211. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationContext.java +262 -0
  212. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializationProblemHandler.java +56 -0
  213. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerFactory.java +356 -0
  214. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/DeserializerProvider.java +185 -0
  215. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Deserializers.java +339 -0
  216. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/HandlerInstantiator.java +115 -0
  217. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/InjectableValues.java +85 -0
  218. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonDeserializer.java +166 -0
  219. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonMappingException.java +335 -0
  220. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializable.java +34 -0
  221. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializableWithType.java +22 -0
  222. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializer.java +138 -0
  223. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializer.java +31 -0
  224. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializers.java +21 -0
  225. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MapperConfig.java +1154 -0
  226. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingIterator.java +190 -0
  227. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MappingJsonFactory.java +81 -0
  228. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Module.java +255 -0
  229. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectMapper.java +2885 -0
  230. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectReader.java +958 -0
  231. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ObjectWriter.java +554 -0
  232. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/PropertyNamingStrategy.java +258 -0
  233. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableDeserializer.java +23 -0
  234. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ResolvableSerializer.java +23 -0
  235. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/RuntimeJsonMappingException.java +21 -0
  236. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializationConfig.java +1041 -0
  237. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerFactory.java +198 -0
  238. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/SerializerProvider.java +552 -0
  239. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/Serializers.java +137 -0
  240. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeDeserializer.java +118 -0
  241. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/TypeSerializer.java +164 -0
  242. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonInject.java +30 -0
  243. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JacksonStdImpl.java +25 -0
  244. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonCachable.java +32 -0
  245. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonDeserialize.java +109 -0
  246. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonFilter.java +31 -0
  247. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonRootName.java +29 -0
  248. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonSerialize.java +216 -0
  249. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeIdResolver.java +35 -0
  250. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonTypeResolver.java +28 -0
  251. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonValueInstantiator.java +26 -0
  252. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/JsonView.java +37 -0
  253. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/NoClass.java +19 -0
  254. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/annotate/package-info.java +5 -0
  255. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/AbstractDeserializer.java +102 -0
  256. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializer.java +28 -0
  257. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ArrayDeserializers.java +11 -0
  258. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BasicDeserializerFactory.java +894 -0
  259. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializer.java +1537 -0
  260. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerBuilder.java +277 -0
  261. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerFactory.java +1474 -0
  262. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/BeanDeserializerModifier.java +58 -0
  263. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CollectionDeserializer.java +47 -0
  264. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ContainerDeserializer.java +14 -0
  265. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/CustomDeserializerFactory.java +227 -0
  266. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/DateDeserializer.java +9 -0
  267. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumDeserializer.java +15 -0
  268. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/EnumResolver.java +17 -0
  269. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/FromStringDeserializer.java +13 -0
  270. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/JsonNodeDeserializer.java +54 -0
  271. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/MapDeserializer.java +44 -0
  272. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableAnyProperty.java +177 -0
  273. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/SettableBeanProperty.java +827 -0
  274. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializationContext.java +326 -0
  275. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializer.java +94 -0
  276. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializerProvider.java +494 -0
  277. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdDeserializers.java +119 -0
  278. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializer.java +12 -0
  279. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdKeyDeserializers.java +11 -0
  280. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/StdScalarDeserializer.java +13 -0
  281. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ThrowableDeserializer.java +13 -0
  282. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/UntypedObjectDeserializer.java +9 -0
  283. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiator.java +280 -0
  284. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/ValueInstantiators.java +52 -0
  285. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/BeanPropertyMap.java +257 -0
  286. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorCollector.java +141 -0
  287. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/CreatorProperty.java +152 -0
  288. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ExternalTypeHandler.java +173 -0
  289. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyBasedCreator.java +117 -0
  290. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValue.java +117 -0
  291. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/PropertyValueBuffer.java +102 -0
  292. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/UnwrappedPropertyHandler.java +41 -0
  293. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/ValueInjector.java +45 -0
  294. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/impl/package-info.java +9 -0
  295. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/package-info.java +5 -0
  296. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicBooleanDeserializer.java +22 -0
  297. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/AtomicReferenceDeserializer.java +47 -0
  298. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CalendarDeserializer.java +47 -0
  299. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ClassDeserializer.java +49 -0
  300. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/CollectionDeserializer.java +265 -0
  301. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ContainerDeserializerBase.java +37 -0
  302. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/DateDeserializer.java +30 -0
  303. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumDeserializer.java +139 -0
  304. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumMapDeserializer.java +90 -0
  305. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/EnumSetDeserializer.java +89 -0
  306. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/FromStringDeserializer.java +265 -0
  307. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JavaTypeDeserializer.java +38 -0
  308. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/JsonNodeDeserializer.java +314 -0
  309. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/MapDeserializer.java +412 -0
  310. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ObjectArrayDeserializer.java +201 -0
  311. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/PrimitiveArrayDeserializers.java +583 -0
  312. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdDeserializer.java +1136 -0
  313. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializer.java +340 -0
  314. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdKeyDeserializers.java +108 -0
  315. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdScalarDeserializer.java +34 -0
  316. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StdValueInstantiator.java +392 -0
  317. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringCollectionDeserializer.java +227 -0
  318. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/StringDeserializer.java +55 -0
  319. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/ThrowableDeserializer.java +164 -0
  320. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TimestampDeserializer.java +30 -0
  321. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/TokenBufferDeserializer.java +36 -0
  322. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/UntypedObjectDeserializer.java +248 -0
  323. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/deser/std/package-info.java +15 -0
  324. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/exc/UnrecognizedPropertyException.java +75 -0
  325. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLDeserializers.java +114 -0
  326. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/CoreXMLSerializers.java +72 -0
  327. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/DOMDeserializer.java +65 -0
  328. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/OptionalHandlerFactory.java +217 -0
  329. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ext/package-info.java +23 -0
  330. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/Annotated.java +85 -0
  331. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedClass.java +980 -0
  332. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedConstructor.java +143 -0
  333. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedField.java +119 -0
  334. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMember.java +56 -0
  335. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethod.java +188 -0
  336. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedMethodMap.java +85 -0
  337. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedParameter.java +191 -0
  338. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotatedWithParams.java +195 -0
  339. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/AnnotationMap.java +101 -0
  340. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicBeanDescription.java +615 -0
  341. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/BasicClassIntrospector.java +364 -0
  342. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/JacksonAnnotationIntrospector.java +813 -0
  343. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MemberKey.java +83 -0
  344. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/MethodFilter.java +12 -0
  345. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/NopAnnotationIntrospector.java +209 -0
  346. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertiesCollector.java +713 -0
  347. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/POJOPropertyBuilder.java +648 -0
  348. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/VisibilityChecker.java +424 -0
  349. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/introspect/package-info.java +12 -0
  350. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/NamedType.java +53 -0
  351. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/SubtypeResolver.java +39 -0
  352. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeIdResolver.java +74 -0
  353. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/TypeResolverBuilder.java +151 -0
  354. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeDeserializer.java +126 -0
  355. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsArrayTypeSerializer.java +110 -0
  356. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeDeserializer.java +37 -0
  357. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsExternalTypeSerializer.java +129 -0
  358. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeDeserializer.java +191 -0
  359. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsPropertyTypeSerializer.java +69 -0
  360. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeDeserializer.java +103 -0
  361. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/AsWrapperTypeSerializer.java +121 -0
  362. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/ClassNameIdResolver.java +138 -0
  363. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/MinimalClassNameIdResolver.java +66 -0
  364. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdSubtypeResolver.java +151 -0
  365. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/StdTypeResolverBuilder.java +202 -0
  366. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeDeserializerBase.java +154 -0
  367. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeIdResolverBase.java +37 -0
  368. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeNameIdResolver.java +154 -0
  369. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/TypeSerializerBase.java +31 -0
  370. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/impl/package-info.java +9 -0
  371. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/jsontype/package-info.java +10 -0
  372. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleAbstractTypeResolver.java +86 -0
  373. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleDeserializers.java +130 -0
  374. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleKeyDeserializers.java +59 -0
  375. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleModule.java +265 -0
  376. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleSerializers.java +206 -0
  377. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/SimpleValueInstantiators.java +45 -0
  378. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/module/package-info.java +16 -0
  379. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/package-info.java +34 -0
  380. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/AnyGetterWriter.java +48 -0
  381. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ArraySerializers.java +7 -0
  382. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BasicSerializerFactory.java +806 -0
  383. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyFilter.java +30 -0
  384. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanPropertyWriter.java +512 -0
  385. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializer.java +126 -0
  386. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerBuilder.java +140 -0
  387. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerFactory.java +780 -0
  388. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/BeanSerializerModifier.java +95 -0
  389. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ContainerSerializers.java +8 -0
  390. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/CustomSerializerFactory.java +293 -0
  391. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/EnumSerializer.java +17 -0
  392. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilterProvider.java +23 -0
  393. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/FilteredBeanPropertyWriter.java +96 -0
  394. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/JdkSerializers.java +11 -0
  395. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/MapSerializer.java +58 -0
  396. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/PropertyBuilder.java +372 -0
  397. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ScalarSerializerBase.java +18 -0
  398. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/SerializerBase.java +23 -0
  399. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdKeySerializer.java +10 -0
  400. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializerProvider.java +852 -0
  401. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/StdSerializers.java +372 -0
  402. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/ToStringSerializer.java +14 -0
  403. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/FailingSerializer.java +43 -0
  404. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/JsonSerializerMap.java +93 -0
  405. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/PropertySerializerMap.java +231 -0
  406. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/ReadOnlyClassToSerializerMap.java +73 -0
  407. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SerializerCache.java +304 -0
  408. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleBeanPropertyFilter.java +109 -0
  409. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/SimpleFilterProvider.java +114 -0
  410. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnknownSerializer.java +54 -0
  411. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanPropertyWriter.java +99 -0
  412. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/UnwrappingBeanSerializer.java +76 -0
  413. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/impl/package-info.java +5 -0
  414. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/package-info.java +5 -0
  415. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/AsArraySerializerBase.java +185 -0
  416. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/BeanSerializerBase.java +340 -0
  417. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CalendarSerializer.java +43 -0
  418. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/CollectionSerializer.java +113 -0
  419. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ContainerSerializerBase.java +51 -0
  420. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/DateSerializer.java +42 -0
  421. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumMapSerializer.java +218 -0
  422. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSerializer.java +84 -0
  423. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/EnumSetSerializer.java +47 -0
  424. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IndexedStringListSerializer.java +116 -0
  425. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/InetAddressSerializer.java +51 -0
  426. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/IterableSerializer.java +63 -0
  427. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/JsonValueSerializer.java +233 -0
  428. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/MapSerializer.java +422 -0
  429. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NonTypedScalarSerializerBase.java +34 -0
  430. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/NullSerializer.java +38 -0
  431. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ObjectArraySerializer.java +281 -0
  432. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/RawSerializer.java +52 -0
  433. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ScalarSerializerBase.java +52 -0
  434. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableSerializer.java +99 -0
  435. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializableWithTypeSerializer.java +90 -0
  436. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/SerializerBase.java +184 -0
  437. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StaticListSerializerBase.java +46 -0
  438. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdArraySerializers.java +476 -0
  439. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdContainerSerializers.java +249 -0
  440. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdJdkSerializers.java +195 -0
  441. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializer.java +43 -0
  442. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StdKeySerializers.java +95 -0
  443. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringCollectionSerializer.java +119 -0
  444. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/StringSerializer.java +36 -0
  445. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TimeZoneSerializer.java +38 -0
  446. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/ToStringSerializer.java +73 -0
  447. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/ser/std/TokenBufferSerializer.java +66 -0
  448. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ArrayType.java +260 -0
  449. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/ClassKey.java +94 -0
  450. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionLikeType.java +204 -0
  451. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/CollectionType.java +94 -0
  452. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/HierarchicType.java +88 -0
  453. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapLikeType.java +265 -0
  454. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/MapType.java +146 -0
  455. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/SimpleType.java +250 -0
  456. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBase.java +148 -0
  457. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeBindings.java +351 -0
  458. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeFactory.java +1165 -0
  459. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeModifier.java +38 -0
  460. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/TypeParser.java +134 -0
  461. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/type/package-info.java +10 -0
  462. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Annotations.java +23 -0
  463. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ArrayBuilders.java +293 -0
  464. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/BeanUtil.java +260 -0
  465. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ClassUtil.java +645 -0
  466. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Comparators.java +48 -0
  467. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumResolver.java +108 -0
  468. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/EnumValues.java +82 -0
  469. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601DateFormat.java +52 -0
  470. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ISO8601Utils.java +230 -0
  471. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONPObject.java +105 -0
  472. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/JSONWrappedObject.java +117 -0
  473. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LRUMap.java +28 -0
  474. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/LinkedNode.java +45 -0
  475. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Named.java +10 -0
  476. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/ObjectBuffer.java +257 -0
  477. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/PrimitiveArrayBuilder.java +180 -0
  478. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/Provider.java +21 -0
  479. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/RootNameLookup.java +54 -0
  480. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/StdDateFormat.java +348 -0
  481. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/util/package-info.java +4 -0
  482. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ArrayNode.java +758 -0
  483. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BaseJsonNode.java +122 -0
  484. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BigIntegerNode.java +104 -0
  485. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BinaryNode.java +136 -0
  486. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/BooleanNode.java +84 -0
  487. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ContainerNode.java +185 -0
  488. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DecimalNode.java +96 -0
  489. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/DoubleNode.java +106 -0
  490. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/IntNode.java +122 -0
  491. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/JsonNodeFactory.java +222 -0
  492. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/LongNode.java +99 -0
  493. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/MissingNode.java +97 -0
  494. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NodeCursor.java +222 -0
  495. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NullNode.java +58 -0
  496. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/NumericNode.java +72 -0
  497. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ObjectNode.java +696 -0
  498. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/POJONode.java +145 -0
  499. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TextNode.java +299 -0
  500. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/TreeTraversingParser.java +383 -0
  501. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/ValueNode.java +58 -0
  502. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/node/package-info.java +8 -0
  503. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/package-info.java +30 -0
  504. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSchema.java +82 -0
  505. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/JsonSerializableSchema.java +46 -0
  506. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/SchemaAware.java +25 -0
  507. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/schema/package-info.java +5 -0
  508. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/BytesToNameCanonicalizer.java +969 -0
  509. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/CharsToNameCanonicalizer.java +578 -0
  510. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name.java +50 -0
  511. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name1.java +44 -0
  512. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name2.java +40 -0
  513. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/Name3.java +39 -0
  514. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/NameN.java +68 -0
  515. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/sym/package-info.java +5 -0
  516. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/JavaType.java +503 -0
  517. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/TypeReference.java +60 -0
  518. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/type/package-info.java +8 -0
  519. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/BufferRecycler.java +109 -0
  520. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/ByteArrayBuilder.java +294 -0
  521. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/CharTypes.java +237 -0
  522. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/DefaultPrettyPrinter.java +282 -0
  523. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/InternCache.java +49 -0
  524. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonGeneratorDelegate.java +273 -0
  525. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserDelegate.java +251 -0
  526. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/JsonParserSequence.java +150 -0
  527. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/MinimalPrettyPrinter.java +152 -0
  528. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TextBuffer.java +707 -0
  529. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/TokenBuffer.java +1233 -0
  530. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/VersionUtil.java +79 -0
  531. data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/package-info.java +4 -0
  532. metadata +619 -0
@@ -0,0 +1,20 @@
1
+ package sh.calaba.org.codehaus.jackson.impl;
2
+
3
+ import sh.calaba.org.codehaus.jackson.*;
4
+ import sh.calaba.org.codehaus.jackson.io.IOContext;
5
+
6
+ /**
7
+ * Another intermediate base class used by all Jackson {@link JsonParser}
8
+ * implementations. Contains shared functionality for dealing with
9
+ * number parsing aspects, independent of input source decoding.
10
+ *
11
+ * @deprecated Since 1.9.0: functionality demoted down to JsonParserBase
12
+ */
13
+ @Deprecated
14
+ public abstract class JsonNumericParserBase
15
+ extends JsonParserBase
16
+ {
17
+ protected JsonNumericParserBase(IOContext ctxt, int features) {
18
+ super(ctxt, features);
19
+ }
20
+ }
@@ -0,0 +1,1067 @@
1
+ package sh.calaba.org.codehaus.jackson.impl;
2
+
3
+ import java.io.*;
4
+ import java.math.BigDecimal;
5
+ import java.math.BigInteger;
6
+
7
+ import sh.calaba.org.codehaus.jackson.*;
8
+ import sh.calaba.org.codehaus.jackson.io.IOContext;
9
+ import sh.calaba.org.codehaus.jackson.io.NumberInput;
10
+ import sh.calaba.org.codehaus.jackson.util.ByteArrayBuilder;
11
+ import sh.calaba.org.codehaus.jackson.util.TextBuffer;
12
+ import sh.calaba.org.codehaus.jackson.util.VersionUtil;
13
+
14
+ /**
15
+ * Intermediate base class used by all Jackson {@link JsonParser}
16
+ * implementations. Contains most common things that are independent
17
+ * of actual underlying input source
18
+ *
19
+ * @author Tatu Saloranta
20
+ */
21
+ public abstract class JsonParserBase
22
+ extends JsonParserMinimalBase
23
+ {
24
+ /*
25
+ /**********************************************************
26
+ /* Generic I/O state
27
+ /**********************************************************
28
+ */
29
+
30
+ /**
31
+ * I/O context for this reader. It handles buffer allocation
32
+ * for the reader.
33
+ */
34
+ final protected IOContext _ioContext;
35
+
36
+ /**
37
+ * Flag that indicates whether parser is closed or not. Gets
38
+ * set when parser is either closed by explicit call
39
+ * ({@link #close}) or when end-of-input is reached.
40
+ */
41
+ protected boolean _closed;
42
+
43
+ /*
44
+ /**********************************************************
45
+ /* Current input data
46
+ /**********************************************************
47
+ */
48
+
49
+ // Note: type of actual buffer depends on sub-class, can't include
50
+
51
+ /**
52
+ * Pointer to next available character in buffer
53
+ */
54
+ protected int _inputPtr = 0;
55
+
56
+ /**
57
+ * Index of character after last available one in the buffer.
58
+ */
59
+ protected int _inputEnd = 0;
60
+
61
+ /*
62
+ /**********************************************************
63
+ /* Current input location information
64
+ /**********************************************************
65
+ */
66
+
67
+ /**
68
+ * Number of characters/bytes that were contained in previous blocks
69
+ * (blocks that were already processed prior to the current buffer).
70
+ */
71
+ protected long _currInputProcessed = 0L;
72
+
73
+ /**
74
+ * Current row location of current point in input buffer, starting
75
+ * from 1, if available.
76
+ */
77
+ protected int _currInputRow = 1;
78
+
79
+ /**
80
+ * Current index of the first character of the current row in input
81
+ * buffer. Needed to calculate column position, if necessary; benefit
82
+ * of not having column itself is that this only has to be updated
83
+ * once per line.
84
+ */
85
+ protected int _currInputRowStart = 0;
86
+
87
+ /*
88
+ /**********************************************************
89
+ /* Information about starting location of event
90
+ /* Reader is pointing to; updated on-demand
91
+ /**********************************************************
92
+ */
93
+
94
+ // // // Location info at point when current token was started
95
+
96
+ /**
97
+ * Total number of bytes/characters read before start of current token.
98
+ * For big (gigabyte-sized) sizes are possible, needs to be long,
99
+ * unlike pointers and sizes related to in-memory buffers.
100
+ */
101
+ protected long _tokenInputTotal = 0;
102
+
103
+ /**
104
+ * Input row on which current token starts, 1-based
105
+ */
106
+ protected int _tokenInputRow = 1;
107
+
108
+ /**
109
+ * Column on input row that current token starts; 0-based (although
110
+ * in the end it'll be converted to 1-based)
111
+ */
112
+ protected int _tokenInputCol = 0;
113
+
114
+ /*
115
+ /**********************************************************
116
+ /* Parsing state
117
+ /**********************************************************
118
+ */
119
+
120
+ /**
121
+ * Information about parser context, context in which
122
+ * the next token is to be parsed (root, array, object).
123
+ */
124
+ protected JsonReadContext _parsingContext;
125
+
126
+ /**
127
+ * Secondary token related to the next token after current one;
128
+ * used if its type is known. This may be value token that
129
+ * follows FIELD_NAME, for example.
130
+ */
131
+ protected JsonToken _nextToken;
132
+
133
+ /*
134
+ /**********************************************************
135
+ /* Buffer(s) for local name(s) and text content
136
+ /**********************************************************
137
+ */
138
+
139
+ /**
140
+ * Buffer that contains contents of String values, including
141
+ * field names if necessary (name split across boundary,
142
+ * contains escape sequence, or access needed to char array)
143
+ */
144
+ protected final TextBuffer _textBuffer;
145
+
146
+ /**
147
+ * Temporary buffer that is needed if field name is accessed
148
+ * using {@link #getTextCharacters} method (instead of String
149
+ * returning alternatives)
150
+ */
151
+ protected char[] _nameCopyBuffer = null;
152
+
153
+ /**
154
+ * Flag set to indicate whether the field name is available
155
+ * from the name copy buffer or not (in addition to its String
156
+ * representation being available via read context)
157
+ */
158
+ protected boolean _nameCopied = false;
159
+
160
+ /**
161
+ * ByteArrayBuilder is needed if 'getBinaryValue' is called. If so,
162
+ * we better reuse it for remainder of content.
163
+ */
164
+ protected ByteArrayBuilder _byteArrayBuilder = null;
165
+
166
+ /**
167
+ * We will hold on to decoded binary data, for duration of
168
+ * current event, so that multiple calls to
169
+ * {@link #getBinaryValue} will not need to decode data more
170
+ * than once.
171
+ */
172
+ protected byte[] _binaryValue;
173
+
174
+ /*
175
+ /**********************************************************
176
+ /* Constants and fields of former 'JsonNumericParserBase'
177
+ /**********************************************************
178
+ */
179
+
180
+ final protected static int NR_UNKNOWN = 0;
181
+
182
+ // First, integer types
183
+
184
+ final protected static int NR_INT = 0x0001;
185
+ final protected static int NR_LONG = 0x0002;
186
+ final protected static int NR_BIGINT = 0x0004;
187
+
188
+ // And then floating point types
189
+
190
+ final protected static int NR_DOUBLE = 0x008;
191
+ final protected static int NR_BIGDECIMAL = 0x0010;
192
+
193
+ // Also, we need some numeric constants
194
+
195
+ final static BigDecimal BD_MIN_LONG = new BigDecimal(Long.MIN_VALUE);
196
+ final static BigDecimal BD_MAX_LONG = new BigDecimal(Long.MAX_VALUE);
197
+
198
+ final static BigDecimal BD_MIN_INT = new BigDecimal(Long.MIN_VALUE);
199
+ final static BigDecimal BD_MAX_INT = new BigDecimal(Long.MAX_VALUE);
200
+
201
+ final static long MIN_INT_L = (long) Integer.MIN_VALUE;
202
+ final static long MAX_INT_L = (long) Integer.MAX_VALUE;
203
+
204
+ // These are not very accurate, but have to do... (for bounds checks)
205
+
206
+ final static double MIN_LONG_D = (double) Long.MIN_VALUE;
207
+ final static double MAX_LONG_D = (double) Long.MAX_VALUE;
208
+
209
+ final static double MIN_INT_D = (double) Integer.MIN_VALUE;
210
+ final static double MAX_INT_D = (double) Integer.MAX_VALUE;
211
+
212
+
213
+ // Digits, numeric
214
+ final protected static int INT_0 = '0';
215
+ final protected static int INT_1 = '1';
216
+ final protected static int INT_2 = '2';
217
+ final protected static int INT_3 = '3';
218
+ final protected static int INT_4 = '4';
219
+ final protected static int INT_5 = '5';
220
+ final protected static int INT_6 = '6';
221
+ final protected static int INT_7 = '7';
222
+ final protected static int INT_8 = '8';
223
+ final protected static int INT_9 = '9';
224
+
225
+ final protected static int INT_MINUS = '-';
226
+ final protected static int INT_PLUS = '+';
227
+ final protected static int INT_DECIMAL_POINT = '.';
228
+
229
+ final protected static int INT_e = 'e';
230
+ final protected static int INT_E = 'E';
231
+
232
+ final protected static char CHAR_NULL = '\0';
233
+
234
+ // Numeric value holders: multiple fields used for
235
+ // for efficiency
236
+
237
+ /**
238
+ * Bitfield that indicates which numeric representations
239
+ * have been calculated for the current type
240
+ */
241
+ protected int _numTypesValid = NR_UNKNOWN;
242
+
243
+ // First primitives
244
+
245
+ protected int _numberInt;
246
+
247
+ protected long _numberLong;
248
+
249
+ protected double _numberDouble;
250
+
251
+ // And then object types
252
+
253
+ protected BigInteger _numberBigInt;
254
+
255
+ protected BigDecimal _numberBigDecimal;
256
+
257
+ // And then other information about value itself
258
+
259
+ /**
260
+ * Flag that indicates whether numeric value has a negative
261
+ * value. That is, whether its textual representation starts
262
+ * with minus character.
263
+ */
264
+ protected boolean _numberNegative;
265
+
266
+ /**
267
+ * Length of integer part of the number, in characters
268
+ */
269
+ protected int _intLength;
270
+
271
+ /**
272
+ * Length of the fractional part (not including decimal
273
+ * point or exponent), in characters.
274
+ * Not used for pure integer values.
275
+ */
276
+ protected int _fractLength;
277
+
278
+ /**
279
+ * Length of the exponent part of the number, if any, not
280
+ * including 'e' marker or sign, just digits.
281
+ * Not used for pure integer values.
282
+ */
283
+ protected int _expLength;
284
+
285
+ /*
286
+ /**********************************************************
287
+ /* Life-cycle
288
+ /**********************************************************
289
+ */
290
+
291
+ protected JsonParserBase(IOContext ctxt, int features)
292
+ {
293
+ super();
294
+ _features = features;
295
+ _ioContext = ctxt;
296
+ _textBuffer = ctxt.constructTextBuffer();
297
+ _parsingContext = JsonReadContext.createRootContext();
298
+ }
299
+
300
+ @Override
301
+ public Version version() {
302
+ return VersionUtil.versionFor(getClass());
303
+ }
304
+
305
+ /*
306
+ /**********************************************************
307
+ /* JsonParser impl
308
+ /**********************************************************
309
+ */
310
+
311
+ /**
312
+ * Method that can be called to get the name associated with
313
+ * the current event.
314
+ */
315
+ @Override
316
+ public String getCurrentName()
317
+ throws IOException, JsonParseException
318
+ {
319
+ // [JACKSON-395]: start markers require information from parent
320
+ if (_currToken == JsonToken.START_OBJECT || _currToken == JsonToken.START_ARRAY) {
321
+ JsonReadContext parent = _parsingContext.getParent();
322
+ return parent.getCurrentName();
323
+ }
324
+ return _parsingContext.getCurrentName();
325
+ }
326
+
327
+ @Override
328
+ public void close() throws IOException
329
+ {
330
+ if (!_closed) {
331
+ _closed = true;
332
+ try {
333
+ _closeInput();
334
+ } finally {
335
+ // as per [JACKSON-324], do in finally block
336
+ // Also, internal buffer(s) can now be released as well
337
+ _releaseBuffers();
338
+ }
339
+ }
340
+ }
341
+
342
+ @Override
343
+ public boolean isClosed() { return _closed; }
344
+
345
+ @Override
346
+ public JsonReadContext getParsingContext()
347
+ {
348
+ return _parsingContext;
349
+ }
350
+
351
+ /**
352
+ * Method that return the <b>starting</b> location of the current
353
+ * token; that is, position of the first character from input
354
+ * that starts the current token.
355
+ */
356
+ @Override
357
+ public JsonLocation getTokenLocation()
358
+ {
359
+ return new JsonLocation(_ioContext.getSourceReference(),
360
+ getTokenCharacterOffset(),
361
+ getTokenLineNr(),
362
+ getTokenColumnNr());
363
+ }
364
+
365
+ /**
366
+ * Method that returns location of the last processed character;
367
+ * usually for error reporting purposes
368
+ */
369
+ @Override
370
+ public JsonLocation getCurrentLocation()
371
+ {
372
+ int col = _inputPtr - _currInputRowStart + 1; // 1-based
373
+ return new JsonLocation(_ioContext.getSourceReference(),
374
+ _currInputProcessed + _inputPtr - 1,
375
+ _currInputRow, col);
376
+ }
377
+
378
+ /*
379
+ /**********************************************************
380
+ /* Public API, access to token information, text
381
+ /**********************************************************
382
+ */
383
+
384
+ @Override
385
+ public boolean hasTextCharacters()
386
+ {
387
+ if (_currToken == JsonToken.VALUE_STRING) {
388
+ return true; // usually true
389
+ }
390
+ if (_currToken == JsonToken.FIELD_NAME) {
391
+ return _nameCopied;
392
+ }
393
+ return false;
394
+ }
395
+
396
+ /*
397
+ /**********************************************************
398
+ /* Public low-level accessors
399
+ /**********************************************************
400
+ */
401
+
402
+ public final long getTokenCharacterOffset() { return _tokenInputTotal; }
403
+ public final int getTokenLineNr() { return _tokenInputRow; }
404
+ public final int getTokenColumnNr() {
405
+ // note: value of -1 means "not available"; otherwise convert from 0-based to 1-based
406
+ int col = _tokenInputCol;
407
+ return (col < 0) ? col : (col + 1);
408
+ }
409
+
410
+ /*
411
+ /**********************************************************
412
+ /* Low-level reading, other
413
+ /**********************************************************
414
+ */
415
+
416
+ protected final void loadMoreGuaranteed()
417
+ throws IOException
418
+ {
419
+ if (!loadMore()) {
420
+ _reportInvalidEOF();
421
+ }
422
+ }
423
+
424
+ /*
425
+ /**********************************************************
426
+ /* Abstract methods needed from sub-classes
427
+ /**********************************************************
428
+ */
429
+
430
+ protected abstract boolean loadMore() throws IOException;
431
+
432
+ protected abstract void _finishString() throws IOException, JsonParseException;
433
+
434
+ protected abstract void _closeInput() throws IOException;
435
+
436
+ /*
437
+ /**********************************************************
438
+ /* Low-level reading, other
439
+ /**********************************************************
440
+ */
441
+
442
+ /**
443
+ * Method called to release internal buffers owned by the base
444
+ * reader. This may be called along with {@link #_closeInput} (for
445
+ * example, when explicitly closing this reader instance), or
446
+ * separately (if need be).
447
+ */
448
+ protected void _releaseBuffers() throws IOException
449
+ {
450
+ _textBuffer.releaseBuffers();
451
+ char[] buf = _nameCopyBuffer;
452
+ if (buf != null) {
453
+ _nameCopyBuffer = null;
454
+ _ioContext.releaseNameCopyBuffer(buf);
455
+ }
456
+ }
457
+
458
+ /**
459
+ * Method called when an EOF is encountered between tokens.
460
+ * If so, it may be a legitimate EOF, but only iff there
461
+ * is no open non-root context.
462
+ */
463
+ @Override
464
+ protected void _handleEOF() throws JsonParseException
465
+ {
466
+ if (!_parsingContext.inRoot()) {
467
+ _reportInvalidEOF(": expected close marker for "+_parsingContext.getTypeDesc()+" (from "+_parsingContext.getStartLocation(_ioContext.getSourceReference())+")");
468
+ }
469
+ }
470
+
471
+ /*
472
+ /**********************************************************
473
+ /* Internal/package methods: Error reporting
474
+ /**********************************************************
475
+ */
476
+
477
+ protected void _reportMismatchedEndMarker(int actCh, char expCh)
478
+ throws JsonParseException
479
+ {
480
+ String startDesc = ""+_parsingContext.getStartLocation(_ioContext.getSourceReference());
481
+ _reportError("Unexpected close marker '"+((char) actCh)+"': expected '"+expCh+"' (for "+_parsingContext.getTypeDesc()+" starting at "+startDesc+")");
482
+ }
483
+
484
+ /*
485
+ /**********************************************************
486
+ /* Internal/package methods: shared/reusable builders
487
+ /**********************************************************
488
+ */
489
+
490
+ public ByteArrayBuilder _getByteArrayBuilder()
491
+ {
492
+ if (_byteArrayBuilder == null) {
493
+ _byteArrayBuilder = new ByteArrayBuilder();
494
+ } else {
495
+ _byteArrayBuilder.reset();
496
+ }
497
+ return _byteArrayBuilder;
498
+ }
499
+
500
+ /*
501
+ /**********************************************************
502
+ /* Methods from former JsonNumericParserBase
503
+ /**********************************************************
504
+ */
505
+
506
+ // // // Life-cycle of number-parsing
507
+
508
+ protected final JsonToken reset(boolean negative, int intLen, int fractLen, int expLen)
509
+ {
510
+ if (fractLen < 1 && expLen < 1) { // integer
511
+ return resetInt(negative, intLen);
512
+ }
513
+ return resetFloat(negative, intLen, fractLen, expLen);
514
+ }
515
+
516
+ protected final JsonToken resetInt(boolean negative, int intLen)
517
+ {
518
+ _numberNegative = negative;
519
+ _intLength = intLen;
520
+ _fractLength = 0;
521
+ _expLength = 0;
522
+ _numTypesValid = NR_UNKNOWN; // to force parsing
523
+ return JsonToken.VALUE_NUMBER_INT;
524
+ }
525
+
526
+ protected final JsonToken resetFloat(boolean negative, int intLen, int fractLen, int expLen)
527
+ {
528
+ _numberNegative = negative;
529
+ _intLength = intLen;
530
+ _fractLength = fractLen;
531
+ _expLength = expLen;
532
+ _numTypesValid = NR_UNKNOWN; // to force parsing
533
+ return JsonToken.VALUE_NUMBER_FLOAT;
534
+ }
535
+
536
+ protected final JsonToken resetAsNaN(String valueStr, double value)
537
+ {
538
+ _textBuffer.resetWithString(valueStr);
539
+ _numberDouble = value;
540
+ _numTypesValid = NR_DOUBLE;
541
+ return JsonToken.VALUE_NUMBER_FLOAT;
542
+ }
543
+
544
+ /*
545
+ /**********************************************************
546
+ /* Numeric accessors of public API
547
+ /**********************************************************
548
+ */
549
+
550
+ @Override
551
+ public Number getNumberValue() throws IOException, JsonParseException
552
+ {
553
+ if (_numTypesValid == NR_UNKNOWN) {
554
+ _parseNumericValue(NR_UNKNOWN); // will also check event type
555
+ }
556
+ // Separate types for int types
557
+ if (_currToken == JsonToken.VALUE_NUMBER_INT) {
558
+ if ((_numTypesValid & NR_INT) != 0) {
559
+ return Integer.valueOf(_numberInt);
560
+ }
561
+ if ((_numTypesValid & NR_LONG) != 0) {
562
+ return Long.valueOf(_numberLong);
563
+ }
564
+ if ((_numTypesValid & NR_BIGINT) != 0) {
565
+ return _numberBigInt;
566
+ }
567
+ // Shouldn't get this far but if we do
568
+ return _numberBigDecimal;
569
+ }
570
+
571
+ /* And then floating point types. But here optimal type
572
+ * needs to be big decimal, to avoid losing any data?
573
+ */
574
+ if ((_numTypesValid & NR_BIGDECIMAL) != 0) {
575
+ return _numberBigDecimal;
576
+ }
577
+ if ((_numTypesValid & NR_DOUBLE) == 0) { // sanity check
578
+ _throwInternal();
579
+ }
580
+ return Double.valueOf(_numberDouble);
581
+ }
582
+
583
+ @Override
584
+ public NumberType getNumberType() throws IOException, JsonParseException
585
+ {
586
+ if (_numTypesValid == NR_UNKNOWN) {
587
+ _parseNumericValue(NR_UNKNOWN); // will also check event type
588
+ }
589
+ if (_currToken == JsonToken.VALUE_NUMBER_INT) {
590
+ if ((_numTypesValid & NR_INT) != 0) {
591
+ return NumberType.INT;
592
+ }
593
+ if ((_numTypesValid & NR_LONG) != 0) {
594
+ return NumberType.LONG;
595
+ }
596
+ return NumberType.BIG_INTEGER;
597
+ }
598
+
599
+ /* And then floating point types. Here optimal type
600
+ * needs to be big decimal, to avoid losing any data?
601
+ * However... using BD is slow, so let's allow returning
602
+ * double as type if no explicit call has been made to access
603
+ * data as BD?
604
+ */
605
+ if ((_numTypesValid & NR_BIGDECIMAL) != 0) {
606
+ return NumberType.BIG_DECIMAL;
607
+ }
608
+ return NumberType.DOUBLE;
609
+ }
610
+
611
+ @Override
612
+ public int getIntValue() throws IOException, JsonParseException
613
+ {
614
+ if ((_numTypesValid & NR_INT) == 0) {
615
+ if (_numTypesValid == NR_UNKNOWN) { // not parsed at all
616
+ _parseNumericValue(NR_INT); // will also check event type
617
+ }
618
+ if ((_numTypesValid & NR_INT) == 0) { // wasn't an int natively?
619
+ convertNumberToInt(); // let's make it so, if possible
620
+ }
621
+ }
622
+ return _numberInt;
623
+ }
624
+
625
+ @Override
626
+ public long getLongValue() throws IOException, JsonParseException
627
+ {
628
+ if ((_numTypesValid & NR_LONG) == 0) {
629
+ if (_numTypesValid == NR_UNKNOWN) {
630
+ _parseNumericValue(NR_LONG);
631
+ }
632
+ if ((_numTypesValid & NR_LONG) == 0) {
633
+ convertNumberToLong();
634
+ }
635
+ }
636
+ return _numberLong;
637
+ }
638
+
639
+ @Override
640
+ public BigInteger getBigIntegerValue() throws IOException, JsonParseException
641
+ {
642
+ if ((_numTypesValid & NR_BIGINT) == 0) {
643
+ if (_numTypesValid == NR_UNKNOWN) {
644
+ _parseNumericValue(NR_BIGINT);
645
+ }
646
+ if ((_numTypesValid & NR_BIGINT) == 0) {
647
+ convertNumberToBigInteger();
648
+ }
649
+ }
650
+ return _numberBigInt;
651
+ }
652
+
653
+ @Override
654
+ public float getFloatValue() throws IOException, JsonParseException
655
+ {
656
+ double value = getDoubleValue();
657
+ /* 22-Jan-2009, tatu: Bounds/range checks would be tricky
658
+ * here, so let's not bother even trying...
659
+ */
660
+ /*
661
+ if (value < -Float.MAX_VALUE || value > MAX_FLOAT_D) {
662
+ _reportError("Numeric value ("+getText()+") out of range of Java float");
663
+ }
664
+ */
665
+ return (float) value;
666
+ }
667
+
668
+ @Override
669
+ public double getDoubleValue() throws IOException, JsonParseException
670
+ {
671
+ if ((_numTypesValid & NR_DOUBLE) == 0) {
672
+ if (_numTypesValid == NR_UNKNOWN) {
673
+ _parseNumericValue(NR_DOUBLE);
674
+ }
675
+ if ((_numTypesValid & NR_DOUBLE) == 0) {
676
+ convertNumberToDouble();
677
+ }
678
+ }
679
+ return _numberDouble;
680
+ }
681
+
682
+ @Override
683
+ public BigDecimal getDecimalValue() throws IOException, JsonParseException
684
+ {
685
+ if ((_numTypesValid & NR_BIGDECIMAL) == 0) {
686
+ if (_numTypesValid == NR_UNKNOWN) {
687
+ _parseNumericValue(NR_BIGDECIMAL);
688
+ }
689
+ if ((_numTypesValid & NR_BIGDECIMAL) == 0) {
690
+ convertNumberToBigDecimal();
691
+ }
692
+ }
693
+ return _numberBigDecimal;
694
+ }
695
+
696
+ /*
697
+ /**********************************************************
698
+ /* Conversion from textual to numeric representation
699
+ /**********************************************************
700
+ */
701
+
702
+ /**
703
+ * Method that will parse actual numeric value out of a syntactically
704
+ * valid number value. Type it will parse into depends on whether
705
+ * it is a floating point number, as well as its magnitude: smallest
706
+ * legal type (of ones available) is used for efficiency.
707
+ *
708
+ * @param expType Numeric type that we will immediately need, if any;
709
+ * mostly necessary to optimize handling of floating point numbers
710
+ */
711
+ protected void _parseNumericValue(int expType)
712
+ throws IOException, JsonParseException
713
+ {
714
+ // Int or float?
715
+ if (_currToken == JsonToken.VALUE_NUMBER_INT) {
716
+ char[] buf = _textBuffer.getTextBuffer();
717
+ int offset = _textBuffer.getTextOffset();
718
+ int len = _intLength;
719
+ if (_numberNegative) {
720
+ ++offset;
721
+ }
722
+ if (len <= 9) { // definitely fits in int
723
+ int i = NumberInput.parseInt(buf, offset, len);
724
+ _numberInt = _numberNegative ? -i : i;
725
+ _numTypesValid = NR_INT;
726
+ return;
727
+ }
728
+ if (len <= 18) { // definitely fits AND is easy to parse using 2 int parse calls
729
+ long l = NumberInput.parseLong(buf, offset, len);
730
+ if (_numberNegative) {
731
+ l = -l;
732
+ }
733
+ // [JACKSON-230] Could still fit in int, need to check
734
+ if (len == 10) {
735
+ if (_numberNegative) {
736
+ if (l >= MIN_INT_L) {
737
+ _numberInt = (int) l;
738
+ _numTypesValid = NR_INT;
739
+ return;
740
+ }
741
+ } else {
742
+ if (l <= MAX_INT_L) {
743
+ _numberInt = (int) l;
744
+ _numTypesValid = NR_INT;
745
+ return;
746
+ }
747
+ }
748
+ }
749
+ _numberLong = l;
750
+ _numTypesValid = NR_LONG;
751
+ return;
752
+ }
753
+ _parseSlowIntValue(expType, buf, offset, len);
754
+ return;
755
+ }
756
+ if (_currToken == JsonToken.VALUE_NUMBER_FLOAT) {
757
+ _parseSlowFloatValue(expType);
758
+ return;
759
+ }
760
+ _reportError("Current token ("+_currToken+") not numeric, can not use numeric value accessors");
761
+ }
762
+
763
+ private final void _parseSlowFloatValue(int expType)
764
+ throws IOException, JsonParseException
765
+ {
766
+ /* Nope: floating point. Here we need to be careful to get
767
+ * optimal parsing strategy: choice is between accurate but
768
+ * slow (BigDecimal) and lossy but fast (Double). For now
769
+ * let's only use BD when explicitly requested -- it can
770
+ * still be constructed correctly at any point since we do
771
+ * retain textual representation
772
+ */
773
+ try {
774
+ if (expType == NR_BIGDECIMAL) {
775
+ _numberBigDecimal = _textBuffer.contentsAsDecimal();
776
+ _numTypesValid = NR_BIGDECIMAL;
777
+ } else {
778
+ // Otherwise double has to do
779
+ _numberDouble = _textBuffer.contentsAsDouble();
780
+ _numTypesValid = NR_DOUBLE;
781
+ }
782
+ } catch (NumberFormatException nex) {
783
+ // Can this ever occur? Due to overflow, maybe?
784
+ _wrapError("Malformed numeric value '"+_textBuffer.contentsAsString()+"'", nex);
785
+ }
786
+ }
787
+
788
+ private final void _parseSlowIntValue(int expType, char[] buf, int offset, int len)
789
+ throws IOException, JsonParseException
790
+ {
791
+ String numStr = _textBuffer.contentsAsString();
792
+ try {
793
+ // [JACKSON-230] Some long cases still...
794
+ if (NumberInput.inLongRange(buf, offset, len, _numberNegative)) {
795
+ // Probably faster to construct a String, call parse, than to use BigInteger
796
+ _numberLong = Long.parseLong(numStr);
797
+ _numTypesValid = NR_LONG;
798
+ } else {
799
+ // nope, need the heavy guns... (rare case)
800
+ _numberBigInt = new BigInteger(numStr);
801
+ _numTypesValid = NR_BIGINT;
802
+ }
803
+ } catch (NumberFormatException nex) {
804
+ // Can this ever occur? Due to overflow, maybe?
805
+ _wrapError("Malformed numeric value '"+numStr+"'", nex);
806
+ }
807
+ }
808
+
809
+ /*
810
+ /**********************************************************
811
+ /* Numeric conversions
812
+ /**********************************************************
813
+ */
814
+
815
+ protected void convertNumberToInt()
816
+ throws IOException, JsonParseException
817
+ {
818
+ // First, converting from long ought to be easy
819
+ if ((_numTypesValid & NR_LONG) != 0) {
820
+ // Let's verify it's lossless conversion by simple roundtrip
821
+ int result = (int) _numberLong;
822
+ if (((long) result) != _numberLong) {
823
+ _reportError("Numeric value ("+getText()+") out of range of int");
824
+ }
825
+ _numberInt = result;
826
+ } else if ((_numTypesValid & NR_BIGINT) != 0) {
827
+ // !!! Should check for range...
828
+ _numberInt = _numberBigInt.intValue();
829
+ } else if ((_numTypesValid & NR_DOUBLE) != 0) {
830
+ // Need to check boundaries
831
+ if (_numberDouble < MIN_INT_D || _numberDouble > MAX_INT_D) {
832
+ reportOverflowInt();
833
+ }
834
+ _numberInt = (int) _numberDouble;
835
+ } else if ((_numTypesValid & NR_BIGDECIMAL) != 0) {
836
+ if (BD_MIN_INT.compareTo(_numberBigDecimal) > 0
837
+ || BD_MAX_INT.compareTo(_numberBigDecimal) < 0) {
838
+ reportOverflowInt();
839
+ }
840
+ _numberInt = _numberBigDecimal.intValue();
841
+ } else {
842
+ _throwInternal(); // should never get here
843
+ }
844
+
845
+ _numTypesValid |= NR_INT;
846
+ }
847
+
848
+ protected void convertNumberToLong()
849
+ throws IOException, JsonParseException
850
+ {
851
+ if ((_numTypesValid & NR_INT) != 0) {
852
+ _numberLong = (long) _numberInt;
853
+ } else if ((_numTypesValid & NR_BIGINT) != 0) {
854
+ // !!! Should check for range...
855
+ _numberLong = _numberBigInt.longValue();
856
+ } else if ((_numTypesValid & NR_DOUBLE) != 0) {
857
+ // Need to check boundaries
858
+ if (_numberDouble < MIN_LONG_D || _numberDouble > MAX_LONG_D) {
859
+ reportOverflowLong();
860
+ }
861
+ _numberLong = (long) _numberDouble;
862
+ } else if ((_numTypesValid & NR_BIGDECIMAL) != 0) {
863
+ if (BD_MIN_LONG.compareTo(_numberBigDecimal) > 0
864
+ || BD_MAX_LONG.compareTo(_numberBigDecimal) < 0) {
865
+ reportOverflowLong();
866
+ }
867
+ _numberLong = _numberBigDecimal.longValue();
868
+ } else {
869
+ _throwInternal(); // should never get here
870
+ }
871
+
872
+ _numTypesValid |= NR_LONG;
873
+ }
874
+
875
+ protected void convertNumberToBigInteger()
876
+ throws IOException, JsonParseException
877
+ {
878
+ if ((_numTypesValid & NR_BIGDECIMAL) != 0) {
879
+ // here it'll just get truncated, no exceptions thrown
880
+ _numberBigInt = _numberBigDecimal.toBigInteger();
881
+ } else if ((_numTypesValid & NR_LONG) != 0) {
882
+ _numberBigInt = BigInteger.valueOf(_numberLong);
883
+ } else if ((_numTypesValid & NR_INT) != 0) {
884
+ _numberBigInt = BigInteger.valueOf(_numberInt);
885
+ } else if ((_numTypesValid & NR_DOUBLE) != 0) {
886
+ _numberBigInt = BigDecimal.valueOf(_numberDouble).toBigInteger();
887
+ } else {
888
+ _throwInternal(); // should never get here
889
+ }
890
+ _numTypesValid |= NR_BIGINT;
891
+ }
892
+
893
+ protected void convertNumberToDouble()
894
+ throws IOException, JsonParseException
895
+ {
896
+ /* 05-Aug-2008, tatus: Important note: this MUST start with
897
+ * more accurate representations, since we don't know which
898
+ * value is the original one (others get generated when
899
+ * requested)
900
+ */
901
+
902
+ if ((_numTypesValid & NR_BIGDECIMAL) != 0) {
903
+ _numberDouble = _numberBigDecimal.doubleValue();
904
+ } else if ((_numTypesValid & NR_BIGINT) != 0) {
905
+ _numberDouble = _numberBigInt.doubleValue();
906
+ } else if ((_numTypesValid & NR_LONG) != 0) {
907
+ _numberDouble = (double) _numberLong;
908
+ } else if ((_numTypesValid & NR_INT) != 0) {
909
+ _numberDouble = (double) _numberInt;
910
+ } else {
911
+ _throwInternal(); // should never get here
912
+ }
913
+
914
+ _numTypesValid |= NR_DOUBLE;
915
+ }
916
+
917
+ protected void convertNumberToBigDecimal()
918
+ throws IOException, JsonParseException
919
+ {
920
+ /* 05-Aug-2008, tatus: Important note: this MUST start with
921
+ * more accurate representations, since we don't know which
922
+ * value is the original one (others get generated when
923
+ * requested)
924
+ */
925
+
926
+ if ((_numTypesValid & NR_DOUBLE) != 0) {
927
+ /* Let's actually parse from String representation,
928
+ * to avoid rounding errors that non-decimal floating operations
929
+ * would incur
930
+ */
931
+ _numberBigDecimal = new BigDecimal(getText());
932
+ } else if ((_numTypesValid & NR_BIGINT) != 0) {
933
+ _numberBigDecimal = new BigDecimal(_numberBigInt);
934
+ } else if ((_numTypesValid & NR_LONG) != 0) {
935
+ _numberBigDecimal = BigDecimal.valueOf(_numberLong);
936
+ } else if ((_numTypesValid & NR_INT) != 0) {
937
+ _numberBigDecimal = BigDecimal.valueOf((long) _numberInt);
938
+ } else {
939
+ _throwInternal(); // should never get here
940
+ }
941
+ _numTypesValid |= NR_BIGDECIMAL;
942
+ }
943
+
944
+ /*
945
+ /**********************************************************
946
+ /* Number handling exceptions
947
+ /**********************************************************
948
+ */
949
+
950
+ protected void reportUnexpectedNumberChar(int ch, String comment)
951
+ throws JsonParseException
952
+ {
953
+ String msg = "Unexpected character ("+_getCharDesc(ch)+") in numeric value";
954
+ if (comment != null) {
955
+ msg += ": "+comment;
956
+ }
957
+ _reportError(msg);
958
+ }
959
+
960
+ protected void reportInvalidNumber(String msg)
961
+ throws JsonParseException
962
+ {
963
+ _reportError("Invalid numeric value: "+msg);
964
+ }
965
+
966
+ protected void reportOverflowInt()
967
+ throws IOException, JsonParseException
968
+ {
969
+ _reportError("Numeric value ("+getText()+") out of range of int ("+Integer.MIN_VALUE+" - "+Integer.MAX_VALUE+")");
970
+ }
971
+
972
+ protected void reportOverflowLong()
973
+ throws IOException, JsonParseException
974
+ {
975
+ _reportError("Numeric value ("+getText()+") out of range of long ("+Long.MIN_VALUE+" - "+Long.MAX_VALUE+")");
976
+ }
977
+
978
+ /*
979
+ /**********************************************************
980
+ /* Base64 handling support
981
+ /**********************************************************
982
+ */
983
+
984
+ /**
985
+ * Method that sub-classes must implement to support escaped sequences
986
+ * in base64-encoded sections.
987
+ * Sub-classes that do not need base64 support can leave this as is
988
+ */
989
+ protected char _decodeEscaped()
990
+ throws IOException, JsonParseException {
991
+ throw new UnsupportedOperationException();
992
+ }
993
+
994
+ protected final int _decodeBase64Escape(Base64Variant b64variant, int ch, int index)
995
+ throws IOException, JsonParseException
996
+ {
997
+ // 17-May-2011, tatu: As per [JACKSON-xxx], need to handle escaped chars
998
+ if (ch != '\\') {
999
+ throw reportInvalidBase64Char(b64variant, ch, index);
1000
+ }
1001
+ int unescaped = _decodeEscaped();
1002
+ // if white space, skip if first triplet; otherwise errors
1003
+ if (unescaped <= INT_SPACE) {
1004
+ if (index == 0) { // whitespace only allowed to be skipped between triplets
1005
+ return -1;
1006
+ }
1007
+ }
1008
+ // otherwise try to find actual triplet value
1009
+ int bits = b64variant.decodeBase64Char(unescaped);
1010
+ if (bits < 0) {
1011
+ throw reportInvalidBase64Char(b64variant, unescaped, index);
1012
+ }
1013
+ return bits;
1014
+ }
1015
+
1016
+ protected final int _decodeBase64Escape(Base64Variant b64variant, char ch, int index)
1017
+ throws IOException, JsonParseException
1018
+ {
1019
+ // 17-May-2011, tatu: As per [JACKSON-xxx], need to handle escaped chars
1020
+ if (ch != '\\') {
1021
+ throw reportInvalidBase64Char(b64variant, ch, index);
1022
+ }
1023
+ char unescaped = _decodeEscaped();
1024
+ // if white space, skip if first triplet; otherwise errors
1025
+ if (unescaped <= INT_SPACE) {
1026
+ if (index == 0) { // whitespace only allowed to be skipped between triplets
1027
+ return -1;
1028
+ }
1029
+ }
1030
+ // otherwise try to find actual triplet value
1031
+ int bits = b64variant.decodeBase64Char(unescaped);
1032
+ if (bits < 0) {
1033
+ throw reportInvalidBase64Char(b64variant, unescaped, index);
1034
+ }
1035
+ return bits;
1036
+ }
1037
+
1038
+ protected IllegalArgumentException reportInvalidBase64Char(Base64Variant b64variant, int ch, int bindex)
1039
+ throws IllegalArgumentException
1040
+ {
1041
+ return reportInvalidBase64Char(b64variant, ch, bindex, null);
1042
+ }
1043
+
1044
+ /**
1045
+ * @param bindex Relative index within base64 character unit; between 0
1046
+ * and 3 (as unit has exactly 4 characters)
1047
+ */
1048
+ protected IllegalArgumentException reportInvalidBase64Char(Base64Variant b64variant, int ch, int bindex, String msg)
1049
+ throws IllegalArgumentException
1050
+ {
1051
+ String base;
1052
+ if (ch <= INT_SPACE) {
1053
+ base = "Illegal white space character (code 0x"+Integer.toHexString(ch)+") as character #"+(bindex+1)+" of 4-char base64 unit: can only used between units";
1054
+ } else if (b64variant.usesPaddingChar(ch)) {
1055
+ base = "Unexpected padding character ('"+b64variant.getPaddingChar()+"') as character #"+(bindex+1)+" of 4-char base64 unit: padding only legal as 3rd or 4th character";
1056
+ } else if (!Character.isDefined(ch) || Character.isISOControl(ch)) {
1057
+ // Not sure if we can really get here... ? (most illegal xml chars are caught at lower level)
1058
+ base = "Illegal character (code 0x"+Integer.toHexString(ch)+") in base64 content";
1059
+ } else {
1060
+ base = "Illegal character '"+((char)ch)+"' (code 0x"+Integer.toHexString(ch)+") in base64 content";
1061
+ }
1062
+ if (msg != null) {
1063
+ base = base + ": " + msg;
1064
+ }
1065
+ return new IllegalArgumentException(base);
1066
+ }
1067
+ }