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,258 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map;
|
|
2
|
+
|
|
3
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedField;
|
|
4
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedMethod;
|
|
5
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedParameter;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Class that defines how names of JSON properties ("external names")
|
|
9
|
+
* are derived from names of POJO methods and fields ("internal names"),
|
|
10
|
+
* in cases where they are not
|
|
11
|
+
* auto-detected and no explicit annotations exist for naming.
|
|
12
|
+
* Methods are passed information about POJO member for which name is needed,
|
|
13
|
+
* as well as default name that would be used if no custom strategy was used.
|
|
14
|
+
*<p>
|
|
15
|
+
* Default implementation returns suggested ("default") name unmodified.
|
|
16
|
+
*<p>
|
|
17
|
+
* Note that the strategy is guaranteed to be called once per logical property
|
|
18
|
+
* (which may be represented by multiple members; such as pair of a getter and
|
|
19
|
+
* a setter), but may be called for each: implementations should not count on
|
|
20
|
+
* exact number of times, and should work for any member that represent a
|
|
21
|
+
* property.
|
|
22
|
+
*<p>
|
|
23
|
+
* In absence of a registered custom strategy, default Java property naming strategy
|
|
24
|
+
* is used, which leaves field names as is, and removes set/get/is prefix
|
|
25
|
+
* from methods (as well as lower-cases initial sequence of capitalized
|
|
26
|
+
* characters).
|
|
27
|
+
*
|
|
28
|
+
* @since 1.8
|
|
29
|
+
*/
|
|
30
|
+
public abstract class PropertyNamingStrategy
|
|
31
|
+
{
|
|
32
|
+
/*
|
|
33
|
+
/**********************************************************
|
|
34
|
+
/* API
|
|
35
|
+
/**********************************************************
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Method called to find external name (name used in JSON) for given logical
|
|
40
|
+
* POJO property,
|
|
41
|
+
* as defined by given field.
|
|
42
|
+
*
|
|
43
|
+
* @param config Configuration in used: either <code>SerializationConfig</code>
|
|
44
|
+
* or <code>DeserializationConfig</code>, depending on whether method is called
|
|
45
|
+
* during serialization or deserialization
|
|
46
|
+
* @param field Field used to access property
|
|
47
|
+
* @param defaultName Default name that would be used for property in absence of custom strategy
|
|
48
|
+
*
|
|
49
|
+
* @return Logical name to use for property that the field represents
|
|
50
|
+
*/
|
|
51
|
+
public String nameForField(MapperConfig<?> config, AnnotatedField field,
|
|
52
|
+
String defaultName)
|
|
53
|
+
{
|
|
54
|
+
return defaultName;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Method called to find external name (name used in JSON) for given logical
|
|
59
|
+
* POJO property,
|
|
60
|
+
* as defined by given getter method; typically called when building a serializer.
|
|
61
|
+
* (but not always -- when using "getter-as-setter", may be called during
|
|
62
|
+
* deserialization)
|
|
63
|
+
*
|
|
64
|
+
* @param config Configuration in used: either <code>SerializationConfig</code>
|
|
65
|
+
* or <code>DeserializationConfig</code>, depending on whether method is called
|
|
66
|
+
* during serialization or deserialization
|
|
67
|
+
* @param method Method used to access property.
|
|
68
|
+
* @param defaultName Default name that would be used for property in absence of custom strategy
|
|
69
|
+
*
|
|
70
|
+
* @return Logical name to use for property that the method represents
|
|
71
|
+
*/
|
|
72
|
+
public String nameForGetterMethod(MapperConfig<?> config, AnnotatedMethod method,
|
|
73
|
+
String defaultName)
|
|
74
|
+
{
|
|
75
|
+
return defaultName;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Method called to find external name (name used in JSON) for given logical
|
|
80
|
+
* POJO property,
|
|
81
|
+
* as defined by given setter method; typically called when building a deserializer
|
|
82
|
+
* (but not necessarily only then).
|
|
83
|
+
*
|
|
84
|
+
* @param config Configuration in used: either <code>SerializationConfig</code>
|
|
85
|
+
* or <code>DeserializationConfig</code>, depending on whether method is called
|
|
86
|
+
* during serialization or deserialization
|
|
87
|
+
* @param method Method used to access property.
|
|
88
|
+
* @param defaultName Default name that would be used for property in absence of custom strategy
|
|
89
|
+
*
|
|
90
|
+
* @return Logical name to use for property that the method represents
|
|
91
|
+
*/
|
|
92
|
+
public String nameForSetterMethod(MapperConfig<?> config, AnnotatedMethod method,
|
|
93
|
+
String defaultName)
|
|
94
|
+
{
|
|
95
|
+
return defaultName;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Method called to find external name (name used in JSON) for given logical
|
|
100
|
+
* POJO property,
|
|
101
|
+
* as defined by given constructor parameter; typically called when building a deserializer
|
|
102
|
+
* (but not necessarily only then).
|
|
103
|
+
*
|
|
104
|
+
* @param config Configuration in used: either <code>SerializationConfig</code>
|
|
105
|
+
* or <code>DeserializationConfig</code>, depending on whether method is called
|
|
106
|
+
* during serialization or deserialization
|
|
107
|
+
* @param ctorParam Constructor parameter used to pass property.
|
|
108
|
+
* @param defaultName Default name that would be used for property in absence of custom strategy
|
|
109
|
+
* @since 1.9
|
|
110
|
+
*/
|
|
111
|
+
public String nameForConstructorParameter(MapperConfig<?> config, AnnotatedParameter ctorParam,
|
|
112
|
+
String defaultName)
|
|
113
|
+
{
|
|
114
|
+
return defaultName;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/*
|
|
118
|
+
/**********************************************************
|
|
119
|
+
/* Standard implementations
|
|
120
|
+
/**********************************************************
|
|
121
|
+
*/
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* @since 1.9
|
|
125
|
+
*/
|
|
126
|
+
public static abstract class PropertyNamingStrategyBase extends PropertyNamingStrategy
|
|
127
|
+
{
|
|
128
|
+
@Override
|
|
129
|
+
public String nameForField(MapperConfig<?> config, AnnotatedField field, String defaultName)
|
|
130
|
+
{
|
|
131
|
+
return translate(defaultName);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
@Override
|
|
135
|
+
public String nameForGetterMethod(MapperConfig<?> config, AnnotatedMethod method, String defaultName)
|
|
136
|
+
{
|
|
137
|
+
return translate(defaultName);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
@Override
|
|
141
|
+
public String nameForSetterMethod(MapperConfig<?> config, AnnotatedMethod method, String defaultName)
|
|
142
|
+
{
|
|
143
|
+
return translate(defaultName);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
@Override
|
|
147
|
+
public String nameForConstructorParameter(MapperConfig<?> config, AnnotatedParameter ctorParam,
|
|
148
|
+
String defaultName)
|
|
149
|
+
{
|
|
150
|
+
return translate(defaultName);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
public abstract String translate(String propertyName);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
/*
|
|
158
|
+
/**********************************************************
|
|
159
|
+
/* Standard implementations
|
|
160
|
+
/**********************************************************
|
|
161
|
+
*/
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* See {@link LowerCaseWithUnderscoresStrategy} for details.
|
|
165
|
+
*
|
|
166
|
+
* @since 1.9
|
|
167
|
+
*/
|
|
168
|
+
public static final PropertyNamingStrategy CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES =
|
|
169
|
+
new LowerCaseWithUnderscoresStrategy();
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* A {@link PropertyNamingStrategy} that translates typical camel case Java
|
|
173
|
+
* property names to lower case JSON element names, separated by
|
|
174
|
+
* underscores. This implementation is somewhat lenient, in that it
|
|
175
|
+
* provides some additional translations beyond strictly translating from
|
|
176
|
+
* camel case only. In particular, the following translations are applied
|
|
177
|
+
* by this PropertyNamingStrategy.
|
|
178
|
+
*
|
|
179
|
+
* <ul><li>Every upper case letter in the Java property name is translated
|
|
180
|
+
* into two characters, an underscore and the lower case equivalent of the
|
|
181
|
+
* target character, with three exceptions.
|
|
182
|
+
* <ol><li>For contiguous sequences of upper case letters, characters after
|
|
183
|
+
* the first character are replaced only by their lower case equivalent,
|
|
184
|
+
* and are not preceded by an underscore.
|
|
185
|
+
* <ul><li>This provides for reasonable translations of upper case acronyms,
|
|
186
|
+
* e.g., "theWWW" is translated to "the_www".</li></ul></li>
|
|
187
|
+
* <li>An upper case character in the first position of the Java property
|
|
188
|
+
* name is not preceded by an underscore character, and is translated only
|
|
189
|
+
* to its lower case equivalent.
|
|
190
|
+
* <ul><li>For example, "Results" is translated to "results",
|
|
191
|
+
* and not to "_results".</li></ul></li>
|
|
192
|
+
* <li>An upper case character in the Java property name that is already
|
|
193
|
+
* preceded by an underscore character is translated only to its lower case
|
|
194
|
+
* equivalent, and is not preceded by an additional underscore.
|
|
195
|
+
* <ul><li>For example, "user_Name" is translated to
|
|
196
|
+
* "user_name", and not to "user__name" (with two
|
|
197
|
+
* underscore characters).</li></ul></li></ol></li>
|
|
198
|
+
* <li>If the Java property name starts with an underscore, then that
|
|
199
|
+
* underscore is not included in the translated name, unless the Java
|
|
200
|
+
* property name is just one character in length, i.e., it is the
|
|
201
|
+
* underscore character. This applies only to the first character of the
|
|
202
|
+
* Java property name.</li></ul>
|
|
203
|
+
*
|
|
204
|
+
* These rules result in the following additional example translations from
|
|
205
|
+
* Java property names to JSON element names.
|
|
206
|
+
* <ul><li>"userName" is translated to "user_name"</li>
|
|
207
|
+
* <li>"UserName" is translated to "user_name"</li>
|
|
208
|
+
* <li>"USER_NAME" is translated to "user_name"</li>
|
|
209
|
+
* <li>"user_name" is translated to "user_name" (unchanged)</li>
|
|
210
|
+
* <li>"user" is translated to "user" (unchanged)</li>
|
|
211
|
+
* <li>"User" is translated to "user"</li>
|
|
212
|
+
* <li>"USER" is translated to "user"</li>
|
|
213
|
+
* <li>"_user" is translated to "user"</li>
|
|
214
|
+
* <li>"_User" is translated to "user"</li>
|
|
215
|
+
* <li>"__user" is translated to "_user"
|
|
216
|
+
* (the first of two underscores was removed)</li>
|
|
217
|
+
* <li>"user__name" is translated to "user__name"
|
|
218
|
+
* (unchanged, with two underscores)</li></ul>
|
|
219
|
+
*
|
|
220
|
+
* @since 1.9
|
|
221
|
+
*/
|
|
222
|
+
public static class LowerCaseWithUnderscoresStrategy extends PropertyNamingStrategyBase
|
|
223
|
+
{
|
|
224
|
+
@Override
|
|
225
|
+
public String translate(String input)
|
|
226
|
+
{
|
|
227
|
+
if (input == null) return input; // garbage in, garbage out
|
|
228
|
+
int length = input.length();
|
|
229
|
+
StringBuilder result = new StringBuilder(length * 2);
|
|
230
|
+
int resultLength = 0;
|
|
231
|
+
boolean wasPrevTranslated = false;
|
|
232
|
+
for (int i = 0; i < length; i++)
|
|
233
|
+
{
|
|
234
|
+
char c = input.charAt(i);
|
|
235
|
+
if (i > 0 || c != '_') // skip first starting underscore
|
|
236
|
+
{
|
|
237
|
+
if (Character.isUpperCase(c))
|
|
238
|
+
{
|
|
239
|
+
if (!wasPrevTranslated && resultLength > 0 && result.charAt(resultLength - 1) != '_')
|
|
240
|
+
{
|
|
241
|
+
result.append('_');
|
|
242
|
+
resultLength++;
|
|
243
|
+
}
|
|
244
|
+
c = Character.toLowerCase(c);
|
|
245
|
+
wasPrevTranslated = true;
|
|
246
|
+
}
|
|
247
|
+
else
|
|
248
|
+
{
|
|
249
|
+
wasPrevTranslated = false;
|
|
250
|
+
}
|
|
251
|
+
result.append(c);
|
|
252
|
+
resultLength++;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return resultLength > 0 ? result.toString() : input;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map;
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Interface used to indicate deserializers that want to do post-processing
|
|
5
|
+
* after construction and being added to {@link DeserializerProvider},
|
|
6
|
+
* but before being used. This is typically used to resolve references
|
|
7
|
+
* to other contained types; for example, bean deserializers use this
|
|
8
|
+
* to eagerly find deserializers for contained field types.
|
|
9
|
+
*/
|
|
10
|
+
public interface ResolvableDeserializer
|
|
11
|
+
{
|
|
12
|
+
/**
|
|
13
|
+
* Method called after {@link DeserializerProvider} has registered
|
|
14
|
+
* the deserializer, but before it has returned it to the caller.
|
|
15
|
+
* Called object can then resolve its dependencies to other types,
|
|
16
|
+
* including self-references (direct or indirect).
|
|
17
|
+
*
|
|
18
|
+
* @param provider Provider that has constructed deserializer this method
|
|
19
|
+
* is called on.
|
|
20
|
+
*/
|
|
21
|
+
public abstract void resolve(DeserializationConfig config, DeserializerProvider provider)
|
|
22
|
+
throws JsonMappingException;
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map;
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Interface used to indicate serializers that want to do post-processing
|
|
5
|
+
* after construction and being added to {@link SerializerProvider},
|
|
6
|
+
* but before being used. This is typically used to resolve references
|
|
7
|
+
* to other contained types; for example, bean serializers use this
|
|
8
|
+
* to eagerly find serializers for contained field types.
|
|
9
|
+
*/
|
|
10
|
+
public interface ResolvableSerializer
|
|
11
|
+
{
|
|
12
|
+
/**
|
|
13
|
+
* Method called after {@link SerializerProvider} has registered
|
|
14
|
+
* the serializer, but before it has returned it to the caller.
|
|
15
|
+
* Called object can then resolve its dependencies to other types,
|
|
16
|
+
* including self-references (direct or indirect).
|
|
17
|
+
*
|
|
18
|
+
* @param provider Provider that has constructed serializer this method
|
|
19
|
+
* is called on.
|
|
20
|
+
*/
|
|
21
|
+
public abstract void resolve(SerializerProvider provider)
|
|
22
|
+
throws JsonMappingException;
|
|
23
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map;
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Wrapper used when interface does not allow throwing a checked
|
|
5
|
+
* {@link JsonMappingException}
|
|
6
|
+
*/
|
|
7
|
+
@SuppressWarnings("serial")
|
|
8
|
+
public class RuntimeJsonMappingException extends RuntimeException
|
|
9
|
+
{
|
|
10
|
+
public RuntimeJsonMappingException(JsonMappingException cause) {
|
|
11
|
+
super(cause);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
public RuntimeJsonMappingException(String message) {
|
|
15
|
+
super(message);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public RuntimeJsonMappingException(String message, JsonMappingException cause) {
|
|
19
|
+
super(message, cause);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,1041 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map;
|
|
2
|
+
|
|
3
|
+
import java.text.DateFormat;
|
|
4
|
+
import java.util.HashMap;
|
|
5
|
+
|
|
6
|
+
import sh.calaba.org.codehaus.jackson.annotate.JsonAutoDetect;
|
|
7
|
+
import sh.calaba.org.codehaus.jackson.annotate.JsonMethod;
|
|
8
|
+
import sh.calaba.org.codehaus.jackson.annotate.JsonWriteNullProperties;
|
|
9
|
+
import sh.calaba.org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
|
|
10
|
+
import sh.calaba.org.codehaus.jackson.map.annotate.JsonSerialize;
|
|
11
|
+
import sh.calaba.org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
|
|
12
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.Annotated;
|
|
13
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedClass;
|
|
14
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.VisibilityChecker;
|
|
15
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.SubtypeResolver;
|
|
16
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.TypeResolverBuilder;
|
|
17
|
+
import sh.calaba.org.codehaus.jackson.map.ser.FilterProvider;
|
|
18
|
+
import sh.calaba.org.codehaus.jackson.map.type.ClassKey;
|
|
19
|
+
import sh.calaba.org.codehaus.jackson.map.type.TypeFactory;
|
|
20
|
+
import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
|
|
21
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Object that contains baseline configuration for serialization
|
|
25
|
+
* process. An instance is owned by {@link ObjectMapper}, which makes
|
|
26
|
+
* a copy that is passed during serialization process to
|
|
27
|
+
* {@link SerializerProvider} and {@link SerializerFactory}.
|
|
28
|
+
*<p>
|
|
29
|
+
* Note: although configuration settings can be changed at any time
|
|
30
|
+
* (for factories and instances), they are not guaranteed to have
|
|
31
|
+
* effect if called after constructing relevant mapper or serializer
|
|
32
|
+
* instance. This because some objects may be configured, constructed and
|
|
33
|
+
* cached first time they are needed.
|
|
34
|
+
*<p>
|
|
35
|
+
* As of version 1.9, the goal is to make this class eventually immutable.
|
|
36
|
+
* Because of this, existing methods that allow changing state of this
|
|
37
|
+
* instance are deprecated in favor of methods that create new instances
|
|
38
|
+
* with different configuration ("fluent factories")
|
|
39
|
+
*/
|
|
40
|
+
public class SerializationConfig
|
|
41
|
+
extends MapperConfig.Impl<SerializationConfig.Feature, SerializationConfig>
|
|
42
|
+
{
|
|
43
|
+
/**
|
|
44
|
+
* Enumeration that defines togglable features that guide
|
|
45
|
+
* the serialization feature.
|
|
46
|
+
*/
|
|
47
|
+
public enum Feature implements MapperConfig.ConfigFeature
|
|
48
|
+
{
|
|
49
|
+
/*
|
|
50
|
+
/******************************************************
|
|
51
|
+
/* Introspection features
|
|
52
|
+
/******************************************************
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Feature that determines whether annotation introspection
|
|
57
|
+
* is used for configuration; if enabled, configured
|
|
58
|
+
* {@link AnnotationIntrospector} will be used: if disabled,
|
|
59
|
+
* no annotations are considered.
|
|
60
|
+
*<P>
|
|
61
|
+
* Feature is enabled by default.
|
|
62
|
+
*
|
|
63
|
+
* @since 1.2
|
|
64
|
+
*/
|
|
65
|
+
USE_ANNOTATIONS(true),
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Feature that determines whether regualr "getter" methods are
|
|
69
|
+
* automatically detected based on standard Bean naming convention
|
|
70
|
+
* or not. If yes, then all public zero-argument methods that
|
|
71
|
+
* start with prefix "get"
|
|
72
|
+
* are considered as getters.
|
|
73
|
+
* If disabled, only methods explicitly annotated are considered getters.
|
|
74
|
+
*<p>
|
|
75
|
+
* Note that since version 1.3, this does <b>NOT</b> include
|
|
76
|
+
* "is getters" (see {@link #AUTO_DETECT_IS_GETTERS} for details)
|
|
77
|
+
*<p>
|
|
78
|
+
* Note that this feature has lower precedence than per-class
|
|
79
|
+
* annotations, and is only used if there isn't more granular
|
|
80
|
+
* configuration available.
|
|
81
|
+
*<P>
|
|
82
|
+
* Feature is enabled by default.
|
|
83
|
+
*/
|
|
84
|
+
AUTO_DETECT_GETTERS(true),
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Feature that determines whether "is getter" methods are
|
|
88
|
+
* automatically detected based on standard Bean naming convention
|
|
89
|
+
* or not. If yes, then all public zero-argument methods that
|
|
90
|
+
* start with prefix "is", and whose return type is boolean
|
|
91
|
+
* are considered as "is getters".
|
|
92
|
+
* If disabled, only methods explicitly annotated are considered getters.
|
|
93
|
+
*<p>
|
|
94
|
+
* Note that this feature has lower precedence than per-class
|
|
95
|
+
* annotations, and is only used if there isn't more granular
|
|
96
|
+
* configuration available.
|
|
97
|
+
*<P>
|
|
98
|
+
* Feature is enabled by default.
|
|
99
|
+
*/
|
|
100
|
+
AUTO_DETECT_IS_GETTERS(true),
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Feature that determines whether non-static fields are recognized as
|
|
104
|
+
* properties.
|
|
105
|
+
* If yes, then all public member fields
|
|
106
|
+
* are considered as properties. If disabled, only fields explicitly
|
|
107
|
+
* annotated are considered property fields.
|
|
108
|
+
*<p>
|
|
109
|
+
* Note that this feature has lower precedence than per-class
|
|
110
|
+
* annotations, and is only used if there isn't more granular
|
|
111
|
+
* configuration available.
|
|
112
|
+
*<p>
|
|
113
|
+
* Feature is enabled by default.
|
|
114
|
+
*
|
|
115
|
+
* @since 1.1
|
|
116
|
+
*/
|
|
117
|
+
AUTO_DETECT_FIELDS(true),
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Feature that determines whether method and field access
|
|
121
|
+
* modifier settings can be overridden when accessing
|
|
122
|
+
* properties. If enabled, method
|
|
123
|
+
* {@link java.lang.reflect.AccessibleObject#setAccessible}
|
|
124
|
+
* may be called to enable access to otherwise unaccessible
|
|
125
|
+
* objects.
|
|
126
|
+
*<p>
|
|
127
|
+
* Feature is enabled by default.
|
|
128
|
+
*/
|
|
129
|
+
CAN_OVERRIDE_ACCESS_MODIFIERS(true),
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Feature that determines whether getters (getter methods)
|
|
133
|
+
* can be auto-detected if there is no matching mutator (setter,
|
|
134
|
+
* constructor parameter or field) or not: if set to true,
|
|
135
|
+
* only getters that match a mutator are auto-discovered; if
|
|
136
|
+
* false, all auto-detectable getters can be discovered.
|
|
137
|
+
*<p>
|
|
138
|
+
* Feature is disabled by default for backwards compatibility
|
|
139
|
+
* reasons.
|
|
140
|
+
*
|
|
141
|
+
* @since 1.9
|
|
142
|
+
*/
|
|
143
|
+
REQUIRE_SETTERS_FOR_GETTERS(false),
|
|
144
|
+
|
|
145
|
+
/*
|
|
146
|
+
/******************************************************
|
|
147
|
+
/* Generic output features
|
|
148
|
+
/******************************************************
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Feature that determines the default settings of whether Bean
|
|
153
|
+
* properties with null values are to be written out.
|
|
154
|
+
*<p>
|
|
155
|
+
* Feature is enabled by default (null properties written).
|
|
156
|
+
*<p>
|
|
157
|
+
* Note too that there is annotation
|
|
158
|
+
* {@link sh.calaba.org.codehaus.jackson.annotate.JsonWriteNullProperties}
|
|
159
|
+
* that can be used for more granular control (annotates bean
|
|
160
|
+
* classes or individual property access methods).
|
|
161
|
+
*
|
|
162
|
+
* @deprecated As of 1.1, use {@link SerializationConfig#setSerializationInclusion}
|
|
163
|
+
* instead
|
|
164
|
+
*/
|
|
165
|
+
@Deprecated
|
|
166
|
+
WRITE_NULL_PROPERTIES(true),
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Feature that determines whether the type detection for
|
|
170
|
+
* serialization should be using actual dynamic runtime type,
|
|
171
|
+
* or declared static type.
|
|
172
|
+
* Default value is false, to use dynamic runtime type.
|
|
173
|
+
*<p>
|
|
174
|
+
* This global default value can be overridden at class, method
|
|
175
|
+
* or field level by using {@link JsonSerialize#typing} annotation
|
|
176
|
+
* property
|
|
177
|
+
*/
|
|
178
|
+
USE_STATIC_TYPING(false),
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Feature that determines whether properties that have no view
|
|
182
|
+
* annotations are included in JSON serialization views (see
|
|
183
|
+
* {@link sh.calaba.org.codehaus.jackson.map.annotate.JsonView} for more
|
|
184
|
+
* details on JSON Views).
|
|
185
|
+
* If enabled, non-annotated properties will be included;
|
|
186
|
+
* when disabled, they will be excluded. So this feature
|
|
187
|
+
* changes between "opt-in" (feature disabled) and
|
|
188
|
+
* "opt-out" (feature enabled) modes.
|
|
189
|
+
*<p>
|
|
190
|
+
* Default value is enabled, meaning that non-annotated
|
|
191
|
+
* properties are included in all views if there is no
|
|
192
|
+
* {@link sh.calaba.org.codehaus.jackson.map.annotate.JsonView} annotation.
|
|
193
|
+
*
|
|
194
|
+
* @since 1.5
|
|
195
|
+
*/
|
|
196
|
+
DEFAULT_VIEW_INCLUSION(true),
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Feature that can be enabled to make root value (usually JSON
|
|
200
|
+
* Object but can be any type) wrapped within a single property
|
|
201
|
+
* JSON object, where key as the "root name", as determined by
|
|
202
|
+
* annotation introspector (esp. for JAXB that uses
|
|
203
|
+
* <code>@XmlRootElement.name</code>) or fallback (non-qualified
|
|
204
|
+
* class name).
|
|
205
|
+
* Feature is mostly intended for JAXB compatibility.
|
|
206
|
+
*<p>
|
|
207
|
+
* Default setting is false, meaning root value is not wrapped.
|
|
208
|
+
*
|
|
209
|
+
* @since 1.7
|
|
210
|
+
*/
|
|
211
|
+
WRAP_ROOT_VALUE(false),
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Feature that allows enabling (or disabling) indentation
|
|
215
|
+
* for the underlying generator, using the default pretty
|
|
216
|
+
* printer (see
|
|
217
|
+
* {@link sh.calaba.org.codehaus.jackson.JsonGenerator#useDefaultPrettyPrinter}
|
|
218
|
+
* for details).
|
|
219
|
+
*<p>
|
|
220
|
+
* Note that this only affects cases where
|
|
221
|
+
* {@link sh.calaba.org.codehaus.jackson.JsonGenerator}
|
|
222
|
+
* is constructed implicitly by ObjectMapper: if explicit
|
|
223
|
+
* generator is passed, its configuration is not changed.
|
|
224
|
+
*<p>
|
|
225
|
+
* Also note that if you want to configure details of indentation,
|
|
226
|
+
* you need to directly configure the generator: there is a
|
|
227
|
+
* method to use any <code>PrettyPrinter</code> instance.
|
|
228
|
+
* This feature will only allow using the default implementation.
|
|
229
|
+
*/
|
|
230
|
+
INDENT_OUTPUT(false),
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Feature that defines default property serialization order used
|
|
234
|
+
* for POJO fields (note: does <b>not</b> apply to {@link java.util.Map}
|
|
235
|
+
* serialization!):
|
|
236
|
+
* if enabled, default ordering is alphabetic (similar to
|
|
237
|
+
* how {@link sh.calaba.org.codehaus.jackson.annotate.JsonPropertyOrder#alphabetic()}
|
|
238
|
+
* works); if disabled, order is unspecified (based on what JDK gives
|
|
239
|
+
* us, which may be declaration order, but not guaranteed).
|
|
240
|
+
*<p>
|
|
241
|
+
* Note that this is just the default behavior, and can be overridden by
|
|
242
|
+
* explicit overrides in classes.
|
|
243
|
+
*
|
|
244
|
+
* @since 1.8
|
|
245
|
+
*/
|
|
246
|
+
SORT_PROPERTIES_ALPHABETICALLY(false),
|
|
247
|
+
|
|
248
|
+
/*
|
|
249
|
+
/******************************************************
|
|
250
|
+
/* Error handling features
|
|
251
|
+
/******************************************************
|
|
252
|
+
*/
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Feature that determines what happens when no accessors are
|
|
256
|
+
* found for a type (and there are no annotations to indicate
|
|
257
|
+
* it is meant to be serialized). If enabled (default), an
|
|
258
|
+
* exception is thrown to indicate these as non-serializable
|
|
259
|
+
* types; if disabled, they are serialized as empty Objects,
|
|
260
|
+
* i.e. without any properties.
|
|
261
|
+
*<p>
|
|
262
|
+
* Note that empty types that this feature has only effect on
|
|
263
|
+
* those "empty" beans that do not have any recognized annotations
|
|
264
|
+
* (like <code>@JsonSerialize</code>): ones that do have annotations
|
|
265
|
+
* do not result in an exception being thrown.
|
|
266
|
+
*
|
|
267
|
+
* @since 1.4
|
|
268
|
+
*/
|
|
269
|
+
FAIL_ON_EMPTY_BEANS(true),
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Feature that determines whether Jackson code should catch
|
|
273
|
+
* and wrap {@link Exception}s (but never {@link Error}s!)
|
|
274
|
+
* to add additional information about
|
|
275
|
+
* location (within input) of problem or not. If enabled,
|
|
276
|
+
* most exceptions will be caught and re-thrown (exception
|
|
277
|
+
* specifically being that {@link java.io.IOException}s may be passed
|
|
278
|
+
* as is, since they are declared as throwable); this can be
|
|
279
|
+
* convenient both in that all exceptions will be checked and
|
|
280
|
+
* declared, and so there is more contextual information.
|
|
281
|
+
* However, sometimes calling application may just want "raw"
|
|
282
|
+
* unchecked exceptions passed as is.
|
|
283
|
+
*<p>
|
|
284
|
+
* Feature is enabled by default, and is similar in behavior
|
|
285
|
+
* to default prior to 1.7.
|
|
286
|
+
*
|
|
287
|
+
* @since 1.7
|
|
288
|
+
*/
|
|
289
|
+
WRAP_EXCEPTIONS(true),
|
|
290
|
+
|
|
291
|
+
/*
|
|
292
|
+
/******************************************************
|
|
293
|
+
/* Output life cycle features
|
|
294
|
+
/******************************************************
|
|
295
|
+
*/
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Feature that determines whether <code>close</code> method of
|
|
299
|
+
* serialized <b>root level</b> objects (ones for which <code>ObjectMapper</code>'s
|
|
300
|
+
* writeValue() (or equivalent) method is called)
|
|
301
|
+
* that implement {@link java.io.Closeable}
|
|
302
|
+
* is called after serialization or not. If enabled, <b>close()</b> will
|
|
303
|
+
* be called after serialization completes (whether succesfully, or
|
|
304
|
+
* due to an error manifested by an exception being thrown). You can
|
|
305
|
+
* think of this as sort of "finally" processing.
|
|
306
|
+
*<p>
|
|
307
|
+
* NOTE: only affects behavior with <b>root</b> objects, and not other
|
|
308
|
+
* objects reachable from the root object. Put another way, only one
|
|
309
|
+
* call will be made for each 'writeValue' call.
|
|
310
|
+
*
|
|
311
|
+
* @since 1.6 (see [JACKSON-282 for details])
|
|
312
|
+
*/
|
|
313
|
+
CLOSE_CLOSEABLE(false),
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Feature that determines whether <code>JsonGenerator.flush()</code> is
|
|
317
|
+
* called after <code>writeValue()</code> method <b>that takes JsonGenerator
|
|
318
|
+
* as an argument</b> completes (i.e. does NOT affect methods
|
|
319
|
+
* that use other destinations); same for methods in {@link ObjectWriter}.
|
|
320
|
+
* This usually makes sense; but there are cases where flushing
|
|
321
|
+
* should not be forced: for example when underlying stream is
|
|
322
|
+
* compressing and flush() causes compression state to be flushed
|
|
323
|
+
* (which occurs with some compression codecs).
|
|
324
|
+
*
|
|
325
|
+
* @since 1.6 (see [JACKSON-401 for details])
|
|
326
|
+
*/
|
|
327
|
+
FLUSH_AFTER_WRITE_VALUE(true),
|
|
328
|
+
|
|
329
|
+
/*
|
|
330
|
+
/******************************************************
|
|
331
|
+
/* Data type - specific serialization configuration
|
|
332
|
+
/******************************************************
|
|
333
|
+
*/
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Feature that determines whether {@link java.util.Date} values
|
|
337
|
+
* (and Date-based things like {@link java.util.Calendar}s) are to be
|
|
338
|
+
* serialized as numeric timestamps (true; the default),
|
|
339
|
+
* or as something else (usually textual representation).
|
|
340
|
+
* If textual representation is used, the actual format is
|
|
341
|
+
* one returned by a call to {@link #getDateFormat}.
|
|
342
|
+
*<p>
|
|
343
|
+
* Note: whether this feature affects handling of other date-related
|
|
344
|
+
* types depend on handlers of those types, although ideally they
|
|
345
|
+
* should use this feature
|
|
346
|
+
*<p>
|
|
347
|
+
* Note: whether {@link java.util.Map} keys are serialized as Strings
|
|
348
|
+
* or not is controlled using {@link #WRITE_DATE_KEYS_AS_TIMESTAMPS}.
|
|
349
|
+
*/
|
|
350
|
+
WRITE_DATES_AS_TIMESTAMPS(true),
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Feature that determines whether {@link java.util.Date}s
|
|
354
|
+
* (and sub-types) used as {@link java.util.Map} keys are serialized
|
|
355
|
+
* as timestamps or not (if not, will be serialized as textual
|
|
356
|
+
* values).
|
|
357
|
+
*<p>
|
|
358
|
+
* Default value is 'false', meaning that Date-valued Map keys are serialized
|
|
359
|
+
* as textual (ISO-8601) values.
|
|
360
|
+
*
|
|
361
|
+
* @since 1.9
|
|
362
|
+
*/
|
|
363
|
+
WRITE_DATE_KEYS_AS_TIMESTAMPS(false),
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Feature that determines how type <code>char[]</code> is serialized:
|
|
367
|
+
* when enabled, will be serialized as an explict JSON array (with
|
|
368
|
+
* single-character Strings as values); when disabled, defaults to
|
|
369
|
+
* serializing them as Strings (which is more compact).
|
|
370
|
+
*
|
|
371
|
+
* @since 1.6 (see [JACKSON-289 for details])
|
|
372
|
+
*/
|
|
373
|
+
WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS(false),
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Feature that determines standard serialization mechanism used for
|
|
377
|
+
* Enum values: if enabled, return value of <code>Enum.toString()</code>
|
|
378
|
+
* is used; if disabled, return value of <code>Enum.name()</code> is used.
|
|
379
|
+
* Since pre-1.6 method was to use Enum name, this is the default.
|
|
380
|
+
*<p>
|
|
381
|
+
* Note: this feature should usually have same value
|
|
382
|
+
* as {@link DeserializationConfig.Feature#READ_ENUMS_USING_TO_STRING}.
|
|
383
|
+
*<p>
|
|
384
|
+
* For further details, check out [JACKSON-212]
|
|
385
|
+
*
|
|
386
|
+
* @since 1.6
|
|
387
|
+
*/
|
|
388
|
+
WRITE_ENUMS_USING_TO_STRING(false),
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* Feature that determines whethere Java Enum values are serialized
|
|
392
|
+
* as numbers (true), or textual values (false). If textual values are
|
|
393
|
+
* used, other settings are also considered.
|
|
394
|
+
* If this feature is enabled,
|
|
395
|
+
* return value of <code>Enum.ordinal()</code>
|
|
396
|
+
* (an integer) will be used as the serialization.
|
|
397
|
+
*<p>
|
|
398
|
+
* Note that this feature has precedence over {@link #WRITE_ENUMS_USING_TO_STRING},
|
|
399
|
+
* which is only considered if this feature is set to false.
|
|
400
|
+
*
|
|
401
|
+
* @since 1.9
|
|
402
|
+
*/
|
|
403
|
+
WRITE_ENUMS_USING_INDEX(false),
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Feature that determines whether Map entries with null values are
|
|
407
|
+
* to be serialized (true) or not (false).
|
|
408
|
+
*<p>
|
|
409
|
+
* For further details, check out [JACKSON-314]
|
|
410
|
+
*
|
|
411
|
+
* @since 1.6
|
|
412
|
+
*/
|
|
413
|
+
WRITE_NULL_MAP_VALUES(true),
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* Feature that determines whether Container properties (POJO properties
|
|
417
|
+
* with declared value of Collection or array; i.e. things that produce JSON
|
|
418
|
+
* arrays) that are empty (have no elements)
|
|
419
|
+
* will be serialized as empty JSON arrays (true), or suppressed from output (false).
|
|
420
|
+
*<p>
|
|
421
|
+
* Note that this does not change behavior of {@link java.util.Map}s, or
|
|
422
|
+
* "Collection-like" types.
|
|
423
|
+
*
|
|
424
|
+
* @since 1.9
|
|
425
|
+
*/
|
|
426
|
+
WRITE_EMPTY_JSON_ARRAYS(true)
|
|
427
|
+
|
|
428
|
+
;
|
|
429
|
+
|
|
430
|
+
final boolean _defaultState;
|
|
431
|
+
|
|
432
|
+
private Feature(boolean defaultState) {
|
|
433
|
+
_defaultState = defaultState;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
@Override
|
|
437
|
+
public boolean enabledByDefault() { return _defaultState; }
|
|
438
|
+
|
|
439
|
+
@Override
|
|
440
|
+
public int getMask() { return (1 << ordinal()); }
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
/*
|
|
444
|
+
/**********************************************************
|
|
445
|
+
/* Configuration settings
|
|
446
|
+
/**********************************************************
|
|
447
|
+
*/
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* Which Bean/Map properties are to be included in serialization?
|
|
451
|
+
* Default settings is to include all regardless of value; can be
|
|
452
|
+
* changed to only include non-null properties, or properties
|
|
453
|
+
* with non-default values.
|
|
454
|
+
*<p>
|
|
455
|
+
* Defaults to null for backwards compatibility; if left as null,
|
|
456
|
+
* will check
|
|
457
|
+
* deprecated {@link Feature#WRITE_NULL_PROPERTIES}
|
|
458
|
+
* to choose between {@link Inclusion#ALWAYS}
|
|
459
|
+
* and {@link Inclusion#NON_NULL}.
|
|
460
|
+
*/
|
|
461
|
+
protected JsonSerialize.Inclusion _serializationInclusion = null;
|
|
462
|
+
|
|
463
|
+
/**
|
|
464
|
+
* View to use for filtering out properties to serialize.
|
|
465
|
+
* Null if none (will also be assigned null if <code>Object.class</code>
|
|
466
|
+
* is defined), meaning that all properties are to be included.
|
|
467
|
+
*/
|
|
468
|
+
protected Class<?> _serializationView;
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* Object used for resolving filter ids to filter instances.
|
|
472
|
+
* Non-null if explicitly defined; null by default.
|
|
473
|
+
*
|
|
474
|
+
* @since 1.7
|
|
475
|
+
*/
|
|
476
|
+
protected FilterProvider _filterProvider;
|
|
477
|
+
|
|
478
|
+
/*
|
|
479
|
+
/**********************************************************
|
|
480
|
+
/* Life-cycle, constructors
|
|
481
|
+
/**********************************************************
|
|
482
|
+
*/
|
|
483
|
+
|
|
484
|
+
/**
|
|
485
|
+
* Constructor used by ObjectMapper to create default configuration object instance.
|
|
486
|
+
*/
|
|
487
|
+
public SerializationConfig(ClassIntrospector<? extends BeanDescription> intr,
|
|
488
|
+
AnnotationIntrospector annIntr, VisibilityChecker<?> vc,
|
|
489
|
+
SubtypeResolver subtypeResolver, PropertyNamingStrategy propertyNamingStrategy,
|
|
490
|
+
TypeFactory typeFactory, HandlerInstantiator handlerInstantiator)
|
|
491
|
+
{
|
|
492
|
+
super(intr, annIntr, vc, subtypeResolver, propertyNamingStrategy, typeFactory, handlerInstantiator,
|
|
493
|
+
collectFeatureDefaults(SerializationConfig.Feature.class));
|
|
494
|
+
_filterProvider = null;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* @since 1.8
|
|
499
|
+
*/
|
|
500
|
+
protected SerializationConfig(SerializationConfig src) {
|
|
501
|
+
this(src, src._base);
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
/**
|
|
505
|
+
* Constructor used to make a private copy of specific mix-in definitions.
|
|
506
|
+
*
|
|
507
|
+
* @since 1.8
|
|
508
|
+
*/
|
|
509
|
+
protected SerializationConfig(SerializationConfig src,
|
|
510
|
+
HashMap<ClassKey,Class<?>> mixins, SubtypeResolver str)
|
|
511
|
+
{
|
|
512
|
+
this(src, src._base);
|
|
513
|
+
_mixInAnnotations = mixins;
|
|
514
|
+
_subtypeResolver = str;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
/**
|
|
518
|
+
* @since 1.8
|
|
519
|
+
*/
|
|
520
|
+
protected SerializationConfig(SerializationConfig src, MapperConfig.Base base)
|
|
521
|
+
{
|
|
522
|
+
super(src, base, src._subtypeResolver);
|
|
523
|
+
_serializationInclusion = src._serializationInclusion;
|
|
524
|
+
_serializationView = src._serializationView;
|
|
525
|
+
_filterProvider = src._filterProvider;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
/**
|
|
529
|
+
* @since 1.8
|
|
530
|
+
*/
|
|
531
|
+
protected SerializationConfig(SerializationConfig src, FilterProvider filters)
|
|
532
|
+
{
|
|
533
|
+
super(src);
|
|
534
|
+
_serializationInclusion = src._serializationInclusion;
|
|
535
|
+
_serializationView = src._serializationView;
|
|
536
|
+
_filterProvider = filters;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* @since 1.8
|
|
541
|
+
*/
|
|
542
|
+
protected SerializationConfig(SerializationConfig src, Class<?> view)
|
|
543
|
+
{
|
|
544
|
+
super(src);
|
|
545
|
+
_serializationInclusion = src._serializationInclusion;
|
|
546
|
+
_serializationView = view;
|
|
547
|
+
_filterProvider = src._filterProvider;
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
/**
|
|
551
|
+
* @since 1.9
|
|
552
|
+
*/
|
|
553
|
+
protected SerializationConfig(SerializationConfig src, JsonSerialize.Inclusion incl)
|
|
554
|
+
{
|
|
555
|
+
super(src);
|
|
556
|
+
_serializationInclusion = incl;
|
|
557
|
+
// And for some level of backwards compatibility, also...
|
|
558
|
+
if (incl == JsonSerialize.Inclusion.NON_NULL) {
|
|
559
|
+
_featureFlags &= ~Feature.WRITE_NULL_PROPERTIES.getMask();
|
|
560
|
+
} else {
|
|
561
|
+
_featureFlags |= Feature.WRITE_NULL_PROPERTIES.getMask();
|
|
562
|
+
}
|
|
563
|
+
_serializationView = src._serializationView;
|
|
564
|
+
_filterProvider = src._filterProvider;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
/**
|
|
568
|
+
* @since 1.9
|
|
569
|
+
*/
|
|
570
|
+
protected SerializationConfig(SerializationConfig src, int features)
|
|
571
|
+
{
|
|
572
|
+
super(src, features);
|
|
573
|
+
_serializationInclusion = src._serializationInclusion;
|
|
574
|
+
_serializationView = src._serializationView;
|
|
575
|
+
_filterProvider = src._filterProvider;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
/*
|
|
579
|
+
/**********************************************************
|
|
580
|
+
/* Life-cycle, factory methods from MapperConfig
|
|
581
|
+
/**********************************************************
|
|
582
|
+
*/
|
|
583
|
+
|
|
584
|
+
@Override
|
|
585
|
+
public SerializationConfig withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci) {
|
|
586
|
+
return new SerializationConfig(this, _base.withClassIntrospector(ci));
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
@Override
|
|
590
|
+
public SerializationConfig withAnnotationIntrospector(AnnotationIntrospector ai) {
|
|
591
|
+
return new SerializationConfig(this, _base.withAnnotationIntrospector(ai));
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
@Override
|
|
595
|
+
public SerializationConfig withInsertedAnnotationIntrospector(AnnotationIntrospector ai) {
|
|
596
|
+
return new SerializationConfig(this, _base.withInsertedAnnotationIntrospector(ai));
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
@Override
|
|
600
|
+
public SerializationConfig withAppendedAnnotationIntrospector(AnnotationIntrospector ai) {
|
|
601
|
+
return new SerializationConfig(this, _base.withAppendedAnnotationIntrospector(ai));
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
@Override
|
|
605
|
+
public SerializationConfig withVisibilityChecker(VisibilityChecker<?> vc) {
|
|
606
|
+
return new SerializationConfig(this, _base.withVisibilityChecker(vc));
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
@Override
|
|
610
|
+
public SerializationConfig withVisibility(JsonMethod forMethod, JsonAutoDetect.Visibility visibility) {
|
|
611
|
+
return new SerializationConfig(this, _base.withVisibility(forMethod, visibility));
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
@Override
|
|
615
|
+
public SerializationConfig withTypeResolverBuilder(TypeResolverBuilder<?> trb) {
|
|
616
|
+
return new SerializationConfig(this, _base.withTypeResolverBuilder(trb));
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
@Override
|
|
620
|
+
public SerializationConfig withSubtypeResolver(SubtypeResolver str) {
|
|
621
|
+
SerializationConfig cfg = new SerializationConfig(this);
|
|
622
|
+
cfg._subtypeResolver = str;
|
|
623
|
+
return cfg;
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
@Override
|
|
627
|
+
public SerializationConfig withPropertyNamingStrategy(PropertyNamingStrategy pns) {
|
|
628
|
+
return new SerializationConfig(this, _base.withPropertyNamingStrategy(pns));
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
@Override
|
|
632
|
+
public SerializationConfig withTypeFactory(TypeFactory tf) {
|
|
633
|
+
return new SerializationConfig(this, _base.withTypeFactory(tf));
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
/**
|
|
637
|
+
* In addition to constructing instance with specified date format,
|
|
638
|
+
* will enable or disable <code>Feature.WRITE_DATES_AS_TIMESTAMPS</code>
|
|
639
|
+
* (enable if format set as null; disable if non-null)
|
|
640
|
+
*/
|
|
641
|
+
@Override
|
|
642
|
+
public SerializationConfig withDateFormat(DateFormat df) {
|
|
643
|
+
SerializationConfig cfg = new SerializationConfig(this, _base.withDateFormat(df));
|
|
644
|
+
// Also need to toggle this feature based on existence of date format:
|
|
645
|
+
if (df == null) {
|
|
646
|
+
cfg = cfg.with(Feature.WRITE_DATES_AS_TIMESTAMPS);
|
|
647
|
+
} else {
|
|
648
|
+
cfg = cfg.without(Feature.WRITE_DATES_AS_TIMESTAMPS);
|
|
649
|
+
}
|
|
650
|
+
return cfg;
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
@Override
|
|
654
|
+
public SerializationConfig withHandlerInstantiator(HandlerInstantiator hi) {
|
|
655
|
+
return new SerializationConfig(this, _base.withHandlerInstantiator(hi));
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
/*
|
|
659
|
+
/**********************************************************
|
|
660
|
+
/* Life-cycle, SerializationConfig specific factory methods
|
|
661
|
+
/**********************************************************
|
|
662
|
+
*/
|
|
663
|
+
|
|
664
|
+
/**
|
|
665
|
+
* @since 1.7
|
|
666
|
+
*/
|
|
667
|
+
public SerializationConfig withFilters(FilterProvider filterProvider) {
|
|
668
|
+
return new SerializationConfig(this, filterProvider);
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
/**
|
|
672
|
+
* @since 1.8
|
|
673
|
+
*/
|
|
674
|
+
public SerializationConfig withView(Class<?> view) {
|
|
675
|
+
return new SerializationConfig(this, view);
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
/**
|
|
679
|
+
* @since 1.9
|
|
680
|
+
*/
|
|
681
|
+
public SerializationConfig withSerializationInclusion(JsonSerialize.Inclusion incl) {
|
|
682
|
+
return new SerializationConfig(this, incl);
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
/**
|
|
686
|
+
* Fluent factory method that will construct and return a new configuration
|
|
687
|
+
* object instance with specified features enabled.
|
|
688
|
+
*
|
|
689
|
+
* @since 1.9
|
|
690
|
+
*/
|
|
691
|
+
@Override
|
|
692
|
+
public SerializationConfig with(Feature... features)
|
|
693
|
+
{
|
|
694
|
+
int flags = _featureFlags;
|
|
695
|
+
for (Feature f : features) {
|
|
696
|
+
flags |= f.getMask();
|
|
697
|
+
}
|
|
698
|
+
return new SerializationConfig(this, flags);
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
/**
|
|
702
|
+
* Fluent factory method that will construct and return a new configuration
|
|
703
|
+
* object instance with specified features disabled.
|
|
704
|
+
*
|
|
705
|
+
* @since 1.9
|
|
706
|
+
*/
|
|
707
|
+
@Override
|
|
708
|
+
public SerializationConfig without(Feature... features)
|
|
709
|
+
{
|
|
710
|
+
int flags = _featureFlags;
|
|
711
|
+
for (Feature f : features) {
|
|
712
|
+
flags &= ~f.getMask();
|
|
713
|
+
}
|
|
714
|
+
return new SerializationConfig(this, flags);
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
/*
|
|
718
|
+
/**********************************************************
|
|
719
|
+
/* MapperConfig implementation/overrides
|
|
720
|
+
/**********************************************************
|
|
721
|
+
*/
|
|
722
|
+
|
|
723
|
+
/**
|
|
724
|
+
* Method that checks class annotations that the argument Object has,
|
|
725
|
+
* and modifies settings of this configuration object accordingly,
|
|
726
|
+
* similar to how those annotations would affect actual value classes
|
|
727
|
+
* annotated with them, but with global scope. Note that not all
|
|
728
|
+
* annotations have global significance, and thus only subset of
|
|
729
|
+
* Jackson annotations will have any effect.
|
|
730
|
+
*<p>
|
|
731
|
+
* Serialization annotations that are known to have effect are:
|
|
732
|
+
*<ul>
|
|
733
|
+
* <li>{@link JsonWriteNullProperties}</li>
|
|
734
|
+
* <li>{@link JsonAutoDetect}</li>
|
|
735
|
+
* <li>{@link JsonSerialize#typing}</li>
|
|
736
|
+
*</ul>
|
|
737
|
+
*
|
|
738
|
+
* @param cls Class of which class annotations to use
|
|
739
|
+
* for changing configuration settings
|
|
740
|
+
*
|
|
741
|
+
* @deprecated Since 1.9, it is preferably to explicitly configure
|
|
742
|
+
* instances; this method also modifies existing instance which is
|
|
743
|
+
* against immutable design goals of this class.
|
|
744
|
+
*/
|
|
745
|
+
@SuppressWarnings("deprecation")
|
|
746
|
+
@Deprecated
|
|
747
|
+
@Override
|
|
748
|
+
public void fromAnnotations(Class<?> cls)
|
|
749
|
+
{
|
|
750
|
+
/* 10-Jul-2009, tatu: Should be able to just pass null as
|
|
751
|
+
* 'MixInResolver'; no mix-ins set at this point
|
|
752
|
+
* 29-Jul-2009, tatu: Also, we do NOT ignore annotations here, even
|
|
753
|
+
* if Feature.USE_ANNOTATIONS was disabled, since caller
|
|
754
|
+
* specifically requested annotations to be added with this call
|
|
755
|
+
*/
|
|
756
|
+
AnnotationIntrospector ai = getAnnotationIntrospector();
|
|
757
|
+
AnnotatedClass ac = AnnotatedClass.construct(cls, ai, null);
|
|
758
|
+
_base = _base.withVisibilityChecker(ai.findAutoDetectVisibility(ac,
|
|
759
|
+
getDefaultVisibilityChecker()));
|
|
760
|
+
|
|
761
|
+
// How about writing null property values?
|
|
762
|
+
JsonSerialize.Inclusion incl = ai.findSerializationInclusion(ac, null);
|
|
763
|
+
if (incl != _serializationInclusion) {
|
|
764
|
+
setSerializationInclusion(incl);
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
JsonSerialize.Typing typing = ai.findSerializationTyping(ac);
|
|
768
|
+
if (typing != null) {
|
|
769
|
+
set(Feature.USE_STATIC_TYPING, (typing == JsonSerialize.Typing.STATIC));
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
|
|
773
|
+
@Override
|
|
774
|
+
public SerializationConfig createUnshared(SubtypeResolver subtypeResolver)
|
|
775
|
+
{
|
|
776
|
+
HashMap<ClassKey,Class<?>> mixins = _mixInAnnotations;
|
|
777
|
+
_mixInAnnotationsShared = true;
|
|
778
|
+
return new SerializationConfig(this, mixins, subtypeResolver);
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
@Override
|
|
782
|
+
public AnnotationIntrospector getAnnotationIntrospector()
|
|
783
|
+
{
|
|
784
|
+
/* 29-Jul-2009, tatu: it's now possible to disable use of
|
|
785
|
+
* annotations; can be done using "no-op" introspector
|
|
786
|
+
*/
|
|
787
|
+
if (isEnabled(Feature.USE_ANNOTATIONS)) {
|
|
788
|
+
return super.getAnnotationIntrospector();
|
|
789
|
+
}
|
|
790
|
+
return AnnotationIntrospector.nopInstance();
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
/**
|
|
794
|
+
* Accessor for getting bean description that only contains class
|
|
795
|
+
* annotations: useful if no getter/setter/creator information is needed.
|
|
796
|
+
*<p>
|
|
797
|
+
* Note: part of {@link MapperConfig} since 1.7
|
|
798
|
+
*/
|
|
799
|
+
@SuppressWarnings("unchecked")
|
|
800
|
+
@Override
|
|
801
|
+
public <T extends BeanDescription> T introspectClassAnnotations(JavaType type) {
|
|
802
|
+
return (T) getClassIntrospector().forClassAnnotations(this, type, this);
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
/**
|
|
806
|
+
* Accessor for getting bean description that only contains immediate class
|
|
807
|
+
* annotations: ones from the class, and its direct mix-in, if any, but
|
|
808
|
+
* not from super types.
|
|
809
|
+
*<p>
|
|
810
|
+
* Note: part of {@link MapperConfig} since 1.7
|
|
811
|
+
*/
|
|
812
|
+
@SuppressWarnings("unchecked")
|
|
813
|
+
@Override
|
|
814
|
+
public <T extends BeanDescription> T introspectDirectClassAnnotations(JavaType type) {
|
|
815
|
+
return (T) getClassIntrospector().forDirectClassAnnotations(this, type, this);
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
@Override
|
|
819
|
+
public boolean isAnnotationProcessingEnabled() {
|
|
820
|
+
return isEnabled(SerializationConfig.Feature.USE_ANNOTATIONS);
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
@Override
|
|
824
|
+
public boolean canOverrideAccessModifiers() {
|
|
825
|
+
return isEnabled(Feature.CAN_OVERRIDE_ACCESS_MODIFIERS);
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
@Override
|
|
829
|
+
public boolean shouldSortPropertiesAlphabetically() {
|
|
830
|
+
return isEnabled(Feature.SORT_PROPERTIES_ALPHABETICALLY);
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
@Override
|
|
834
|
+
public VisibilityChecker<?> getDefaultVisibilityChecker()
|
|
835
|
+
{
|
|
836
|
+
VisibilityChecker<?> vchecker = super.getDefaultVisibilityChecker();
|
|
837
|
+
if (!isEnabled(SerializationConfig.Feature.AUTO_DETECT_GETTERS)) {
|
|
838
|
+
vchecker = vchecker.withGetterVisibility(Visibility.NONE);
|
|
839
|
+
}
|
|
840
|
+
// then global overrides (disabling)
|
|
841
|
+
if (!isEnabled(SerializationConfig.Feature.AUTO_DETECT_IS_GETTERS)) {
|
|
842
|
+
vchecker = vchecker.withIsGetterVisibility(Visibility.NONE);
|
|
843
|
+
}
|
|
844
|
+
if (!isEnabled(SerializationConfig.Feature.AUTO_DETECT_FIELDS)) {
|
|
845
|
+
vchecker = vchecker.withFieldVisibility(Visibility.NONE);
|
|
846
|
+
}
|
|
847
|
+
return vchecker;
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
/*
|
|
851
|
+
/**********************************************************
|
|
852
|
+
/* MapperConfig overrides for 1.8 backwards compatibility
|
|
853
|
+
/**********************************************************
|
|
854
|
+
*/
|
|
855
|
+
|
|
856
|
+
/* NOTE: these are overloads we MUST have, but that were missing
|
|
857
|
+
* from 1.9.0 and 1.9.1. Type erasure can bite in the ass...
|
|
858
|
+
*<p>
|
|
859
|
+
* NOTE: will remove either these variants, or base class one, in 2.0.
|
|
860
|
+
*/
|
|
861
|
+
|
|
862
|
+
/**
|
|
863
|
+
* Alias for {@link MapperConfig#isEnabled(sh.calaba.org.codehaus.jackson.map.MapperConfig.ConfigFeature)}.
|
|
864
|
+
*
|
|
865
|
+
* @since 1.0 However, note that version 1.9.0 and 1.9.1 accidentally missed
|
|
866
|
+
* this overloaded variant
|
|
867
|
+
*/
|
|
868
|
+
public boolean isEnabled(SerializationConfig.Feature f) {
|
|
869
|
+
return (_featureFlags & f.getMask()) != 0;
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
/**
|
|
873
|
+
* @deprecated Since 1.9, it is preferable to use {@link #with} instead;
|
|
874
|
+
* this method is deprecated as it modifies current instance instead of
|
|
875
|
+
* creating a new one (as the goal is to make this class immutable)
|
|
876
|
+
*/
|
|
877
|
+
@Deprecated
|
|
878
|
+
@Override
|
|
879
|
+
public void enable(SerializationConfig.Feature f) {
|
|
880
|
+
super.enable(f);
|
|
881
|
+
}
|
|
882
|
+
|
|
883
|
+
/**
|
|
884
|
+
* @deprecated Since 1.9, it is preferable to use {@link #without} instead;
|
|
885
|
+
* this method is deprecated as it modifies current instance instead of
|
|
886
|
+
* creating a new one (as the goal is to make this class immutable)
|
|
887
|
+
*/
|
|
888
|
+
@Deprecated
|
|
889
|
+
@Override
|
|
890
|
+
public void disable(SerializationConfig.Feature f) {
|
|
891
|
+
super.disable(f);
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
/**
|
|
895
|
+
* @deprecated Since 1.9, it is preferable to use {@link #without} and {@link #with} instead;
|
|
896
|
+
* this method is deprecated as it modifies current instance instead of
|
|
897
|
+
* creating a new one (as the goal is to make this class immutable)
|
|
898
|
+
*/
|
|
899
|
+
@Deprecated
|
|
900
|
+
@Override
|
|
901
|
+
public void set(SerializationConfig.Feature f, boolean state) {
|
|
902
|
+
super.set(f, state);
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
/*
|
|
906
|
+
/**********************************************************
|
|
907
|
+
/* Configuration: other
|
|
908
|
+
/**********************************************************
|
|
909
|
+
*/
|
|
910
|
+
|
|
911
|
+
/**
|
|
912
|
+
* Method for checking which serialization view is being used,
|
|
913
|
+
* if any; null if none.
|
|
914
|
+
*
|
|
915
|
+
* @since 1.4
|
|
916
|
+
*/
|
|
917
|
+
public Class<?> getSerializationView() { return _serializationView; }
|
|
918
|
+
|
|
919
|
+
public JsonSerialize.Inclusion getSerializationInclusion()
|
|
920
|
+
{
|
|
921
|
+
if (_serializationInclusion != null) {
|
|
922
|
+
return _serializationInclusion;
|
|
923
|
+
}
|
|
924
|
+
return isEnabled(Feature.WRITE_NULL_PROPERTIES) ?
|
|
925
|
+
JsonSerialize.Inclusion.ALWAYS : JsonSerialize.Inclusion.NON_NULL;
|
|
926
|
+
}
|
|
927
|
+
|
|
928
|
+
/**
|
|
929
|
+
* Method that will define global setting of which
|
|
930
|
+
* bean/map properties are to be included in serialization.
|
|
931
|
+
* Can be overridden by class annotations (overriding
|
|
932
|
+
* settings to use for instances of that class) and
|
|
933
|
+
* method/field annotations (overriding settings for the value
|
|
934
|
+
* bean for that getter method or field)
|
|
935
|
+
*
|
|
936
|
+
* @deprecated since 1.9 should either use {@link #withSerializationInclusion}
|
|
937
|
+
* to construct new instance, or configure through {@link ObjectMapper}
|
|
938
|
+
*/
|
|
939
|
+
@Deprecated
|
|
940
|
+
public void setSerializationInclusion(JsonSerialize.Inclusion props)
|
|
941
|
+
{
|
|
942
|
+
_serializationInclusion = props;
|
|
943
|
+
// And for some level of backwards compatibility, also...
|
|
944
|
+
if (props == JsonSerialize.Inclusion.NON_NULL) {
|
|
945
|
+
disable(Feature.WRITE_NULL_PROPERTIES);
|
|
946
|
+
} else {
|
|
947
|
+
enable(Feature.WRITE_NULL_PROPERTIES);
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
/**
|
|
952
|
+
* Method for getting provider used for locating filters given
|
|
953
|
+
* id (which is usually provided with filter annotations).
|
|
954
|
+
* Will be null if no provided was set for {@link ObjectWriter}
|
|
955
|
+
* (or if serialization directly called from {@link ObjectMapper})
|
|
956
|
+
*
|
|
957
|
+
* @since 1.7
|
|
958
|
+
*/
|
|
959
|
+
public FilterProvider getFilterProvider() {
|
|
960
|
+
return _filterProvider;
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
/*
|
|
964
|
+
/**********************************************************
|
|
965
|
+
/* Introspection methods
|
|
966
|
+
/**********************************************************
|
|
967
|
+
*/
|
|
968
|
+
|
|
969
|
+
/**
|
|
970
|
+
* Method that will introspect full bean properties for the purpose
|
|
971
|
+
* of building a bean serializer
|
|
972
|
+
*/
|
|
973
|
+
@SuppressWarnings("unchecked")
|
|
974
|
+
public <T extends BeanDescription> T introspect(JavaType type) {
|
|
975
|
+
return (T) getClassIntrospector().forSerialization(this, type, this);
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
/*
|
|
979
|
+
/**********************************************************
|
|
980
|
+
/* Extended API: serializer instantiation
|
|
981
|
+
/**********************************************************
|
|
982
|
+
*/
|
|
983
|
+
|
|
984
|
+
@SuppressWarnings("unchecked")
|
|
985
|
+
public JsonSerializer<Object> serializerInstance(Annotated annotated, Class<? extends JsonSerializer<?>> serClass)
|
|
986
|
+
{
|
|
987
|
+
HandlerInstantiator hi = getHandlerInstantiator();
|
|
988
|
+
if (hi != null) {
|
|
989
|
+
JsonSerializer<?> ser = hi.serializerInstance(this, annotated, serClass);
|
|
990
|
+
if (ser != null) {
|
|
991
|
+
return (JsonSerializer<Object>) ser;
|
|
992
|
+
}
|
|
993
|
+
}
|
|
994
|
+
return (JsonSerializer<Object>) ClassUtil.createInstance(serClass, canOverrideAccessModifiers());
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
/*
|
|
998
|
+
/**********************************************************
|
|
999
|
+
/* Deprecated methods
|
|
1000
|
+
/**********************************************************
|
|
1001
|
+
*/
|
|
1002
|
+
|
|
1003
|
+
/**
|
|
1004
|
+
* One thing to note is that this will set {@link Feature#WRITE_DATES_AS_TIMESTAMPS}
|
|
1005
|
+
* to false (if null format set), or true (if non-null format)
|
|
1006
|
+
*
|
|
1007
|
+
* @deprecated Since 1.8, use {@link #withDateFormat} instead.
|
|
1008
|
+
*/
|
|
1009
|
+
@SuppressWarnings("deprecation")
|
|
1010
|
+
@Override
|
|
1011
|
+
@Deprecated
|
|
1012
|
+
public final void setDateFormat(DateFormat df) {
|
|
1013
|
+
super.setDateFormat(df);
|
|
1014
|
+
set(Feature.WRITE_DATES_AS_TIMESTAMPS, (df == null));
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
/**
|
|
1018
|
+
* Method for checking which serialization view is being used,
|
|
1019
|
+
* if any; null if none.
|
|
1020
|
+
*
|
|
1021
|
+
* @since 1.4
|
|
1022
|
+
*
|
|
1023
|
+
* @deprecated Since 1.8, use {@link #withView} instead
|
|
1024
|
+
*/
|
|
1025
|
+
@Deprecated
|
|
1026
|
+
public void setSerializationView(Class<?> view)
|
|
1027
|
+
{
|
|
1028
|
+
_serializationView = view;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
/*
|
|
1032
|
+
/**********************************************************
|
|
1033
|
+
/* Debug support
|
|
1034
|
+
/**********************************************************
|
|
1035
|
+
*/
|
|
1036
|
+
|
|
1037
|
+
@Override public String toString()
|
|
1038
|
+
{
|
|
1039
|
+
return "[SerializationConfig: flags=0x"+Integer.toHexString(_featureFlags)+"]";
|
|
1040
|
+
}
|
|
1041
|
+
}
|