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