calabash-android 0.0.1

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