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,364 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.introspect;
|
|
2
|
+
|
|
3
|
+
import java.lang.reflect.Method;
|
|
4
|
+
import java.lang.reflect.Modifier;
|
|
5
|
+
import java.util.*;
|
|
6
|
+
|
|
7
|
+
import sh.calaba.org.codehaus.jackson.map.AnnotationIntrospector;
|
|
8
|
+
import sh.calaba.org.codehaus.jackson.map.ClassIntrospector;
|
|
9
|
+
import sh.calaba.org.codehaus.jackson.map.DeserializationConfig;
|
|
10
|
+
import sh.calaba.org.codehaus.jackson.map.MapperConfig;
|
|
11
|
+
import sh.calaba.org.codehaus.jackson.map.SerializationConfig;
|
|
12
|
+
import sh.calaba.org.codehaus.jackson.map.type.SimpleType;
|
|
13
|
+
import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
|
|
14
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
|
15
|
+
|
|
16
|
+
public class BasicClassIntrospector
|
|
17
|
+
extends ClassIntrospector<BasicBeanDescription>
|
|
18
|
+
{
|
|
19
|
+
/* We keep a small set of pre-constructed descriptions to use for
|
|
20
|
+
* common non-structured values, such as Numbers and Strings.
|
|
21
|
+
* This is strictly performance optimization to reduce what is
|
|
22
|
+
* usually one-time cost, but seems useful for some cases considering
|
|
23
|
+
* simplicity.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
protected final static BasicBeanDescription STRING_DESC;
|
|
27
|
+
static {
|
|
28
|
+
AnnotatedClass ac = AnnotatedClass.constructWithoutSuperTypes(String.class, null, null);
|
|
29
|
+
STRING_DESC = BasicBeanDescription.forOtherUse(null, SimpleType.constructUnsafe(String.class), ac);
|
|
30
|
+
}
|
|
31
|
+
protected final static BasicBeanDescription BOOLEAN_DESC;
|
|
32
|
+
static {
|
|
33
|
+
AnnotatedClass ac = AnnotatedClass.constructWithoutSuperTypes(Boolean.TYPE, null, null);
|
|
34
|
+
BOOLEAN_DESC = BasicBeanDescription.forOtherUse(null, SimpleType.constructUnsafe(Boolean.TYPE), ac);
|
|
35
|
+
}
|
|
36
|
+
protected final static BasicBeanDescription INT_DESC;
|
|
37
|
+
static {
|
|
38
|
+
AnnotatedClass ac = AnnotatedClass.constructWithoutSuperTypes(Integer.TYPE, null, null);
|
|
39
|
+
INT_DESC = BasicBeanDescription.forOtherUse(null, SimpleType.constructUnsafe(Integer.TYPE), ac);
|
|
40
|
+
}
|
|
41
|
+
protected final static BasicBeanDescription LONG_DESC;
|
|
42
|
+
static {
|
|
43
|
+
AnnotatedClass ac = AnnotatedClass.constructWithoutSuperTypes(Long.TYPE, null, null);
|
|
44
|
+
LONG_DESC = BasicBeanDescription.forOtherUse(null, SimpleType.constructUnsafe(Long.TYPE), ac);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
// // // Then static filter singletons
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @since 1.8
|
|
52
|
+
* @deprecated Since 1.9 just don't use
|
|
53
|
+
*/
|
|
54
|
+
@Deprecated
|
|
55
|
+
public final static GetterMethodFilter DEFAULT_GETTER_FILTER = new GetterMethodFilter();
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @since 1.8
|
|
59
|
+
* @deprecated Since 1.9 just don't use
|
|
60
|
+
*/
|
|
61
|
+
@Deprecated
|
|
62
|
+
public final static SetterMethodFilter DEFAULT_SETTER_FILTER = new SetterMethodFilter();
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @since 1.8
|
|
66
|
+
* @deprecated Since 1.9 just don't use
|
|
67
|
+
*/
|
|
68
|
+
@Deprecated
|
|
69
|
+
public final static SetterAndGetterMethodFilter DEFAULT_SETTER_AND_GETTER_FILTER = new SetterAndGetterMethodFilter();
|
|
70
|
+
|
|
71
|
+
protected final static MethodFilter MINIMAL_FILTER = new MinimalMethodFilter();
|
|
72
|
+
|
|
73
|
+
/*
|
|
74
|
+
/**********************************************************
|
|
75
|
+
/* Life cycle
|
|
76
|
+
/**********************************************************
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
public final static BasicClassIntrospector instance = new BasicClassIntrospector();
|
|
80
|
+
|
|
81
|
+
public BasicClassIntrospector() { }
|
|
82
|
+
|
|
83
|
+
/*
|
|
84
|
+
/**********************************************************
|
|
85
|
+
/* Factory method impls
|
|
86
|
+
/**********************************************************
|
|
87
|
+
*/
|
|
88
|
+
|
|
89
|
+
@Override
|
|
90
|
+
public BasicBeanDescription forSerialization(SerializationConfig cfg,
|
|
91
|
+
JavaType type, MixInResolver r)
|
|
92
|
+
{
|
|
93
|
+
// minor optimization: for JDK types do minimal introspection
|
|
94
|
+
BasicBeanDescription desc = _findCachedDesc(type);
|
|
95
|
+
if (desc == null) {
|
|
96
|
+
desc = BasicBeanDescription.forSerialization(collectProperties(cfg, type, r, true));
|
|
97
|
+
}
|
|
98
|
+
return desc;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
@Override
|
|
102
|
+
public BasicBeanDescription forDeserialization(DeserializationConfig cfg,
|
|
103
|
+
JavaType type, MixInResolver r)
|
|
104
|
+
{
|
|
105
|
+
// minor optimization: for JDK types do minimal introspection
|
|
106
|
+
BasicBeanDescription desc = _findCachedDesc(type);
|
|
107
|
+
if (desc == null) {
|
|
108
|
+
desc = BasicBeanDescription.forDeserialization(collectProperties(cfg, type, r, false));
|
|
109
|
+
}
|
|
110
|
+
return desc;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@Override
|
|
114
|
+
public BasicBeanDescription forCreation(DeserializationConfig cfg,
|
|
115
|
+
JavaType type, MixInResolver r)
|
|
116
|
+
{
|
|
117
|
+
BasicBeanDescription desc = _findCachedDesc(type);
|
|
118
|
+
if (desc == null) {
|
|
119
|
+
desc = BasicBeanDescription.forDeserialization(collectProperties(cfg, type, r, false));
|
|
120
|
+
}
|
|
121
|
+
return desc;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@Override
|
|
125
|
+
public BasicBeanDescription forClassAnnotations(MapperConfig<?> cfg,
|
|
126
|
+
JavaType type, MixInResolver r)
|
|
127
|
+
{
|
|
128
|
+
boolean useAnnotations = cfg.isAnnotationProcessingEnabled();
|
|
129
|
+
AnnotationIntrospector ai = cfg.getAnnotationIntrospector();
|
|
130
|
+
AnnotatedClass ac = AnnotatedClass.construct(type.getRawClass(), (useAnnotations ? ai : null), r);
|
|
131
|
+
return BasicBeanDescription.forOtherUse(cfg, type, ac);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
@Override
|
|
135
|
+
public BasicBeanDescription forDirectClassAnnotations(MapperConfig<?> cfg,
|
|
136
|
+
JavaType type, MixInResolver r)
|
|
137
|
+
{
|
|
138
|
+
boolean useAnnotations = cfg.isAnnotationProcessingEnabled();
|
|
139
|
+
AnnotationIntrospector ai = cfg.getAnnotationIntrospector();
|
|
140
|
+
AnnotatedClass ac = AnnotatedClass.constructWithoutSuperTypes(type.getRawClass(),
|
|
141
|
+
(useAnnotations ? ai : null), r);
|
|
142
|
+
return BasicBeanDescription.forOtherUse(cfg, type, ac);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/*
|
|
146
|
+
/**********************************************************
|
|
147
|
+
/* Overridable helper methods
|
|
148
|
+
/**********************************************************
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* @since 1.9
|
|
153
|
+
*/
|
|
154
|
+
public POJOPropertiesCollector collectProperties(MapperConfig<?> config,
|
|
155
|
+
JavaType type, MixInResolver r, boolean forSerialization)
|
|
156
|
+
{
|
|
157
|
+
AnnotatedClass ac = classWithCreators(config, type, r);
|
|
158
|
+
ac.resolveMemberMethods(MINIMAL_FILTER);
|
|
159
|
+
ac.resolveFields();
|
|
160
|
+
return constructPropertyCollector(config, ac, type, forSerialization).collect();
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Overridable method called for creating {@link POJOPropertiesCollector} instance
|
|
165
|
+
* to use; override is needed if a custom sub-class is to be used.
|
|
166
|
+
*
|
|
167
|
+
* @since 1.9
|
|
168
|
+
*/
|
|
169
|
+
protected POJOPropertiesCollector constructPropertyCollector(MapperConfig<?> config,
|
|
170
|
+
AnnotatedClass ac, JavaType type,
|
|
171
|
+
boolean forSerialization)
|
|
172
|
+
{
|
|
173
|
+
return new POJOPropertiesCollector(config, forSerialization, type, ac);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* @since 1.9
|
|
178
|
+
*/
|
|
179
|
+
public AnnotatedClass classWithCreators(MapperConfig<?> config,
|
|
180
|
+
JavaType type, MixInResolver r)
|
|
181
|
+
{
|
|
182
|
+
boolean useAnnotations = config.isAnnotationProcessingEnabled();
|
|
183
|
+
AnnotationIntrospector ai = config.getAnnotationIntrospector();
|
|
184
|
+
AnnotatedClass ac = AnnotatedClass.construct(type.getRawClass(), (useAnnotations ? ai : null), r);
|
|
185
|
+
ac.resolveMemberMethods(MINIMAL_FILTER);
|
|
186
|
+
// true -> include all creators, not just default constructor
|
|
187
|
+
ac.resolveCreators(true);
|
|
188
|
+
return ac;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Method called to see if type is one of core JDK types
|
|
193
|
+
* that we have cached for efficiency.
|
|
194
|
+
*
|
|
195
|
+
* @since 1.9
|
|
196
|
+
*/
|
|
197
|
+
protected BasicBeanDescription _findCachedDesc(JavaType type)
|
|
198
|
+
{
|
|
199
|
+
Class<?> cls = type.getRawClass();
|
|
200
|
+
if (cls == String.class) {
|
|
201
|
+
return STRING_DESC;
|
|
202
|
+
}
|
|
203
|
+
if (cls == Boolean.TYPE) {
|
|
204
|
+
return BOOLEAN_DESC;
|
|
205
|
+
}
|
|
206
|
+
if (cls == Integer.TYPE) {
|
|
207
|
+
return INT_DESC;
|
|
208
|
+
}
|
|
209
|
+
if (cls == Long.TYPE) {
|
|
210
|
+
return LONG_DESC;
|
|
211
|
+
}
|
|
212
|
+
return null;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Helper method for getting access to filter that only guarantees
|
|
217
|
+
* that methods used for serialization are to be included.
|
|
218
|
+
*
|
|
219
|
+
* @deprecated Since 1.9 just don't use
|
|
220
|
+
*/
|
|
221
|
+
@Deprecated
|
|
222
|
+
protected MethodFilter getSerializationMethodFilter(SerializationConfig cfg)
|
|
223
|
+
{
|
|
224
|
+
return DEFAULT_GETTER_FILTER;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Helper method for getting access to filter that only guarantees
|
|
229
|
+
* that methods used for deserialization are to be included.
|
|
230
|
+
*
|
|
231
|
+
* @deprecated Since 1.9 just don't use
|
|
232
|
+
*/
|
|
233
|
+
@Deprecated
|
|
234
|
+
protected MethodFilter getDeserializationMethodFilter(DeserializationConfig cfg)
|
|
235
|
+
{
|
|
236
|
+
/* [JACKSON-88]: may also need to include getters (at least for
|
|
237
|
+
* Collection and Map types)
|
|
238
|
+
*/
|
|
239
|
+
if (cfg.isEnabled(DeserializationConfig.Feature.USE_GETTERS_AS_SETTERS)) {
|
|
240
|
+
return DEFAULT_SETTER_AND_GETTER_FILTER;
|
|
241
|
+
|
|
242
|
+
}
|
|
243
|
+
return DEFAULT_SETTER_FILTER;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/*
|
|
247
|
+
/**********************************************************
|
|
248
|
+
/* Helper classes
|
|
249
|
+
/**********************************************************
|
|
250
|
+
*/
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Going forward, we will only do very minimal filtering;
|
|
254
|
+
* mostly just gets rid of static methods really.
|
|
255
|
+
*
|
|
256
|
+
* @since 1.9
|
|
257
|
+
*/
|
|
258
|
+
private static class MinimalMethodFilter
|
|
259
|
+
implements MethodFilter
|
|
260
|
+
{
|
|
261
|
+
@Override
|
|
262
|
+
public boolean includeMethod(Method m)
|
|
263
|
+
{
|
|
264
|
+
if (Modifier.isStatic(m.getModifiers())) {
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
267
|
+
int pcount = m.getParameterTypes().length;
|
|
268
|
+
return (pcount <= 2);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* Filter used to only include methods that have signature that is
|
|
274
|
+
* compatible with "getters": take no arguments, are non-static,
|
|
275
|
+
* and return something.
|
|
276
|
+
*
|
|
277
|
+
* @deprecated Since 1.9 just don't use
|
|
278
|
+
*/
|
|
279
|
+
@Deprecated
|
|
280
|
+
public static class GetterMethodFilter
|
|
281
|
+
implements MethodFilter
|
|
282
|
+
{
|
|
283
|
+
private GetterMethodFilter() { }
|
|
284
|
+
|
|
285
|
+
@Override
|
|
286
|
+
public boolean includeMethod(Method m)
|
|
287
|
+
{
|
|
288
|
+
return ClassUtil.hasGetterSignature(m);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Filter used to only include methods that have signature that is
|
|
294
|
+
* compatible with "setters": take one and only argument and
|
|
295
|
+
* are non-static.
|
|
296
|
+
*<p>
|
|
297
|
+
* Actually, also need to include 2-arg methods to support
|
|
298
|
+
* "any setters"; as well as 0-arg getters as long as they
|
|
299
|
+
* return Collection or Map type.
|
|
300
|
+
*
|
|
301
|
+
* @deprecated Since 1.9 just don't use
|
|
302
|
+
*/
|
|
303
|
+
@Deprecated
|
|
304
|
+
public static class SetterMethodFilter
|
|
305
|
+
implements MethodFilter
|
|
306
|
+
{
|
|
307
|
+
@Override
|
|
308
|
+
public boolean includeMethod(Method m)
|
|
309
|
+
{
|
|
310
|
+
// First: we can't use static methods
|
|
311
|
+
if (Modifier.isStatic(m.getModifiers())) {
|
|
312
|
+
return false;
|
|
313
|
+
}
|
|
314
|
+
int pcount = m.getParameterTypes().length;
|
|
315
|
+
// Ok; multiple acceptable parameter counts:
|
|
316
|
+
switch (pcount) {
|
|
317
|
+
case 1:
|
|
318
|
+
// Regular setters take just one param, so include:
|
|
319
|
+
return true;
|
|
320
|
+
case 2:
|
|
321
|
+
/* 2-arg version only for "AnySetters"; they are not
|
|
322
|
+
* auto-detected, and need to have an annotation.
|
|
323
|
+
* However, due to annotation inheritance we do, we
|
|
324
|
+
* don't yet know if sub-classes might have annotations...
|
|
325
|
+
* so shouldn't leave out any methods quite yet.
|
|
326
|
+
*/
|
|
327
|
+
//if (m.getAnnotation(JsonAnySetter.class) != null) { ... }
|
|
328
|
+
|
|
329
|
+
return true;
|
|
330
|
+
}
|
|
331
|
+
return false;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Filter used if some getters (namely, once needed for "setterless
|
|
337
|
+
* collection injection") are also needed, not just setters.
|
|
338
|
+
*
|
|
339
|
+
* @deprecated Since 1.9 just don't use
|
|
340
|
+
*/
|
|
341
|
+
@Deprecated
|
|
342
|
+
public final static class SetterAndGetterMethodFilter
|
|
343
|
+
extends SetterMethodFilter
|
|
344
|
+
{
|
|
345
|
+
@SuppressWarnings("deprecation")
|
|
346
|
+
@Override
|
|
347
|
+
public boolean includeMethod(Method m)
|
|
348
|
+
{
|
|
349
|
+
if (super.includeMethod(m)) {
|
|
350
|
+
return true;
|
|
351
|
+
}
|
|
352
|
+
if (!ClassUtil.hasGetterSignature(m)) {
|
|
353
|
+
return false;
|
|
354
|
+
}
|
|
355
|
+
// but furthermore, only accept Collections & Maps, for now
|
|
356
|
+
Class<?> rt = m.getReturnType();
|
|
357
|
+
if (Collection.class.isAssignableFrom(rt)
|
|
358
|
+
|| Map.class.isAssignableFrom(rt)) {
|
|
359
|
+
return true;
|
|
360
|
+
}
|
|
361
|
+
return false;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
@@ -0,0 +1,813 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.introspect;
|
|
2
|
+
|
|
3
|
+
import java.lang.annotation.Annotation;
|
|
4
|
+
import java.util.ArrayList;
|
|
5
|
+
import java.util.List;
|
|
6
|
+
|
|
7
|
+
import sh.calaba.org.codehaus.jackson.annotate.*;
|
|
8
|
+
import sh.calaba.org.codehaus.jackson.map.*;
|
|
9
|
+
import sh.calaba.org.codehaus.jackson.map.annotate.*;
|
|
10
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.NamedType;
|
|
11
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.TypeIdResolver;
|
|
12
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.TypeResolverBuilder;
|
|
13
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.impl.StdTypeResolverBuilder;
|
|
14
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.RawSerializer;
|
|
15
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* {@link AnnotationIntrospector} implementation that handles standard
|
|
19
|
+
* Jackson annotations.
|
|
20
|
+
*/
|
|
21
|
+
public class JacksonAnnotationIntrospector
|
|
22
|
+
extends AnnotationIntrospector
|
|
23
|
+
{
|
|
24
|
+
public JacksonAnnotationIntrospector() { }
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
/**********************************************************
|
|
28
|
+
/* General annotation properties
|
|
29
|
+
/**********************************************************
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
@Override
|
|
33
|
+
public boolean isHandled(Annotation ann)
|
|
34
|
+
{
|
|
35
|
+
Class<? extends Annotation> acls = ann.annotationType();
|
|
36
|
+
|
|
37
|
+
/* 16-May-2009, tatu: used to check this like so...
|
|
38
|
+
final String JACKSON_PKG_PREFIX = "sh.calaba.org.codehaus.jackson";
|
|
39
|
+
|
|
40
|
+
Package pkg = acls.getPackage();
|
|
41
|
+
return (pkg != null) && (pkg.getName().startsWith(JACKSON_PKG_PREFIX));
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
// but this is more reliable, now that we have tag annotation:
|
|
45
|
+
return acls.getAnnotation(JacksonAnnotation.class) != null;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/*
|
|
49
|
+
/**********************************************************
|
|
50
|
+
/* General annotations
|
|
51
|
+
/**********************************************************
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
@Override
|
|
55
|
+
public String findEnumValue(Enum<?> value)
|
|
56
|
+
{
|
|
57
|
+
return value.name();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/*
|
|
61
|
+
/**********************************************************
|
|
62
|
+
/* General class annotations
|
|
63
|
+
/**********************************************************
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
@Override
|
|
67
|
+
public Boolean findCachability(AnnotatedClass ac)
|
|
68
|
+
{
|
|
69
|
+
JsonCachable ann = ac.getAnnotation(JsonCachable.class);
|
|
70
|
+
if (ann == null) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
return ann.value() ? Boolean.TRUE : Boolean.FALSE;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@Override
|
|
77
|
+
public String findRootName(AnnotatedClass ac)
|
|
78
|
+
{
|
|
79
|
+
JsonRootName ann = ac.getAnnotation(JsonRootName.class);
|
|
80
|
+
return (ann == null) ? null : ann.value();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@Override
|
|
84
|
+
public String[] findPropertiesToIgnore(AnnotatedClass ac) {
|
|
85
|
+
JsonIgnoreProperties ignore = ac.getAnnotation(JsonIgnoreProperties.class);
|
|
86
|
+
return (ignore == null) ? null : ignore.value();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@Override
|
|
90
|
+
public Boolean findIgnoreUnknownProperties(AnnotatedClass ac) {
|
|
91
|
+
JsonIgnoreProperties ignore = ac.getAnnotation(JsonIgnoreProperties.class);
|
|
92
|
+
return (ignore == null) ? null : ignore.ignoreUnknown();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
@Override
|
|
96
|
+
public Boolean isIgnorableType(AnnotatedClass ac) {
|
|
97
|
+
JsonIgnoreType ignore = ac.getAnnotation(JsonIgnoreType.class);
|
|
98
|
+
return (ignore == null) ? null : ignore.value();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
@Override
|
|
102
|
+
public Object findFilterId(AnnotatedClass ac)
|
|
103
|
+
{
|
|
104
|
+
JsonFilter ann = ac.getAnnotation(JsonFilter.class);
|
|
105
|
+
if (ann != null) {
|
|
106
|
+
String id = ann.value();
|
|
107
|
+
// Empty String is same as not having annotation, to allow overrides
|
|
108
|
+
if (id.length() > 0) {
|
|
109
|
+
return id;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/*
|
|
116
|
+
/**********************************************************
|
|
117
|
+
/* Property auto-detection
|
|
118
|
+
/**********************************************************
|
|
119
|
+
*/
|
|
120
|
+
|
|
121
|
+
@Override
|
|
122
|
+
public VisibilityChecker<?> findAutoDetectVisibility(AnnotatedClass ac,
|
|
123
|
+
VisibilityChecker<?> checker)
|
|
124
|
+
{
|
|
125
|
+
JsonAutoDetect ann = ac.getAnnotation(JsonAutoDetect.class);
|
|
126
|
+
return (ann == null) ? checker : checker.with(ann);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/*
|
|
130
|
+
/**********************************************************
|
|
131
|
+
/* General member (field, method/constructor) annotations
|
|
132
|
+
/**********************************************************
|
|
133
|
+
*/
|
|
134
|
+
|
|
135
|
+
// @since 1.6
|
|
136
|
+
@Override
|
|
137
|
+
public ReferenceProperty findReferenceType(AnnotatedMember member)
|
|
138
|
+
{
|
|
139
|
+
JsonManagedReference ref1 = member.getAnnotation(JsonManagedReference.class);
|
|
140
|
+
if (ref1 != null) {
|
|
141
|
+
return AnnotationIntrospector.ReferenceProperty.managed(ref1.value());
|
|
142
|
+
}
|
|
143
|
+
JsonBackReference ref2 = member.getAnnotation(JsonBackReference.class);
|
|
144
|
+
if (ref2 != null) {
|
|
145
|
+
return AnnotationIntrospector.ReferenceProperty.back(ref2.value());
|
|
146
|
+
}
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
@Override
|
|
151
|
+
public Boolean shouldUnwrapProperty(AnnotatedMember member)
|
|
152
|
+
{
|
|
153
|
+
JsonUnwrapped ann = member.getAnnotation(JsonUnwrapped.class);
|
|
154
|
+
// if not enabled, just means annotation is not enabled; not necessarily
|
|
155
|
+
// that unwrapping should not be done (relevant when using chained introspectors)
|
|
156
|
+
return (ann != null && ann.enabled()) ? Boolean.TRUE : null;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
@Override
|
|
160
|
+
public boolean hasIgnoreMarker(AnnotatedMember m) {
|
|
161
|
+
return _isIgnorable(m);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
@Override
|
|
165
|
+
public Object findInjectableValueId(AnnotatedMember m)
|
|
166
|
+
{
|
|
167
|
+
JacksonInject ann = m.getAnnotation(JacksonInject.class);
|
|
168
|
+
if (ann == null) {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
/* Empty String means that we should use name of declared
|
|
172
|
+
* value class.
|
|
173
|
+
*/
|
|
174
|
+
String id = ann.value();
|
|
175
|
+
if (id.length() == 0) {
|
|
176
|
+
// slight complication; for setters, type
|
|
177
|
+
if (!(m instanceof AnnotatedMethod)) {
|
|
178
|
+
return m.getRawType().getName();
|
|
179
|
+
}
|
|
180
|
+
AnnotatedMethod am = (AnnotatedMethod) m;
|
|
181
|
+
if (am.getParameterCount() == 0) {
|
|
182
|
+
return m.getRawType().getName();
|
|
183
|
+
}
|
|
184
|
+
return am.getParameterClass(0).getName();
|
|
185
|
+
}
|
|
186
|
+
return id;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/*
|
|
190
|
+
/**********************************************************
|
|
191
|
+
/* Class annotations for PM type handling (1.5+)
|
|
192
|
+
/**********************************************************
|
|
193
|
+
*/
|
|
194
|
+
|
|
195
|
+
@Override
|
|
196
|
+
public TypeResolverBuilder<?> findTypeResolver(MapperConfig<?> config,
|
|
197
|
+
AnnotatedClass ac, JavaType baseType)
|
|
198
|
+
{
|
|
199
|
+
return _findTypeResolver(config, ac, baseType);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Since 1.7, it is possible to use {@link JsonTypeInfo} from a property too.
|
|
204
|
+
*/
|
|
205
|
+
@Override
|
|
206
|
+
public TypeResolverBuilder<?> findPropertyTypeResolver(MapperConfig<?> config,
|
|
207
|
+
AnnotatedMember am, JavaType baseType)
|
|
208
|
+
{
|
|
209
|
+
/* As per definition of @JsonTypeInfo, should only apply to contents of container
|
|
210
|
+
* (collection, map) types, not container types themselves:
|
|
211
|
+
*/
|
|
212
|
+
if (baseType.isContainerType()) return null;
|
|
213
|
+
// No per-member type overrides (yet)
|
|
214
|
+
return _findTypeResolver(config, am, baseType);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Since 1.7, it is possible to use {@link JsonTypeInfo} from a property too.
|
|
219
|
+
*/
|
|
220
|
+
@Override
|
|
221
|
+
public TypeResolverBuilder<?> findPropertyContentTypeResolver(MapperConfig<?> config,
|
|
222
|
+
AnnotatedMember am, JavaType containerType)
|
|
223
|
+
{
|
|
224
|
+
/* First: let's ensure property is a container type: caller should have
|
|
225
|
+
* verified but just to be sure
|
|
226
|
+
*/
|
|
227
|
+
if (!containerType.isContainerType()) {
|
|
228
|
+
throw new IllegalArgumentException("Must call method with a container type (got "+containerType+")");
|
|
229
|
+
}
|
|
230
|
+
return _findTypeResolver(config, am, containerType);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
@Override
|
|
234
|
+
public List<NamedType> findSubtypes(Annotated a)
|
|
235
|
+
{
|
|
236
|
+
JsonSubTypes t = a.getAnnotation(JsonSubTypes.class);
|
|
237
|
+
if (t == null) return null;
|
|
238
|
+
JsonSubTypes.Type[] types = t.value();
|
|
239
|
+
ArrayList<NamedType> result = new ArrayList<NamedType>(types.length);
|
|
240
|
+
for (JsonSubTypes.Type type : types) {
|
|
241
|
+
result.add(new NamedType(type.value(), type.name()));
|
|
242
|
+
}
|
|
243
|
+
return result;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
@Override
|
|
247
|
+
public String findTypeName(AnnotatedClass ac)
|
|
248
|
+
{
|
|
249
|
+
JsonTypeName tn = ac.getAnnotation(JsonTypeName.class);
|
|
250
|
+
return (tn == null) ? null : tn.value();
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/*
|
|
254
|
+
/**********************************************************
|
|
255
|
+
/* General method annotations
|
|
256
|
+
/**********************************************************
|
|
257
|
+
*/
|
|
258
|
+
|
|
259
|
+
@Override
|
|
260
|
+
public boolean isIgnorableMethod(AnnotatedMethod m) {
|
|
261
|
+
return _isIgnorable(m);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
@Override
|
|
265
|
+
public boolean isIgnorableConstructor(AnnotatedConstructor c) {
|
|
266
|
+
return _isIgnorable(c);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/*
|
|
270
|
+
/**********************************************************
|
|
271
|
+
/* General field annotations
|
|
272
|
+
/**********************************************************
|
|
273
|
+
*/
|
|
274
|
+
|
|
275
|
+
@Override
|
|
276
|
+
public boolean isIgnorableField(AnnotatedField f) {
|
|
277
|
+
return _isIgnorable(f);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/*
|
|
281
|
+
/**********************************************************
|
|
282
|
+
/* Serialization: general annotations
|
|
283
|
+
/**********************************************************
|
|
284
|
+
*/
|
|
285
|
+
|
|
286
|
+
@Override
|
|
287
|
+
public Object findSerializer(Annotated a)
|
|
288
|
+
{
|
|
289
|
+
/* 21-May-2009, tatu: Slight change; primary annotation is now
|
|
290
|
+
* @JsonSerialize; @JsonUseSerializer is deprecated
|
|
291
|
+
*/
|
|
292
|
+
JsonSerialize ann = a.getAnnotation(JsonSerialize.class);
|
|
293
|
+
if (ann != null) {
|
|
294
|
+
Class<? extends JsonSerializer<?>> serClass = ann.using();
|
|
295
|
+
if (serClass != JsonSerializer.None.class) {
|
|
296
|
+
return serClass;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/* 18-Oct-2010, tatu: [JACKSON-351] @JsonRawValue handled just here, for now;
|
|
301
|
+
* if we need to get raw indicator from other sources need to add
|
|
302
|
+
* separate accessor within {@link AnnotationIntrospector} interface.
|
|
303
|
+
*/
|
|
304
|
+
JsonRawValue annRaw = a.getAnnotation(JsonRawValue.class);
|
|
305
|
+
if ((annRaw != null) && annRaw.value()) {
|
|
306
|
+
// let's construct instance with nominal type:
|
|
307
|
+
Class<?> cls = a.getRawType();
|
|
308
|
+
return new RawSerializer<Object>(cls);
|
|
309
|
+
}
|
|
310
|
+
return null;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
@Override
|
|
314
|
+
public Class<? extends JsonSerializer<?>> findKeySerializer(Annotated a)
|
|
315
|
+
{
|
|
316
|
+
JsonSerialize ann = a.getAnnotation(JsonSerialize.class);
|
|
317
|
+
if (ann != null) {
|
|
318
|
+
Class<? extends JsonSerializer<?>> serClass = ann.keyUsing();
|
|
319
|
+
if (serClass != JsonSerializer.None.class) {
|
|
320
|
+
return serClass;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
return null;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
@Override
|
|
327
|
+
public Class<? extends JsonSerializer<?>> findContentSerializer(Annotated a)
|
|
328
|
+
{
|
|
329
|
+
JsonSerialize ann = a.getAnnotation(JsonSerialize.class);
|
|
330
|
+
if (ann != null) {
|
|
331
|
+
Class<? extends JsonSerializer<?>> serClass = ann.contentUsing();
|
|
332
|
+
if (serClass != JsonSerializer.None.class) {
|
|
333
|
+
return serClass;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
return null;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
@SuppressWarnings("deprecation")
|
|
340
|
+
@Override
|
|
341
|
+
public JsonSerialize.Inclusion findSerializationInclusion(Annotated a, JsonSerialize.Inclusion defValue)
|
|
342
|
+
{
|
|
343
|
+
JsonSerialize ann = a.getAnnotation(JsonSerialize.class);
|
|
344
|
+
if (ann != null) {
|
|
345
|
+
return ann.include();
|
|
346
|
+
}
|
|
347
|
+
/* 23-May-2009, tatu: Will still support now-deprecated (as of 1.1)
|
|
348
|
+
* legacy annotation too:
|
|
349
|
+
*/
|
|
350
|
+
JsonWriteNullProperties oldAnn = a.getAnnotation(JsonWriteNullProperties.class);
|
|
351
|
+
if (oldAnn != null) {
|
|
352
|
+
boolean writeNulls = oldAnn.value();
|
|
353
|
+
return writeNulls ? JsonSerialize.Inclusion.ALWAYS : JsonSerialize.Inclusion.NON_NULL;
|
|
354
|
+
}
|
|
355
|
+
return defValue;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
@Override
|
|
359
|
+
public Class<?> findSerializationType(Annotated am)
|
|
360
|
+
{
|
|
361
|
+
JsonSerialize ann = am.getAnnotation(JsonSerialize.class);
|
|
362
|
+
if (ann != null) {
|
|
363
|
+
Class<?> cls = ann.as();
|
|
364
|
+
if (cls != NoClass.class) {
|
|
365
|
+
return cls;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
return null;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
@Override
|
|
372
|
+
public Class<?> findSerializationKeyType(Annotated am, JavaType baseType)
|
|
373
|
+
{
|
|
374
|
+
JsonSerialize ann = am.getAnnotation(JsonSerialize.class);
|
|
375
|
+
if (ann != null) {
|
|
376
|
+
Class<?> cls = ann.keyAs();
|
|
377
|
+
if (cls != NoClass.class) {
|
|
378
|
+
return cls;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
return null;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
@Override
|
|
385
|
+
public Class<?> findSerializationContentType(Annotated am, JavaType baseType)
|
|
386
|
+
{
|
|
387
|
+
JsonSerialize ann = am.getAnnotation(JsonSerialize.class);
|
|
388
|
+
if (ann != null) {
|
|
389
|
+
Class<?> cls = ann.contentAs();
|
|
390
|
+
if (cls != NoClass.class) {
|
|
391
|
+
return cls;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
return null;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
@Override
|
|
398
|
+
public JsonSerialize.Typing findSerializationTyping(Annotated a)
|
|
399
|
+
{
|
|
400
|
+
JsonSerialize ann = a.getAnnotation(JsonSerialize.class);
|
|
401
|
+
return (ann == null) ? null : ann.typing();
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
@Override
|
|
405
|
+
public Class<?>[] findSerializationViews(Annotated a)
|
|
406
|
+
{
|
|
407
|
+
JsonView ann = a.getAnnotation(JsonView.class);
|
|
408
|
+
return (ann == null) ? null : ann.value();
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/*
|
|
412
|
+
/**********************************************************
|
|
413
|
+
/* Serialization: class annotations
|
|
414
|
+
/**********************************************************
|
|
415
|
+
*/
|
|
416
|
+
|
|
417
|
+
@Override
|
|
418
|
+
public String[] findSerializationPropertyOrder(AnnotatedClass ac) {
|
|
419
|
+
JsonPropertyOrder order = ac.getAnnotation(JsonPropertyOrder.class);
|
|
420
|
+
return (order == null) ? null : order.value();
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
@Override
|
|
424
|
+
public Boolean findSerializationSortAlphabetically(AnnotatedClass ac) {
|
|
425
|
+
JsonPropertyOrder order = ac.getAnnotation(JsonPropertyOrder.class);
|
|
426
|
+
return (order == null) ? null : order.alphabetic();
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/*
|
|
430
|
+
/**********************************************************
|
|
431
|
+
/* Serialization: method annotations
|
|
432
|
+
/**********************************************************
|
|
433
|
+
*/
|
|
434
|
+
|
|
435
|
+
@SuppressWarnings("deprecation")
|
|
436
|
+
@Override
|
|
437
|
+
public String findGettablePropertyName(AnnotatedMethod am)
|
|
438
|
+
{
|
|
439
|
+
/* 22-May-2009, tatu: JsonProperty is the primary annotation
|
|
440
|
+
* to check for
|
|
441
|
+
*/
|
|
442
|
+
JsonProperty pann = am.getAnnotation(JsonProperty.class);
|
|
443
|
+
if (pann != null) {
|
|
444
|
+
return pann.value();
|
|
445
|
+
}
|
|
446
|
+
/* 22-May-2009, tatu: JsonGetter is deprecated as of 1.1
|
|
447
|
+
* but still supported
|
|
448
|
+
*/
|
|
449
|
+
JsonGetter ann = am.getAnnotation(JsonGetter.class);
|
|
450
|
+
if (ann != null) {
|
|
451
|
+
return ann.value();
|
|
452
|
+
}
|
|
453
|
+
/* 22-May-2009, tatu: And finally, JsonSerialize implies
|
|
454
|
+
* that there is a property, although doesn't define name
|
|
455
|
+
*/
|
|
456
|
+
// 09-Apr-2010, tatu: Ditto for JsonView
|
|
457
|
+
if (am.hasAnnotation(JsonSerialize.class) || am.hasAnnotation(JsonView.class)) {
|
|
458
|
+
return "";
|
|
459
|
+
}
|
|
460
|
+
return null;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
@Override
|
|
464
|
+
public boolean hasAsValueAnnotation(AnnotatedMethod am)
|
|
465
|
+
{
|
|
466
|
+
JsonValue ann = am.getAnnotation(JsonValue.class);
|
|
467
|
+
// value of 'false' means disabled...
|
|
468
|
+
return (ann != null && ann.value());
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
/*
|
|
472
|
+
/**********************************************************
|
|
473
|
+
/* Serialization: field annotations
|
|
474
|
+
/**********************************************************
|
|
475
|
+
*/
|
|
476
|
+
|
|
477
|
+
@Override
|
|
478
|
+
public String findSerializablePropertyName(AnnotatedField af)
|
|
479
|
+
{
|
|
480
|
+
JsonProperty pann = af.getAnnotation(JsonProperty.class);
|
|
481
|
+
if (pann != null) {
|
|
482
|
+
return pann.value();
|
|
483
|
+
}
|
|
484
|
+
// Also: having JsonSerialize implies it is such a property
|
|
485
|
+
// 09-Apr-2010, tatu: Ditto for JsonView
|
|
486
|
+
if (af.hasAnnotation(JsonSerialize.class) || af.hasAnnotation(JsonView.class)) {
|
|
487
|
+
return "";
|
|
488
|
+
}
|
|
489
|
+
return null;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
/*
|
|
493
|
+
/**********************************************************
|
|
494
|
+
/* Deserialization: general annotations
|
|
495
|
+
/**********************************************************
|
|
496
|
+
*/
|
|
497
|
+
|
|
498
|
+
@Override
|
|
499
|
+
public Class<? extends JsonDeserializer<?>> findDeserializer(Annotated a)
|
|
500
|
+
{
|
|
501
|
+
/* 21-May-2009, tatu: Slight change; primary annotation is now
|
|
502
|
+
* @JsonDeserialize; @JsonUseDeserializer is deprecated
|
|
503
|
+
*/
|
|
504
|
+
JsonDeserialize ann = a.getAnnotation(JsonDeserialize.class);
|
|
505
|
+
if (ann != null) {
|
|
506
|
+
Class<? extends JsonDeserializer<?>> deserClass = ann.using();
|
|
507
|
+
if (deserClass != JsonDeserializer.None.class) {
|
|
508
|
+
return deserClass;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
// 31-Jan-2010, tatus: @JsonUseDeserializer removed as of 1.5
|
|
512
|
+
return null;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
@Override
|
|
516
|
+
public Class<? extends KeyDeserializer> findKeyDeserializer(Annotated a)
|
|
517
|
+
{
|
|
518
|
+
JsonDeserialize ann = a.getAnnotation(JsonDeserialize.class);
|
|
519
|
+
if (ann != null) {
|
|
520
|
+
Class<? extends KeyDeserializer> deserClass = ann.keyUsing();
|
|
521
|
+
if (deserClass != KeyDeserializer.None.class) {
|
|
522
|
+
return deserClass;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
return null;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
@Override
|
|
529
|
+
public Class<? extends JsonDeserializer<?>> findContentDeserializer(Annotated a)
|
|
530
|
+
{
|
|
531
|
+
JsonDeserialize ann = a.getAnnotation(JsonDeserialize.class);
|
|
532
|
+
if (ann != null) {
|
|
533
|
+
Class<? extends JsonDeserializer<?>> deserClass = ann.contentUsing();
|
|
534
|
+
if (deserClass != JsonDeserializer.None.class) {
|
|
535
|
+
return deserClass;
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
return null;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
@Override
|
|
542
|
+
public Class<?> findDeserializationType(Annotated am, JavaType baseType,
|
|
543
|
+
String propName)
|
|
544
|
+
{
|
|
545
|
+
// Primary annotation, JsonDeserialize
|
|
546
|
+
JsonDeserialize ann = am.getAnnotation(JsonDeserialize.class);
|
|
547
|
+
if (ann != null) {
|
|
548
|
+
Class<?> cls = ann.as();
|
|
549
|
+
if (cls != NoClass.class) {
|
|
550
|
+
return cls;
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
/* 30-Jun-2011, tatu: Here we used to have support for @JsonClass;
|
|
554
|
+
* removed in 1.9
|
|
555
|
+
*/
|
|
556
|
+
return null;
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
@Override
|
|
560
|
+
public Class<?> findDeserializationKeyType(Annotated am, JavaType baseKeyType,
|
|
561
|
+
String propName)
|
|
562
|
+
{
|
|
563
|
+
// Primary annotation, JsonDeserialize
|
|
564
|
+
JsonDeserialize ann = am.getAnnotation(JsonDeserialize.class);
|
|
565
|
+
if (ann != null) {
|
|
566
|
+
Class<?> cls = ann.keyAs();
|
|
567
|
+
if (cls != NoClass.class) {
|
|
568
|
+
return cls;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
/* 30-Jun-2011, tatu: Here we used to have support for @JsonKeyClass;
|
|
572
|
+
* removed in 1.9
|
|
573
|
+
*/
|
|
574
|
+
return null;
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
@Override
|
|
578
|
+
public Class<?> findDeserializationContentType(Annotated am, JavaType baseContentType,
|
|
579
|
+
String propName)
|
|
580
|
+
{
|
|
581
|
+
// Primary annotation, JsonDeserialize
|
|
582
|
+
JsonDeserialize ann = am.getAnnotation(JsonDeserialize.class);
|
|
583
|
+
if (ann != null) {
|
|
584
|
+
Class<?> cls = ann.contentAs();
|
|
585
|
+
if (cls != NoClass.class) {
|
|
586
|
+
return cls;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
/* 30-Jun-2011, tatu: Here we used to have support for @JsonContentClass;
|
|
590
|
+
* removed in 1.9
|
|
591
|
+
*/
|
|
592
|
+
return null;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
/*
|
|
596
|
+
/**********************************************************
|
|
597
|
+
/* Deserialization: Class annotations
|
|
598
|
+
/**********************************************************
|
|
599
|
+
*/
|
|
600
|
+
|
|
601
|
+
@Override
|
|
602
|
+
public Object findValueInstantiator(AnnotatedClass ac)
|
|
603
|
+
{
|
|
604
|
+
JsonValueInstantiator ann = ac.getAnnotation(JsonValueInstantiator.class);
|
|
605
|
+
// no 'null' marker yet, so:
|
|
606
|
+
return (ann == null) ? null : ann.value();
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
/*
|
|
610
|
+
/**********************************************************
|
|
611
|
+
/* Deserialization: Method annotations
|
|
612
|
+
/**********************************************************
|
|
613
|
+
*/
|
|
614
|
+
|
|
615
|
+
@Override
|
|
616
|
+
public String findSettablePropertyName(AnnotatedMethod am)
|
|
617
|
+
{
|
|
618
|
+
/* 16-Apr-2010, tatu: Existing priority (since 1.1) is that
|
|
619
|
+
* @JsonProperty is checked first; and @JsonSetter next.
|
|
620
|
+
* This is not quite optimal now that @JsonSetter is un-deprecated.
|
|
621
|
+
* However, it is better to have stable behavior rather than
|
|
622
|
+
* cause compatibility problems by fine-tuning.
|
|
623
|
+
*/
|
|
624
|
+
JsonProperty pann = am.getAnnotation(JsonProperty.class);
|
|
625
|
+
if (pann != null) {
|
|
626
|
+
return pann.value();
|
|
627
|
+
}
|
|
628
|
+
JsonSetter ann = am.getAnnotation(JsonSetter.class);
|
|
629
|
+
if (ann != null) {
|
|
630
|
+
return ann.value();
|
|
631
|
+
}
|
|
632
|
+
/* 22-May-2009, tatu: And finally, JsonSerialize implies
|
|
633
|
+
* that there is a property, although doesn't define name
|
|
634
|
+
*/
|
|
635
|
+
// 09-Apr-2010, tatu: Ditto for JsonView
|
|
636
|
+
// 19-Oct-2011, tatu: And JsonBackReference/JsonManagedReference
|
|
637
|
+
if (am.hasAnnotation(JsonDeserialize.class)
|
|
638
|
+
|| am.hasAnnotation(JsonView.class)
|
|
639
|
+
|| am.hasAnnotation(JsonBackReference.class)
|
|
640
|
+
|| am.hasAnnotation(JsonManagedReference.class)
|
|
641
|
+
) {
|
|
642
|
+
return "";
|
|
643
|
+
}
|
|
644
|
+
return null;
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
@Override
|
|
648
|
+
public boolean hasAnySetterAnnotation(AnnotatedMethod am)
|
|
649
|
+
{
|
|
650
|
+
/* No dedicated disabling; regular @JsonIgnore used
|
|
651
|
+
* if needs to be ignored (and if so, is handled prior
|
|
652
|
+
* to this method getting called)
|
|
653
|
+
*/
|
|
654
|
+
return am.hasAnnotation(JsonAnySetter.class);
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
@Override
|
|
658
|
+
public boolean hasAnyGetterAnnotation(AnnotatedMethod am)
|
|
659
|
+
{
|
|
660
|
+
/* No dedicated disabling; regular @JsonIgnore used
|
|
661
|
+
* if needs to be ignored (handled separately
|
|
662
|
+
*/
|
|
663
|
+
return am.hasAnnotation(JsonAnyGetter.class);
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
@Override
|
|
667
|
+
public boolean hasCreatorAnnotation(Annotated a)
|
|
668
|
+
{
|
|
669
|
+
/* No dedicated disabling; regular @JsonIgnore used
|
|
670
|
+
* if needs to be ignored (and if so, is handled prior
|
|
671
|
+
* to this method getting called)
|
|
672
|
+
*/
|
|
673
|
+
return a.hasAnnotation(JsonCreator.class);
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
/*
|
|
677
|
+
/**********************************************************
|
|
678
|
+
/* Deserialization: field annotations
|
|
679
|
+
/**********************************************************
|
|
680
|
+
*/
|
|
681
|
+
|
|
682
|
+
@Override
|
|
683
|
+
public String findDeserializablePropertyName(AnnotatedField af)
|
|
684
|
+
{
|
|
685
|
+
JsonProperty pann = af.getAnnotation(JsonProperty.class);
|
|
686
|
+
if (pann != null) {
|
|
687
|
+
return pann.value();
|
|
688
|
+
}
|
|
689
|
+
// Also: having JsonDeserialize implies it is such a property
|
|
690
|
+
// 09-Apr-2010, tatu: Ditto for JsonView
|
|
691
|
+
if (af.hasAnnotation(JsonDeserialize.class)
|
|
692
|
+
|| af.hasAnnotation(JsonView.class)
|
|
693
|
+
|| af.hasAnnotation(JsonBackReference.class)
|
|
694
|
+
|| af.hasAnnotation(JsonManagedReference.class)
|
|
695
|
+
) {
|
|
696
|
+
return "";
|
|
697
|
+
}
|
|
698
|
+
return null;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
/*
|
|
702
|
+
/**********************************************************
|
|
703
|
+
/* Deserialization: parameters annotations
|
|
704
|
+
/**********************************************************
|
|
705
|
+
*/
|
|
706
|
+
|
|
707
|
+
@Override
|
|
708
|
+
public String findPropertyNameForParam(AnnotatedParameter param)
|
|
709
|
+
{
|
|
710
|
+
if (param != null) {
|
|
711
|
+
JsonProperty pann = param.getAnnotation(JsonProperty.class);
|
|
712
|
+
if (pann != null) {
|
|
713
|
+
return pann.value();
|
|
714
|
+
}
|
|
715
|
+
/* And can not use JsonDeserialize as we can not use
|
|
716
|
+
* name auto-detection (names of local variables including
|
|
717
|
+
* parameters are not necessarily preserved in bytecode)
|
|
718
|
+
*/
|
|
719
|
+
}
|
|
720
|
+
return null;
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
/*
|
|
724
|
+
/**********************************************************
|
|
725
|
+
/* Helper methods
|
|
726
|
+
/**********************************************************
|
|
727
|
+
*/
|
|
728
|
+
|
|
729
|
+
protected boolean _isIgnorable(Annotated a)
|
|
730
|
+
{
|
|
731
|
+
JsonIgnore ann = a.getAnnotation(JsonIgnore.class);
|
|
732
|
+
return (ann != null && ann.value());
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
/**
|
|
736
|
+
* Helper method called to construct and initialize instance of {@link TypeResolverBuilder}
|
|
737
|
+
* if given annotated element indicates one is needed.
|
|
738
|
+
*/
|
|
739
|
+
protected TypeResolverBuilder<?> _findTypeResolver(MapperConfig<?> config,
|
|
740
|
+
Annotated ann, JavaType baseType)
|
|
741
|
+
{
|
|
742
|
+
// First: maybe we have explicit type resolver?
|
|
743
|
+
TypeResolverBuilder<?> b;
|
|
744
|
+
JsonTypeInfo info = ann.getAnnotation(JsonTypeInfo.class);
|
|
745
|
+
JsonTypeResolver resAnn = ann.getAnnotation(JsonTypeResolver.class);
|
|
746
|
+
if (resAnn != null) {
|
|
747
|
+
/* 14-Aug-2010, tatu: not sure if this can ever happen normally, but unit
|
|
748
|
+
* tests were able to trigger this... so let's check:
|
|
749
|
+
*/
|
|
750
|
+
if (info == null) {
|
|
751
|
+
return null;
|
|
752
|
+
}
|
|
753
|
+
/* let's not try to force access override (would need to pass
|
|
754
|
+
* settings through if we did, since that's not doable on some
|
|
755
|
+
* platforms)
|
|
756
|
+
*/
|
|
757
|
+
b = config.typeResolverBuilderInstance(ann, resAnn.value());
|
|
758
|
+
} else { // if not, use standard one, if indicated by annotations
|
|
759
|
+
if (info == null) {
|
|
760
|
+
return null;
|
|
761
|
+
}
|
|
762
|
+
// bit special; must return 'marker' to block use of default typing:
|
|
763
|
+
if (info.use() == JsonTypeInfo.Id.NONE) {
|
|
764
|
+
return _constructNoTypeResolverBuilder();
|
|
765
|
+
}
|
|
766
|
+
b = _constructStdTypeResolverBuilder();
|
|
767
|
+
}
|
|
768
|
+
// Does it define a custom type id resolver?
|
|
769
|
+
JsonTypeIdResolver idResInfo = ann.getAnnotation(JsonTypeIdResolver.class);
|
|
770
|
+
TypeIdResolver idRes = (idResInfo == null) ? null
|
|
771
|
+
: config.typeIdResolverInstance(ann, idResInfo.value());
|
|
772
|
+
if (idRes != null) { // [JACKSON-359]
|
|
773
|
+
idRes.init(baseType);
|
|
774
|
+
}
|
|
775
|
+
b = b.init(info.use(), idRes);
|
|
776
|
+
/* 13-Aug-2011, tatu: One complication wrt [JACKSON-453]; external id
|
|
777
|
+
* only works for properties; so if declared for a Class, we will need
|
|
778
|
+
* to map it to "PROPERTY" instead of "EXTERNAL_PROPERTY"
|
|
779
|
+
*/
|
|
780
|
+
JsonTypeInfo.As inclusion = info.include();
|
|
781
|
+
if (inclusion == JsonTypeInfo.As.EXTERNAL_PROPERTY && (ann instanceof AnnotatedClass)) {
|
|
782
|
+
inclusion = JsonTypeInfo.As.PROPERTY;
|
|
783
|
+
}
|
|
784
|
+
b = b.inclusion(inclusion);
|
|
785
|
+
b = b.typeProperty(info.property());
|
|
786
|
+
Class<?> defaultImpl = info.defaultImpl();
|
|
787
|
+
if (defaultImpl != JsonTypeInfo.None.class) {
|
|
788
|
+
b = b.defaultImpl(defaultImpl);
|
|
789
|
+
}
|
|
790
|
+
return b;
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
/**
|
|
794
|
+
* Helper method for constructing standard {@link TypeResolverBuilder}
|
|
795
|
+
* implementation.
|
|
796
|
+
*
|
|
797
|
+
* @since 1.7
|
|
798
|
+
*/
|
|
799
|
+
protected StdTypeResolverBuilder _constructStdTypeResolverBuilder()
|
|
800
|
+
{
|
|
801
|
+
return new StdTypeResolverBuilder();
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
/**
|
|
805
|
+
* Helper method for dealing with "no type info" marker; can't be null
|
|
806
|
+
* (as it'd be replaced by default typing)
|
|
807
|
+
*
|
|
808
|
+
* @since 1.9.4
|
|
809
|
+
*/
|
|
810
|
+
protected StdTypeResolverBuilder _constructNoTypeResolverBuilder() {
|
|
811
|
+
return StdTypeResolverBuilder.noTypeInfoBuilder();
|
|
812
|
+
}
|
|
813
|
+
}
|