calabash-android 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -0,0 +1,38 @@
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.deser.std;
|
2
|
+
|
3
|
+
import java.io.IOException;
|
4
|
+
|
5
|
+
import sh.calaba.org.codehaus.jackson.JsonParser;
|
6
|
+
import sh.calaba.org.codehaus.jackson.JsonProcessingException;
|
7
|
+
import sh.calaba.org.codehaus.jackson.JsonToken;
|
8
|
+
import sh.calaba.org.codehaus.jackson.map.DeserializationContext;
|
9
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
10
|
+
|
11
|
+
/**
|
12
|
+
* @since 1.9
|
13
|
+
*/
|
14
|
+
public class JavaTypeDeserializer
|
15
|
+
extends StdScalarDeserializer<JavaType>
|
16
|
+
{
|
17
|
+
public JavaTypeDeserializer() { super(JavaType.class); }
|
18
|
+
|
19
|
+
@Override
|
20
|
+
public JavaType deserialize(JsonParser jp, DeserializationContext ctxt)
|
21
|
+
throws IOException, JsonProcessingException
|
22
|
+
{
|
23
|
+
JsonToken curr = jp.getCurrentToken();
|
24
|
+
// Usually should just get string value:
|
25
|
+
if (curr == JsonToken.VALUE_STRING) {
|
26
|
+
String str = jp.getText().trim();
|
27
|
+
if (str.length() == 0) {
|
28
|
+
return getEmptyValue();
|
29
|
+
}
|
30
|
+
return ctxt.getTypeFactory().constructFromCanonical(str);
|
31
|
+
}
|
32
|
+
// or occasionally just embedded object maybe
|
33
|
+
if (curr == JsonToken.VALUE_EMBEDDED_OBJECT) {
|
34
|
+
return (JavaType) jp.getEmbeddedObject();
|
35
|
+
}
|
36
|
+
throw ctxt.mappingException(_valueClass);
|
37
|
+
}
|
38
|
+
}
|
@@ -0,0 +1,314 @@
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.deser.std;
|
2
|
+
|
3
|
+
import java.io.IOException;
|
4
|
+
|
5
|
+
import sh.calaba.org.codehaus.jackson.*;
|
6
|
+
import sh.calaba.org.codehaus.jackson.map.*;
|
7
|
+
import sh.calaba.org.codehaus.jackson.node.*;
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Deserializer that can build instances of {@link JsonNode} from any
|
11
|
+
* JSON content, using appropriate {@link JsonNode} type.
|
12
|
+
*
|
13
|
+
* @since 1.9 (moved from higher-level package)
|
14
|
+
*/
|
15
|
+
public class JsonNodeDeserializer
|
16
|
+
extends BaseNodeDeserializer<JsonNode>
|
17
|
+
{
|
18
|
+
/**
|
19
|
+
* Singleton instance of generic deserializer for {@link JsonNode}.
|
20
|
+
* Only used for types other than JSON Object and Array.
|
21
|
+
*/
|
22
|
+
private final static JsonNodeDeserializer instance = new JsonNodeDeserializer();
|
23
|
+
|
24
|
+
protected JsonNodeDeserializer() { super(JsonNode.class); }
|
25
|
+
|
26
|
+
/**
|
27
|
+
* Factory method for accessing deserializer for specific node type
|
28
|
+
*/
|
29
|
+
public static JsonDeserializer<? extends JsonNode> getDeserializer(Class<?> nodeClass)
|
30
|
+
{
|
31
|
+
if (nodeClass == ObjectNode.class) {
|
32
|
+
return ObjectDeserializer.getInstance();
|
33
|
+
}
|
34
|
+
if (nodeClass == ArrayNode.class) {
|
35
|
+
return ArrayDeserializer.getInstance();
|
36
|
+
}
|
37
|
+
// For others, generic one works fine
|
38
|
+
return instance;
|
39
|
+
}
|
40
|
+
|
41
|
+
/*
|
42
|
+
/**********************************************************
|
43
|
+
/* Actual deserializer implementations
|
44
|
+
/**********************************************************
|
45
|
+
*/
|
46
|
+
|
47
|
+
/**
|
48
|
+
* Implementation that will produce types of any JSON nodes; not just one
|
49
|
+
* deserializer is registered to handle (in case of more specialized handler).
|
50
|
+
* Overridden by typed sub-classes for more thorough checking
|
51
|
+
*/
|
52
|
+
@Override
|
53
|
+
public JsonNode deserialize(JsonParser jp, DeserializationContext ctxt)
|
54
|
+
throws IOException, JsonProcessingException
|
55
|
+
{
|
56
|
+
switch (jp.getCurrentToken()) {
|
57
|
+
case START_OBJECT:
|
58
|
+
return deserializeObject(jp, ctxt, ctxt.getNodeFactory());
|
59
|
+
case START_ARRAY:
|
60
|
+
return deserializeArray(jp, ctxt, ctxt.getNodeFactory());
|
61
|
+
default:
|
62
|
+
return deserializeAny(jp, ctxt, ctxt.getNodeFactory());
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
/*
|
67
|
+
/**********************************************************
|
68
|
+
/* Specific instances for more accurate types
|
69
|
+
/**********************************************************
|
70
|
+
*/
|
71
|
+
|
72
|
+
final static class ObjectDeserializer
|
73
|
+
extends BaseNodeDeserializer<ObjectNode>
|
74
|
+
{
|
75
|
+
protected final static ObjectDeserializer _instance = new ObjectDeserializer();
|
76
|
+
|
77
|
+
protected ObjectDeserializer() {
|
78
|
+
super(ObjectNode.class);
|
79
|
+
}
|
80
|
+
|
81
|
+
public static ObjectDeserializer getInstance() { return _instance; }
|
82
|
+
|
83
|
+
@Override
|
84
|
+
public ObjectNode deserialize(JsonParser jp, DeserializationContext ctxt)
|
85
|
+
throws IOException, JsonProcessingException
|
86
|
+
{
|
87
|
+
if (jp.getCurrentToken() == JsonToken.START_OBJECT) {
|
88
|
+
jp.nextToken();
|
89
|
+
return deserializeObject(jp, ctxt, ctxt.getNodeFactory());
|
90
|
+
}
|
91
|
+
if (jp.getCurrentToken() == JsonToken.FIELD_NAME) {
|
92
|
+
return deserializeObject(jp, ctxt, ctxt.getNodeFactory());
|
93
|
+
}
|
94
|
+
throw ctxt.mappingException(ObjectNode.class);
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
final static class ArrayDeserializer
|
99
|
+
extends BaseNodeDeserializer<ArrayNode>
|
100
|
+
{
|
101
|
+
protected final static ArrayDeserializer _instance = new ArrayDeserializer();
|
102
|
+
|
103
|
+
protected ArrayDeserializer() {
|
104
|
+
super(ArrayNode.class);
|
105
|
+
}
|
106
|
+
|
107
|
+
public static ArrayDeserializer getInstance() { return _instance; }
|
108
|
+
|
109
|
+
@Override
|
110
|
+
public ArrayNode deserialize(JsonParser jp, DeserializationContext ctxt)
|
111
|
+
throws IOException, JsonProcessingException
|
112
|
+
{
|
113
|
+
if (jp.isExpectedStartArrayToken()) {
|
114
|
+
return deserializeArray(jp, ctxt, ctxt.getNodeFactory());
|
115
|
+
}
|
116
|
+
throw ctxt.mappingException(ArrayNode.class);
|
117
|
+
}
|
118
|
+
}
|
119
|
+
}
|
120
|
+
|
121
|
+
/**
|
122
|
+
* Base class for all actual {@link JsonNode} deserializer
|
123
|
+
* implementations
|
124
|
+
*/
|
125
|
+
abstract class BaseNodeDeserializer<N extends JsonNode>
|
126
|
+
extends StdDeserializer<N>
|
127
|
+
{
|
128
|
+
public BaseNodeDeserializer(Class<N> nodeClass)
|
129
|
+
{
|
130
|
+
super(nodeClass);
|
131
|
+
}
|
132
|
+
|
133
|
+
@Override
|
134
|
+
public Object deserializeWithType(JsonParser jp, DeserializationContext ctxt,
|
135
|
+
TypeDeserializer typeDeserializer)
|
136
|
+
throws IOException, JsonProcessingException
|
137
|
+
{
|
138
|
+
/* Output can be as JSON Object, Array or scalar: no way to know
|
139
|
+
* a priori. So:
|
140
|
+
*/
|
141
|
+
return typeDeserializer.deserializeTypedFromAny(jp, ctxt);
|
142
|
+
}
|
143
|
+
|
144
|
+
/*
|
145
|
+
/**********************************************************
|
146
|
+
/* Overridable methods
|
147
|
+
/**********************************************************
|
148
|
+
*/
|
149
|
+
|
150
|
+
protected void _reportProblem(JsonParser jp, String msg)
|
151
|
+
throws JsonMappingException
|
152
|
+
{
|
153
|
+
throw new JsonMappingException(msg, jp.getTokenLocation());
|
154
|
+
}
|
155
|
+
|
156
|
+
/**
|
157
|
+
* Method called when there is a duplicate value for a field.
|
158
|
+
* By default we don't care, and the last value is used.
|
159
|
+
* Can be overridden to provide alternate handling, such as throwing
|
160
|
+
* an exception, or choosing different strategy for combining values
|
161
|
+
* or choosing which one to keep.
|
162
|
+
*
|
163
|
+
* @param fieldName Name of the field for which duplicate value was found
|
164
|
+
* @param objectNode Object node that contains values
|
165
|
+
* @param oldValue Value that existed for the object node before newValue
|
166
|
+
* was added
|
167
|
+
* @param newValue Newly added value just added to the object node
|
168
|
+
*/
|
169
|
+
protected void _handleDuplicateField(String fieldName, ObjectNode objectNode,
|
170
|
+
JsonNode oldValue, JsonNode newValue)
|
171
|
+
throws JsonProcessingException
|
172
|
+
{
|
173
|
+
// By default, we don't do anything
|
174
|
+
;
|
175
|
+
}
|
176
|
+
|
177
|
+
/*
|
178
|
+
/**********************************************************
|
179
|
+
/* Helper methods
|
180
|
+
/**********************************************************
|
181
|
+
*/
|
182
|
+
|
183
|
+
protected final ObjectNode deserializeObject(JsonParser jp, DeserializationContext ctxt,
|
184
|
+
final JsonNodeFactory nodeFactory)
|
185
|
+
throws IOException, JsonProcessingException
|
186
|
+
{
|
187
|
+
ObjectNode node = nodeFactory.objectNode();
|
188
|
+
JsonToken t = jp.getCurrentToken();
|
189
|
+
if (t == JsonToken.START_OBJECT) {
|
190
|
+
t = jp.nextToken();
|
191
|
+
}
|
192
|
+
for (; t == JsonToken.FIELD_NAME; t = jp.nextToken()) {
|
193
|
+
String fieldName = jp.getCurrentName();
|
194
|
+
JsonNode value;
|
195
|
+
switch (jp.nextToken()) {
|
196
|
+
case START_OBJECT:
|
197
|
+
value = deserializeObject(jp, ctxt, nodeFactory);
|
198
|
+
break;
|
199
|
+
case START_ARRAY:
|
200
|
+
value = deserializeArray(jp, ctxt, nodeFactory);
|
201
|
+
break;
|
202
|
+
case VALUE_STRING:
|
203
|
+
value = nodeFactory.textNode(jp.getText());
|
204
|
+
break;
|
205
|
+
default:
|
206
|
+
value = deserializeAny(jp, ctxt, nodeFactory);
|
207
|
+
}
|
208
|
+
JsonNode old = node.put(fieldName, value);
|
209
|
+
if (old != null) {
|
210
|
+
_handleDuplicateField(fieldName, node, old, value);
|
211
|
+
}
|
212
|
+
}
|
213
|
+
return node;
|
214
|
+
}
|
215
|
+
|
216
|
+
protected final ArrayNode deserializeArray(JsonParser jp, DeserializationContext ctxt,
|
217
|
+
final JsonNodeFactory nodeFactory)
|
218
|
+
throws IOException, JsonProcessingException
|
219
|
+
{
|
220
|
+
ArrayNode node = nodeFactory.arrayNode();
|
221
|
+
while (true) {
|
222
|
+
switch (jp.nextToken()) {
|
223
|
+
case START_OBJECT:
|
224
|
+
node.add(deserializeObject(jp, ctxt, nodeFactory));
|
225
|
+
break;
|
226
|
+
case START_ARRAY:
|
227
|
+
node.add(deserializeArray(jp, ctxt, nodeFactory));
|
228
|
+
break;
|
229
|
+
case END_ARRAY:
|
230
|
+
return node;
|
231
|
+
case VALUE_STRING:
|
232
|
+
node.add(nodeFactory.textNode(jp.getText()));
|
233
|
+
break;
|
234
|
+
default:
|
235
|
+
node.add(deserializeAny(jp, ctxt, nodeFactory));
|
236
|
+
break;
|
237
|
+
}
|
238
|
+
}
|
239
|
+
}
|
240
|
+
|
241
|
+
protected final JsonNode deserializeAny(JsonParser jp, DeserializationContext ctxt,
|
242
|
+
final JsonNodeFactory nodeFactory)
|
243
|
+
throws IOException, JsonProcessingException
|
244
|
+
{
|
245
|
+
switch (jp.getCurrentToken()) {
|
246
|
+
case START_OBJECT:
|
247
|
+
return deserializeObject(jp, ctxt, nodeFactory);
|
248
|
+
|
249
|
+
case START_ARRAY:
|
250
|
+
return deserializeArray(jp, ctxt, nodeFactory);
|
251
|
+
|
252
|
+
case FIELD_NAME:
|
253
|
+
return deserializeObject(jp, ctxt, nodeFactory);
|
254
|
+
|
255
|
+
case VALUE_EMBEDDED_OBJECT:
|
256
|
+
// [JACKSON-796]
|
257
|
+
{
|
258
|
+
Object ob = jp.getEmbeddedObject();
|
259
|
+
if (ob == null) { // should this occur?
|
260
|
+
return nodeFactory.nullNode();
|
261
|
+
}
|
262
|
+
Class<?> type = ob.getClass();
|
263
|
+
if (type == byte[].class) { // most common special case
|
264
|
+
return nodeFactory.binaryNode((byte[]) ob);
|
265
|
+
}
|
266
|
+
// any other special handling needed?
|
267
|
+
return nodeFactory.POJONode(ob);
|
268
|
+
}
|
269
|
+
|
270
|
+
case VALUE_STRING:
|
271
|
+
return nodeFactory.textNode(jp.getText());
|
272
|
+
|
273
|
+
case VALUE_NUMBER_INT:
|
274
|
+
{
|
275
|
+
JsonParser.NumberType nt = jp.getNumberType();
|
276
|
+
if (nt == JsonParser.NumberType.BIG_INTEGER
|
277
|
+
|| ctxt.isEnabled(DeserializationConfig.Feature.USE_BIG_INTEGER_FOR_INTS)) {
|
278
|
+
return nodeFactory.numberNode(jp.getBigIntegerValue());
|
279
|
+
}
|
280
|
+
if (nt == JsonParser.NumberType.INT) {
|
281
|
+
return nodeFactory.numberNode(jp.getIntValue());
|
282
|
+
}
|
283
|
+
return nodeFactory.numberNode(jp.getLongValue());
|
284
|
+
}
|
285
|
+
|
286
|
+
case VALUE_NUMBER_FLOAT:
|
287
|
+
{
|
288
|
+
JsonParser.NumberType nt = jp.getNumberType();
|
289
|
+
if (nt == JsonParser.NumberType.BIG_DECIMAL
|
290
|
+
|| ctxt.isEnabled(DeserializationConfig.Feature.USE_BIG_DECIMAL_FOR_FLOATS)) {
|
291
|
+
return nodeFactory.numberNode(jp.getDecimalValue());
|
292
|
+
}
|
293
|
+
return nodeFactory.numberNode(jp.getDoubleValue());
|
294
|
+
}
|
295
|
+
|
296
|
+
case VALUE_TRUE:
|
297
|
+
return nodeFactory.booleanNode(true);
|
298
|
+
|
299
|
+
case VALUE_FALSE:
|
300
|
+
return nodeFactory.booleanNode(false);
|
301
|
+
|
302
|
+
case VALUE_NULL:
|
303
|
+
return nodeFactory.nullNode();
|
304
|
+
|
305
|
+
// These states can not be mapped; input stream is
|
306
|
+
// off by an event or two
|
307
|
+
|
308
|
+
//case END_OBJECT:
|
309
|
+
//case END_ARRAY:
|
310
|
+
default:
|
311
|
+
throw ctxt.mappingException(getValueClass());
|
312
|
+
}
|
313
|
+
}
|
314
|
+
}
|
@@ -0,0 +1,412 @@
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.deser.std;
|
2
|
+
|
3
|
+
import java.io.IOException;
|
4
|
+
import java.lang.reflect.Constructor;
|
5
|
+
import java.lang.reflect.InvocationTargetException;
|
6
|
+
import java.util.*;
|
7
|
+
|
8
|
+
import sh.calaba.org.codehaus.jackson.JsonParser;
|
9
|
+
import sh.calaba.org.codehaus.jackson.JsonProcessingException;
|
10
|
+
import sh.calaba.org.codehaus.jackson.JsonToken;
|
11
|
+
import sh.calaba.org.codehaus.jackson.map.*;
|
12
|
+
import sh.calaba.org.codehaus.jackson.map.annotate.JacksonStdImpl;
|
13
|
+
import sh.calaba.org.codehaus.jackson.map.deser.SettableBeanProperty;
|
14
|
+
import sh.calaba.org.codehaus.jackson.map.deser.ValueInstantiator;
|
15
|
+
import sh.calaba.org.codehaus.jackson.map.deser.impl.PropertyBasedCreator;
|
16
|
+
import sh.calaba.org.codehaus.jackson.map.deser.impl.PropertyValueBuffer;
|
17
|
+
import sh.calaba.org.codehaus.jackson.map.deser.std.ContainerDeserializerBase;
|
18
|
+
import sh.calaba.org.codehaus.jackson.map.deser.std.StdValueInstantiator;
|
19
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedConstructor;
|
20
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedWithParams;
|
21
|
+
import sh.calaba.org.codehaus.jackson.map.util.ArrayBuilders;
|
22
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Basic serializer that can take Json "Object" structure and
|
26
|
+
* construct a {@link java.util.Map} instance, with typed contents.
|
27
|
+
*<p>
|
28
|
+
* Note: for untyped content (one indicated by passing Object.class
|
29
|
+
* as the type), {@link UntypedObjectDeserializer} is used instead.
|
30
|
+
* It can also construct {@link java.util.Map}s, but not with specific
|
31
|
+
* POJO types, only other containers and primitives/wrappers.
|
32
|
+
*/
|
33
|
+
@JacksonStdImpl
|
34
|
+
public class MapDeserializer
|
35
|
+
extends ContainerDeserializerBase<Map<Object,Object>>
|
36
|
+
implements ResolvableDeserializer
|
37
|
+
{
|
38
|
+
// // Configuration: typing, deserializers
|
39
|
+
|
40
|
+
protected final JavaType _mapType;
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Key deserializer used, if not null. If null, String from JSON
|
44
|
+
* content is used as is.
|
45
|
+
*/
|
46
|
+
protected final KeyDeserializer _keyDeserializer;
|
47
|
+
|
48
|
+
/**
|
49
|
+
* Value deserializer.
|
50
|
+
*/
|
51
|
+
protected final JsonDeserializer<Object> _valueDeserializer;
|
52
|
+
|
53
|
+
/**
|
54
|
+
* If value instances have polymorphic type information, this
|
55
|
+
* is the type deserializer that can handle it
|
56
|
+
*/
|
57
|
+
protected final TypeDeserializer _valueTypeDeserializer;
|
58
|
+
|
59
|
+
// // Instance construction settings:
|
60
|
+
|
61
|
+
/**
|
62
|
+
* @since 1.9
|
63
|
+
*/
|
64
|
+
protected final ValueInstantiator _valueInstantiator;
|
65
|
+
|
66
|
+
/**
|
67
|
+
* @since 1.9
|
68
|
+
*/
|
69
|
+
protected final boolean _hasDefaultCreator;
|
70
|
+
|
71
|
+
/**
|
72
|
+
* If the Map is to be instantiated using non-default constructor
|
73
|
+
* or factory method
|
74
|
+
* that takes one or more named properties as argument(s),
|
75
|
+
* this creator is used for instantiation.
|
76
|
+
*/
|
77
|
+
protected PropertyBasedCreator _propertyBasedCreator;
|
78
|
+
|
79
|
+
/**
|
80
|
+
* Deserializer that is used iff delegate-based creator is
|
81
|
+
* to be used for deserializing from JSON Object.
|
82
|
+
*/
|
83
|
+
protected JsonDeserializer<Object> _delegateDeserializer;
|
84
|
+
|
85
|
+
// // Any properties to ignore if seen?
|
86
|
+
|
87
|
+
protected HashSet<String> _ignorableProperties;
|
88
|
+
|
89
|
+
/*
|
90
|
+
/**********************************************************
|
91
|
+
/* Life-cycle
|
92
|
+
/**********************************************************
|
93
|
+
*/
|
94
|
+
|
95
|
+
/**
|
96
|
+
* @deprecated Since 1.9, use variant that takes ValueInstantiator
|
97
|
+
*/
|
98
|
+
@Deprecated
|
99
|
+
protected MapDeserializer(JavaType mapType, Constructor<Map<Object,Object>> defCtor,
|
100
|
+
KeyDeserializer keyDeser, JsonDeserializer<Object> valueDeser,
|
101
|
+
TypeDeserializer valueTypeDeser)
|
102
|
+
{
|
103
|
+
super(Map.class);
|
104
|
+
_mapType = mapType;
|
105
|
+
_keyDeserializer = keyDeser;
|
106
|
+
_valueDeserializer = valueDeser;
|
107
|
+
_valueTypeDeserializer = valueTypeDeser;
|
108
|
+
// not super-clean, but has to do...
|
109
|
+
StdValueInstantiator inst = new StdValueInstantiator(null, mapType);
|
110
|
+
if (defCtor != null) {
|
111
|
+
AnnotatedConstructor aCtor = new AnnotatedConstructor(defCtor,
|
112
|
+
null, null);
|
113
|
+
inst.configureFromObjectSettings(aCtor, null, null, null, null);
|
114
|
+
}
|
115
|
+
_hasDefaultCreator = (defCtor != null);
|
116
|
+
_valueInstantiator = inst;
|
117
|
+
}
|
118
|
+
|
119
|
+
public MapDeserializer(JavaType mapType, ValueInstantiator valueInstantiator,
|
120
|
+
KeyDeserializer keyDeser, JsonDeserializer<Object> valueDeser,
|
121
|
+
TypeDeserializer valueTypeDeser)
|
122
|
+
{
|
123
|
+
super(Map.class);
|
124
|
+
_mapType = mapType;
|
125
|
+
_keyDeserializer = keyDeser;
|
126
|
+
_valueDeserializer = valueDeser;
|
127
|
+
_valueTypeDeserializer = valueTypeDeser;
|
128
|
+
_valueInstantiator = valueInstantiator;
|
129
|
+
if (valueInstantiator.canCreateFromObjectWith()) {
|
130
|
+
_propertyBasedCreator = new PropertyBasedCreator(valueInstantiator);
|
131
|
+
} else {
|
132
|
+
_propertyBasedCreator = null;
|
133
|
+
}
|
134
|
+
_hasDefaultCreator = valueInstantiator.canCreateUsingDefault();
|
135
|
+
}
|
136
|
+
|
137
|
+
/**
|
138
|
+
* Copy-constructor that can be used by sub-classes to allow
|
139
|
+
* copy-on-write styling copying of settings of an existing instance.
|
140
|
+
*
|
141
|
+
* @since 1.9
|
142
|
+
*/
|
143
|
+
protected MapDeserializer(MapDeserializer src)
|
144
|
+
{
|
145
|
+
super(src._valueClass);
|
146
|
+
_mapType = src._mapType;
|
147
|
+
_keyDeserializer = src._keyDeserializer;
|
148
|
+
_valueDeserializer = src._valueDeserializer;
|
149
|
+
_valueTypeDeserializer = src._valueTypeDeserializer;
|
150
|
+
_valueInstantiator = src._valueInstantiator;
|
151
|
+
_propertyBasedCreator = src._propertyBasedCreator;
|
152
|
+
_delegateDeserializer = src._delegateDeserializer;
|
153
|
+
_hasDefaultCreator = src._hasDefaultCreator;
|
154
|
+
// should we make a copy here?
|
155
|
+
_ignorableProperties = src._ignorableProperties;
|
156
|
+
}
|
157
|
+
|
158
|
+
public void setIgnorableProperties(String[] ignorable)
|
159
|
+
{
|
160
|
+
_ignorableProperties = (ignorable == null || ignorable.length == 0) ?
|
161
|
+
null : ArrayBuilders.arrayToSet(ignorable);
|
162
|
+
}
|
163
|
+
|
164
|
+
/*
|
165
|
+
/**********************************************************
|
166
|
+
/* Validation, post-processing (ResolvableDeserializer)
|
167
|
+
/**********************************************************
|
168
|
+
*/
|
169
|
+
|
170
|
+
/**
|
171
|
+
* Method called to finalize setup of this deserializer,
|
172
|
+
* after deserializer itself has been registered. This
|
173
|
+
* is needed to handle recursive and transitive dependencies.
|
174
|
+
*/
|
175
|
+
@Override
|
176
|
+
public void resolve(DeserializationConfig config, DeserializerProvider provider)
|
177
|
+
throws JsonMappingException
|
178
|
+
{
|
179
|
+
// May need to resolve types for delegate- and/or property-based creators:
|
180
|
+
if (_valueInstantiator.canCreateUsingDelegate()) {
|
181
|
+
JavaType delegateType = _valueInstantiator.getDelegateType();
|
182
|
+
if (delegateType == null) {
|
183
|
+
throw new IllegalArgumentException("Invalid delegate-creator definition for "+_mapType
|
184
|
+
+": value instantiator ("+_valueInstantiator.getClass().getName()
|
185
|
+
+") returned true for 'canCreateUsingDelegate()', but null for 'getDelegateType()'");
|
186
|
+
}
|
187
|
+
AnnotatedWithParams delegateCreator = _valueInstantiator.getDelegateCreator();
|
188
|
+
// Need to create a temporary property to allow contextual deserializers:
|
189
|
+
// Note: unlike BeanDeserializer, we don't have an AnnotatedClass around; hence no annotations passed
|
190
|
+
BeanProperty.Std property = new BeanProperty.Std(null,
|
191
|
+
delegateType, null, delegateCreator);
|
192
|
+
_delegateDeserializer = findDeserializer(config, provider, delegateType, property);
|
193
|
+
}
|
194
|
+
if (_propertyBasedCreator != null) {
|
195
|
+
for (SettableBeanProperty prop : _propertyBasedCreator.getCreatorProperties()) {
|
196
|
+
if (!prop.hasValueDeserializer()) {
|
197
|
+
_propertyBasedCreator.assignDeserializer(prop, findDeserializer(config, provider, prop.getType(), prop));
|
198
|
+
}
|
199
|
+
}
|
200
|
+
}
|
201
|
+
}
|
202
|
+
|
203
|
+
/*
|
204
|
+
/**********************************************************
|
205
|
+
/* ContainerDeserializerBase API
|
206
|
+
/**********************************************************
|
207
|
+
*/
|
208
|
+
|
209
|
+
@Override
|
210
|
+
public JavaType getContentType() {
|
211
|
+
return _mapType.getContentType();
|
212
|
+
}
|
213
|
+
|
214
|
+
@Override
|
215
|
+
public JsonDeserializer<Object> getContentDeserializer() {
|
216
|
+
return _valueDeserializer;
|
217
|
+
}
|
218
|
+
|
219
|
+
/*
|
220
|
+
/**********************************************************
|
221
|
+
/* JsonDeserializer API
|
222
|
+
/**********************************************************
|
223
|
+
*/
|
224
|
+
|
225
|
+
@Override
|
226
|
+
@SuppressWarnings("unchecked")
|
227
|
+
public Map<Object,Object> deserialize(JsonParser jp, DeserializationContext ctxt)
|
228
|
+
throws IOException, JsonProcessingException
|
229
|
+
{
|
230
|
+
if (_propertyBasedCreator != null) {
|
231
|
+
return _deserializeUsingCreator(jp, ctxt);
|
232
|
+
}
|
233
|
+
if (_delegateDeserializer != null) {
|
234
|
+
return (Map<Object,Object>) _valueInstantiator.createUsingDelegate(_delegateDeserializer.deserialize(jp, ctxt));
|
235
|
+
}
|
236
|
+
if (!_hasDefaultCreator) {
|
237
|
+
throw ctxt.instantiationException(getMapClass(), "No default constructor found");
|
238
|
+
}
|
239
|
+
// Ok: must point to START_OBJECT, FIELD_NAME or END_OBJECT
|
240
|
+
JsonToken t = jp.getCurrentToken();
|
241
|
+
if (t != JsonToken.START_OBJECT && t != JsonToken.FIELD_NAME && t != JsonToken.END_OBJECT) {
|
242
|
+
// [JACKSON-620] (empty) String may be ok however:
|
243
|
+
if (t == JsonToken.VALUE_STRING) {
|
244
|
+
return (Map<Object,Object>) _valueInstantiator.createFromString(jp.getText());
|
245
|
+
}
|
246
|
+
throw ctxt.mappingException(getMapClass());
|
247
|
+
}
|
248
|
+
final Map<Object,Object> result = (Map<Object,Object>) _valueInstantiator.createUsingDefault();
|
249
|
+
_readAndBind(jp, ctxt, result);
|
250
|
+
return result;
|
251
|
+
}
|
252
|
+
|
253
|
+
@Override
|
254
|
+
public Map<Object,Object> deserialize(JsonParser jp, DeserializationContext ctxt,
|
255
|
+
Map<Object,Object> result)
|
256
|
+
throws IOException, JsonProcessingException
|
257
|
+
{
|
258
|
+
// Ok: must point to START_OBJECT or FIELD_NAME
|
259
|
+
JsonToken t = jp.getCurrentToken();
|
260
|
+
if (t != JsonToken.START_OBJECT && t != JsonToken.FIELD_NAME) {
|
261
|
+
throw ctxt.mappingException(getMapClass());
|
262
|
+
}
|
263
|
+
_readAndBind(jp, ctxt, result);
|
264
|
+
return result;
|
265
|
+
}
|
266
|
+
|
267
|
+
@Override
|
268
|
+
public Object deserializeWithType(JsonParser jp, DeserializationContext ctxt,
|
269
|
+
TypeDeserializer typeDeserializer)
|
270
|
+
throws IOException, JsonProcessingException
|
271
|
+
{
|
272
|
+
// In future could check current token... for now this should be enough:
|
273
|
+
return typeDeserializer.deserializeTypedFromObject(jp, ctxt);
|
274
|
+
}
|
275
|
+
|
276
|
+
/*
|
277
|
+
/**********************************************************
|
278
|
+
/* Other public accessors
|
279
|
+
/**********************************************************
|
280
|
+
*/
|
281
|
+
|
282
|
+
@SuppressWarnings("unchecked")
|
283
|
+
public final Class<?> getMapClass() { return (Class<Map<Object,Object>>) _mapType.getRawClass(); }
|
284
|
+
|
285
|
+
@Override public JavaType getValueType() { return _mapType; }
|
286
|
+
|
287
|
+
/*
|
288
|
+
/**********************************************************
|
289
|
+
/* Internal methods
|
290
|
+
/**********************************************************
|
291
|
+
*/
|
292
|
+
|
293
|
+
protected final void _readAndBind(JsonParser jp, DeserializationContext ctxt,
|
294
|
+
Map<Object,Object> result)
|
295
|
+
throws IOException, JsonProcessingException
|
296
|
+
{
|
297
|
+
JsonToken t = jp.getCurrentToken();
|
298
|
+
if (t == JsonToken.START_OBJECT) {
|
299
|
+
t = jp.nextToken();
|
300
|
+
}
|
301
|
+
final KeyDeserializer keyDes = _keyDeserializer;
|
302
|
+
final JsonDeserializer<Object> valueDes = _valueDeserializer;
|
303
|
+
final TypeDeserializer typeDeser = _valueTypeDeserializer;
|
304
|
+
for (; t == JsonToken.FIELD_NAME; t = jp.nextToken()) {
|
305
|
+
// Must point to field name
|
306
|
+
String fieldName = jp.getCurrentName();
|
307
|
+
Object key = keyDes.deserializeKey(fieldName, ctxt);
|
308
|
+
// And then the value...
|
309
|
+
t = jp.nextToken();
|
310
|
+
if (_ignorableProperties != null && _ignorableProperties.contains(fieldName)) {
|
311
|
+
jp.skipChildren();
|
312
|
+
continue;
|
313
|
+
}
|
314
|
+
// Note: must handle null explicitly here; value deserializers won't
|
315
|
+
Object value;
|
316
|
+
if (t == JsonToken.VALUE_NULL) {
|
317
|
+
value = null;
|
318
|
+
} else if (typeDeser == null) {
|
319
|
+
value = valueDes.deserialize(jp, ctxt);
|
320
|
+
} else {
|
321
|
+
value = valueDes.deserializeWithType(jp, ctxt, typeDeser);
|
322
|
+
}
|
323
|
+
/* !!! 23-Dec-2008, tatu: should there be an option to verify
|
324
|
+
* that there are no duplicate field names? (and/or what
|
325
|
+
* to do, keep-first or keep-last)
|
326
|
+
*/
|
327
|
+
result.put(key, value);
|
328
|
+
}
|
329
|
+
}
|
330
|
+
|
331
|
+
@SuppressWarnings("unchecked")
|
332
|
+
public Map<Object,Object> _deserializeUsingCreator(JsonParser jp, DeserializationContext ctxt)
|
333
|
+
throws IOException, JsonProcessingException
|
334
|
+
{
|
335
|
+
final PropertyBasedCreator creator = _propertyBasedCreator;
|
336
|
+
PropertyValueBuffer buffer = creator.startBuilding(jp, ctxt);
|
337
|
+
|
338
|
+
JsonToken t = jp.getCurrentToken();
|
339
|
+
if (t == JsonToken.START_OBJECT) {
|
340
|
+
t = jp.nextToken();
|
341
|
+
}
|
342
|
+
final JsonDeserializer<Object> valueDes = _valueDeserializer;
|
343
|
+
final TypeDeserializer typeDeser = _valueTypeDeserializer;
|
344
|
+
for (; t == JsonToken.FIELD_NAME; t = jp.nextToken()) {
|
345
|
+
String propName = jp.getCurrentName();
|
346
|
+
t = jp.nextToken(); // to get to value
|
347
|
+
if (_ignorableProperties != null && _ignorableProperties.contains(propName)) {
|
348
|
+
jp.skipChildren(); // and skip it (in case of array/object)
|
349
|
+
continue;
|
350
|
+
}
|
351
|
+
// creator property?
|
352
|
+
SettableBeanProperty prop = creator.findCreatorProperty(propName);
|
353
|
+
if (prop != null) {
|
354
|
+
// Last property to set?
|
355
|
+
Object value = prop.deserialize(jp, ctxt);
|
356
|
+
if (buffer.assignParameter(prop.getPropertyIndex(), value)) {
|
357
|
+
jp.nextToken();
|
358
|
+
Map<Object,Object> result;
|
359
|
+
try {
|
360
|
+
result = (Map<Object,Object>)creator.build(buffer);
|
361
|
+
} catch (Exception e) {
|
362
|
+
wrapAndThrow(e, _mapType.getRawClass());
|
363
|
+
return null;
|
364
|
+
}
|
365
|
+
_readAndBind(jp, ctxt, result);
|
366
|
+
return result;
|
367
|
+
}
|
368
|
+
continue;
|
369
|
+
}
|
370
|
+
// other property? needs buffering
|
371
|
+
String fieldName = jp.getCurrentName();
|
372
|
+
Object key = _keyDeserializer.deserializeKey(fieldName, ctxt);
|
373
|
+
Object value;
|
374
|
+
if (t == JsonToken.VALUE_NULL) {
|
375
|
+
value = null;
|
376
|
+
} else if (typeDeser == null) {
|
377
|
+
value = valueDes.deserialize(jp, ctxt);
|
378
|
+
} else {
|
379
|
+
value = valueDes.deserializeWithType(jp, ctxt, typeDeser);
|
380
|
+
}
|
381
|
+
buffer.bufferMapProperty(key, value);
|
382
|
+
}
|
383
|
+
// end of JSON object?
|
384
|
+
// if so, can just construct and leave...
|
385
|
+
try {
|
386
|
+
return (Map<Object,Object>)creator.build(buffer);
|
387
|
+
} catch (Exception e) {
|
388
|
+
wrapAndThrow(e, _mapType.getRawClass());
|
389
|
+
return null;
|
390
|
+
}
|
391
|
+
}
|
392
|
+
|
393
|
+
// note: copied form BeanDeserializer; should try to share somehow...
|
394
|
+
protected void wrapAndThrow(Throwable t, Object ref)
|
395
|
+
throws IOException
|
396
|
+
{
|
397
|
+
// to handle StackOverflow:
|
398
|
+
while (t instanceof InvocationTargetException && t.getCause() != null) {
|
399
|
+
t = t.getCause();
|
400
|
+
}
|
401
|
+
// Errors and "plain" IOExceptions to be passed as is
|
402
|
+
if (t instanceof Error) {
|
403
|
+
throw (Error) t;
|
404
|
+
}
|
405
|
+
// ... except for mapping exceptions
|
406
|
+
if (t instanceof IOException && !(t instanceof JsonMappingException)) {
|
407
|
+
throw (IOException) t;
|
408
|
+
}
|
409
|
+
throw JsonMappingException.wrapWithPath(t, ref, null);
|
410
|
+
}
|
411
|
+
|
412
|
+
}
|