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
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.deser;
|
|
2
|
+
|
|
3
|
+
import java.lang.reflect.Constructor;
|
|
4
|
+
import java.util.Map;
|
|
5
|
+
|
|
6
|
+
import sh.calaba.org.codehaus.jackson.map.*;
|
|
7
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated Since 1.9, use {@link sh.calaba.org.codehaus.jackson.map.deser.std.MapDeserializer} instead.
|
|
11
|
+
*/
|
|
12
|
+
@Deprecated
|
|
13
|
+
public class MapDeserializer
|
|
14
|
+
extends sh.calaba.org.codehaus.jackson.map.deser.std.MapDeserializer
|
|
15
|
+
{
|
|
16
|
+
/**
|
|
17
|
+
* @deprecated Since 1.9, use variant that takes ValueInstantiator
|
|
18
|
+
*/
|
|
19
|
+
@SuppressWarnings("deprecation")
|
|
20
|
+
@Deprecated
|
|
21
|
+
public MapDeserializer(JavaType mapType, Constructor<Map<Object,Object>> defCtor,
|
|
22
|
+
KeyDeserializer keyDeser, JsonDeserializer<Object> valueDeser,
|
|
23
|
+
TypeDeserializer valueTypeDeser)
|
|
24
|
+
{
|
|
25
|
+
super(mapType, defCtor, keyDeser, valueDeser, valueTypeDeser);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public MapDeserializer(JavaType mapType, ValueInstantiator valueInstantiator,
|
|
29
|
+
KeyDeserializer keyDeser, JsonDeserializer<Object> valueDeser,
|
|
30
|
+
TypeDeserializer valueTypeDeser)
|
|
31
|
+
{
|
|
32
|
+
super(mapType, valueInstantiator, keyDeser, valueDeser, valueTypeDeser);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Copy-constructor that can be used by sub-classes to allow
|
|
37
|
+
* copy-on-write styling copying of settings of an existing instance.
|
|
38
|
+
*
|
|
39
|
+
* @since 1.9
|
|
40
|
+
*/
|
|
41
|
+
protected MapDeserializer(MapDeserializer src) {
|
|
42
|
+
super(src);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.deser;
|
|
2
|
+
|
|
3
|
+
import java.io.IOException;
|
|
4
|
+
import java.lang.reflect.*;
|
|
5
|
+
|
|
6
|
+
import sh.calaba.org.codehaus.jackson.*;
|
|
7
|
+
import sh.calaba.org.codehaus.jackson.map.BeanProperty;
|
|
8
|
+
import sh.calaba.org.codehaus.jackson.map.DeserializationContext;
|
|
9
|
+
import sh.calaba.org.codehaus.jackson.map.JsonDeserializer;
|
|
10
|
+
import sh.calaba.org.codehaus.jackson.map.JsonMappingException;
|
|
11
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedMethod;
|
|
12
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Class that represents a "wildcard" set method which can be used
|
|
16
|
+
* to generically set values of otherwise unmapped (aka "unknown")
|
|
17
|
+
* properties read from Json content.
|
|
18
|
+
*<p>
|
|
19
|
+
* !!! Note: might make sense to refactor to share some code
|
|
20
|
+
* with {@link SettableBeanProperty}?
|
|
21
|
+
*/
|
|
22
|
+
public final class SettableAnyProperty
|
|
23
|
+
{
|
|
24
|
+
/**
|
|
25
|
+
* Method used for setting "any" properties, along with annotation
|
|
26
|
+
* information. Retained to allow contextualization of any properties.
|
|
27
|
+
*
|
|
28
|
+
* @since 1.7
|
|
29
|
+
*/
|
|
30
|
+
final protected BeanProperty _property;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Physical JDK object used for assigning properties.
|
|
34
|
+
*/
|
|
35
|
+
final protected Method _setter;
|
|
36
|
+
|
|
37
|
+
final protected JavaType _type;
|
|
38
|
+
|
|
39
|
+
protected JsonDeserializer<Object> _valueDeserializer;
|
|
40
|
+
|
|
41
|
+
/*
|
|
42
|
+
/**********************************************************
|
|
43
|
+
/* Life-cycle
|
|
44
|
+
/**********************************************************
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated Since 1.9 - use variant that takes deserializer
|
|
49
|
+
*/
|
|
50
|
+
@Deprecated
|
|
51
|
+
public SettableAnyProperty(BeanProperty property, AnnotatedMethod setter, JavaType type) {
|
|
52
|
+
this(property, setter, type, null);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public SettableAnyProperty(BeanProperty property, AnnotatedMethod setter, JavaType type,
|
|
56
|
+
JsonDeserializer<Object> valueDeser) {
|
|
57
|
+
this(property, setter.getAnnotated(), type, valueDeser);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
public SettableAnyProperty(BeanProperty property, Method rawSetter, JavaType type,
|
|
61
|
+
JsonDeserializer<Object> valueDeser) {
|
|
62
|
+
_property = property;
|
|
63
|
+
_type = type;
|
|
64
|
+
_setter = rawSetter;
|
|
65
|
+
_valueDeserializer = valueDeser;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public SettableAnyProperty withValueDeserializer(JsonDeserializer<Object> deser) {
|
|
69
|
+
return new SettableAnyProperty(_property, _setter, _type, deser);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* @deprecated Since 1.9 - construct with deserializer
|
|
74
|
+
*/
|
|
75
|
+
@Deprecated
|
|
76
|
+
public void setValueDeserializer(JsonDeserializer<Object> deser)
|
|
77
|
+
{
|
|
78
|
+
if (_valueDeserializer != null) { // sanity check
|
|
79
|
+
throw new IllegalStateException("Already had assigned deserializer for SettableAnyProperty");
|
|
80
|
+
}
|
|
81
|
+
_valueDeserializer = deser;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/*
|
|
85
|
+
/**********************************************************
|
|
86
|
+
/* Public API, accessors
|
|
87
|
+
/**********************************************************
|
|
88
|
+
*/
|
|
89
|
+
|
|
90
|
+
public BeanProperty getProperty() { return _property; }
|
|
91
|
+
|
|
92
|
+
public boolean hasValueDeserializer() { return (_valueDeserializer != null); }
|
|
93
|
+
|
|
94
|
+
public JavaType getType() { return _type; }
|
|
95
|
+
|
|
96
|
+
/*
|
|
97
|
+
/**********************************************************
|
|
98
|
+
/* Public API, deserialization
|
|
99
|
+
/**********************************************************
|
|
100
|
+
*/
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Method called to deserialize appropriate value, given parser (and
|
|
104
|
+
* context), and set it using appropriate method (a setter method).
|
|
105
|
+
*/
|
|
106
|
+
public final void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
|
|
107
|
+
Object instance, String propName)
|
|
108
|
+
throws IOException, JsonProcessingException
|
|
109
|
+
{
|
|
110
|
+
set(instance, propName, deserialize(jp, ctxt));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
public final Object deserialize(JsonParser jp, DeserializationContext ctxt)
|
|
114
|
+
throws IOException, JsonProcessingException
|
|
115
|
+
{
|
|
116
|
+
JsonToken t = jp.getCurrentToken();
|
|
117
|
+
if (t == JsonToken.VALUE_NULL) {
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
return _valueDeserializer.deserialize(jp, ctxt);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
public final void set(Object instance, String propName, Object value)
|
|
124
|
+
throws IOException
|
|
125
|
+
{
|
|
126
|
+
try {
|
|
127
|
+
_setter.invoke(instance, propName, value);
|
|
128
|
+
} catch (Exception e) {
|
|
129
|
+
_throwAsIOE(e, propName, value);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/*
|
|
134
|
+
/**********************************************************
|
|
135
|
+
/* Helper methods
|
|
136
|
+
/**********************************************************
|
|
137
|
+
*/
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* @param e Exception to re-throw or wrap
|
|
141
|
+
* @param propName Name of property (from Json input) to set
|
|
142
|
+
* @param value Value of the property
|
|
143
|
+
*/
|
|
144
|
+
protected void _throwAsIOE(Exception e, String propName, Object value)
|
|
145
|
+
throws IOException
|
|
146
|
+
{
|
|
147
|
+
if (e instanceof IllegalArgumentException) {
|
|
148
|
+
String actType = (value == null) ? "[NULL]" : value.getClass().getName();
|
|
149
|
+
StringBuilder msg = new StringBuilder("Problem deserializing \"any\" property '").append(propName);
|
|
150
|
+
msg.append("' of class "+getClassName()+" (expected type: ").append(_type);
|
|
151
|
+
msg.append("; actual type: ").append(actType).append(")");
|
|
152
|
+
String origMsg = e.getMessage();
|
|
153
|
+
if (origMsg != null) {
|
|
154
|
+
msg.append(", problem: ").append(origMsg);
|
|
155
|
+
} else {
|
|
156
|
+
msg.append(" (no error message provided)");
|
|
157
|
+
}
|
|
158
|
+
throw new JsonMappingException(msg.toString(), null, e);
|
|
159
|
+
}
|
|
160
|
+
if (e instanceof IOException) {
|
|
161
|
+
throw (IOException) e;
|
|
162
|
+
}
|
|
163
|
+
if (e instanceof RuntimeException) {
|
|
164
|
+
throw (RuntimeException) e;
|
|
165
|
+
}
|
|
166
|
+
// let's wrap the innermost problem
|
|
167
|
+
Throwable t = e;
|
|
168
|
+
while (t.getCause() != null) {
|
|
169
|
+
t = t.getCause();
|
|
170
|
+
}
|
|
171
|
+
throw new JsonMappingException(t.getMessage(), null, t);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
private String getClassName() { return _setter.getDeclaringClass().getName(); }
|
|
175
|
+
|
|
176
|
+
@Override public String toString() { return "[any property on class "+getClassName()+"]"; }
|
|
177
|
+
}
|
|
@@ -0,0 +1,827 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.deser;
|
|
2
|
+
|
|
3
|
+
import java.io.IOException;
|
|
4
|
+
import java.lang.annotation.Annotation;
|
|
5
|
+
import java.lang.reflect.*;
|
|
6
|
+
import java.util.*;
|
|
7
|
+
|
|
8
|
+
import sh.calaba.org.codehaus.jackson.*;
|
|
9
|
+
import sh.calaba.org.codehaus.jackson.map.*;
|
|
10
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedField;
|
|
11
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedMember;
|
|
12
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedMethod;
|
|
13
|
+
import sh.calaba.org.codehaus.jackson.map.util.Annotations;
|
|
14
|
+
import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
|
|
15
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
|
16
|
+
import sh.calaba.org.codehaus.jackson.util.InternCache;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Base class for settable properties of a bean: contains
|
|
20
|
+
* both type and name definitions, and reflection-based set functionality.
|
|
21
|
+
* Concrete sub-classes implement details, so that both field- and
|
|
22
|
+
* setter-backed properties can be handled
|
|
23
|
+
*/
|
|
24
|
+
public abstract class SettableBeanProperty
|
|
25
|
+
implements BeanProperty // since 1.7
|
|
26
|
+
{
|
|
27
|
+
/**
|
|
28
|
+
* Logical name of the property (often but not always derived
|
|
29
|
+
* from the setter method name)
|
|
30
|
+
*/
|
|
31
|
+
protected final String _propName;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Base type for property; may be a supertype of actual value.
|
|
35
|
+
*/
|
|
36
|
+
protected final JavaType _type;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Class that contains this property (either class that declares
|
|
40
|
+
* the property or one of its subclasses), class that is
|
|
41
|
+
* deserialized using deserializer that contains this property.
|
|
42
|
+
*/
|
|
43
|
+
protected final Annotations _contextAnnotations;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Deserializer used for handling property value.
|
|
47
|
+
*/
|
|
48
|
+
protected JsonDeserializer<Object> _valueDeserializer;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* If value will contain type information (to support
|
|
52
|
+
* polymorphic handling), this is the type deserializer
|
|
53
|
+
* used to handle type resolution.
|
|
54
|
+
*/
|
|
55
|
+
protected TypeDeserializer _valueTypeDeserializer;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Object used to figure out value to be used when 'null' literal is encountered in JSON.
|
|
59
|
+
* For most types simply Java null, but for primitive types must
|
|
60
|
+
* be a non-null value (like Integer.valueOf(0) for int).
|
|
61
|
+
*
|
|
62
|
+
* @since 1.7
|
|
63
|
+
*/
|
|
64
|
+
protected NullProvider _nullProvider;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* If property represents a managed (forward) reference
|
|
68
|
+
* (see [JACKSON-235]), we will need name of reference for
|
|
69
|
+
* later linking.
|
|
70
|
+
*/
|
|
71
|
+
protected String _managedReferenceName;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Index of property (within all property of a bean); assigned
|
|
75
|
+
* when all properties have been collected. Order of entries
|
|
76
|
+
* is arbitrary, but once indexes are assigned they are not
|
|
77
|
+
* changed.
|
|
78
|
+
*
|
|
79
|
+
* @since 1.7
|
|
80
|
+
*/
|
|
81
|
+
protected int _propertyIndex = -1;
|
|
82
|
+
|
|
83
|
+
/*
|
|
84
|
+
/**********************************************************
|
|
85
|
+
/* Life-cycle (construct & configure)
|
|
86
|
+
/**********************************************************
|
|
87
|
+
*/
|
|
88
|
+
|
|
89
|
+
protected SettableBeanProperty(String propName, JavaType type, TypeDeserializer typeDeser,
|
|
90
|
+
Annotations contextAnnotations)
|
|
91
|
+
{
|
|
92
|
+
/* 09-Jan-2009, tatu: Intern()ing makes sense since Jackson parsed
|
|
93
|
+
* field names are (usually) interned too, hence lookups will be faster.
|
|
94
|
+
*/
|
|
95
|
+
// 23-Oct-2009, tatu: should this be disabled wrt [JACKSON-180]?
|
|
96
|
+
if (propName == null || propName.length() == 0) {
|
|
97
|
+
_propName = "";
|
|
98
|
+
} else {
|
|
99
|
+
_propName = InternCache.instance.intern(propName);
|
|
100
|
+
}
|
|
101
|
+
_type = type;
|
|
102
|
+
_contextAnnotations = contextAnnotations;
|
|
103
|
+
_valueTypeDeserializer = typeDeser;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Basic copy-constructor for sub-classes to use.
|
|
108
|
+
*
|
|
109
|
+
* @since 1.9
|
|
110
|
+
*/
|
|
111
|
+
protected SettableBeanProperty(SettableBeanProperty src)
|
|
112
|
+
{
|
|
113
|
+
_propName = src._propName;
|
|
114
|
+
_type = src._type;
|
|
115
|
+
_contextAnnotations = src._contextAnnotations;
|
|
116
|
+
_valueDeserializer = src._valueDeserializer;
|
|
117
|
+
_valueTypeDeserializer = src._valueTypeDeserializer;
|
|
118
|
+
_nullProvider = src._nullProvider;
|
|
119
|
+
_managedReferenceName = src._managedReferenceName;
|
|
120
|
+
_propertyIndex = src._propertyIndex;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Copy-with-deserializer-change constructor for sub-classes to use.
|
|
125
|
+
*
|
|
126
|
+
* @since 1.9
|
|
127
|
+
*/
|
|
128
|
+
protected SettableBeanProperty(SettableBeanProperty src, JsonDeserializer<Object> deser)
|
|
129
|
+
{
|
|
130
|
+
_propName = src._propName;
|
|
131
|
+
_type = src._type;
|
|
132
|
+
_contextAnnotations = src._contextAnnotations;
|
|
133
|
+
_valueTypeDeserializer = src._valueTypeDeserializer;
|
|
134
|
+
_managedReferenceName = src._managedReferenceName;
|
|
135
|
+
_propertyIndex = src._propertyIndex;
|
|
136
|
+
|
|
137
|
+
_valueDeserializer = deser;
|
|
138
|
+
if (deser == null) {
|
|
139
|
+
_nullProvider = null;
|
|
140
|
+
} else {
|
|
141
|
+
Object nvl = deser.getNullValue();
|
|
142
|
+
_nullProvider = (nvl == null) ? null : new NullProvider(_type, nvl);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
@Deprecated
|
|
147
|
+
public void setValueDeserializer(JsonDeserializer<Object> deser)
|
|
148
|
+
{
|
|
149
|
+
if (_valueDeserializer != null) { // sanity check
|
|
150
|
+
throw new IllegalStateException("Already had assigned deserializer for property '"+getName()+"' (class "+getDeclaringClass().getName()+")");
|
|
151
|
+
}
|
|
152
|
+
_valueDeserializer = deser;
|
|
153
|
+
Object nvl = _valueDeserializer.getNullValue();
|
|
154
|
+
_nullProvider = (nvl == null) ? null : new NullProvider(_type, nvl);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* @since 1.9
|
|
159
|
+
*/
|
|
160
|
+
public abstract SettableBeanProperty withValueDeserializer(JsonDeserializer<Object> deser);
|
|
161
|
+
|
|
162
|
+
public void setManagedReferenceName(String n) {
|
|
163
|
+
_managedReferenceName = n;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Method used to assign index for property.
|
|
168
|
+
*
|
|
169
|
+
* @since 1.7
|
|
170
|
+
*/
|
|
171
|
+
public void assignIndex(int index) {
|
|
172
|
+
if (_propertyIndex != -1) {
|
|
173
|
+
throw new IllegalStateException("Property '"+getName()+"' already had index ("+_propertyIndex+"), trying to assign "+index);
|
|
174
|
+
}
|
|
175
|
+
_propertyIndex = index;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/*
|
|
179
|
+
/**********************************************************
|
|
180
|
+
/* BeanProperty impl
|
|
181
|
+
/**********************************************************
|
|
182
|
+
*/
|
|
183
|
+
|
|
184
|
+
@Override
|
|
185
|
+
public final String getName() { return _propName; }
|
|
186
|
+
|
|
187
|
+
@Override
|
|
188
|
+
public JavaType getType() { return _type; }
|
|
189
|
+
|
|
190
|
+
@Override
|
|
191
|
+
public abstract <A extends Annotation> A getAnnotation(Class<A> acls);
|
|
192
|
+
|
|
193
|
+
@Override
|
|
194
|
+
public abstract AnnotatedMember getMember();
|
|
195
|
+
|
|
196
|
+
@Override
|
|
197
|
+
public <A extends Annotation> A getContextAnnotation(Class<A> acls) {
|
|
198
|
+
return _contextAnnotations.get(acls);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/*
|
|
202
|
+
/**********************************************************
|
|
203
|
+
/* Accessors
|
|
204
|
+
/**********************************************************
|
|
205
|
+
*/
|
|
206
|
+
|
|
207
|
+
protected final Class<?> getDeclaringClass() {
|
|
208
|
+
return getMember().getDeclaringClass();
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* @deprecated Since 1.7, use {@link #getName} instead.
|
|
213
|
+
*/
|
|
214
|
+
@Deprecated
|
|
215
|
+
public String getPropertyName() { return _propName; }
|
|
216
|
+
|
|
217
|
+
public String getManagedReferenceName() { return _managedReferenceName; }
|
|
218
|
+
|
|
219
|
+
public boolean hasValueDeserializer() { return (_valueDeserializer != null); }
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* @since 1.9
|
|
223
|
+
*/
|
|
224
|
+
public boolean hasValueTypeDeserializer() { return (_valueTypeDeserializer != null); }
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* @since 1.9
|
|
228
|
+
*/
|
|
229
|
+
public JsonDeserializer<Object> getValueDeserializer() { return _valueDeserializer; }
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* @since 1.9
|
|
233
|
+
*/
|
|
234
|
+
public TypeDeserializer getValueTypeDeserializer() { return _valueTypeDeserializer; }
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Method for accessing unique index of this property; indexes are
|
|
238
|
+
* assigned once all properties of a {@link BeanDeserializer} have
|
|
239
|
+
* been collected.
|
|
240
|
+
*
|
|
241
|
+
* @return Index of this property
|
|
242
|
+
*
|
|
243
|
+
* @since 1.7 Although note that it was misspelled as "getProperytIndex"; fixed in 1.9
|
|
244
|
+
*/
|
|
245
|
+
public int getPropertyIndex() { return _propertyIndex; }
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* @deprecated Since 1.9: use {@link #getPropertyIndex} instead
|
|
249
|
+
*/
|
|
250
|
+
@Deprecated
|
|
251
|
+
public int getProperytIndex() { return getPropertyIndex(); }
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Accessor for id of injectable value, if this bean property supports
|
|
255
|
+
* value injection.
|
|
256
|
+
*
|
|
257
|
+
* @since 1.9
|
|
258
|
+
*/
|
|
259
|
+
public Object getInjectableValueId() { return null; }
|
|
260
|
+
|
|
261
|
+
/*
|
|
262
|
+
/**********************************************************
|
|
263
|
+
/* Public API
|
|
264
|
+
/**********************************************************
|
|
265
|
+
*/
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Method called to deserialize appropriate value, given parser (and
|
|
269
|
+
* context), and set it using appropriate mechanism.
|
|
270
|
+
* Pre-condition is that passed parser must point to the first token
|
|
271
|
+
* that should be consumed to produce the value (the only value for
|
|
272
|
+
* scalars, multiple for Objects and Arrays).
|
|
273
|
+
*/
|
|
274
|
+
public abstract void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
|
|
275
|
+
Object instance)
|
|
276
|
+
throws IOException, JsonProcessingException;
|
|
277
|
+
|
|
278
|
+
public abstract void set(Object instance, Object value)
|
|
279
|
+
throws IOException;
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* This method is needed by some specialized bean deserializers,
|
|
283
|
+
* and also called by some {@link #deserializeAndSet} implementations.
|
|
284
|
+
*<p>
|
|
285
|
+
* Pre-condition is that passed parser must point to the first token
|
|
286
|
+
* that should be consumed to produce the value (the only value for
|
|
287
|
+
* scalars, multiple for Objects and Arrays).
|
|
288
|
+
*/
|
|
289
|
+
public final Object deserialize(JsonParser jp, DeserializationContext ctxt)
|
|
290
|
+
throws IOException, JsonProcessingException
|
|
291
|
+
{
|
|
292
|
+
JsonToken t = jp.getCurrentToken();
|
|
293
|
+
if (t == JsonToken.VALUE_NULL) {
|
|
294
|
+
return (_nullProvider == null) ? null : _nullProvider.nullValue(ctxt);
|
|
295
|
+
}
|
|
296
|
+
if (_valueTypeDeserializer != null) {
|
|
297
|
+
return _valueDeserializer.deserializeWithType(jp, ctxt, _valueTypeDeserializer);
|
|
298
|
+
}
|
|
299
|
+
return _valueDeserializer.deserialize(jp, ctxt);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/*
|
|
303
|
+
/**********************************************************
|
|
304
|
+
/* Helper methods
|
|
305
|
+
/**********************************************************
|
|
306
|
+
*/
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Method that takes in exception of any type, and casts or wraps it
|
|
310
|
+
* to an IOException or its subclass.
|
|
311
|
+
*/
|
|
312
|
+
protected void _throwAsIOE(Exception e, Object value)
|
|
313
|
+
throws IOException
|
|
314
|
+
{
|
|
315
|
+
if (e instanceof IllegalArgumentException) {
|
|
316
|
+
String actType = (value == null) ? "[NULL]" : value.getClass().getName();
|
|
317
|
+
StringBuilder msg = new StringBuilder("Problem deserializing property '").append(getPropertyName());
|
|
318
|
+
msg.append("' (expected type: ").append(getType());
|
|
319
|
+
msg.append("; actual type: ").append(actType).append(")");
|
|
320
|
+
String origMsg = e.getMessage();
|
|
321
|
+
if (origMsg != null) {
|
|
322
|
+
msg.append(", problem: ").append(origMsg);
|
|
323
|
+
} else {
|
|
324
|
+
msg.append(" (no error message provided)");
|
|
325
|
+
}
|
|
326
|
+
throw new JsonMappingException(msg.toString(), null, e);
|
|
327
|
+
}
|
|
328
|
+
_throwAsIOE(e);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
protected IOException _throwAsIOE(Exception e)
|
|
332
|
+
throws IOException
|
|
333
|
+
{
|
|
334
|
+
if (e instanceof IOException) {
|
|
335
|
+
throw (IOException) e;
|
|
336
|
+
}
|
|
337
|
+
if (e instanceof RuntimeException) {
|
|
338
|
+
throw (RuntimeException) e;
|
|
339
|
+
}
|
|
340
|
+
// let's wrap the innermost problem
|
|
341
|
+
Throwable th = e;
|
|
342
|
+
while (th.getCause() != null) {
|
|
343
|
+
th = th.getCause();
|
|
344
|
+
}
|
|
345
|
+
throw new JsonMappingException(th.getMessage(), null, th);
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
@Override public String toString() { return "[property '"+getName()+"']"; }
|
|
349
|
+
|
|
350
|
+
/*
|
|
351
|
+
/**********************************************************
|
|
352
|
+
/* Implementation classes
|
|
353
|
+
/**********************************************************
|
|
354
|
+
*/
|
|
355
|
+
|
|
356
|
+
/**
|
|
357
|
+
* This concrete sub-class implements property that is set
|
|
358
|
+
* using regular "setter" method.
|
|
359
|
+
*/
|
|
360
|
+
public final static class MethodProperty
|
|
361
|
+
extends SettableBeanProperty
|
|
362
|
+
{
|
|
363
|
+
protected final AnnotatedMethod _annotated;
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Setter method for modifying property value; used for
|
|
367
|
+
* "regular" method-accessible properties.
|
|
368
|
+
*/
|
|
369
|
+
protected final Method _setter;
|
|
370
|
+
|
|
371
|
+
public MethodProperty(String name, JavaType type, TypeDeserializer typeDeser,
|
|
372
|
+
Annotations contextAnnotations, AnnotatedMethod method)
|
|
373
|
+
{
|
|
374
|
+
super(name, type, typeDeser, contextAnnotations);
|
|
375
|
+
_annotated = method;
|
|
376
|
+
_setter = method.getAnnotated();
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
protected MethodProperty(MethodProperty src, JsonDeserializer<Object> deser) {
|
|
380
|
+
super(src, deser);
|
|
381
|
+
_annotated = src._annotated;
|
|
382
|
+
_setter = src._setter;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
@Override
|
|
386
|
+
public MethodProperty withValueDeserializer(JsonDeserializer<Object> deser) {
|
|
387
|
+
return new MethodProperty(this, deser);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/*
|
|
391
|
+
/**********************************************************
|
|
392
|
+
/* BeanProperty impl
|
|
393
|
+
/**********************************************************
|
|
394
|
+
*/
|
|
395
|
+
|
|
396
|
+
@Override
|
|
397
|
+
public <A extends Annotation> A getAnnotation(Class<A> acls) {
|
|
398
|
+
return _annotated.getAnnotation(acls);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
@Override public AnnotatedMember getMember() { return _annotated; }
|
|
402
|
+
|
|
403
|
+
/*
|
|
404
|
+
/**********************************************************
|
|
405
|
+
/* Overridden methods
|
|
406
|
+
/**********************************************************
|
|
407
|
+
*/
|
|
408
|
+
|
|
409
|
+
@Override
|
|
410
|
+
public void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
|
|
411
|
+
Object instance)
|
|
412
|
+
throws IOException, JsonProcessingException
|
|
413
|
+
{
|
|
414
|
+
set(instance, deserialize(jp, ctxt));
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
@Override
|
|
418
|
+
public final void set(Object instance, Object value)
|
|
419
|
+
throws IOException
|
|
420
|
+
{
|
|
421
|
+
try {
|
|
422
|
+
_setter.invoke(instance, value);
|
|
423
|
+
} catch (Exception e) {
|
|
424
|
+
_throwAsIOE(e, value);
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* This concrete sub-class implements Collection or Map property that is
|
|
431
|
+
* indirectly by getting the property value and directly modifying it.
|
|
432
|
+
*/
|
|
433
|
+
public final static class SetterlessProperty
|
|
434
|
+
extends SettableBeanProperty
|
|
435
|
+
{
|
|
436
|
+
protected final AnnotatedMethod _annotated;
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* Get method for accessing property value used to access property
|
|
440
|
+
* (of Collection or Map type) to modify.
|
|
441
|
+
*/
|
|
442
|
+
protected final Method _getter;
|
|
443
|
+
|
|
444
|
+
public SetterlessProperty(String name, JavaType type, TypeDeserializer typeDeser,
|
|
445
|
+
Annotations contextAnnotations, AnnotatedMethod method)
|
|
446
|
+
{
|
|
447
|
+
super(name, type, typeDeser, contextAnnotations);
|
|
448
|
+
_annotated = method;
|
|
449
|
+
_getter = method.getAnnotated();
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
protected SetterlessProperty(SetterlessProperty src, JsonDeserializer<Object> deser) {
|
|
453
|
+
super(src, deser);
|
|
454
|
+
_annotated = src._annotated;
|
|
455
|
+
_getter = src._getter;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
@Override
|
|
459
|
+
public SetterlessProperty withValueDeserializer(JsonDeserializer<Object> deser) {
|
|
460
|
+
return new SetterlessProperty(this, deser);
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/*
|
|
464
|
+
/**********************************************************
|
|
465
|
+
/* BeanProperty impl
|
|
466
|
+
/**********************************************************
|
|
467
|
+
*/
|
|
468
|
+
|
|
469
|
+
@Override
|
|
470
|
+
public <A extends Annotation> A getAnnotation(Class<A> acls) {
|
|
471
|
+
return _annotated.getAnnotation(acls);
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
@Override public AnnotatedMember getMember() { return _annotated; }
|
|
475
|
+
|
|
476
|
+
/*
|
|
477
|
+
/**********************************************************
|
|
478
|
+
/* Overridden methods
|
|
479
|
+
/**********************************************************
|
|
480
|
+
*/
|
|
481
|
+
|
|
482
|
+
@Override
|
|
483
|
+
public final void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
|
|
484
|
+
Object instance)
|
|
485
|
+
throws IOException, JsonProcessingException
|
|
486
|
+
{
|
|
487
|
+
JsonToken t = jp.getCurrentToken();
|
|
488
|
+
if (t == JsonToken.VALUE_NULL) {
|
|
489
|
+
/* Hmmh. Is this a problem? We won't be setting anything, so it's
|
|
490
|
+
* equivalent of empty Collection/Map in this case
|
|
491
|
+
*/
|
|
492
|
+
return;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
// Ok: then, need to fetch Collection/Map to modify:
|
|
496
|
+
Object toModify;
|
|
497
|
+
try {
|
|
498
|
+
toModify = _getter.invoke(instance);
|
|
499
|
+
} catch (Exception e) {
|
|
500
|
+
_throwAsIOE(e);
|
|
501
|
+
return; // never gets here
|
|
502
|
+
}
|
|
503
|
+
/* Note: null won't work, since we can't then inject anything
|
|
504
|
+
* in. At least that's not good in common case. However,
|
|
505
|
+
* theoretically the case where we get JSON null might
|
|
506
|
+
* be compatible. If so, implementation could be changed.
|
|
507
|
+
*/
|
|
508
|
+
if (toModify == null) {
|
|
509
|
+
throw new JsonMappingException("Problem deserializing 'setterless' property '"+getName()+"': get method returned null");
|
|
510
|
+
}
|
|
511
|
+
_valueDeserializer.deserialize(jp, ctxt, toModify);
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
@Override
|
|
515
|
+
public final void set(Object instance, Object value)
|
|
516
|
+
throws IOException
|
|
517
|
+
{
|
|
518
|
+
throw new UnsupportedOperationException("Should never call 'set' on setterless property");
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
/**
|
|
523
|
+
* This concrete sub-class implements property that is set
|
|
524
|
+
* directly assigning to a Field.
|
|
525
|
+
*/
|
|
526
|
+
public final static class FieldProperty
|
|
527
|
+
extends SettableBeanProperty
|
|
528
|
+
{
|
|
529
|
+
protected final AnnotatedField _annotated;
|
|
530
|
+
|
|
531
|
+
/**
|
|
532
|
+
* Actual field to set when deserializing this property.
|
|
533
|
+
*/
|
|
534
|
+
protected final Field _field;
|
|
535
|
+
|
|
536
|
+
public FieldProperty(String name, JavaType type, TypeDeserializer typeDeser,
|
|
537
|
+
Annotations contextAnnotations, AnnotatedField field)
|
|
538
|
+
{
|
|
539
|
+
super(name, type, typeDeser, contextAnnotations);
|
|
540
|
+
_annotated = field;
|
|
541
|
+
_field = field.getAnnotated();
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
protected FieldProperty(FieldProperty src, JsonDeserializer<Object> deser) {
|
|
545
|
+
super(src, deser);
|
|
546
|
+
_annotated = src._annotated;
|
|
547
|
+
_field = src._field;
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
@Override
|
|
551
|
+
public FieldProperty withValueDeserializer(JsonDeserializer<Object> deser) {
|
|
552
|
+
return new FieldProperty(this, deser);
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
/*
|
|
556
|
+
/**********************************************************
|
|
557
|
+
/* BeanProperty impl
|
|
558
|
+
/**********************************************************
|
|
559
|
+
*/
|
|
560
|
+
|
|
561
|
+
@Override
|
|
562
|
+
public <A extends Annotation> A getAnnotation(Class<A> acls) {
|
|
563
|
+
return _annotated.getAnnotation(acls);
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
@Override public AnnotatedMember getMember() { return _annotated; }
|
|
567
|
+
|
|
568
|
+
/*
|
|
569
|
+
/**********************************************************
|
|
570
|
+
/* Overridden methods
|
|
571
|
+
/**********************************************************
|
|
572
|
+
*/
|
|
573
|
+
|
|
574
|
+
@Override
|
|
575
|
+
public void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
|
|
576
|
+
Object instance)
|
|
577
|
+
throws IOException, JsonProcessingException
|
|
578
|
+
{
|
|
579
|
+
set(instance, deserialize(jp, ctxt));
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
@Override
|
|
583
|
+
public final void set(Object instance, Object value)
|
|
584
|
+
throws IOException
|
|
585
|
+
{
|
|
586
|
+
try {
|
|
587
|
+
_field.set(instance, value);
|
|
588
|
+
} catch (Exception e) {
|
|
589
|
+
_throwAsIOE(e, value);
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
/**
|
|
595
|
+
* Wrapper property that is used to handle managed (forward) properties
|
|
596
|
+
* (see [JACKSON-235] for more information). Basically just need to
|
|
597
|
+
* delegate first to actual forward property, and
|
|
598
|
+
*
|
|
599
|
+
* @author tatu
|
|
600
|
+
*/
|
|
601
|
+
public final static class ManagedReferenceProperty
|
|
602
|
+
extends SettableBeanProperty
|
|
603
|
+
{
|
|
604
|
+
protected final String _referenceName;
|
|
605
|
+
|
|
606
|
+
/**
|
|
607
|
+
* Flag that indicates whether property to handle is a container type
|
|
608
|
+
* (array, Collection, Map) or not.
|
|
609
|
+
*/
|
|
610
|
+
protected final boolean _isContainer;
|
|
611
|
+
|
|
612
|
+
protected final SettableBeanProperty _managedProperty;
|
|
613
|
+
|
|
614
|
+
protected final SettableBeanProperty _backProperty;
|
|
615
|
+
|
|
616
|
+
public ManagedReferenceProperty(String refName,
|
|
617
|
+
SettableBeanProperty forward, SettableBeanProperty backward,
|
|
618
|
+
Annotations contextAnnotations,
|
|
619
|
+
boolean isContainer)
|
|
620
|
+
{
|
|
621
|
+
super(forward.getName(), forward.getType(), forward._valueTypeDeserializer,
|
|
622
|
+
contextAnnotations);
|
|
623
|
+
_referenceName = refName;
|
|
624
|
+
_managedProperty = forward;
|
|
625
|
+
_backProperty = backward;
|
|
626
|
+
_isContainer = isContainer;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
protected ManagedReferenceProperty(ManagedReferenceProperty src, JsonDeserializer<Object> deser)
|
|
630
|
+
{
|
|
631
|
+
super(src, deser);
|
|
632
|
+
_referenceName = src._referenceName;
|
|
633
|
+
_isContainer = src._isContainer;
|
|
634
|
+
_managedProperty = src._managedProperty;
|
|
635
|
+
_backProperty = src._backProperty;
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
@Override
|
|
639
|
+
public ManagedReferenceProperty withValueDeserializer(JsonDeserializer<Object> deser) {
|
|
640
|
+
return new ManagedReferenceProperty(this, deser);
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
/*
|
|
644
|
+
/**********************************************************
|
|
645
|
+
/* BeanProperty impl
|
|
646
|
+
/**********************************************************
|
|
647
|
+
*/
|
|
648
|
+
|
|
649
|
+
@Override
|
|
650
|
+
public <A extends Annotation> A getAnnotation(Class<A> acls) {
|
|
651
|
+
return _managedProperty.getAnnotation(acls);
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
@Override public AnnotatedMember getMember() { return _managedProperty.getMember(); }
|
|
655
|
+
|
|
656
|
+
/*
|
|
657
|
+
/**********************************************************
|
|
658
|
+
/* Overridden methods
|
|
659
|
+
/**********************************************************
|
|
660
|
+
*/
|
|
661
|
+
|
|
662
|
+
@Override
|
|
663
|
+
public void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
|
|
664
|
+
Object instance)
|
|
665
|
+
throws IOException, JsonProcessingException
|
|
666
|
+
{
|
|
667
|
+
set(instance, _managedProperty.deserialize(jp, ctxt));
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
@Override
|
|
671
|
+
public final void set(Object instance, Object value)
|
|
672
|
+
throws IOException
|
|
673
|
+
{
|
|
674
|
+
_managedProperty.set(instance, value);
|
|
675
|
+
/* And then back reference, if (and only if!) we actually have a non-null
|
|
676
|
+
* reference
|
|
677
|
+
*/
|
|
678
|
+
if (value != null) {
|
|
679
|
+
if (_isContainer) { // ok, this gets ugly... but has to do for now
|
|
680
|
+
if (value instanceof Object[]) {
|
|
681
|
+
for (Object ob : (Object[]) value) {
|
|
682
|
+
if (ob != null) {
|
|
683
|
+
_backProperty.set(ob, instance);
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
} else if (value instanceof Collection<?>) {
|
|
687
|
+
for (Object ob : (Collection<?>) value) {
|
|
688
|
+
if (ob != null) {
|
|
689
|
+
_backProperty.set(ob, instance);
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
} else if (value instanceof Map<?,?>) {
|
|
693
|
+
for (Object ob : ((Map<?,?>) value).values()) {
|
|
694
|
+
if (ob != null) {
|
|
695
|
+
_backProperty.set(ob, instance);
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
} else {
|
|
699
|
+
throw new IllegalStateException("Unsupported container type ("+value.getClass().getName()
|
|
700
|
+
+") when resolving reference '"+_referenceName+"'");
|
|
701
|
+
}
|
|
702
|
+
} else {
|
|
703
|
+
_backProperty.set(value, instance);
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
/**
|
|
710
|
+
* This sub-class is used to handle special case of value being a
|
|
711
|
+
* non-static inner class. If so, we will have to use a special
|
|
712
|
+
* alternative for default constructor; but otherwise can delegate
|
|
713
|
+
* to regular implementation.
|
|
714
|
+
*
|
|
715
|
+
* @since 1.9
|
|
716
|
+
*/
|
|
717
|
+
public final static class InnerClassProperty
|
|
718
|
+
extends SettableBeanProperty
|
|
719
|
+
{
|
|
720
|
+
/**
|
|
721
|
+
* Actual property that we use after value construction.
|
|
722
|
+
*/
|
|
723
|
+
protected final SettableBeanProperty _delegate;
|
|
724
|
+
|
|
725
|
+
/**
|
|
726
|
+
* Single-arg constructor we use for value instantiation.
|
|
727
|
+
*/
|
|
728
|
+
protected final Constructor<?> _creator;
|
|
729
|
+
|
|
730
|
+
public InnerClassProperty(SettableBeanProperty delegate,
|
|
731
|
+
Constructor<?> ctor)
|
|
732
|
+
{
|
|
733
|
+
super(delegate);
|
|
734
|
+
_delegate = delegate;
|
|
735
|
+
_creator = ctor;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
protected InnerClassProperty(InnerClassProperty src, JsonDeserializer<Object> deser)
|
|
739
|
+
{
|
|
740
|
+
super(src, deser);
|
|
741
|
+
_delegate = src._delegate.withValueDeserializer(deser);
|
|
742
|
+
_creator = src._creator;
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
@Override
|
|
746
|
+
public InnerClassProperty withValueDeserializer(JsonDeserializer<Object> deser) {
|
|
747
|
+
return new InnerClassProperty(this, deser);
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
// // // BeanProperty impl
|
|
751
|
+
|
|
752
|
+
@Override
|
|
753
|
+
public <A extends Annotation> A getAnnotation(Class<A> acls) {
|
|
754
|
+
return _delegate.getAnnotation(acls);
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
@Override public AnnotatedMember getMember() { return _delegate.getMember(); }
|
|
758
|
+
|
|
759
|
+
// // // Overridden methods
|
|
760
|
+
|
|
761
|
+
@Override
|
|
762
|
+
public void deserializeAndSet(JsonParser jp, DeserializationContext ctxt,
|
|
763
|
+
Object bean)
|
|
764
|
+
throws IOException, JsonProcessingException
|
|
765
|
+
{
|
|
766
|
+
// mostly copied from super class impl:
|
|
767
|
+
JsonToken t = jp.getCurrentToken();
|
|
768
|
+
Object value;
|
|
769
|
+
if (t == JsonToken.VALUE_NULL) {
|
|
770
|
+
value = (_nullProvider == null) ? null : _nullProvider.nullValue(ctxt);
|
|
771
|
+
} else if (_valueTypeDeserializer != null) {
|
|
772
|
+
value = _valueDeserializer.deserializeWithType(jp, ctxt, _valueTypeDeserializer);
|
|
773
|
+
} else { // the usual case
|
|
774
|
+
try {
|
|
775
|
+
value = _creator.newInstance(bean);
|
|
776
|
+
} catch (Exception e) {
|
|
777
|
+
ClassUtil.unwrapAndThrowAsIAE(e, "Failed to instantiate class "+_creator.getDeclaringClass().getName()+", problem: "+e.getMessage());
|
|
778
|
+
value = null;
|
|
779
|
+
}
|
|
780
|
+
_valueDeserializer.deserialize(jp, ctxt, value);
|
|
781
|
+
}
|
|
782
|
+
set(bean, value);
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
@Override
|
|
786
|
+
public final void set(Object instance, Object value) throws IOException
|
|
787
|
+
{
|
|
788
|
+
_delegate.set(instance, value);
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
/*
|
|
793
|
+
/**********************************************************
|
|
794
|
+
/* Other helper classes
|
|
795
|
+
/**********************************************************
|
|
796
|
+
*/
|
|
797
|
+
|
|
798
|
+
/**
|
|
799
|
+
* To support [JACKSON-420] we need bit more indirection; this is used to produce
|
|
800
|
+
* artificial failure for primitives that don't accept JSON null as value.
|
|
801
|
+
*/
|
|
802
|
+
protected final static class NullProvider
|
|
803
|
+
{
|
|
804
|
+
private final Object _nullValue;
|
|
805
|
+
|
|
806
|
+
private final boolean _isPrimitive;
|
|
807
|
+
|
|
808
|
+
private final Class<?> _rawType;
|
|
809
|
+
|
|
810
|
+
protected NullProvider(JavaType type, Object nullValue)
|
|
811
|
+
{
|
|
812
|
+
_nullValue = nullValue;
|
|
813
|
+
// [JACKSON-420]
|
|
814
|
+
_isPrimitive = type.isPrimitive();
|
|
815
|
+
_rawType = type.getRawClass();
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
public Object nullValue(DeserializationContext ctxt) throws JsonProcessingException
|
|
819
|
+
{
|
|
820
|
+
if (_isPrimitive && ctxt.isEnabled(DeserializationConfig.Feature.FAIL_ON_NULL_FOR_PRIMITIVES)) {
|
|
821
|
+
throw ctxt.mappingException("Can not map JSON null into type "+_rawType.getName()
|
|
822
|
+
+" (set DeserializationConfig.Feature.FAIL_ON_NULL_FOR_PRIMITIVES to 'false' to allow)");
|
|
823
|
+
}
|
|
824
|
+
return _nullValue;
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
}
|