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,126 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.ser;
|
|
2
|
+
|
|
3
|
+
import java.io.IOException;
|
|
4
|
+
|
|
5
|
+
import sh.calaba.org.codehaus.jackson.JsonGenerationException;
|
|
6
|
+
import sh.calaba.org.codehaus.jackson.JsonGenerator;
|
|
7
|
+
import sh.calaba.org.codehaus.jackson.map.*;
|
|
8
|
+
import sh.calaba.org.codehaus.jackson.map.ser.impl.UnwrappingBeanSerializer;
|
|
9
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.BeanSerializerBase;
|
|
10
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Serializer class that can serialize arbitrary bean objects
|
|
14
|
+
*<p>
|
|
15
|
+
* Implementation note: we will post-process resulting serializer,
|
|
16
|
+
* to figure out actual serializers for final types. This must be
|
|
17
|
+
* done from {@link #resolve} method, and NOT from constructor;
|
|
18
|
+
* otherwise we could end up with an infinite loop.
|
|
19
|
+
*<p>
|
|
20
|
+
* Since 1.7 instances are immutable; this is achieved by using a
|
|
21
|
+
* separate builder during construction process.
|
|
22
|
+
*/
|
|
23
|
+
public class BeanSerializer
|
|
24
|
+
extends BeanSerializerBase
|
|
25
|
+
{
|
|
26
|
+
/*
|
|
27
|
+
/**********************************************************
|
|
28
|
+
/* Life-cycle: constructors
|
|
29
|
+
/**********************************************************
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @param type Nominal type of values handled by this serializer
|
|
34
|
+
* @param properties Property writers used for actual serialization
|
|
35
|
+
*/
|
|
36
|
+
public BeanSerializer(JavaType type,
|
|
37
|
+
BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties,
|
|
38
|
+
AnyGetterWriter anyGetterWriter,
|
|
39
|
+
Object filterId)
|
|
40
|
+
{
|
|
41
|
+
super(type, properties, filteredProperties, anyGetterWriter, filterId);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public BeanSerializer(Class<?> rawType,
|
|
45
|
+
BeanPropertyWriter[] properties, BeanPropertyWriter[] filteredProperties,
|
|
46
|
+
AnyGetterWriter anyGetterWriter,
|
|
47
|
+
Object filterId)
|
|
48
|
+
{
|
|
49
|
+
super(rawType, properties, filteredProperties, anyGetterWriter, filterId);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Copy-constructor that is useful for sub-classes that just want to
|
|
54
|
+
* copy all super-class properties without modifications.
|
|
55
|
+
*
|
|
56
|
+
* @since 1.7
|
|
57
|
+
*/
|
|
58
|
+
protected BeanSerializer(BeanSerializer src) {
|
|
59
|
+
super(src);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Alternate copy constructor that can be used to construct
|
|
64
|
+
* standard {@link BeanSerializer} passing an instance of
|
|
65
|
+
* "compatible enough" source serializer.
|
|
66
|
+
*
|
|
67
|
+
* @since 1.9
|
|
68
|
+
*/
|
|
69
|
+
protected BeanSerializer(BeanSerializerBase src) {
|
|
70
|
+
super(src);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/*
|
|
74
|
+
/**********************************************************
|
|
75
|
+
/* Life-cycle: factory methods, fluent factories
|
|
76
|
+
/**********************************************************
|
|
77
|
+
*/
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Method for constructing dummy bean deserializer; one that
|
|
81
|
+
* never outputs any properties
|
|
82
|
+
*/
|
|
83
|
+
public static BeanSerializer createDummy(Class<?> forType)
|
|
84
|
+
{
|
|
85
|
+
return new BeanSerializer(forType, NO_PROPS, null, null, null);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@Override
|
|
89
|
+
public JsonSerializer<Object> unwrappingSerializer() {
|
|
90
|
+
return new UnwrappingBeanSerializer(this);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/*
|
|
94
|
+
/**********************************************************
|
|
95
|
+
/* JsonSerializer implementation that differs between impls
|
|
96
|
+
/**********************************************************
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Main serialization method that will delegate actual output to
|
|
101
|
+
* configured
|
|
102
|
+
* {@link BeanPropertyWriter} instances.
|
|
103
|
+
*/
|
|
104
|
+
@Override
|
|
105
|
+
public final void serialize(Object bean, JsonGenerator jgen, SerializerProvider provider)
|
|
106
|
+
throws IOException, JsonGenerationException
|
|
107
|
+
{
|
|
108
|
+
jgen.writeStartObject();
|
|
109
|
+
if (_propertyFilterId != null) {
|
|
110
|
+
serializeFieldsFiltered(bean, jgen, provider);
|
|
111
|
+
} else {
|
|
112
|
+
serializeFields(bean, jgen, provider);
|
|
113
|
+
}
|
|
114
|
+
jgen.writeEndObject();
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/*
|
|
118
|
+
/**********************************************************
|
|
119
|
+
/* Standard methods
|
|
120
|
+
/**********************************************************
|
|
121
|
+
*/
|
|
122
|
+
|
|
123
|
+
@Override public String toString() {
|
|
124
|
+
return "BeanSerializer for "+handledType().getName();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.ser;
|
|
2
|
+
|
|
3
|
+
import java.util.*;
|
|
4
|
+
|
|
5
|
+
import sh.calaba.org.codehaus.jackson.map.*;
|
|
6
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.BasicBeanDescription;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Builder class used for aggregating deserialization information about
|
|
10
|
+
* a POJO, in order to build a {@link JsonSerializer} for serializing
|
|
11
|
+
* intances.
|
|
12
|
+
* Main reason for using separate builder class is that this makes it easier
|
|
13
|
+
* to make actual serializer class fully immutable.
|
|
14
|
+
*
|
|
15
|
+
* @since 1.7
|
|
16
|
+
*/
|
|
17
|
+
public class BeanSerializerBuilder
|
|
18
|
+
{
|
|
19
|
+
private final static BeanPropertyWriter[] NO_PROPERTIES = new BeanPropertyWriter[0];
|
|
20
|
+
|
|
21
|
+
/*
|
|
22
|
+
/**********************************************************
|
|
23
|
+
/* General information about POJO
|
|
24
|
+
/**********************************************************
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
final protected BasicBeanDescription _beanDesc;
|
|
28
|
+
|
|
29
|
+
/*
|
|
30
|
+
/**********************************************************
|
|
31
|
+
/* Accumulated information about properties
|
|
32
|
+
/**********************************************************
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Bean properties, in order of serialization
|
|
37
|
+
*/
|
|
38
|
+
protected List<BeanPropertyWriter> _properties;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Optional array of filtered property writers; if null, no
|
|
42
|
+
* view-based filtering is performed.
|
|
43
|
+
*/
|
|
44
|
+
protected BeanPropertyWriter[] _filteredProperties;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Writer used for "any getter" properties, if any.
|
|
48
|
+
*/
|
|
49
|
+
protected AnyGetterWriter _anyGetter;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Id of the property filter to use for POJO, if any.
|
|
53
|
+
*/
|
|
54
|
+
protected Object _filterId;
|
|
55
|
+
|
|
56
|
+
/*
|
|
57
|
+
/**********************************************************
|
|
58
|
+
/* Construction and setter methods
|
|
59
|
+
/**********************************************************
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
public BeanSerializerBuilder(BasicBeanDescription beanDesc) {
|
|
63
|
+
_beanDesc = beanDesc;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Copy-constructor that may be used for sub-classing
|
|
68
|
+
*/
|
|
69
|
+
protected BeanSerializerBuilder(BeanSerializerBuilder src) {
|
|
70
|
+
_beanDesc = src._beanDesc;
|
|
71
|
+
_properties = src._properties;
|
|
72
|
+
_filteredProperties = src._filteredProperties;
|
|
73
|
+
_anyGetter = src._anyGetter;
|
|
74
|
+
_filterId = src._filterId;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
public BasicBeanDescription getBeanDescription() { return _beanDesc; }
|
|
78
|
+
public List<BeanPropertyWriter> getProperties() { return _properties; }
|
|
79
|
+
public BeanPropertyWriter[] getFilteredProperties() { return _filteredProperties; }
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* @since 1.9
|
|
83
|
+
*/
|
|
84
|
+
public boolean hasProperties() {
|
|
85
|
+
return (_properties != null) && (_properties.size() > 0);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
public void setProperties(List<BeanPropertyWriter> properties) {
|
|
89
|
+
_properties = properties;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
public void setFilteredProperties(BeanPropertyWriter[] properties) {
|
|
93
|
+
_filteredProperties = properties;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
public void setAnyGetter(AnyGetterWriter anyGetter) {
|
|
97
|
+
_anyGetter = anyGetter;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
public void setFilterId(Object filterId) {
|
|
101
|
+
_filterId = filterId;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/*
|
|
105
|
+
/**********************************************************
|
|
106
|
+
/* Build methods for actually creating serializer instance
|
|
107
|
+
/**********************************************************
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Method called to create {@link BeanSerializer} instance with
|
|
112
|
+
* all accumulated information. Will construct a serializer if we
|
|
113
|
+
* have enough information, or return null if not.
|
|
114
|
+
*/
|
|
115
|
+
public JsonSerializer<?> build()
|
|
116
|
+
{
|
|
117
|
+
BeanPropertyWriter[] properties;
|
|
118
|
+
// No properties or any getter? No real serializer; caller gets to handle
|
|
119
|
+
if (_properties == null || _properties.isEmpty()) {
|
|
120
|
+
if (_anyGetter == null) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
properties = NO_PROPERTIES;
|
|
124
|
+
} else {
|
|
125
|
+
properties = _properties.toArray(new BeanPropertyWriter[_properties.size()]);
|
|
126
|
+
|
|
127
|
+
}
|
|
128
|
+
return new BeanSerializer(_beanDesc.getType(), properties, _filteredProperties, _anyGetter, _filterId);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Factory method for constructing an "empty" serializer; one that
|
|
133
|
+
* outputs no properties (but handles JSON objects properly, including
|
|
134
|
+
* type information)
|
|
135
|
+
*/
|
|
136
|
+
public BeanSerializer createDummy() {
|
|
137
|
+
return BeanSerializer.createDummy(_beanDesc.getBeanClass());
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
@@ -0,0 +1,780 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.ser;
|
|
2
|
+
|
|
3
|
+
import java.util.*;
|
|
4
|
+
|
|
5
|
+
import sh.calaba.org.codehaus.jackson.map.*;
|
|
6
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.*;
|
|
7
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.NamedType;
|
|
8
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.TypeResolverBuilder;
|
|
9
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.MapSerializer;
|
|
10
|
+
import sh.calaba.org.codehaus.jackson.map.type.*;
|
|
11
|
+
import sh.calaba.org.codehaus.jackson.map.util.ArrayBuilders;
|
|
12
|
+
import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
|
|
13
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Factory class that can provide serializers for any regular Java beans
|
|
17
|
+
* (as defined by "having at least one get method recognizable as bean
|
|
18
|
+
* accessor" -- where {@link Object#getClass} does not count);
|
|
19
|
+
* as well as for "standard" JDK types. Latter is achieved
|
|
20
|
+
* by delegating calls to {@link BasicSerializerFactory}
|
|
21
|
+
* to find serializers both for "standard" JDK types (and in some cases,
|
|
22
|
+
* sub-classes as is the case for collection classes like
|
|
23
|
+
* {@link java.util.List}s and {@link java.util.Map}s) and bean (value)
|
|
24
|
+
* classes.
|
|
25
|
+
*<p>
|
|
26
|
+
* Note about delegating calls to {@link BasicSerializerFactory}:
|
|
27
|
+
* although it would be nicer to use linear delegation
|
|
28
|
+
* for construction (to essentially dispatch all calls first to the
|
|
29
|
+
* underlying {@link BasicSerializerFactory}; or alternatively after
|
|
30
|
+
* failing to provide bean-based serializer}, there is a problem:
|
|
31
|
+
* priority levels for detecting standard types are mixed. That is,
|
|
32
|
+
* we want to check if a type is a bean after some of "standard" JDK
|
|
33
|
+
* types, but before the rest.
|
|
34
|
+
* As a result, "mixed" delegation used, and calls are NOT done using
|
|
35
|
+
* regular {@link SerializerFactory} interface but rather via
|
|
36
|
+
* direct calls to {@link BasicSerializerFactory}.
|
|
37
|
+
*<p>
|
|
38
|
+
* Finally, since all caching is handled by the serializer provider
|
|
39
|
+
* (not factory) and there is no configurability, this
|
|
40
|
+
* factory is stateless.
|
|
41
|
+
* This means that a global singleton instance can be used.
|
|
42
|
+
*<p>
|
|
43
|
+
* Notes for version 1.7 (and above): the new module registration system
|
|
44
|
+
* required addition of {@link #withConfig}, which has to
|
|
45
|
+
* be redefined by sub-classes so that they can work properly with
|
|
46
|
+
* pluggable additional serializer providing components.
|
|
47
|
+
*/
|
|
48
|
+
public class BeanSerializerFactory
|
|
49
|
+
extends BasicSerializerFactory
|
|
50
|
+
{
|
|
51
|
+
/**
|
|
52
|
+
* Like {@link BasicSerializerFactory}, this factory is stateless, and
|
|
53
|
+
* thus a single shared global (== singleton) instance can be used
|
|
54
|
+
* without thread-safety issues.
|
|
55
|
+
*/
|
|
56
|
+
public final static BeanSerializerFactory instance = new BeanSerializerFactory(null);
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Configuration settings for this factory; immutable instance (just like this
|
|
60
|
+
* factory), new version created via copy-constructor (fluent-style)
|
|
61
|
+
*
|
|
62
|
+
* @since 1.7
|
|
63
|
+
*/
|
|
64
|
+
protected final Config _factoryConfig;
|
|
65
|
+
|
|
66
|
+
/*
|
|
67
|
+
/**********************************************************
|
|
68
|
+
/* Config class implementation
|
|
69
|
+
/**********************************************************
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Configuration settings container class for bean serializer factory
|
|
74
|
+
*
|
|
75
|
+
* @since 1.7
|
|
76
|
+
*/
|
|
77
|
+
public static class ConfigImpl extends Config
|
|
78
|
+
{
|
|
79
|
+
/**
|
|
80
|
+
* Constant for empty <code>Serializers</code> array (which by definition
|
|
81
|
+
* is stateless and reusable)
|
|
82
|
+
*/
|
|
83
|
+
protected final static Serializers[] NO_SERIALIZERS = new Serializers[0];
|
|
84
|
+
|
|
85
|
+
protected final static BeanSerializerModifier[] NO_MODIFIERS = new BeanSerializerModifier[0];
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* List of providers for additional serializers, checked before considering default
|
|
89
|
+
* basic or bean serialializers.
|
|
90
|
+
*
|
|
91
|
+
* @since 1.7
|
|
92
|
+
*/
|
|
93
|
+
protected final Serializers[] _additionalSerializers;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* @since 1.8
|
|
97
|
+
*/
|
|
98
|
+
protected final Serializers[] _additionalKeySerializers;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* List of modifiers that can change the way {@link BeanSerializer} instances
|
|
102
|
+
* are configured and constructed.
|
|
103
|
+
*/
|
|
104
|
+
protected final BeanSerializerModifier[] _modifiers;
|
|
105
|
+
|
|
106
|
+
public ConfigImpl() {
|
|
107
|
+
this(null, null, null);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
protected ConfigImpl(Serializers[] allAdditionalSerializers,
|
|
111
|
+
Serializers[] allAdditionalKeySerializers,
|
|
112
|
+
BeanSerializerModifier[] modifiers)
|
|
113
|
+
{
|
|
114
|
+
_additionalSerializers = (allAdditionalSerializers == null) ?
|
|
115
|
+
NO_SERIALIZERS : allAdditionalSerializers;
|
|
116
|
+
_additionalKeySerializers = (allAdditionalKeySerializers == null) ?
|
|
117
|
+
NO_SERIALIZERS : allAdditionalKeySerializers;
|
|
118
|
+
_modifiers = (modifiers == null) ? NO_MODIFIERS : modifiers;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@Override
|
|
122
|
+
public Config withAdditionalSerializers(Serializers additional)
|
|
123
|
+
{
|
|
124
|
+
if (additional == null) {
|
|
125
|
+
throw new IllegalArgumentException("Can not pass null Serializers");
|
|
126
|
+
}
|
|
127
|
+
Serializers[] all = ArrayBuilders.insertInListNoDup(_additionalSerializers, additional);
|
|
128
|
+
return new ConfigImpl(all, _additionalKeySerializers, _modifiers);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@Override
|
|
132
|
+
public Config withAdditionalKeySerializers(Serializers additional)
|
|
133
|
+
{
|
|
134
|
+
if (additional == null) {
|
|
135
|
+
throw new IllegalArgumentException("Can not pass null Serializers");
|
|
136
|
+
}
|
|
137
|
+
Serializers[] all = ArrayBuilders.insertInListNoDup(_additionalKeySerializers, additional);
|
|
138
|
+
return new ConfigImpl(_additionalSerializers, all, _modifiers);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
@Override
|
|
142
|
+
public Config withSerializerModifier(BeanSerializerModifier modifier)
|
|
143
|
+
{
|
|
144
|
+
if (modifier == null) {
|
|
145
|
+
throw new IllegalArgumentException("Can not pass null modifier");
|
|
146
|
+
}
|
|
147
|
+
BeanSerializerModifier[] modifiers = ArrayBuilders.insertInListNoDup(_modifiers, modifier);
|
|
148
|
+
return new ConfigImpl(_additionalSerializers, _additionalKeySerializers, modifiers);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
@Override
|
|
152
|
+
public boolean hasSerializers() { return _additionalSerializers.length > 0; }
|
|
153
|
+
|
|
154
|
+
@Override
|
|
155
|
+
public boolean hasKeySerializers() { return _additionalKeySerializers.length > 0; }
|
|
156
|
+
|
|
157
|
+
@Override
|
|
158
|
+
public boolean hasSerializerModifiers() { return _modifiers.length > 0; }
|
|
159
|
+
|
|
160
|
+
@Override
|
|
161
|
+
public Iterable<Serializers> serializers() {
|
|
162
|
+
return ArrayBuilders.arrayAsIterable(_additionalSerializers);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
@Override
|
|
166
|
+
public Iterable<Serializers> keySerializers() {
|
|
167
|
+
return ArrayBuilders.arrayAsIterable(_additionalKeySerializers);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
@Override
|
|
171
|
+
public Iterable<BeanSerializerModifier> serializerModifiers() {
|
|
172
|
+
return ArrayBuilders.arrayAsIterable(_modifiers);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/*
|
|
177
|
+
/**********************************************************
|
|
178
|
+
/* Life-cycle: creation, configuration
|
|
179
|
+
/**********************************************************
|
|
180
|
+
*/
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Constructor for creating instances with specified configuration.
|
|
184
|
+
*/
|
|
185
|
+
protected BeanSerializerFactory(Config config)
|
|
186
|
+
{
|
|
187
|
+
if (config == null) {
|
|
188
|
+
config = new ConfigImpl();
|
|
189
|
+
}
|
|
190
|
+
_factoryConfig = config;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
@Override public Config getConfig() { return _factoryConfig; }
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Method used by module registration functionality, to attach additional
|
|
197
|
+
* serializer providers into this serializer factory. This is typically
|
|
198
|
+
* handled by constructing a new instance with additional serializers,
|
|
199
|
+
* to ensure thread-safe access.
|
|
200
|
+
*
|
|
201
|
+
* @since 1.7
|
|
202
|
+
*/
|
|
203
|
+
@Override
|
|
204
|
+
public SerializerFactory withConfig(Config config)
|
|
205
|
+
{
|
|
206
|
+
if (_factoryConfig == config) {
|
|
207
|
+
return this;
|
|
208
|
+
}
|
|
209
|
+
/* 22-Nov-2010, tatu: Handling of subtypes is tricky if we do immutable-with-copy-ctor;
|
|
210
|
+
* and we pretty much have to here either choose between losing subtype instance
|
|
211
|
+
* when registering additional serializers, or losing serializers.
|
|
212
|
+
* Instead, let's actually just throw an error if this method is called when subtype
|
|
213
|
+
* has not properly overridden this method; this to indicate problem as soon as possible.
|
|
214
|
+
*/
|
|
215
|
+
if (getClass() != BeanSerializerFactory.class) {
|
|
216
|
+
throw new IllegalStateException("Subtype of BeanSerializerFactory ("+getClass().getName()
|
|
217
|
+
+") has not properly overridden method 'withAdditionalSerializers': can not instantiate subtype with "
|
|
218
|
+
+"additional serializer definitions");
|
|
219
|
+
}
|
|
220
|
+
return new BeanSerializerFactory(config);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
@Override
|
|
224
|
+
protected Iterable<Serializers> customSerializers() {
|
|
225
|
+
return _factoryConfig.serializers();
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/*
|
|
229
|
+
/**********************************************************
|
|
230
|
+
/* SerializerFactory impl
|
|
231
|
+
/**********************************************************
|
|
232
|
+
*/
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Main serializer constructor method. We will have to be careful
|
|
236
|
+
* with respect to ordering of various method calls: essentially
|
|
237
|
+
* we want to reliably figure out which classes are standard types,
|
|
238
|
+
* and which are beans. The problem is that some bean Classes may
|
|
239
|
+
* implement standard interfaces (say, {@link java.lang.Iterable}.
|
|
240
|
+
*<p>
|
|
241
|
+
* Note: sub-classes may choose to complete replace implementation,
|
|
242
|
+
* if they want to alter priority of serializer lookups.
|
|
243
|
+
*/
|
|
244
|
+
@Override
|
|
245
|
+
@SuppressWarnings("unchecked")
|
|
246
|
+
public JsonSerializer<Object> createSerializer(SerializationConfig config, JavaType origType,
|
|
247
|
+
BeanProperty property)
|
|
248
|
+
throws JsonMappingException
|
|
249
|
+
{
|
|
250
|
+
// Very first thing, let's check if there is explicit serializer annotation:
|
|
251
|
+
BasicBeanDescription beanDesc = config.introspect(origType);
|
|
252
|
+
JsonSerializer<?> ser = findSerializerFromAnnotation(config, beanDesc.getClassInfo(), property);
|
|
253
|
+
if (ser != null) {
|
|
254
|
+
return (JsonSerializer<Object>) ser;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Next: we may have annotations that further define types to use...
|
|
258
|
+
JavaType type = modifyTypeByAnnotation(config, beanDesc.getClassInfo(), origType);
|
|
259
|
+
// and if so, we consider it implicit "force static typing" instruction
|
|
260
|
+
boolean staticTyping = (type != origType);
|
|
261
|
+
|
|
262
|
+
// Container types differ from non-container types:
|
|
263
|
+
if (origType.isContainerType()) {
|
|
264
|
+
return (JsonSerializer<Object>) buildContainerSerializer(config, type, beanDesc, property, staticTyping);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// Modules may provide serializers of all types:
|
|
268
|
+
for (Serializers serializers : _factoryConfig.serializers()) {
|
|
269
|
+
ser = serializers.findSerializer(config, type, beanDesc, property);
|
|
270
|
+
if (ser != null) {
|
|
271
|
+
return (JsonSerializer<Object>) ser;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/* Otherwise, we will check "primary types"; both marker types that
|
|
276
|
+
* indicate specific handling (JsonSerializable), or main types that have
|
|
277
|
+
* precedence over container types
|
|
278
|
+
*/
|
|
279
|
+
ser = findSerializerByLookup(type, config, beanDesc, property, staticTyping);
|
|
280
|
+
if (ser == null) {
|
|
281
|
+
ser = findSerializerByPrimaryType(type, config, beanDesc, property, staticTyping);
|
|
282
|
+
if (ser == null) {
|
|
283
|
+
/* And this is where this class comes in: if type is not a
|
|
284
|
+
* known "primary JDK type", perhaps it's a bean? We can still
|
|
285
|
+
* get a null, if we can't find a single suitable bean property.
|
|
286
|
+
*/
|
|
287
|
+
ser = findBeanSerializer(config, type, beanDesc, property);
|
|
288
|
+
/* Finally: maybe we can still deal with it as an
|
|
289
|
+
* implementation of some basic JDK interface?
|
|
290
|
+
*/
|
|
291
|
+
if (ser == null) {
|
|
292
|
+
ser = findSerializerByAddonType(config, type, beanDesc, property, staticTyping);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return (JsonSerializer<Object>) ser;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
@Override
|
|
300
|
+
@SuppressWarnings("unchecked")
|
|
301
|
+
public JsonSerializer<Object> createKeySerializer(SerializationConfig config, JavaType type,
|
|
302
|
+
BeanProperty property)
|
|
303
|
+
{
|
|
304
|
+
// Minor optimization: to avoid constructing beanDesc, bail out if none registered
|
|
305
|
+
if (!_factoryConfig.hasKeySerializers()) {
|
|
306
|
+
return null;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
// We should not need any member method info; at most class annotations for Map type
|
|
310
|
+
BasicBeanDescription beanDesc = config.introspectClassAnnotations(type.getRawClass());
|
|
311
|
+
JsonSerializer<?> ser = null;
|
|
312
|
+
|
|
313
|
+
// Only thing we have here are module-provided key serializers:
|
|
314
|
+
for (Serializers serializers : _factoryConfig.keySerializers()) {
|
|
315
|
+
ser = serializers.findSerializer(config, type, beanDesc, property);
|
|
316
|
+
if (ser != null) {
|
|
317
|
+
break;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
return (JsonSerializer<Object>) ser;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/*
|
|
324
|
+
/**********************************************************
|
|
325
|
+
/* Other public methods that are not part of
|
|
326
|
+
/* JsonSerializerFactory API
|
|
327
|
+
/**********************************************************
|
|
328
|
+
*/
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Method that will try to construct a {@link BeanSerializer} for
|
|
332
|
+
* given class. Returns null if no properties are found.
|
|
333
|
+
*/
|
|
334
|
+
@SuppressWarnings("unchecked")
|
|
335
|
+
public JsonSerializer<Object> findBeanSerializer(SerializationConfig config, JavaType type,
|
|
336
|
+
BasicBeanDescription beanDesc, BeanProperty property)
|
|
337
|
+
throws JsonMappingException
|
|
338
|
+
{
|
|
339
|
+
// First things first: we know some types are not beans...
|
|
340
|
+
if (!isPotentialBeanType(type.getRawClass())) {
|
|
341
|
+
return null;
|
|
342
|
+
}
|
|
343
|
+
JsonSerializer<Object> serializer = constructBeanSerializer(config, beanDesc, property);
|
|
344
|
+
// [JACKSON-440] Need to allow overriding actual serializer, as well...
|
|
345
|
+
if (_factoryConfig.hasSerializerModifiers()) {
|
|
346
|
+
for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) {
|
|
347
|
+
serializer = (JsonSerializer<Object>)mod.modifySerializer(config, beanDesc, serializer);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return serializer;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* Method called to create a type information serializer for values of given
|
|
355
|
+
* non-container property
|
|
356
|
+
* if one is needed. If not needed (no polymorphic handling configured), should
|
|
357
|
+
* return null.
|
|
358
|
+
*
|
|
359
|
+
* @param baseType Declared type to use as the base type for type information serializer
|
|
360
|
+
*
|
|
361
|
+
* @return Type serializer to use for property values, if one is needed; null if not.
|
|
362
|
+
*
|
|
363
|
+
* @since 1.5
|
|
364
|
+
*/
|
|
365
|
+
public TypeSerializer findPropertyTypeSerializer(JavaType baseType, SerializationConfig config,
|
|
366
|
+
AnnotatedMember accessor, BeanProperty property)
|
|
367
|
+
throws JsonMappingException
|
|
368
|
+
{
|
|
369
|
+
AnnotationIntrospector ai = config.getAnnotationIntrospector();
|
|
370
|
+
TypeResolverBuilder<?> b = ai.findPropertyTypeResolver(config, accessor, baseType);
|
|
371
|
+
// Defaulting: if no annotations on member, check value class
|
|
372
|
+
if (b == null) {
|
|
373
|
+
return createTypeSerializer(config, baseType, property);
|
|
374
|
+
}
|
|
375
|
+
Collection<NamedType> subtypes = config.getSubtypeResolver().collectAndResolveSubtypes(accessor, config, ai);
|
|
376
|
+
return b.buildTypeSerializer(config, baseType, subtypes, property);
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Method called to create a type information serializer for values of given
|
|
381
|
+
* container property
|
|
382
|
+
* if one is needed. If not needed (no polymorphic handling configured), should
|
|
383
|
+
* return null.
|
|
384
|
+
*
|
|
385
|
+
* @param containerType Declared type of the container to use as the base type for type information serializer
|
|
386
|
+
*
|
|
387
|
+
* @return Type serializer to use for property value contents, if one is needed; null if not.
|
|
388
|
+
*
|
|
389
|
+
* @since 1.5
|
|
390
|
+
*/
|
|
391
|
+
public TypeSerializer findPropertyContentTypeSerializer(JavaType containerType, SerializationConfig config,
|
|
392
|
+
AnnotatedMember accessor, BeanProperty property)
|
|
393
|
+
throws JsonMappingException
|
|
394
|
+
{
|
|
395
|
+
JavaType contentType = containerType.getContentType();
|
|
396
|
+
AnnotationIntrospector ai = config.getAnnotationIntrospector();
|
|
397
|
+
TypeResolverBuilder<?> b = ai.findPropertyContentTypeResolver(config, accessor, containerType);
|
|
398
|
+
// Defaulting: if no annotations on member, check value class
|
|
399
|
+
if (b == null) {
|
|
400
|
+
return createTypeSerializer(config, contentType, property);
|
|
401
|
+
}
|
|
402
|
+
Collection<NamedType> subtypes = config.getSubtypeResolver().collectAndResolveSubtypes(accessor, config, ai);
|
|
403
|
+
return b.buildTypeSerializer(config, contentType, subtypes, property);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/*
|
|
407
|
+
/**********************************************************
|
|
408
|
+
/* Overridable non-public factory methods
|
|
409
|
+
/**********************************************************
|
|
410
|
+
*/
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Method called to construct serializer for serializing specified bean type.
|
|
414
|
+
*
|
|
415
|
+
* @since 1.6
|
|
416
|
+
*/
|
|
417
|
+
@SuppressWarnings("unchecked")
|
|
418
|
+
protected JsonSerializer<Object> constructBeanSerializer(SerializationConfig config,
|
|
419
|
+
BasicBeanDescription beanDesc, BeanProperty property)
|
|
420
|
+
throws JsonMappingException
|
|
421
|
+
{
|
|
422
|
+
// 13-Oct-2010, tatu: quick sanity check: never try to create bean serializer for plain Object
|
|
423
|
+
if (beanDesc.getBeanClass() == Object.class) {
|
|
424
|
+
throw new IllegalArgumentException("Can not create bean serializer for Object.class");
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
BeanSerializerBuilder builder = constructBeanSerializerBuilder(beanDesc);
|
|
428
|
+
|
|
429
|
+
// First: any detectable (auto-detect, annotations) properties to serialize?
|
|
430
|
+
List<BeanPropertyWriter> props = findBeanProperties(config, beanDesc);
|
|
431
|
+
|
|
432
|
+
if (props == null) {
|
|
433
|
+
props = new ArrayList<BeanPropertyWriter>();
|
|
434
|
+
}
|
|
435
|
+
// [JACKSON-440] Need to allow modification bean properties to serialize:
|
|
436
|
+
if (_factoryConfig.hasSerializerModifiers()) {
|
|
437
|
+
for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) {
|
|
438
|
+
props = mod.changeProperties(config, beanDesc, props);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
// Any properties to suppress?
|
|
443
|
+
props = filterBeanProperties(config, beanDesc, props);
|
|
444
|
+
// Do they need to be sorted in some special way?
|
|
445
|
+
props = sortBeanProperties(config, beanDesc, props);
|
|
446
|
+
|
|
447
|
+
// [JACKSON-440] Need to allow reordering of properties to serialize
|
|
448
|
+
if (_factoryConfig.hasSerializerModifiers()) {
|
|
449
|
+
for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) {
|
|
450
|
+
props = mod.orderProperties(config, beanDesc, props);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
builder.setProperties(props);
|
|
455
|
+
builder.setFilterId(findFilterId(config, beanDesc));
|
|
456
|
+
|
|
457
|
+
AnnotatedMethod anyGetter = beanDesc.findAnyGetter();
|
|
458
|
+
if (anyGetter != null) { // since 1.6
|
|
459
|
+
if (config.isEnabled(SerializationConfig.Feature.CAN_OVERRIDE_ACCESS_MODIFIERS)) {
|
|
460
|
+
anyGetter.fixAccess();
|
|
461
|
+
}
|
|
462
|
+
JavaType type = anyGetter.getType(beanDesc.bindingsForBeanType());
|
|
463
|
+
// copied from BasicSerializerFactory.buildMapSerializer():
|
|
464
|
+
boolean staticTyping = config.isEnabled(SerializationConfig.Feature.USE_STATIC_TYPING);
|
|
465
|
+
JavaType valueType = type.getContentType();
|
|
466
|
+
TypeSerializer typeSer = createTypeSerializer(config, valueType, property);
|
|
467
|
+
// last 2 nulls; don't know key, value serializers (yet)
|
|
468
|
+
MapSerializer mapSer = MapSerializer.construct(/* ignored props*/ null, type, staticTyping,
|
|
469
|
+
typeSer, property, null, null);
|
|
470
|
+
builder.setAnyGetter(new AnyGetterWriter(anyGetter, mapSer));
|
|
471
|
+
}
|
|
472
|
+
// One more thing: need to gather view information, if any:
|
|
473
|
+
processViews(config, builder);
|
|
474
|
+
// And maybe let interested parties mess with the result bit more...
|
|
475
|
+
if (_factoryConfig.hasSerializerModifiers()) {
|
|
476
|
+
for (BeanSerializerModifier mod : _factoryConfig.serializerModifiers()) {
|
|
477
|
+
builder = mod.updateBuilder(config, beanDesc, builder);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
JsonSerializer<Object> ser = (JsonSerializer<Object>) builder.build();
|
|
481
|
+
|
|
482
|
+
/* However, after all modifications: no properties, no serializer
|
|
483
|
+
* (note; as per [JACKSON-670], check was moved later on from an earlier location)
|
|
484
|
+
*/
|
|
485
|
+
if (ser == null) {
|
|
486
|
+
/* 27-Nov-2009, tatu: Except that as per [JACKSON-201], we are
|
|
487
|
+
* ok with that as long as it has a recognized class annotation
|
|
488
|
+
* (which may come from a mix-in too)
|
|
489
|
+
*/
|
|
490
|
+
if (beanDesc.hasKnownClassAnnotations()) {
|
|
491
|
+
return builder.createDummy();
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
return ser;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* Method called to construct a filtered writer, for given view
|
|
499
|
+
* definitions. Default implementation constructs filter that checks
|
|
500
|
+
* active view type to views property is to be included in.
|
|
501
|
+
*/
|
|
502
|
+
protected BeanPropertyWriter constructFilteredBeanWriter(BeanPropertyWriter writer, Class<?>[] inViews)
|
|
503
|
+
{
|
|
504
|
+
return FilteredBeanPropertyWriter.constructViewBased(writer, inViews);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
protected PropertyBuilder constructPropertyBuilder(SerializationConfig config,
|
|
508
|
+
BasicBeanDescription beanDesc)
|
|
509
|
+
{
|
|
510
|
+
return new PropertyBuilder(config, beanDesc);
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
protected BeanSerializerBuilder constructBeanSerializerBuilder(BasicBeanDescription beanDesc) {
|
|
514
|
+
return new BeanSerializerBuilder(beanDesc);
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
/**
|
|
518
|
+
* Method called to find filter that is configured to be used with bean
|
|
519
|
+
* serializer being built, if any.
|
|
520
|
+
*
|
|
521
|
+
* @since 1.7
|
|
522
|
+
*/
|
|
523
|
+
protected Object findFilterId(SerializationConfig config, BasicBeanDescription beanDesc)
|
|
524
|
+
{
|
|
525
|
+
return config.getAnnotationIntrospector().findFilterId(beanDesc.getClassInfo());
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
/*
|
|
529
|
+
/**********************************************************
|
|
530
|
+
/* Overridable non-public introspection methods
|
|
531
|
+
/**********************************************************
|
|
532
|
+
*/
|
|
533
|
+
|
|
534
|
+
/**
|
|
535
|
+
* Helper method used to skip processing for types that we know
|
|
536
|
+
* can not be (i.e. are never consider to be) beans:
|
|
537
|
+
* things like primitives, Arrays, Enums, and proxy types.
|
|
538
|
+
*<p>
|
|
539
|
+
* Note that usually we shouldn't really be getting these sort of
|
|
540
|
+
* types anyway; but better safe than sorry.
|
|
541
|
+
*/
|
|
542
|
+
protected boolean isPotentialBeanType(Class<?> type)
|
|
543
|
+
{
|
|
544
|
+
return (ClassUtil.canBeABeanType(type) == null) && !ClassUtil.isProxyType(type);
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
/**
|
|
548
|
+
* Method used to collect all actual serializable properties.
|
|
549
|
+
* Can be overridden to implement custom detection schemes.
|
|
550
|
+
*/
|
|
551
|
+
protected List<BeanPropertyWriter> findBeanProperties(SerializationConfig config, BasicBeanDescription beanDesc)
|
|
552
|
+
throws JsonMappingException
|
|
553
|
+
{
|
|
554
|
+
List<BeanPropertyDefinition> properties = beanDesc.findProperties();
|
|
555
|
+
AnnotationIntrospector intr = config.getAnnotationIntrospector();
|
|
556
|
+
|
|
557
|
+
// [JACKSON-429]: ignore specified types
|
|
558
|
+
removeIgnorableTypes(config, beanDesc, properties);
|
|
559
|
+
|
|
560
|
+
// and possibly remove ones without matching mutator...
|
|
561
|
+
if (config.isEnabled(SerializationConfig.Feature.REQUIRE_SETTERS_FOR_GETTERS)) {
|
|
562
|
+
removeSetterlessGetters(config, beanDesc, properties);
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
// nothing? can't proceed (caller may or may not throw an exception)
|
|
566
|
+
if (properties.isEmpty()) {
|
|
567
|
+
return null;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
// null is for value type serializer, which we don't have access to from here (ditto for bean prop)
|
|
571
|
+
boolean staticTyping = usesStaticTyping(config, beanDesc, null, null);
|
|
572
|
+
PropertyBuilder pb = constructPropertyBuilder(config, beanDesc);
|
|
573
|
+
|
|
574
|
+
ArrayList<BeanPropertyWriter> result = new ArrayList<BeanPropertyWriter>(properties.size());
|
|
575
|
+
TypeBindings typeBind = beanDesc.bindingsForBeanType();
|
|
576
|
+
// [JACKSON-98]: start with field properties, if any
|
|
577
|
+
for (BeanPropertyDefinition property : properties) {
|
|
578
|
+
AnnotatedMember accessor = property.getAccessor();
|
|
579
|
+
// [JACKSON-235]: suppress writing of back references
|
|
580
|
+
AnnotationIntrospector.ReferenceProperty prop = intr.findReferenceType(accessor);
|
|
581
|
+
if (prop != null && prop.isBackReference()) {
|
|
582
|
+
continue;
|
|
583
|
+
}
|
|
584
|
+
String name = property.getName();
|
|
585
|
+
if (accessor instanceof AnnotatedMethod) {
|
|
586
|
+
result.add(_constructWriter(config, typeBind, pb, staticTyping, name, (AnnotatedMethod) accessor));
|
|
587
|
+
} else {
|
|
588
|
+
result.add(_constructWriter(config, typeBind, pb, staticTyping, name, (AnnotatedField) accessor));
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
return result;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
/*
|
|
595
|
+
/**********************************************************
|
|
596
|
+
/* Overridable non-public methods for manipulating bean properties
|
|
597
|
+
/**********************************************************
|
|
598
|
+
*/
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* Overridable method that can filter out properties. Default implementation
|
|
602
|
+
* checks annotations class may have.
|
|
603
|
+
*/
|
|
604
|
+
protected List<BeanPropertyWriter> filterBeanProperties(SerializationConfig config,
|
|
605
|
+
BasicBeanDescription beanDesc, List<BeanPropertyWriter> props)
|
|
606
|
+
{
|
|
607
|
+
AnnotationIntrospector intr = config.getAnnotationIntrospector();
|
|
608
|
+
AnnotatedClass ac = beanDesc.getClassInfo();
|
|
609
|
+
String[] ignored = intr.findPropertiesToIgnore(ac);
|
|
610
|
+
if (ignored != null && ignored.length > 0) {
|
|
611
|
+
HashSet<String> ignoredSet = ArrayBuilders.arrayToSet(ignored);
|
|
612
|
+
Iterator<BeanPropertyWriter> it = props.iterator();
|
|
613
|
+
while (it.hasNext()) {
|
|
614
|
+
if (ignoredSet.contains(it.next().getName())) {
|
|
615
|
+
it.remove();
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
return props;
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
/**
|
|
623
|
+
* Overridable method that will impose given partial ordering on
|
|
624
|
+
* list of discovered propertied. Method can be overridden to
|
|
625
|
+
* provide custom ordering of properties, beyond configurability
|
|
626
|
+
* offered by annotations (whic allow alphabetic ordering, as
|
|
627
|
+
* well as explicit ordering by providing array of property names).
|
|
628
|
+
*<p>
|
|
629
|
+
* By default Creator properties will be ordered before other
|
|
630
|
+
* properties. Explicit custom ordering will override this implicit
|
|
631
|
+
* default ordering.
|
|
632
|
+
*/
|
|
633
|
+
/**
|
|
634
|
+
* Method that used to be called (pre-1.9) to impose configured
|
|
635
|
+
* ordering on list of discovered properties.
|
|
636
|
+
* With 1.9 it is not needed any more as ordering is done earlier.
|
|
637
|
+
*
|
|
638
|
+
* @deprecated Since 1.9 this method does nothing, so there is no
|
|
639
|
+
* benefit from overriding it; it will be removed from 2.0.
|
|
640
|
+
*/
|
|
641
|
+
@Deprecated
|
|
642
|
+
protected List<BeanPropertyWriter> sortBeanProperties(SerializationConfig config,
|
|
643
|
+
BasicBeanDescription beanDesc, List<BeanPropertyWriter> props)
|
|
644
|
+
{
|
|
645
|
+
return props;
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
/**
|
|
649
|
+
* Method called to handle view information for constructed serializer,
|
|
650
|
+
* based on bean property writers.
|
|
651
|
+
*<p>
|
|
652
|
+
* Note that this method is designed to be overridden by sub-classes
|
|
653
|
+
* if they want to provide custom view handling. As such it is not
|
|
654
|
+
* considered an internal implementation detail, and will be supported
|
|
655
|
+
* as part of API going forward.
|
|
656
|
+
*<p>
|
|
657
|
+
* NOTE: signature of this method changed in 1.7, due to other significant
|
|
658
|
+
* changes (esp. use of builder for serializer construction).
|
|
659
|
+
*/
|
|
660
|
+
protected void processViews(SerializationConfig config, BeanSerializerBuilder builder)
|
|
661
|
+
{
|
|
662
|
+
// [JACKSON-232]: whether non-annotated fields are included by default or not is configurable
|
|
663
|
+
List<BeanPropertyWriter> props = builder.getProperties();
|
|
664
|
+
boolean includeByDefault = config.isEnabled(SerializationConfig.Feature.DEFAULT_VIEW_INCLUSION);
|
|
665
|
+
final int propCount = props.size();
|
|
666
|
+
int viewsFound = 0;
|
|
667
|
+
BeanPropertyWriter[] filtered = new BeanPropertyWriter[propCount];
|
|
668
|
+
// Simple: view information is stored within individual writers, need to combine:
|
|
669
|
+
for (int i = 0; i < propCount; ++i) {
|
|
670
|
+
BeanPropertyWriter bpw = props.get(i);
|
|
671
|
+
Class<?>[] views = bpw.getViews();
|
|
672
|
+
if (views == null) { // no view info? include or exclude by default?
|
|
673
|
+
if (includeByDefault) {
|
|
674
|
+
filtered[i] = bpw;
|
|
675
|
+
}
|
|
676
|
+
} else {
|
|
677
|
+
++viewsFound;
|
|
678
|
+
filtered[i] = constructFilteredBeanWriter(bpw, views);
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
// minor optimization: if no view info, include-by-default, can leave out filtering info altogether:
|
|
682
|
+
if (includeByDefault && viewsFound == 0) {
|
|
683
|
+
return;
|
|
684
|
+
}
|
|
685
|
+
builder.setFilteredProperties(filtered);
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
/**
|
|
689
|
+
* Method that will apply by-type limitations (as per [JACKSON-429]);
|
|
690
|
+
* by default this is based on {@link sh.calaba.org.codehaus.jackson.annotate.JsonIgnoreType} annotation but
|
|
691
|
+
* can be supplied by module-provided introspectors too.
|
|
692
|
+
*/
|
|
693
|
+
protected void removeIgnorableTypes(SerializationConfig config, BasicBeanDescription beanDesc,
|
|
694
|
+
List<BeanPropertyDefinition> properties)
|
|
695
|
+
{
|
|
696
|
+
AnnotationIntrospector intr = config.getAnnotationIntrospector();
|
|
697
|
+
HashMap<Class<?>,Boolean> ignores = new HashMap<Class<?>,Boolean>();
|
|
698
|
+
Iterator<BeanPropertyDefinition> it = properties.iterator();
|
|
699
|
+
while (it.hasNext()) {
|
|
700
|
+
BeanPropertyDefinition property = it.next();
|
|
701
|
+
AnnotatedMember accessor = property.getAccessor();
|
|
702
|
+
if (accessor == null) {
|
|
703
|
+
it.remove();
|
|
704
|
+
continue;
|
|
705
|
+
}
|
|
706
|
+
Class<?> type = accessor.getRawType();
|
|
707
|
+
Boolean result = ignores.get(type);
|
|
708
|
+
if (result == null) {
|
|
709
|
+
BasicBeanDescription desc = config.introspectClassAnnotations(type);
|
|
710
|
+
AnnotatedClass ac = desc.getClassInfo();
|
|
711
|
+
result = intr.isIgnorableType(ac);
|
|
712
|
+
// default to false, non-ignorable
|
|
713
|
+
if (result == null) {
|
|
714
|
+
result = Boolean.FALSE;
|
|
715
|
+
}
|
|
716
|
+
ignores.put(type, result);
|
|
717
|
+
}
|
|
718
|
+
// lotsa work, and yes, it is ignorable type, so:
|
|
719
|
+
if (result.booleanValue()) {
|
|
720
|
+
it.remove();
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
/**
|
|
726
|
+
* Helper method that will remove all properties that do not have a
|
|
727
|
+
* mutator.
|
|
728
|
+
*
|
|
729
|
+
* @since 1.9
|
|
730
|
+
*/
|
|
731
|
+
protected void removeSetterlessGetters(SerializationConfig config, BasicBeanDescription beanDesc,
|
|
732
|
+
List<BeanPropertyDefinition> properties)
|
|
733
|
+
{
|
|
734
|
+
Iterator<BeanPropertyDefinition> it = properties.iterator();
|
|
735
|
+
while (it.hasNext()) {
|
|
736
|
+
BeanPropertyDefinition property = it.next();
|
|
737
|
+
if (!property.couldDeserialize()) {
|
|
738
|
+
it.remove();
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
/*
|
|
744
|
+
/**********************************************************
|
|
745
|
+
/* Internal helper methods
|
|
746
|
+
/**********************************************************
|
|
747
|
+
*/
|
|
748
|
+
|
|
749
|
+
/**
|
|
750
|
+
* Secondary helper method for constructing {@link BeanPropertyWriter} for
|
|
751
|
+
* given member (field or method).
|
|
752
|
+
*/
|
|
753
|
+
protected BeanPropertyWriter _constructWriter(SerializationConfig config, TypeBindings typeContext,
|
|
754
|
+
PropertyBuilder pb, boolean staticTyping, String name, AnnotatedMember accessor)
|
|
755
|
+
throws JsonMappingException
|
|
756
|
+
{
|
|
757
|
+
if (config.isEnabled(SerializationConfig.Feature.CAN_OVERRIDE_ACCESS_MODIFIERS)) {
|
|
758
|
+
accessor.fixAccess();
|
|
759
|
+
}
|
|
760
|
+
JavaType type = accessor.getType(typeContext);
|
|
761
|
+
BeanProperty.Std property = new BeanProperty.Std(name, type, pb.getClassAnnotations(), accessor);
|
|
762
|
+
|
|
763
|
+
// Does member specify a serializer? If so, let's use it.
|
|
764
|
+
JsonSerializer<Object> annotatedSerializer = findSerializerFromAnnotation(config, accessor, property);
|
|
765
|
+
// And how about polymorphic typing? First special to cover JAXB per-field settings:
|
|
766
|
+
TypeSerializer contentTypeSer = null;
|
|
767
|
+
if (ClassUtil.isCollectionMapOrArray(type.getRawClass())) {
|
|
768
|
+
contentTypeSer = findPropertyContentTypeSerializer(type, config, accessor, property);
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
// and if not JAXB collection/array with annotations, maybe regular type info?
|
|
772
|
+
TypeSerializer typeSer = findPropertyTypeSerializer(type, config, accessor, property);
|
|
773
|
+
BeanPropertyWriter pbw = pb.buildWriter(name, type, annotatedSerializer,
|
|
774
|
+
typeSer, contentTypeSer, accessor, staticTyping);
|
|
775
|
+
// how about views? (1.4+)
|
|
776
|
+
AnnotationIntrospector intr = config.getAnnotationIntrospector();
|
|
777
|
+
pbw.setViews(intr.findSerializationViews(accessor));
|
|
778
|
+
return pbw;
|
|
779
|
+
}
|
|
780
|
+
}
|