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,141 @@
1
+ package sh.calaba.org.codehaus.jackson;
2
+
3
+ import sh.calaba.org.codehaus.jackson.annotate.JsonCreator;
4
+ import sh.calaba.org.codehaus.jackson.annotate.JsonProperty;
5
+
6
+ /**
7
+ * Object that encapsulates Location information used for reporting
8
+ * parsing (or potentially generation) errors, as well as current location
9
+ * within input streams.
10
+ */
11
+ public class JsonLocation
12
+ implements java.io.Serializable // as per [JACKSON-168]
13
+ {
14
+ private static final long serialVersionUID = 1L;
15
+
16
+ /**
17
+ * Shared immutable "N/A location" that can be returned to indicate
18
+ * that no location information is available
19
+ *
20
+ * @since 1.3
21
+ */
22
+ public final static JsonLocation NA = new JsonLocation("N/A", -1L, -1L, -1, -1);
23
+
24
+ final long _totalBytes;
25
+ final long _totalChars;
26
+
27
+ final int _lineNr;
28
+ final int _columnNr;
29
+
30
+ /**
31
+ * Displayable description for input source: file path, url
32
+ */
33
+ final Object _sourceRef;
34
+
35
+ public JsonLocation(Object srcRef, long totalChars, int lineNr, int colNr)
36
+ {
37
+ /* Unfortunately, none of legal encodings are straight single-byte
38
+ * encodings. Could determine offset for UTF-16/UTF-32, but the
39
+ * most important one is UTF-8...
40
+ * so for now, we'll just not report any real byte count
41
+ */
42
+ this(srcRef, -1L, totalChars, lineNr, colNr);
43
+ }
44
+
45
+ @JsonCreator
46
+ public JsonLocation(@JsonProperty("sourceRef") Object sourceRef,
47
+ @JsonProperty("byteOffset") long totalBytes,
48
+ @JsonProperty("charOffset") long totalChars,
49
+ @JsonProperty("lineNr") int lineNr,
50
+ @JsonProperty("columnNr") int columnNr)
51
+ {
52
+ _sourceRef = sourceRef;
53
+ _totalBytes = totalBytes;
54
+ _totalChars = totalChars;
55
+ _lineNr = lineNr;
56
+ _columnNr = columnNr;
57
+ }
58
+
59
+ /**
60
+ * Reference to the original resource being read, if one available.
61
+ * For example, when a parser has been constructed by passing
62
+ * a {@link java.io.File} instance, this method would return
63
+ * that File. Will return null if no such reference is available,
64
+ * for example when {@link java.io.InputStream} was used to
65
+ * construct the parser instance.
66
+ */
67
+ public Object getSourceRef() { return _sourceRef; }
68
+
69
+ /**
70
+ * @return Line number of the location (1-based)
71
+ */
72
+ public int getLineNr() { return _lineNr; }
73
+
74
+ /**
75
+ * @return Column number of the location (1-based)
76
+ */
77
+ public int getColumnNr() { return _columnNr; }
78
+
79
+ /**
80
+ * @return Character offset within underlying stream, reader or writer,
81
+ * if available; -1 if not.
82
+ */
83
+ public long getCharOffset() { return _totalChars; }
84
+
85
+ /**
86
+ * @return Byte offset within underlying stream, reader or writer,
87
+ * if available; -1 if not.
88
+ */
89
+ public long getByteOffset()
90
+ {
91
+ return _totalBytes;
92
+ }
93
+
94
+ @Override
95
+ public String toString()
96
+ {
97
+ StringBuilder sb = new StringBuilder(80);
98
+ sb.append("[Source: ");
99
+ if (_sourceRef == null) {
100
+ sb.append("UNKNOWN");
101
+ } else {
102
+ sb.append(_sourceRef.toString());
103
+ }
104
+ sb.append("; line: ");
105
+ sb.append(_lineNr);
106
+ sb.append(", column: ");
107
+ sb.append(_columnNr);
108
+ sb.append(']');
109
+ return sb.toString();
110
+ }
111
+
112
+ @Override
113
+ public int hashCode()
114
+ {
115
+ int hash = (_sourceRef == null) ? 1 : _sourceRef.hashCode();
116
+ hash ^= _lineNr;
117
+ hash += _columnNr;
118
+ hash ^= (int) _totalChars;
119
+ hash += (int) _totalBytes;
120
+ return hash;
121
+ }
122
+
123
+ @Override
124
+ public boolean equals(Object other)
125
+ {
126
+ if (other == this) return true;
127
+ if (other == null) return false;
128
+ if (!(other instanceof JsonLocation)) return false;
129
+ JsonLocation otherLoc = (JsonLocation) other;
130
+
131
+ if (_sourceRef == null) {
132
+ if (otherLoc._sourceRef != null) return false;
133
+ } else if (!_sourceRef.equals(otherLoc._sourceRef)) return false;
134
+
135
+ return (_lineNr == otherLoc._lineNr)
136
+ && (_columnNr == otherLoc._columnNr)
137
+ && (_totalChars == otherLoc._totalChars)
138
+ && (getByteOffset() == otherLoc.getByteOffset())
139
+ ;
140
+ }
141
+ }
@@ -0,0 +1,879 @@
1
+ package sh.calaba.org.codehaus.jackson;
2
+
3
+ import java.io.IOException;
4
+ import java.math.BigDecimal;
5
+ import java.math.BigInteger;
6
+ import java.util.*;
7
+
8
+ /**
9
+ * Base class for all JSON nodes, which form the basis of JSON
10
+ * Tree Model that Jackson implements.
11
+ * One way to think of these nodes is to consider them
12
+ * similar to DOM nodes in XML DOM trees.
13
+ *<p>
14
+ * As a general design rule, most accessors ("getters") are included
15
+ * in this base class, to allow for traversing structure without
16
+ * type casts. Most mutators, however, need to be accessed through
17
+ * specific sub-classes (such as <code>sh.calaba.org.codehaus.jackson.node.ObjectNode</code>
18
+ * and <code>sh.calaba.org.codehaus.jackson.node.ArrayNode</code>).
19
+ * This seems sensible because proper type
20
+ * information is generally available when building or modifying
21
+ * trees, but less often when reading a tree (newly built from
22
+ * parsed JSON content).
23
+ *<p>
24
+ * Actual concrete sub-classes can be found from package
25
+ * {@link sh.calaba.org.codehaus.jackson.node}, which is in 'mapper' jar
26
+ * (whereas this class is in 'core' jar, since it is declared as
27
+ * nominal type for operations in {@link ObjectCodec})
28
+ */
29
+ public abstract class JsonNode
30
+ implements Iterable<JsonNode>
31
+ {
32
+ protected final static List<JsonNode> NO_NODES = Collections.emptyList();
33
+ protected final static List<String> NO_STRINGS = Collections.emptyList();
34
+
35
+ protected JsonNode() { }
36
+
37
+ /*
38
+ /**********************************************************
39
+ /* Public API, type introspection
40
+ /**********************************************************
41
+ */
42
+
43
+ // // First high-level division between values, containers and "missing"
44
+
45
+ /**
46
+ * Method that returns true for all value nodes: ones that
47
+ * are not containers, and that do not represent "missing" nodes
48
+ * in the path. Such value nodes represent String, Number, Boolean
49
+ * and null values from JSON.
50
+ *<p>
51
+ * Note: one and only one of methods {@link #isValueNode},
52
+ * {@link #isContainerNode} and {@link #isMissingNode} ever
53
+ * returns true for any given node.
54
+ */
55
+ public boolean isValueNode() { return false; }
56
+
57
+ /**
58
+ * Method that returns true for container nodes: Arrays and Objects.
59
+ *<p>
60
+ * Note: one and only one of methods {@link #isValueNode},
61
+ * {@link #isContainerNode} and {@link #isMissingNode} ever
62
+ * returns true for any given node.
63
+ */
64
+ public boolean isContainerNode() { return false; }
65
+
66
+ /**
67
+ * Method that returns true for "virtual" nodes which represent
68
+ * missing entries constructed by path accessor methods when
69
+ * there is no actual node matching given criteria.
70
+ *<p>
71
+ * Note: one and only one of methods {@link #isValueNode},
72
+ * {@link #isContainerNode} and {@link #isMissingNode} ever
73
+ * returns true for any given node.
74
+ */
75
+ public boolean isMissingNode() { return false; }
76
+
77
+ // // Then more specific type introspection
78
+ // // (along with defaults to be overridden)
79
+
80
+ /**
81
+ * @return True if this node represents Json Array
82
+ */
83
+ public boolean isArray() { return false; }
84
+
85
+ /**
86
+ * @return True if this node represents Json Object
87
+ */
88
+ public boolean isObject() { return false; }
89
+
90
+ /**
91
+ * Method that can be used to check if the node is a wrapper
92
+ * for a POJO ("Plain Old Java Object" aka "bean".
93
+ * Returns true only for
94
+ * instances of {@link sh.calaba.org.codehaus.jackson.node.POJONode}.
95
+ *
96
+ * @return True if this node wraps a POJO
97
+ */
98
+ public boolean isPojo() { return false; }
99
+
100
+ /**
101
+ * @return True if this node represents a numeric Json
102
+ * value
103
+ */
104
+ public boolean isNumber() { return false; }
105
+
106
+ /**
107
+ * @return True if this node represents an integral (integer)
108
+ * numeric Json value
109
+ */
110
+ public boolean isIntegralNumber() { return false; }
111
+
112
+ /**
113
+ * @return True if this node represents a non-integral
114
+ * numeric Json value
115
+ */
116
+ public boolean isFloatingPointNumber() { return false; }
117
+
118
+ /**
119
+ * @return True if this node represents an integral
120
+ * numeric Json value that withs in Java int value space
121
+ */
122
+ public boolean isInt() { return false; }
123
+
124
+ /**
125
+ * @return True if this node represents an integral
126
+ * numeric Json value that fits in Java long value space
127
+ * (but not int value space, i.e. {@link #isInt} returns false)
128
+ */
129
+ public boolean isLong() { return false; }
130
+
131
+ public boolean isDouble() { return false; }
132
+ public boolean isBigDecimal() { return false; }
133
+ public boolean isBigInteger() { return false; }
134
+
135
+ public boolean isTextual() { return false; }
136
+
137
+ /**
138
+ * Method that can be used to check if this node was created from
139
+ * Json boolean value (literals "true" and "false").
140
+ */
141
+ public boolean isBoolean() { return false; }
142
+
143
+ /**
144
+ * Method that can be used to check if this node was created from
145
+ * Json liternal null value.
146
+ */
147
+ public boolean isNull() { return false; }
148
+
149
+ /**
150
+ * Method that can be used to check if this node represents
151
+ * binary data (Base64 encoded). Although this will be externally
152
+ * written as Json String value, {@link #isTextual} will
153
+ * return false if this method returns true.
154
+ *
155
+ * @return True if this node represents base64 encoded binary data
156
+ */
157
+ public boolean isBinary() { return false; }
158
+
159
+ /**
160
+ * Method that can be used for efficient type detection
161
+ * when using stream abstraction for traversing nodes.
162
+ * Will return the first {@link JsonToken} that equivalent
163
+ * stream event would produce (for most nodes there is just
164
+ * one token but for structured/container types multiple)
165
+ *
166
+ * @since 1.3
167
+ */
168
+ public abstract JsonToken asToken();
169
+
170
+ /**
171
+ * If this node is a numeric type (as per {@link #isNumber}),
172
+ * returns native type that node uses to store the numeric
173
+ * value.
174
+ */
175
+ public abstract JsonParser.NumberType getNumberType();
176
+
177
+ /*
178
+ /**********************************************************
179
+ /* Public API, straight value access
180
+ /**********************************************************
181
+ */
182
+
183
+ /**
184
+ * Method to use for accessing String values.
185
+ * Does <b>NOT</b> do any conversions for non-String value nodes;
186
+ * for non-String values (ones for which {@link #isTextual} returns
187
+ * false) null will be returned.
188
+ * For String values, null is never returned (but empty Strings may be)
189
+ *
190
+ * @return Textual value this node contains, iff it is a textual
191
+ * json node (comes from Json String value entry)
192
+ */
193
+ public String getTextValue() { return null; }
194
+
195
+ /**
196
+ * Method to use for accessing binary content of binary nodes (nodes
197
+ * for which {@link #isBinary} returns true); or for Text Nodes
198
+ * (ones for which {@link #getTextValue} returns non-null value),
199
+ * to read decoded base64 data.
200
+ * For other types of nodes, returns null.
201
+ *
202
+ * @return Binary data this node contains, iff it is a binary
203
+ * node; null otherwise
204
+ */
205
+ public byte[] getBinaryValue() throws IOException
206
+ {
207
+ return null;
208
+ }
209
+
210
+ /**
211
+ * Method to use for accessing JSON boolean values (value
212
+ * literals 'true' and 'false').
213
+ * For other types, always returns false.
214
+ *
215
+ * @return Textual value this node contains, iff it is a textual
216
+ * json node (comes from Json String value entry)
217
+ */
218
+ public boolean getBooleanValue() { return false; }
219
+
220
+ /**
221
+ * Returns numeric value for this node, <b>if and only if</b>
222
+ * this node is numeric ({@link #isNumber} returns true); otherwise
223
+ * returns null
224
+ *
225
+ * @return Number value this node contains, if any (null for non-number
226
+ * nodes).
227
+ */
228
+ public Number getNumberValue() { return null; }
229
+
230
+ /**
231
+ * Returns integer value for this node, <b>if and only if</b>
232
+ * this node is numeric ({@link #isNumber} returns true). For other
233
+ * types returns 0.
234
+ * For floating-point numbers, value is truncated using default
235
+ * Java coercion, similar to how cast from double to int operates.
236
+ *
237
+ * @return Integer value this node contains, if any; 0 for non-number
238
+ * nodes.
239
+ */
240
+ public int getIntValue() { return 0; }
241
+
242
+ public long getLongValue() { return 0L; }
243
+ public double getDoubleValue() { return 0.0; }
244
+ public BigDecimal getDecimalValue() { return BigDecimal.ZERO; }
245
+ public BigInteger getBigIntegerValue() { return BigInteger.ZERO; }
246
+
247
+ /**
248
+ * Method for accessing value of the specified element of
249
+ * an array node. For other nodes, null is always returned.
250
+ *<p>
251
+ * For array nodes, index specifies
252
+ * exact location within array and allows for efficient iteration
253
+ * over child elements (underlying storage is guaranteed to
254
+ * be efficiently indexable, i.e. has random-access to elements).
255
+ * If index is less than 0, or equal-or-greater than
256
+ * <code>node.size()</code>, null is returned; no exception is
257
+ * thrown for any index.
258
+ *
259
+ * @return Node that represent value of the specified element,
260
+ * if this node is an array and has specified element.
261
+ * Null otherwise.
262
+ */
263
+ public JsonNode get(int index) { return null; }
264
+
265
+ /**
266
+ * Method for accessing value of the specified field of
267
+ * an object node. If this node is not an object (or it
268
+ * does not have a value for specified field name), or
269
+ * if there is no field with such name, null is returned.
270
+ *
271
+ * @return Node that represent value of the specified field,
272
+ * if this node is an object and has value for the specified
273
+ * field. Null otherwise.
274
+ */
275
+ public JsonNode get(String fieldName) { return null; }
276
+
277
+ /*
278
+ /**********************************************************
279
+ /* Public API, value access with conversion(s)/coercion(s)
280
+ /**********************************************************
281
+ */
282
+
283
+ /**
284
+ * Method that will return valid String representation of
285
+ * the container value, if the node is a value node
286
+ * (method {@link #isValueNode} returns true), otherwise
287
+ * empty String.
288
+ *
289
+ * @since 1.9 (replaces <code>getValueAsText</code>)
290
+ */
291
+ public abstract String asText();
292
+
293
+ /**
294
+ * Method that will try to convert value of this node to a Java <b>int</b>.
295
+ * Numbers are coerced using default Java rules; booleans convert to 0 (false)
296
+ * and 1 (true), and Strings are parsed using default Java language integer
297
+ * parsing rules.
298
+ *<p>
299
+ * If representation can not be converted to an int (including structured types
300
+ * like Objects and Arrays),
301
+ * default value of <b>0</b> will be returned; no exceptions are thrown.
302
+ *
303
+ * @since 1.9 (replaces <code>getValueAsInt</code>)
304
+ */
305
+ public int asInt() {
306
+ return asInt(0);
307
+ }
308
+
309
+ /**
310
+ * Method that will try to convert value of this node to a Java <b>int</b>.
311
+ * Numbers are coerced using default Java rules; booleans convert to 0 (false)
312
+ * and 1 (true), and Strings are parsed using default Java language integer
313
+ * parsing rules.
314
+ *<p>
315
+ * If representation can not be converted to an int (including structured types
316
+ * like Objects and Arrays),
317
+ * specified <b>defaultValue</b> will be returned; no exceptions are thrown.
318
+ *
319
+ * @since 1.9 (replaces <code>getValueAsInt</code>)
320
+ */
321
+ public int asInt(int defaultValue) {
322
+ return defaultValue;
323
+ }
324
+
325
+ /**
326
+ * Method that will try to convert value of this node to a Java <b>long</b>.
327
+ * Numbers are coerced using default Java rules; booleans convert to 0 (false)
328
+ * and 1 (true), and Strings are parsed using default Java language integer
329
+ * parsing rules.
330
+ *<p>
331
+ * If representation can not be converted to an long (including structured types
332
+ * like Objects and Arrays),
333
+ * default value of <b>0</b> will be returned; no exceptions are thrown.
334
+ *
335
+ * @since 1.9 (replaces <code>getValueAsLong</code>)
336
+ */
337
+ public long asLong() {
338
+ return asLong(0L);
339
+ }
340
+
341
+ /**
342
+ * Method that will try to convert value of this node to a Java <b>long</b>.
343
+ * Numbers are coerced using default Java rules; booleans convert to 0 (false)
344
+ * and 1 (true), and Strings are parsed using default Java language integer
345
+ * parsing rules.
346
+ *<p>
347
+ * If representation can not be converted to an long (including structured types
348
+ * like Objects and Arrays),
349
+ * specified <b>defaultValue</b> will be returned; no exceptions are thrown.
350
+ *
351
+ * @since 1.9 (replaces <code>getValueAsLong</code>)
352
+ */
353
+ public long asLong(long defaultValue) {
354
+ return defaultValue;
355
+ }
356
+
357
+ /**
358
+ * Method that will try to convert value of this node to a Java <b>double</b>.
359
+ * Numbers are coerced using default Java rules; booleans convert to 0.0 (false)
360
+ * and 1.0 (true), and Strings are parsed using default Java language integer
361
+ * parsing rules.
362
+ *<p>
363
+ * If representation can not be converted to an int (including structured types
364
+ * like Objects and Arrays),
365
+ * default value of <b>0.0</b> will be returned; no exceptions are thrown.
366
+ *
367
+ * @since 1.9 (replaces <code>getValueAsDouble</code>)
368
+ */
369
+ public double asDouble() {
370
+ return asDouble(0.0);
371
+ }
372
+
373
+ /**
374
+ * Method that will try to convert value of this node to a Java <b>double</b>.
375
+ * Numbers are coerced using default Java rules; booleans convert to 0.0 (false)
376
+ * and 1.0 (true), and Strings are parsed using default Java language integer
377
+ * parsing rules.
378
+ *<p>
379
+ * If representation can not be converted to an int (including structured types
380
+ * like Objects and Arrays),
381
+ * specified <b>defaultValue</b> will be returned; no exceptions are thrown.
382
+ *
383
+ * @since 1.9 (replaces <code>getValueAsLong</code>)
384
+ */
385
+ public double asDouble(double defaultValue) {
386
+ return defaultValue;
387
+ }
388
+
389
+ /**
390
+ * Method that will try to convert value of this node to a Java <b>boolean</b>.
391
+ * JSON booleans map naturally; integer numbers other than 0 map to true, and
392
+ * 0 maps to false
393
+ * and Strings 'true' and 'false' map to corresponding values.
394
+ *<p>
395
+ * If representation can not be converted to a boolean value (including structured types
396
+ * like Objects and Arrays),
397
+ * default value of <b>false</b> will be returned; no exceptions are thrown.
398
+ *
399
+ * @since 1.9 (replaces <code>getValueAsBoolean</code>)
400
+ */
401
+ public boolean asBoolean() {
402
+ return asBoolean(false);
403
+ }
404
+
405
+ /**
406
+ * Method that will try to convert value of this node to a Java <b>boolean</b>.
407
+ * JSON booleans map naturally; integer numbers other than 0 map to true, and
408
+ * 0 maps to false
409
+ * and Strings 'true' and 'false' map to corresponding values.
410
+ *<p>
411
+ * If representation can not be converted to a boolean value (including structured types
412
+ * like Objects and Arrays),
413
+ * specified <b>defaultValue</b> will be returned; no exceptions are thrown.
414
+ *
415
+ * @since 1.9 (replaces <code>getValueAsBoolean</code>)
416
+ */
417
+ public boolean asBoolean(boolean defaultValue) {
418
+ return defaultValue;
419
+ }
420
+
421
+ /*
422
+ /**********************************************************
423
+ /* Public API, value access with conversion(s)/coercion(s)
424
+ /**********************************************************
425
+ */
426
+
427
+ /**
428
+ * Method that will return valid String representation of
429
+ * the container value, if the node is a value node
430
+ * (method {@link #isValueNode} returns true), otherwise null.
431
+ *<p>
432
+ * Note: to serialize nodes of any type, you should call
433
+ * {@link #toString} instead.
434
+ *
435
+ * @deprecated Since 1.9, use {@link #asText} instead
436
+ */
437
+ @Deprecated
438
+ public String getValueAsText() { return asText(); }
439
+
440
+ /**
441
+ * Method that will try to convert value of this node to a Java <b>int</b>.
442
+ * Numbers are coerced using default Java rules; booleans convert to 0 (false)
443
+ * and 1 (true), and Strings are parsed using default Java language integer
444
+ * parsing rules.
445
+ *<p>
446
+ * If representation can not be converted to an int (including structured types
447
+ * like Objects and Arrays),
448
+ * default value of <b>0</b> will be returned; no exceptions are thrown.
449
+ *
450
+ * @since 1.6
451
+ *
452
+ * @deprecated Since 1.9, use {@link #asInt} instead
453
+ */
454
+ @Deprecated
455
+ public int getValueAsInt() { return asInt(0); }
456
+
457
+ /**
458
+ * Method that will try to convert value of this node to a Java <b>int</b>.
459
+ * Numbers are coerced using default Java rules; booleans convert to 0 (false)
460
+ * and 1 (true), and Strings are parsed using default Java language integer
461
+ * parsing rules.
462
+ *<p>
463
+ * If representation can not be converted to an int (including structured types
464
+ * like Objects and Arrays),
465
+ * specified <b>defaultValue</b> will be returned; no exceptions are thrown.
466
+ *
467
+ * @since 1.6
468
+ *
469
+ * @deprecated Since 1.9, use {@link #asInt} instead
470
+ */
471
+ @Deprecated
472
+ public int getValueAsInt(int defaultValue) { return asInt(defaultValue); }
473
+
474
+ /**
475
+ * Method that will try to convert value of this node to a Java <b>long</b>.
476
+ * Numbers are coerced using default Java rules; booleans convert to 0 (false)
477
+ * and 1 (true), and Strings are parsed using default Java language integer
478
+ * parsing rules.
479
+ *<p>
480
+ * If representation can not be converted to an long (including structured types
481
+ * like Objects and Arrays),
482
+ * default value of <b>0</b> will be returned; no exceptions are thrown.
483
+ *
484
+ * @since 1.6
485
+ *
486
+ * @deprecated Since 1.9, use {@link #asLong} instead
487
+ */
488
+ @Deprecated
489
+ public long getValueAsLong() { return asLong(0L); }
490
+
491
+ /**
492
+ * Method that will try to convert value of this node to a Java <b>long</b>.
493
+ * Numbers are coerced using default Java rules; booleans convert to 0 (false)
494
+ * and 1 (true), and Strings are parsed using default Java language integer
495
+ * parsing rules.
496
+ *<p>
497
+ * If representation can not be converted to an long (including structured types
498
+ * like Objects and Arrays),
499
+ * specified <b>defaultValue</b> will be returned; no exceptions are thrown.
500
+ *
501
+ * @since 1.6
502
+ *
503
+ * @deprecated Since 1.9, use {@link #asLong} instead
504
+ */
505
+ @Deprecated
506
+ public long getValueAsLong(long defaultValue) { return asLong(defaultValue); }
507
+
508
+ /**
509
+ * Method that will try to convert value of this node to a Java <b>double</b>.
510
+ * Numbers are coerced using default Java rules; booleans convert to 0.0 (false)
511
+ * and 1.0 (true), and Strings are parsed using default Java language integer
512
+ * parsing rules.
513
+ *<p>
514
+ * If representation can not be converted to an int (including structured types
515
+ * like Objects and Arrays),
516
+ * default value of <b>0.0</b> will be returned; no exceptions are thrown.
517
+ *
518
+ * @since 1.6
519
+ *
520
+ * @deprecated Since 1.9, use {@link #asDouble} instead
521
+ */
522
+ @Deprecated
523
+ public double getValueAsDouble() { return asDouble(0.0); }
524
+
525
+ /**
526
+ * Method that will try to convert value of this node to a Java <b>double</b>.
527
+ * Numbers are coerced using default Java rules; booleans convert to 0.0 (false)
528
+ * and 1.0 (true), and Strings are parsed using default Java language integer
529
+ * parsing rules.
530
+ *<p>
531
+ * If representation can not be converted to an int (including structured types
532
+ * like Objects and Arrays),
533
+ * specified <b>defaultValue</b> will be returned; no exceptions are thrown.
534
+ *
535
+ * @since 1.6
536
+ *
537
+ * @deprecated Since 1.9, use {@link #asDouble} instead
538
+ */
539
+ @Deprecated
540
+ public double getValueAsDouble(double defaultValue) { return asDouble(defaultValue); }
541
+
542
+ /**
543
+ * Method that will try to convert value of this node to a Java <b>boolean</b>.
544
+ * JSON booleans map naturally; integer numbers other than 0 map to true, and
545
+ * 0 maps to false
546
+ * and Strings 'true' and 'false' map to corresponding values.
547
+ *<p>
548
+ * If representation can not be converted to a boolean value (including structured types
549
+ * like Objects and Arrays),
550
+ * default value of <b>false</b> will be returned; no exceptions are thrown.
551
+ *
552
+ * @since 1.7
553
+ *
554
+ * @deprecated Since 1.9, use {@link #asBoolean} instead
555
+ */
556
+ @Deprecated
557
+ public boolean getValueAsBoolean() { return asBoolean(false); }
558
+
559
+ /**
560
+ * Method that will try to convert value of this node to a Java <b>boolean</b>.
561
+ * JSON booleans map naturally; integer numbers other than 0 map to true, and
562
+ * 0 maps to false
563
+ * and Strings 'true' and 'false' map to corresponding values.
564
+ *<p>
565
+ * If representation can not be converted to a boolean value (including structured types
566
+ * like Objects and Arrays),
567
+ * specified <b>defaultValue</b> will be returned; no exceptions are thrown.
568
+ *
569
+ * @since 1.7
570
+ *
571
+ * @deprecated Since 1.9, use {@link #asBoolean} instead
572
+ */
573
+ @Deprecated
574
+ public boolean getValueAsBoolean(boolean defaultValue) { return asBoolean(defaultValue); }
575
+
576
+ /*
577
+ /**********************************************************
578
+ /* Public API, value find / existence check methods
579
+ /**********************************************************
580
+ */
581
+
582
+ /**
583
+ * Method that allows checking whether this node is JSON Object node
584
+ * and contains value for specified property. If this is the case
585
+ * (including properties with explicit null values), returns true;
586
+ * otherwise returns false.
587
+ *<p>
588
+ * This method is equivalent to:
589
+ *<pre>
590
+ * node.get(fieldName) != null
591
+ *</pre>
592
+ * (since return value of get() is node, not value node contains)
593
+ *
594
+ * @param fieldName Name of element to check
595
+ *
596
+ * @return True if this node is a JSON Object node, and has a property
597
+ * entry with specified name (with any value, including null value)
598
+ *
599
+ * @since 1.6
600
+ */
601
+ public boolean has(String fieldName) {
602
+ return get(fieldName) != null;
603
+ }
604
+
605
+ /**
606
+ * Method that allows checking whether this node is JSON Array node
607
+ * and contains a value for specified index
608
+ * If this is the case
609
+ * (including case of specified indexing having null as value), returns true;
610
+ * otherwise returns false.
611
+ *<p>
612
+ * Note: array element indexes are 0-based.
613
+ *<p>
614
+ * This method is equivalent to:
615
+ *<pre>
616
+ * node.get(index) != null
617
+ *</pre>
618
+ *
619
+ * @param index Index to check
620
+ *
621
+ * @return True if this node is a JSON Object node, and has a property
622
+ * entry with specified name (with any value, including null value)
623
+ *
624
+ * @since 1.6
625
+ */
626
+ public boolean has(int index) {
627
+ return get(index) != null;
628
+ }
629
+
630
+ /**
631
+ * Method for finding a JSON Object field with specified name in this
632
+ * node or its child nodes, and returning value it has.
633
+ * If no matching field is found in this node or its descendants, returns null.
634
+ *
635
+ * @param fieldName Name of field to look for
636
+ *
637
+ * @return Value of first matching node found, if any; null if none
638
+ *
639
+ * @since 1.6
640
+ */
641
+ public abstract JsonNode findValue(String fieldName);
642
+
643
+ /**
644
+ * Method for finding JSON Object fields with specified name, and returning
645
+ * found ones as a List. Note that sub-tree search ends if a field is found,
646
+ * so possible children of result nodes are <b>not</b> included.
647
+ * If no matching fields are found in this node or its descendants, returns
648
+ * an empty List.
649
+ *
650
+ * @param fieldName Name of field to look for
651
+ *
652
+ * @since 1.6
653
+ */
654
+ public final List<JsonNode> findValues(String fieldName)
655
+ {
656
+ List<JsonNode> result = findValues(fieldName, null);
657
+ if (result == null) {
658
+ return Collections.emptyList();
659
+ }
660
+ return result;
661
+ }
662
+
663
+ /**
664
+ * Similar to {@link #findValues}, but will additionally convert
665
+ * values into Strings, calling {@link #getValueAsText}.
666
+ *
667
+ * @since 1.6
668
+ */
669
+ public final List<String> findValuesAsText(String fieldName)
670
+ {
671
+ List<String> result = findValuesAsText(fieldName, null);
672
+ if (result == null) {
673
+ return Collections.emptyList();
674
+ }
675
+ return result;
676
+ }
677
+
678
+ /**
679
+ * Method similar to {@link #findValue}, but that will return a
680
+ * "missing node" instead of null if no field is found. Missing node
681
+ * is a specific kind of node for which {@link #isMissingNode}
682
+ * returns true; and all value access methods return empty or
683
+ * missing value.
684
+ *
685
+ * @param fieldName Name of field to look for
686
+ *
687
+ * @return Value of first matching node found; or if not found, a
688
+ * "missing node" (non-null instance that has no value)
689
+ *
690
+ * @since 1.6
691
+ */
692
+ public abstract JsonNode findPath(String fieldName);
693
+
694
+ /**
695
+ * Method for finding a JSON Object that contains specified field,
696
+ * within this node or its descendants.
697
+ * If no matching field is found in this node or its descendants, returns null.
698
+ *
699
+ * @param fieldName Name of field to look for
700
+ *
701
+ * @return Value of first matching node found, if any; null if none
702
+ *
703
+ * @since 1.6
704
+ */
705
+ public abstract JsonNode findParent(String fieldName);
706
+
707
+ /**
708
+ * Method for finding a JSON Object that contains specified field,
709
+ * within this node or its descendants.
710
+ * If no matching field is found in this node or its descendants, returns null.
711
+ *
712
+ * @param fieldName Name of field to look for
713
+ *
714
+ * @return Value of first matching node found, if any; null if none
715
+ *
716
+ * @since 1.6
717
+ */
718
+ public final List<JsonNode> findParents(String fieldName)
719
+ {
720
+ List<JsonNode> result = findParents(fieldName, null);
721
+ if (result == null) {
722
+ return Collections.emptyList();
723
+ }
724
+ return result;
725
+ }
726
+
727
+ public abstract List<JsonNode> findValues(String fieldName, List<JsonNode> foundSoFar);
728
+ public abstract List<String> findValuesAsText(String fieldName, List<String> foundSoFar);
729
+ public abstract List<JsonNode> findParents(String fieldName, List<JsonNode> foundSoFar);
730
+
731
+ /*
732
+ /**********************************************************
733
+ /* Public API, container access
734
+ /**********************************************************
735
+ */
736
+
737
+ /**
738
+ * Method that returns number of child nodes this node contains:
739
+ * for Array nodes, number of child elements, for Object nodes,
740
+ * number of fields, and for all other nodes 0.
741
+ *
742
+ * @return For non-container nodes returns 0; for arrays number of
743
+ * contained elements, and for objects number of fields.
744
+ */
745
+ public int size() { return 0; }
746
+
747
+ /**
748
+ * Same as calling {@link #getElements}; implemented so that
749
+ * convenience "for-each" loop can be used for looping over elements
750
+ * of JSON Array constructs.
751
+ */
752
+ @Override
753
+ public final Iterator<JsonNode> iterator() { return getElements(); }
754
+
755
+ /**
756
+ * Method for accessing all value nodes of this Node, iff
757
+ * this node is a JSON Array or Object node. In case of Object node,
758
+ * field names (keys) are not included, only values.
759
+ * For other types of nodes, returns empty iterator.
760
+ */
761
+ public Iterator<JsonNode> getElements() { return NO_NODES.iterator(); }
762
+
763
+ /**
764
+ * Method for accessing names of all fields for this Node, iff
765
+ * this node is a JSON Object node.
766
+ */
767
+ public Iterator<String> getFieldNames() { return NO_STRINGS.iterator(); }
768
+
769
+ /**
770
+ * @return Iterator that can be used to traverse all key/value pairs for
771
+ * object nodes; empty iterator (no contents) for other types
772
+ *
773
+ * @since 1.8 (although existed in ObjectNode since 1.0 or so)
774
+ */
775
+ public Iterator<Map.Entry<String, JsonNode>> getFields() {
776
+ Collection<Map.Entry<String, JsonNode>> coll = Collections.emptyList();
777
+ return coll.iterator();
778
+ }
779
+
780
+ /*
781
+ /**********************************************************
782
+ /* Public API, path handling
783
+ /**********************************************************
784
+ */
785
+
786
+ /**
787
+ * This method is similar to {@link #get(String)}, except
788
+ * that instead of returning null if no such value exists (due
789
+ * to this node not being an object, or object not having value
790
+ * for the specified field),
791
+ * a "missing node" (node that returns true for
792
+ * {@link #isMissingNode}) will be returned. This allows for
793
+ * convenient and safe chained access via path calls.
794
+ */
795
+ public abstract JsonNode path(String fieldName);
796
+
797
+ /**
798
+ * Alias of {@link #path(String)}.
799
+ *
800
+ * @deprecated Use {@link #path(String)} instead
801
+ */
802
+ @Deprecated
803
+ public final JsonNode getPath(String fieldName) { return path(fieldName); }
804
+
805
+ /**
806
+ * This method is similar to {@link #get(int)}, except
807
+ * that instead of returning null if no such element exists (due
808
+ * to index being out of range, or this node not being an array),
809
+ * a "missing node" (node that returns true for
810
+ * {@link #isMissingNode}) will be returned. This allows for
811
+ * convenient and safe chained access via path calls.
812
+ */
813
+ public abstract JsonNode path(int index);
814
+
815
+ /**
816
+ * Alias of {@link #path(int)}.
817
+ *
818
+ * @deprecated Use {@link #path(int)} instead
819
+ */
820
+ @Deprecated
821
+ public final JsonNode getPath(int index) { return path(index); }
822
+
823
+ /**
824
+ * Method that can be called on object nodes, to access a property
825
+ * that has object value; or if no such property exists, to create and
826
+ * return such object node.
827
+ * If node method is called on is not Object node,
828
+ * or if property exists and has value that is not object node,
829
+ * {@link UnsupportedOperationException} is thrown
830
+ *
831
+ * @since 1.8
832
+ */
833
+ public JsonNode with(String propertyName) {
834
+ throw new UnsupportedOperationException("JsonNode not of type ObjectNode (but "
835
+ +getClass().getName()+"), can not call with() on it");
836
+ }
837
+
838
+ /*
839
+ /**********************************************************
840
+ /* Public API: converting to/from Streaming API
841
+ /**********************************************************
842
+ */
843
+
844
+ /**
845
+ * Method for constructing a {@link JsonParser} instance for
846
+ * iterating over contents of the tree that this
847
+ * node is root of.
848
+ * Functionally equivalent to first serializing tree using
849
+ * {@link ObjectCodec} and then re-parsing but
850
+ * more efficient.
851
+ */
852
+ public abstract JsonParser traverse();
853
+
854
+ /*
855
+ /**********************************************************
856
+ /* Overridden standard methods
857
+ /**********************************************************
858
+ */
859
+
860
+ /**
861
+ *<p>
862
+ * Note: marked as abstract to ensure all implementation
863
+ * classes define it properly.
864
+ */
865
+ @Override
866
+ public abstract String toString();
867
+
868
+ /**
869
+ * Equality for node objects is defined as full (deep) value
870
+ * equality. This means that it is possible to compare complete
871
+ * JSON trees for equality by comparing equality of root nodes.
872
+ *<p>
873
+ * Note: marked as abstract to ensure all implementation
874
+ * classes define it properly and not rely on definition
875
+ * from {@link java.lang.Object}.
876
+ */
877
+ @Override
878
+ public abstract boolean equals(Object o);
879
+ }