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,34 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map;
|
|
2
|
+
|
|
3
|
+
import java.io.IOException;
|
|
4
|
+
|
|
5
|
+
import sh.calaba.org.codehaus.jackson.JsonGenerator;
|
|
6
|
+
import sh.calaba.org.codehaus.jackson.JsonProcessingException;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Interface that can be implemented by objects that know how to
|
|
10
|
+
* serialize themselves to JSON, using {@link JsonGenerator}
|
|
11
|
+
* (and {@link SerializerProvider} if necessary).
|
|
12
|
+
*<p>
|
|
13
|
+
* Note that implementing this interface binds implementing object
|
|
14
|
+
* closely to Jackson API, and that it is often not necessary to do
|
|
15
|
+
* so -- if class is a bean, it can be serialized without
|
|
16
|
+
* implementing this interface.
|
|
17
|
+
*<p>
|
|
18
|
+
* NOTE: as of version 1.5, this interface is missing one crucial
|
|
19
|
+
* aspect, that of dealing with type information embedding.
|
|
20
|
+
* Because of this, this interface is deprecated, although will be
|
|
21
|
+
* fully supported for all 1.x releases, and will work except for
|
|
22
|
+
* cases where polymorphic type information handling is needed for
|
|
23
|
+
* type (in which case implementing if {@link JsonSerializableWithType} is crucial).
|
|
24
|
+
*
|
|
25
|
+
* @see sh.calaba.org.codehaus.jackson.map.JsonSerializableWithType
|
|
26
|
+
*
|
|
27
|
+
* @since 1.5
|
|
28
|
+
*/
|
|
29
|
+
@Deprecated
|
|
30
|
+
public interface JsonSerializable
|
|
31
|
+
{
|
|
32
|
+
public void serialize(JsonGenerator jgen, SerializerProvider provider)
|
|
33
|
+
throws IOException, JsonProcessingException;
|
|
34
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map;
|
|
2
|
+
|
|
3
|
+
import java.io.IOException;
|
|
4
|
+
|
|
5
|
+
import sh.calaba.org.codehaus.jackson.JsonGenerator;
|
|
6
|
+
import sh.calaba.org.codehaus.jackson.JsonProcessingException;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Interface that is to replace {@link JsonSerializable} to
|
|
10
|
+
* allow for dynamic type information embedding.
|
|
11
|
+
*
|
|
12
|
+
* @since 1.5
|
|
13
|
+
* @author tatu
|
|
14
|
+
*/
|
|
15
|
+
@SuppressWarnings("deprecation")
|
|
16
|
+
public interface JsonSerializableWithType
|
|
17
|
+
extends JsonSerializable
|
|
18
|
+
{
|
|
19
|
+
public void serializeWithType(JsonGenerator jgen, SerializerProvider provider,
|
|
20
|
+
TypeSerializer typeSer)
|
|
21
|
+
throws IOException, JsonProcessingException;
|
|
22
|
+
}
|
data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/JsonSerializer.java
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map;
|
|
2
|
+
|
|
3
|
+
import java.io.IOException;
|
|
4
|
+
|
|
5
|
+
import sh.calaba.org.codehaus.jackson.JsonGenerator;
|
|
6
|
+
import sh.calaba.org.codehaus.jackson.JsonProcessingException;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Abstract class that defines API used by {@link ObjectMapper} (and
|
|
10
|
+
* other chained {@link JsonSerializer}s too) to serialize Objects of
|
|
11
|
+
* arbitrary types into JSON, using provided {@link JsonGenerator}.
|
|
12
|
+
*<p>
|
|
13
|
+
* NOTE: it is recommended that custom serializers extend
|
|
14
|
+
* {@link sh.calaba.org.codehaus.jackson.map.ser.std.SerializerBase} instead
|
|
15
|
+
* of this class, since it will implement many of optional
|
|
16
|
+
* methods of this class.
|
|
17
|
+
*/
|
|
18
|
+
public abstract class JsonSerializer<T>
|
|
19
|
+
{
|
|
20
|
+
/*
|
|
21
|
+
/**********************************************************
|
|
22
|
+
/* Fluent factory methods for constructing decorated versions
|
|
23
|
+
/**********************************************************
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Method that will return serializer instance that produces
|
|
28
|
+
* "unwrapped" serialization, if applicable for type being
|
|
29
|
+
* serialized (which is the case for some serializers
|
|
30
|
+
* that produce JSON Objects as output).
|
|
31
|
+
* If no unwrapped serializer can be constructed, will simply
|
|
32
|
+
* return serializer as-is.
|
|
33
|
+
*<p>
|
|
34
|
+
* Default implementation just returns serializer as-is,
|
|
35
|
+
* indicating that no unwrapped variant exists
|
|
36
|
+
*
|
|
37
|
+
* @since 1.9
|
|
38
|
+
*/
|
|
39
|
+
public JsonSerializer<T> unwrappingSerializer() {
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Accessor for checking whether this serializer is an
|
|
45
|
+
* "unwrapping" serializer; this is necessary to know since
|
|
46
|
+
* it may also require caller to suppress writing of the
|
|
47
|
+
* leading property name.
|
|
48
|
+
*
|
|
49
|
+
* @since 1.9
|
|
50
|
+
*/
|
|
51
|
+
public boolean isUnwrappingSerializer() {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/*
|
|
56
|
+
/**********************************************************
|
|
57
|
+
/* Serialization methods
|
|
58
|
+
/**********************************************************
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Method that can be called to ask implementation to serialize
|
|
63
|
+
* values of type this serializer handles.
|
|
64
|
+
*
|
|
65
|
+
* @param value Value to serialize; can <b>not</b> be null.
|
|
66
|
+
* @param jgen Generator used to output resulting Json content
|
|
67
|
+
* @param provider Provider that can be used to get serializers for
|
|
68
|
+
* serializing Objects value contains, if any.
|
|
69
|
+
*/
|
|
70
|
+
public abstract void serialize(T value, JsonGenerator jgen, SerializerProvider provider)
|
|
71
|
+
throws IOException, JsonProcessingException;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Method that can be called to ask implementation to serialize
|
|
75
|
+
* values of type this serializer handles, using specified type serializer
|
|
76
|
+
* for embedding necessary type information.
|
|
77
|
+
*<p>
|
|
78
|
+
* Default implementation will ignore serialization of type information,
|
|
79
|
+
* and just calls {@link #serialize}: serializers that can embed
|
|
80
|
+
* type information should override this to implement actual handling.
|
|
81
|
+
* Most common such handling is done by something like:
|
|
82
|
+
*<pre>
|
|
83
|
+
* // note: method to call depends on whether this type is serialized as JSON scalar, object or Array!
|
|
84
|
+
* typeSer.writeTypePrefixForScalar(value, jgen);
|
|
85
|
+
* serialize(value, jgen, provider);
|
|
86
|
+
* typeSer.writeTypeSuffixForScalar(value, jgen);
|
|
87
|
+
*</pre>
|
|
88
|
+
*
|
|
89
|
+
* @param value Value to serialize; can <b>not</b> be null.
|
|
90
|
+
* @param jgen Generator used to output resulting Json content
|
|
91
|
+
* @param provider Provider that can be used to get serializers for
|
|
92
|
+
* serializing Objects value contains, if any.
|
|
93
|
+
* @param typeSer Type serializer to use for including type information
|
|
94
|
+
*
|
|
95
|
+
* @since 1.5
|
|
96
|
+
*/
|
|
97
|
+
public void serializeWithType(T value, JsonGenerator jgen, SerializerProvider provider,
|
|
98
|
+
TypeSerializer typeSer)
|
|
99
|
+
throws IOException, JsonProcessingException
|
|
100
|
+
{
|
|
101
|
+
serialize(value, jgen, provider);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/*
|
|
105
|
+
/**********************************************************
|
|
106
|
+
/* Introspection methods needed for type handling
|
|
107
|
+
/**********************************************************
|
|
108
|
+
*/
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Method for accessing type of Objects this serializer can handle.
|
|
112
|
+
* Note that this information is not guaranteed to be exact -- it
|
|
113
|
+
* may be a more generic (super-type) -- but it should not be
|
|
114
|
+
* incorrect (return a non-related type).
|
|
115
|
+
*<p>
|
|
116
|
+
* Default implementation will return null, which essentially means
|
|
117
|
+
* same as returning <code>Object.class</code> would; that is, that
|
|
118
|
+
* nothing is known about handled type.
|
|
119
|
+
*<p>
|
|
120
|
+
*/
|
|
121
|
+
public Class<T> handledType() { return null; }
|
|
122
|
+
|
|
123
|
+
/*
|
|
124
|
+
/**********************************************************
|
|
125
|
+
/* Helper class(es)
|
|
126
|
+
/**********************************************************
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* This marker class is only to be used with annotations, to
|
|
131
|
+
* indicate that <b>no serializer is configured</b>.
|
|
132
|
+
*<p>
|
|
133
|
+
* Specifically, this class is to be used as the marker for
|
|
134
|
+
* annotation {@link sh.calaba.org.codehaus.jackson.map.annotate.JsonSerialize}.
|
|
135
|
+
*/
|
|
136
|
+
public abstract static class None
|
|
137
|
+
extends JsonSerializer<Object> { }
|
|
138
|
+
}
|
data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/KeyDeserializer.java
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map;
|
|
2
|
+
|
|
3
|
+
import java.io.IOException;
|
|
4
|
+
|
|
5
|
+
import sh.calaba.org.codehaus.jackson.JsonProcessingException;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Abstract class that defines API used for deserializing JSON content
|
|
9
|
+
* field names into Java Map keys. These deserializers are only used
|
|
10
|
+
* if the Map key class is not <code>String</code> or <code>Object</code>.
|
|
11
|
+
*/
|
|
12
|
+
public abstract class KeyDeserializer
|
|
13
|
+
{
|
|
14
|
+
/**
|
|
15
|
+
* Method called to deserialize a {@link java.util.Map} key from JSON property name.
|
|
16
|
+
*/
|
|
17
|
+
public abstract Object deserializeKey(String key, DeserializationContext ctxt)
|
|
18
|
+
throws IOException, JsonProcessingException;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* This marker class is only to be used with annotations, to
|
|
22
|
+
* indicate that <b>no deserializer is configured</b>.
|
|
23
|
+
*<p>
|
|
24
|
+
* Specifically, this class is to be used as the marker for
|
|
25
|
+
* annotation {@link sh.calaba.org.codehaus.jackson.map.annotate.JsonDeserialize}.
|
|
26
|
+
*
|
|
27
|
+
* @since 1.3
|
|
28
|
+
*/
|
|
29
|
+
public abstract static class None
|
|
30
|
+
extends KeyDeserializer { }
|
|
31
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map;
|
|
2
|
+
|
|
3
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Interface that defines API for simple extensions that can provide additional deserializers
|
|
7
|
+
* for deserializer Map keys of various types, from JSON property names.
|
|
8
|
+
* Access is by a single callback method; instance is to either return
|
|
9
|
+
* a configured {@link KeyDeserializer} for specified type, or null to indicate that it
|
|
10
|
+
* does not support handling of the type. In latter case, further calls can be made
|
|
11
|
+
* for other providers; in former case returned key deserializer is used for handling of
|
|
12
|
+
* key instances of specified type.
|
|
13
|
+
*
|
|
14
|
+
* @since 1.8
|
|
15
|
+
*/
|
|
16
|
+
public interface KeyDeserializers
|
|
17
|
+
{
|
|
18
|
+
public KeyDeserializer findKeyDeserializer(JavaType type, DeserializationConfig config,
|
|
19
|
+
BeanDescription beanDesc, BeanProperty property)
|
|
20
|
+
throws JsonMappingException;
|
|
21
|
+
}
|
data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/MapperConfig.java
ADDED
|
@@ -0,0 +1,1154 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map;
|
|
2
|
+
|
|
3
|
+
import java.text.DateFormat;
|
|
4
|
+
import java.util.HashMap;
|
|
5
|
+
import java.util.Map;
|
|
6
|
+
|
|
7
|
+
import sh.calaba.org.codehaus.jackson.annotate.JsonAutoDetect;
|
|
8
|
+
import sh.calaba.org.codehaus.jackson.annotate.JsonMethod;
|
|
9
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.Annotated;
|
|
10
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.VisibilityChecker;
|
|
11
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.SubtypeResolver;
|
|
12
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.TypeIdResolver;
|
|
13
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.TypeResolverBuilder;
|
|
14
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.impl.StdSubtypeResolver;
|
|
15
|
+
import sh.calaba.org.codehaus.jackson.map.type.ClassKey;
|
|
16
|
+
import sh.calaba.org.codehaus.jackson.map.type.TypeBindings;
|
|
17
|
+
import sh.calaba.org.codehaus.jackson.map.type.TypeFactory;
|
|
18
|
+
import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
|
|
19
|
+
import sh.calaba.org.codehaus.jackson.map.util.StdDateFormat;
|
|
20
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
|
21
|
+
import sh.calaba.org.codehaus.jackson.type.TypeReference;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Interface that defines functionality accessible through both
|
|
25
|
+
* serialization and deserialization configuration objects;
|
|
26
|
+
* accessors to mode-independent configuration settings
|
|
27
|
+
* and such.
|
|
28
|
+
*<p>
|
|
29
|
+
* As of version 1.9, the goal is to make this class eventually immutable.
|
|
30
|
+
* Because of this, existing methods that allow changing state of this
|
|
31
|
+
* instance are deprecated in favor of methods that create new instances
|
|
32
|
+
* with different configuration ("fluent factories").
|
|
33
|
+
* One major remaining issue is that of handling mix-in annotations, which
|
|
34
|
+
* still represent a bit of mutable state; may need to implement a
|
|
35
|
+
* functional-style immutable map for storing those.
|
|
36
|
+
*
|
|
37
|
+
* @since 1.2 -- major change in 1.8, changed from interface to
|
|
38
|
+
* abstract class
|
|
39
|
+
*/
|
|
40
|
+
public abstract class MapperConfig<T extends MapperConfig<T>>
|
|
41
|
+
implements ClassIntrospector.MixInResolver
|
|
42
|
+
{
|
|
43
|
+
/*
|
|
44
|
+
/**********************************************************
|
|
45
|
+
/* Constants, default values
|
|
46
|
+
/**********************************************************
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* This is the default {@link DateFormat} used unless overridden by
|
|
51
|
+
* custom implementation.
|
|
52
|
+
*/
|
|
53
|
+
protected final static DateFormat DEFAULT_DATE_FORMAT = StdDateFormat.instance;
|
|
54
|
+
|
|
55
|
+
/*
|
|
56
|
+
/**********************************************************
|
|
57
|
+
/* Simple immutable basic settings
|
|
58
|
+
/**********************************************************
|
|
59
|
+
*/
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Immutable container object for simple configuration settings.
|
|
63
|
+
*<p>
|
|
64
|
+
* Note: ideally this would be final, but until we can eliminate
|
|
65
|
+
* mutators, must keep it mutable.
|
|
66
|
+
*/
|
|
67
|
+
protected Base _base;
|
|
68
|
+
|
|
69
|
+
/*
|
|
70
|
+
/**********************************************************
|
|
71
|
+
/* Mix-in annotations
|
|
72
|
+
/**********************************************************
|
|
73
|
+
*/
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Mapping that defines how to apply mix-in annotations: key is
|
|
77
|
+
* the type to received additional annotations, and value is the
|
|
78
|
+
* type that has annotations to "mix in".
|
|
79
|
+
*<p>
|
|
80
|
+
* Annotations associated with the value classes will be used to
|
|
81
|
+
* override annotations of the key class, associated with the
|
|
82
|
+
* same field or method. They can be further masked by sub-classes:
|
|
83
|
+
* you can think of it as injecting annotations between the target
|
|
84
|
+
* class and its sub-classes (or interfaces)
|
|
85
|
+
*
|
|
86
|
+
* @since 1.2
|
|
87
|
+
*/
|
|
88
|
+
protected HashMap<ClassKey,Class<?>> _mixInAnnotations;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Flag used to detect when a copy if mix-in annotations is
|
|
92
|
+
* needed: set when current copy is shared, cleared when a
|
|
93
|
+
* fresh copy is made
|
|
94
|
+
*
|
|
95
|
+
* @since 1.2
|
|
96
|
+
*/
|
|
97
|
+
protected boolean _mixInAnnotationsShared;
|
|
98
|
+
|
|
99
|
+
/*
|
|
100
|
+
/**********************************************************
|
|
101
|
+
/* "Late bound" settings
|
|
102
|
+
/**********************************************************
|
|
103
|
+
*/
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Registered concrete subtypes that can be used instead of (or
|
|
107
|
+
* in addition to) ones declared using annotations.
|
|
108
|
+
* Unlike most other settings, it is not configured as early
|
|
109
|
+
* as it is set, but rather only when a non-shared instance
|
|
110
|
+
* is constructed by <code>ObjectMapper</code> (or -Reader
|
|
111
|
+
* or -Writer)
|
|
112
|
+
*<p>
|
|
113
|
+
* Note: this is the only property left as non-final, to allow
|
|
114
|
+
* lazy construction of the instance as necessary.
|
|
115
|
+
*
|
|
116
|
+
* @since 1.6
|
|
117
|
+
*/
|
|
118
|
+
protected SubtypeResolver _subtypeResolver;
|
|
119
|
+
|
|
120
|
+
/*
|
|
121
|
+
/**********************************************************
|
|
122
|
+
/* Life-cycle: constructors
|
|
123
|
+
/**********************************************************
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
protected MapperConfig(ClassIntrospector<? extends BeanDescription> ci, AnnotationIntrospector ai,
|
|
127
|
+
VisibilityChecker<?> vc, SubtypeResolver str, PropertyNamingStrategy pns, TypeFactory tf,
|
|
128
|
+
HandlerInstantiator hi)
|
|
129
|
+
{
|
|
130
|
+
_base = new Base(ci, ai, vc, pns, tf, null, DEFAULT_DATE_FORMAT, hi);
|
|
131
|
+
_subtypeResolver = str;
|
|
132
|
+
// by default, assumed to be shared; only cleared when explicit copy is made
|
|
133
|
+
_mixInAnnotationsShared = true;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Simple copy constructor
|
|
138
|
+
*
|
|
139
|
+
* @since 1.8
|
|
140
|
+
*/
|
|
141
|
+
protected MapperConfig(MapperConfig<T> src) {
|
|
142
|
+
this(src, src._base, src._subtypeResolver);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* @since 1.8
|
|
147
|
+
*/
|
|
148
|
+
protected MapperConfig(MapperConfig<T> src, MapperConfig.Base base, SubtypeResolver str)
|
|
149
|
+
{
|
|
150
|
+
_base = base;
|
|
151
|
+
_subtypeResolver = str;
|
|
152
|
+
// by default, assumed to be shared; only cleared when explicit copy is made
|
|
153
|
+
_mixInAnnotationsShared = true;
|
|
154
|
+
_mixInAnnotations = src._mixInAnnotations;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/*
|
|
158
|
+
/**********************************************************
|
|
159
|
+
/* Life-cycle: factory methods
|
|
160
|
+
/**********************************************************
|
|
161
|
+
*/
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Method that checks class annotations that the argument Object has,
|
|
165
|
+
* and modifies settings of this configuration object accordingly,
|
|
166
|
+
* similar to how those annotations would affect actual value classes
|
|
167
|
+
* annotated with them, but with global scope. Note that not all
|
|
168
|
+
* annotations have global significance, and thus only subset of
|
|
169
|
+
* Jackson annotations will have any effect.
|
|
170
|
+
*
|
|
171
|
+
* @deprecated Since 1.9, it is preferably to explicitly configure
|
|
172
|
+
* instances; this method also modifies existing instance which is
|
|
173
|
+
* against immutable design goals of this class.
|
|
174
|
+
*/
|
|
175
|
+
@Deprecated
|
|
176
|
+
public abstract void fromAnnotations(Class<?> cls);
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Method to use for constructing an instance that is not shared
|
|
180
|
+
* between multiple operations but only used for a single one
|
|
181
|
+
* (which may be this instance, if it is immutable; if not, a copy
|
|
182
|
+
* is constructed with same settings)
|
|
183
|
+
*
|
|
184
|
+
* @since 1.8
|
|
185
|
+
*/
|
|
186
|
+
public abstract T createUnshared(SubtypeResolver subtypeResolver);
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Method for constructing and returning a new instance with different
|
|
190
|
+
* {@link ClassIntrospector}
|
|
191
|
+
* to use.
|
|
192
|
+
*<p>
|
|
193
|
+
* NOTE: make sure to register new instance with <code>ObjectMapper</code>
|
|
194
|
+
* if directly calling this method.
|
|
195
|
+
*
|
|
196
|
+
* @since 1.8
|
|
197
|
+
*/
|
|
198
|
+
public abstract T withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci);
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Method for constructing and returning a new instance with different
|
|
202
|
+
* {@link AnnotationIntrospector} to use (replacing old one).
|
|
203
|
+
*<p>
|
|
204
|
+
* NOTE: make sure to register new instance with <code>ObjectMapper</code>
|
|
205
|
+
* if directly calling this method.
|
|
206
|
+
*
|
|
207
|
+
* @since 1.8
|
|
208
|
+
*/
|
|
209
|
+
public abstract T withAnnotationIntrospector(AnnotationIntrospector ai);
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Method for constructing and returning a new instance with different
|
|
213
|
+
* {@link VisibilityChecker}
|
|
214
|
+
* to use.
|
|
215
|
+
*<p>
|
|
216
|
+
* NOTE: make sure to register new instance with <code>ObjectMapper</code>
|
|
217
|
+
* if directly calling this method.
|
|
218
|
+
*
|
|
219
|
+
* @since 1.8
|
|
220
|
+
*/
|
|
221
|
+
public abstract T withVisibilityChecker(VisibilityChecker<?> vc);
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Method for constructing and returning a new instance with different
|
|
225
|
+
* minimal visibility level for specified property type
|
|
226
|
+
*<p>
|
|
227
|
+
* NOTE: make sure to register new instance with <code>ObjectMapper</code>
|
|
228
|
+
* if directly calling this method.
|
|
229
|
+
*
|
|
230
|
+
* @since 1.9
|
|
231
|
+
*/
|
|
232
|
+
public abstract T withVisibility(JsonMethod forMethod, JsonAutoDetect.Visibility visibility);
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Method for constructing and returning a new instance with different
|
|
236
|
+
* {@link TypeResolverBuilder}
|
|
237
|
+
* to use.
|
|
238
|
+
*<p>
|
|
239
|
+
* NOTE: make sure to register new instance with <code>ObjectMapper</code>
|
|
240
|
+
* if directly calling this method.
|
|
241
|
+
*
|
|
242
|
+
* @since 1.8
|
|
243
|
+
*/
|
|
244
|
+
public abstract T withTypeResolverBuilder(TypeResolverBuilder<?> trb);
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Method for constructing and returning a new instance with different
|
|
248
|
+
* {@link SubtypeResolver}
|
|
249
|
+
* to use.
|
|
250
|
+
*<p>
|
|
251
|
+
* NOTE: make sure to register new instance with <code>ObjectMapper</code>
|
|
252
|
+
* if directly calling this method.
|
|
253
|
+
*
|
|
254
|
+
* @since 1.8
|
|
255
|
+
*/
|
|
256
|
+
public abstract T withSubtypeResolver(SubtypeResolver str);
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Method for constructing and returning a new instance with different
|
|
260
|
+
* {@link PropertyNamingStrategy}
|
|
261
|
+
* to use.
|
|
262
|
+
*<p>
|
|
263
|
+
* NOTE: make sure to register new instance with <code>ObjectMapper</code>
|
|
264
|
+
* if directly calling this method.
|
|
265
|
+
*
|
|
266
|
+
* @since 1.8
|
|
267
|
+
*/
|
|
268
|
+
public abstract T withPropertyNamingStrategy(PropertyNamingStrategy strategy);
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Method for constructing and returning a new instance with different
|
|
272
|
+
* {@link TypeFactory}
|
|
273
|
+
* to use.
|
|
274
|
+
*<p>
|
|
275
|
+
* NOTE: make sure to register new instance with <code>ObjectMapper</code>
|
|
276
|
+
* if directly calling this method.
|
|
277
|
+
*
|
|
278
|
+
* @since 1.8
|
|
279
|
+
*/
|
|
280
|
+
public abstract T withTypeFactory(TypeFactory typeFactory);
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Method for constructing and returning a new instance with different
|
|
284
|
+
* {@link DateFormat}
|
|
285
|
+
* to use.
|
|
286
|
+
*<p>
|
|
287
|
+
* NOTE: make sure to register new instance with <code>ObjectMapper</code>
|
|
288
|
+
* if directly calling this method.
|
|
289
|
+
*
|
|
290
|
+
* @since 1.8
|
|
291
|
+
*/
|
|
292
|
+
public abstract T withDateFormat(DateFormat df);
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Method for constructing and returning a new instance with different
|
|
296
|
+
* {@link HandlerInstantiator}
|
|
297
|
+
* to use.
|
|
298
|
+
*<p>
|
|
299
|
+
* NOTE: make sure to register new instance with <code>ObjectMapper</code>
|
|
300
|
+
* if directly calling this method.
|
|
301
|
+
*
|
|
302
|
+
* @since 1.8
|
|
303
|
+
*/
|
|
304
|
+
public abstract T withHandlerInstantiator(HandlerInstantiator hi);
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Method for constructing and returning a new instance with additional
|
|
308
|
+
* {@link AnnotationIntrospector} inserted (as the highest priority one)
|
|
309
|
+
*
|
|
310
|
+
* @since 1.9
|
|
311
|
+
*/
|
|
312
|
+
public abstract T withInsertedAnnotationIntrospector(AnnotationIntrospector introspector);
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Method for constructing and returning a new instance with additional
|
|
316
|
+
* {@link AnnotationIntrospector} appended (as the lowest priority one)
|
|
317
|
+
*
|
|
318
|
+
* @since 1.9
|
|
319
|
+
*/
|
|
320
|
+
public abstract T withAppendedAnnotationIntrospector(AnnotationIntrospector introspector);
|
|
321
|
+
|
|
322
|
+
/*
|
|
323
|
+
/**********************************************************
|
|
324
|
+
/* Configuration: simple features
|
|
325
|
+
/**********************************************************
|
|
326
|
+
*/
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* Method for checking whether given feature is enabled or not
|
|
330
|
+
*/
|
|
331
|
+
public abstract boolean isEnabled(ConfigFeature f);
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* Method for determining whether annotation processing is enabled or not
|
|
335
|
+
* (default settings are typically that it is enabled; must explicitly disable).
|
|
336
|
+
*
|
|
337
|
+
* @return True if annotation processing is enabled; false if not
|
|
338
|
+
*
|
|
339
|
+
* @since 1.8
|
|
340
|
+
*/
|
|
341
|
+
public abstract boolean isAnnotationProcessingEnabled();
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* Accessor for determining whether it is ok to try to force override of access
|
|
345
|
+
* modifiers to be able to get or set values of non-public Methods, Fields;
|
|
346
|
+
* to invoke non-public Constructors, Methods; or to instantiate non-public
|
|
347
|
+
* Classes. By default this is enabled, but on some platforms it needs to be
|
|
348
|
+
* prevented since if this would violate security constraints and cause failures.
|
|
349
|
+
*
|
|
350
|
+
* @return True if access modifier overriding is allowed (and may be done for
|
|
351
|
+
* any Field, Method, Constructor or Class); false to prevent any attempts
|
|
352
|
+
* to override.
|
|
353
|
+
*
|
|
354
|
+
* @since 1.8
|
|
355
|
+
*/
|
|
356
|
+
public abstract boolean canOverrideAccessModifiers();
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* Accessor for checking whether default settings for property handling
|
|
360
|
+
* indicate that properties should be alphabetically ordered or not.
|
|
361
|
+
*
|
|
362
|
+
* @since 1.9
|
|
363
|
+
*/
|
|
364
|
+
public abstract boolean shouldSortPropertiesAlphabetically();
|
|
365
|
+
|
|
366
|
+
/*
|
|
367
|
+
/**********************************************************
|
|
368
|
+
/* Configuration: introspectors, mix-ins
|
|
369
|
+
/**********************************************************
|
|
370
|
+
*/
|
|
371
|
+
|
|
372
|
+
public ClassIntrospector<? extends BeanDescription> getClassIntrospector() {
|
|
373
|
+
return _base.getClassIntrospector();
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Method for getting {@link AnnotationIntrospector} configured
|
|
378
|
+
* to introspect annotation values used for configuration.
|
|
379
|
+
*<p>
|
|
380
|
+
* Non-final since it is actually overridden by sub-classes (for now?)
|
|
381
|
+
*/
|
|
382
|
+
public AnnotationIntrospector getAnnotationIntrospector() {
|
|
383
|
+
return _base.getAnnotationIntrospector();
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* Method for registering specified {@link AnnotationIntrospector} as the highest
|
|
388
|
+
* priority introspector (will be chained with existing introspector(s) which
|
|
389
|
+
* will be used as fallbacks for cases this introspector does not handle)
|
|
390
|
+
*
|
|
391
|
+
* @param introspector Annotation introspector to register.
|
|
392
|
+
*
|
|
393
|
+
* @since 1.7
|
|
394
|
+
*
|
|
395
|
+
* @deprecated Since 1.9 use {@link #withInsertedAnnotationIntrospector(AnnotationIntrospector)} instead;
|
|
396
|
+
* this method is deprecated as it changes state, preventing immutability of instances
|
|
397
|
+
*/
|
|
398
|
+
@Deprecated
|
|
399
|
+
public final void insertAnnotationIntrospector(AnnotationIntrospector introspector) {
|
|
400
|
+
_base = _base.withAnnotationIntrospector(AnnotationIntrospector.Pair.create(introspector,
|
|
401
|
+
getAnnotationIntrospector()));
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Method for registering specified {@link AnnotationIntrospector} as the lowest
|
|
406
|
+
* priority introspector, chained with existing introspector(s) and called
|
|
407
|
+
* as fallback for cases not otherwise handled.
|
|
408
|
+
*
|
|
409
|
+
* @param introspector Annotation introspector to register.
|
|
410
|
+
*
|
|
411
|
+
* @since 1.7
|
|
412
|
+
*
|
|
413
|
+
* @deprecated Since 1.9 use {@link #withAppendedAnnotationIntrospector(AnnotationIntrospector)} instead;
|
|
414
|
+
* this method is deprecated as it changes state, preventing immutability of instances
|
|
415
|
+
*/
|
|
416
|
+
@Deprecated
|
|
417
|
+
public final void appendAnnotationIntrospector(AnnotationIntrospector introspector) {
|
|
418
|
+
_base = _base.withAnnotationIntrospector(AnnotationIntrospector.Pair.create(getAnnotationIntrospector(),
|
|
419
|
+
introspector));
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* Accessor for object used for determining whether specific property elements
|
|
424
|
+
* (method, constructors, fields) can be auto-detected based on
|
|
425
|
+
* their visibility (access modifiers). Can be changed to allow
|
|
426
|
+
* different minimum visibility levels for auto-detection. Note
|
|
427
|
+
* that this is the global handler; individual types (classes)
|
|
428
|
+
* can further override active checker used (using
|
|
429
|
+
* {@link JsonAutoDetect} annotation)
|
|
430
|
+
*
|
|
431
|
+
* @since 1.5
|
|
432
|
+
*/
|
|
433
|
+
public VisibilityChecker<?> getDefaultVisibilityChecker() {
|
|
434
|
+
return _base.getVisibilityChecker();
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* @since 1.8
|
|
439
|
+
*/
|
|
440
|
+
public final PropertyNamingStrategy getPropertyNamingStrategy() {
|
|
441
|
+
return _base.getPropertyNamingStrategy();
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* @since 1.8
|
|
446
|
+
*/
|
|
447
|
+
public final HandlerInstantiator getHandlerInstantiator() {
|
|
448
|
+
return _base.getHandlerInstantiator();
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/*
|
|
452
|
+
/**********************************************************
|
|
453
|
+
/* Configuration: mix-in annotations
|
|
454
|
+
/**********************************************************
|
|
455
|
+
*/
|
|
456
|
+
|
|
457
|
+
/**
|
|
458
|
+
* Method to use for defining mix-in annotations to use for augmenting
|
|
459
|
+
* annotations that processable (serializable / deserializable)
|
|
460
|
+
* classes have.
|
|
461
|
+
* Mixing in is done when introspecting class annotations and properties.
|
|
462
|
+
* Map passed contains keys that are target classes (ones to augment
|
|
463
|
+
* with new annotation overrides), and values that are source classes
|
|
464
|
+
* (have annotations to use for augmentation).
|
|
465
|
+
* Annotations from source classes (and their supertypes)
|
|
466
|
+
* will <b>override</b>
|
|
467
|
+
* annotations that target classes (and their super-types) have.
|
|
468
|
+
*
|
|
469
|
+
* @since 1.2
|
|
470
|
+
*/
|
|
471
|
+
public final void setMixInAnnotations(Map<Class<?>, Class<?>> sourceMixins)
|
|
472
|
+
{
|
|
473
|
+
HashMap<ClassKey,Class<?>> mixins = null;
|
|
474
|
+
if (sourceMixins != null && sourceMixins.size() > 0) {
|
|
475
|
+
mixins = new HashMap<ClassKey,Class<?>>(sourceMixins.size());
|
|
476
|
+
for (Map.Entry<Class<?>,Class<?>> en : sourceMixins.entrySet()) {
|
|
477
|
+
mixins.put(new ClassKey(en.getKey()), en.getValue());
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
_mixInAnnotationsShared = false;
|
|
481
|
+
_mixInAnnotations = mixins;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
/**
|
|
485
|
+
* Method to use for adding mix-in annotations to use for augmenting
|
|
486
|
+
* specified class or interface. All annotations from
|
|
487
|
+
* <code>mixinSource</code> are taken to override annotations
|
|
488
|
+
* that <code>target</code> (or its supertypes) has.
|
|
489
|
+
*
|
|
490
|
+
* @since 1.2
|
|
491
|
+
*
|
|
492
|
+
* @param target Class (or interface) whose annotations to effectively override
|
|
493
|
+
* @param mixinSource Class (or interface) whose annotations are to
|
|
494
|
+
* be "added" to target's annotations, overriding as necessary
|
|
495
|
+
*/
|
|
496
|
+
public final void addMixInAnnotations(Class<?> target, Class<?> mixinSource)
|
|
497
|
+
{
|
|
498
|
+
if (_mixInAnnotations == null) {
|
|
499
|
+
_mixInAnnotationsShared = false;
|
|
500
|
+
_mixInAnnotations = new HashMap<ClassKey,Class<?>>();
|
|
501
|
+
} else if (_mixInAnnotationsShared) {
|
|
502
|
+
_mixInAnnotationsShared = false;
|
|
503
|
+
_mixInAnnotations = new HashMap<ClassKey,Class<?>>(_mixInAnnotations);
|
|
504
|
+
}
|
|
505
|
+
_mixInAnnotations.put(new ClassKey(target), mixinSource);
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
// ClassIntrospector.MixInResolver impl:
|
|
509
|
+
|
|
510
|
+
/**
|
|
511
|
+
* Method that will check if there are "mix-in" classes (with mix-in
|
|
512
|
+
* annotations) for given class
|
|
513
|
+
*
|
|
514
|
+
* @since 1.2
|
|
515
|
+
*/
|
|
516
|
+
@Override
|
|
517
|
+
public final Class<?> findMixInClassFor(Class<?> cls) {
|
|
518
|
+
return (_mixInAnnotations == null) ? null : _mixInAnnotations.get(new ClassKey(cls));
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
/**
|
|
522
|
+
* @since 1.8.1
|
|
523
|
+
*/
|
|
524
|
+
public final int mixInCount() {
|
|
525
|
+
return (_mixInAnnotations == null) ? 0 : _mixInAnnotations.size();
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
/*
|
|
529
|
+
/**********************************************************
|
|
530
|
+
/* Configuration: type and subtype handling
|
|
531
|
+
/**********************************************************
|
|
532
|
+
*/
|
|
533
|
+
|
|
534
|
+
/**
|
|
535
|
+
* Method called to locate a type info handler for types that do not have
|
|
536
|
+
* one explicitly declared via annotations (or other configuration).
|
|
537
|
+
* If such default handler is configured, it is returned; otherwise
|
|
538
|
+
* null is returned.
|
|
539
|
+
*
|
|
540
|
+
* @since 1.5
|
|
541
|
+
*/
|
|
542
|
+
public final TypeResolverBuilder<?> getDefaultTyper(JavaType baseType) {
|
|
543
|
+
return _base.getTypeResolverBuilder();
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
/**
|
|
547
|
+
* Accessor for object used for finding out all reachable subtypes
|
|
548
|
+
* for supertypes; needed when a logical type name is used instead
|
|
549
|
+
* of class name (or custom scheme).
|
|
550
|
+
*
|
|
551
|
+
* @since 1.6
|
|
552
|
+
*/
|
|
553
|
+
public final SubtypeResolver getSubtypeResolver() {
|
|
554
|
+
if (_subtypeResolver == null) {
|
|
555
|
+
_subtypeResolver = new StdSubtypeResolver();
|
|
556
|
+
}
|
|
557
|
+
return _subtypeResolver;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* @since 1.8
|
|
562
|
+
*/
|
|
563
|
+
public final TypeFactory getTypeFactory() {
|
|
564
|
+
return _base.getTypeFactory();
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
/**
|
|
568
|
+
* Helper method that will construct {@link JavaType} for given
|
|
569
|
+
* raw class.
|
|
570
|
+
* This is a simple short-cut for:
|
|
571
|
+
*<pre>
|
|
572
|
+
* getTypeFactory().constructType(cls);
|
|
573
|
+
*</pre>
|
|
574
|
+
*
|
|
575
|
+
* @since 1.8
|
|
576
|
+
*/
|
|
577
|
+
public final JavaType constructType(Class<?> cls) {
|
|
578
|
+
return getTypeFactory().constructType(cls, (TypeBindings) null);
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* Helper method that will construct {@link JavaType} for given
|
|
583
|
+
* type reference
|
|
584
|
+
* This is a simple short-cut for:
|
|
585
|
+
*<pre>
|
|
586
|
+
* getTypeFactory().constructType(valueTypeRef);
|
|
587
|
+
*</pre>
|
|
588
|
+
*
|
|
589
|
+
* @since 1.9
|
|
590
|
+
*/
|
|
591
|
+
public final JavaType constructType(TypeReference<?> valueTypeRef) {
|
|
592
|
+
return getTypeFactory().constructType(valueTypeRef.getType(), (TypeBindings) null);
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
/**
|
|
596
|
+
* @since 1.9.1
|
|
597
|
+
*/
|
|
598
|
+
public JavaType constructSpecializedType(JavaType baseType, Class<?> subclass) {
|
|
599
|
+
return getTypeFactory().constructSpecializedType(baseType, subclass);
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
/*
|
|
603
|
+
/**********************************************************
|
|
604
|
+
/* Configuration: other
|
|
605
|
+
/**********************************************************
|
|
606
|
+
*/
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* Method for accessing currently configured (textual) date format
|
|
610
|
+
* that will be used for reading or writing date values (in case
|
|
611
|
+
* of writing, only if textual output is configured; not if dates
|
|
612
|
+
* are to be serialized as time stamps).
|
|
613
|
+
*<p>
|
|
614
|
+
* Note that typically {@link DateFormat} instances are <b>not thread-safe</b>
|
|
615
|
+
* (at least ones provided by JDK):
|
|
616
|
+
* this means that calling code should clone format instance before
|
|
617
|
+
* using it.
|
|
618
|
+
*<p>
|
|
619
|
+
* This method is usually only called by framework itself, since there
|
|
620
|
+
* are convenience methods available via
|
|
621
|
+
* {@link DeserializationContext} and {@link SerializerProvider} that
|
|
622
|
+
* take care of cloning and thread-safe reuse.
|
|
623
|
+
*/
|
|
624
|
+
public final DateFormat getDateFormat() { return _base.getDateFormat(); }
|
|
625
|
+
|
|
626
|
+
/**
|
|
627
|
+
* Accessor for getting bean description that only contains class
|
|
628
|
+
* annotations: useful if no getter/setter/creator information is needed.
|
|
629
|
+
*
|
|
630
|
+
* @since 1.7
|
|
631
|
+
*/
|
|
632
|
+
@SuppressWarnings("unchecked")
|
|
633
|
+
public <DESC extends BeanDescription> DESC introspectClassAnnotations(Class<?> cls) {
|
|
634
|
+
return (DESC) introspectClassAnnotations(constructType(cls));
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
/**
|
|
638
|
+
* Accessor for getting bean description that only contains class
|
|
639
|
+
* annotations: useful if no getter/setter/creator information is needed.
|
|
640
|
+
*
|
|
641
|
+
* @since 1.9
|
|
642
|
+
*/
|
|
643
|
+
public abstract <DESC extends BeanDescription> DESC introspectClassAnnotations(JavaType type);
|
|
644
|
+
|
|
645
|
+
/**
|
|
646
|
+
* Accessor for getting bean description that only contains immediate class
|
|
647
|
+
* annotations: ones from the class, and its direct mix-in, if any, but
|
|
648
|
+
* not from super types.
|
|
649
|
+
*
|
|
650
|
+
* @since 1.7
|
|
651
|
+
*/
|
|
652
|
+
@SuppressWarnings("unchecked")
|
|
653
|
+
public <DESC extends BeanDescription> DESC introspectDirectClassAnnotations(Class<?> cls) {
|
|
654
|
+
return (DESC) introspectDirectClassAnnotations(constructType(cls));
|
|
655
|
+
}
|
|
656
|
+
/**
|
|
657
|
+
* Accessor for getting bean description that only contains immediate class
|
|
658
|
+
* annotations: ones from the class, and its direct mix-in, if any, but
|
|
659
|
+
* not from super types.
|
|
660
|
+
*/
|
|
661
|
+
public abstract <DESC extends BeanDescription> DESC introspectDirectClassAnnotations(JavaType type);
|
|
662
|
+
|
|
663
|
+
/*
|
|
664
|
+
/**********************************************************
|
|
665
|
+
/* Methods for instantiating handlers
|
|
666
|
+
/**********************************************************
|
|
667
|
+
*/
|
|
668
|
+
|
|
669
|
+
/**
|
|
670
|
+
* Method that can be called to obtain an instance of <code>TypeIdResolver</code> of
|
|
671
|
+
* specified type.
|
|
672
|
+
*
|
|
673
|
+
* @since 1.8
|
|
674
|
+
*/
|
|
675
|
+
public TypeResolverBuilder<?> typeResolverBuilderInstance(Annotated annotated,
|
|
676
|
+
Class<? extends TypeResolverBuilder<?>> builderClass)
|
|
677
|
+
{
|
|
678
|
+
HandlerInstantiator hi = getHandlerInstantiator();
|
|
679
|
+
if (hi != null) {
|
|
680
|
+
TypeResolverBuilder<?> builder = hi.typeResolverBuilderInstance(this, annotated, builderClass);
|
|
681
|
+
if (builder != null) {
|
|
682
|
+
return builder;
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
return (TypeResolverBuilder<?>) ClassUtil.createInstance(builderClass, canOverrideAccessModifiers());
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
/**
|
|
689
|
+
* Method that can be called to obtain an instance of <code>TypeIdResolver</code> of
|
|
690
|
+
* specified type.
|
|
691
|
+
*
|
|
692
|
+
* @since 1.8
|
|
693
|
+
*/
|
|
694
|
+
public TypeIdResolver typeIdResolverInstance(Annotated annotated,
|
|
695
|
+
Class<? extends TypeIdResolver> resolverClass)
|
|
696
|
+
{
|
|
697
|
+
HandlerInstantiator hi = getHandlerInstantiator();
|
|
698
|
+
if (hi != null) {
|
|
699
|
+
TypeIdResolver builder = hi.typeIdResolverInstance(this, annotated, resolverClass);
|
|
700
|
+
if (builder != null) {
|
|
701
|
+
return builder;
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
return (TypeIdResolver) ClassUtil.createInstance(resolverClass, canOverrideAccessModifiers());
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
/*
|
|
708
|
+
/**********************************************************
|
|
709
|
+
/* Deprecated methods
|
|
710
|
+
/**********************************************************
|
|
711
|
+
*/
|
|
712
|
+
|
|
713
|
+
/**
|
|
714
|
+
* Method for replacing existing annotation introspector(s) with specified
|
|
715
|
+
* introspector.
|
|
716
|
+
* Since this method modifies state of configuration object directly, its use
|
|
717
|
+
* is not recommended.
|
|
718
|
+
*
|
|
719
|
+
* @deprecated Since 1.8, use either
|
|
720
|
+
* {@link #withAnnotationIntrospector(AnnotationIntrospector)} or
|
|
721
|
+
* Module API instead
|
|
722
|
+
*/
|
|
723
|
+
@Deprecated
|
|
724
|
+
public final void setAnnotationIntrospector(AnnotationIntrospector ai) {
|
|
725
|
+
_base = _base.withAnnotationIntrospector(ai);
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
/**
|
|
729
|
+
* Method that will define specific date format to use for reading/writing
|
|
730
|
+
* Date and Calendar values.
|
|
731
|
+
* If null is passed, will use {@link StdDateFormat}.
|
|
732
|
+
* Instance is used as is, without creating a clone.
|
|
733
|
+
* Format object in use can be accessed using {@link #getDateFormat}.
|
|
734
|
+
*
|
|
735
|
+
* @param df Date format to use, if not null; if null, the default format
|
|
736
|
+
* will be used
|
|
737
|
+
*
|
|
738
|
+
* @deprecated As of version 1.8, it is preferable to call method in
|
|
739
|
+
* {@link ObjectMapper} instead; or construct new instance with
|
|
740
|
+
* {@link #withDateFormat(DateFormat)}
|
|
741
|
+
*/
|
|
742
|
+
@Deprecated
|
|
743
|
+
public void setDateFormat(DateFormat df) {
|
|
744
|
+
if (df == null) {
|
|
745
|
+
df = DEFAULT_DATE_FORMAT;
|
|
746
|
+
}
|
|
747
|
+
_base = _base.withDateFormat(df);
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
/*
|
|
751
|
+
/**********************************************************
|
|
752
|
+
/* Helper interface used with simple on/off features
|
|
753
|
+
/**********************************************************
|
|
754
|
+
*/
|
|
755
|
+
|
|
756
|
+
/**
|
|
757
|
+
* Interface that actual Feature enumerations used by
|
|
758
|
+
* {@link MapperConfig} implementations must implement.
|
|
759
|
+
* Necessary since enums can not be extended using normal
|
|
760
|
+
* inheritance, but can implement interfaces
|
|
761
|
+
*
|
|
762
|
+
* @since 1.9
|
|
763
|
+
*/
|
|
764
|
+
public interface ConfigFeature
|
|
765
|
+
{
|
|
766
|
+
/**
|
|
767
|
+
* Accessor for checking whether this feature is enabled by default.
|
|
768
|
+
*/
|
|
769
|
+
public boolean enabledByDefault();
|
|
770
|
+
|
|
771
|
+
/**
|
|
772
|
+
* Returns bit mask for this feature instance
|
|
773
|
+
*/
|
|
774
|
+
public int getMask();
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
/*
|
|
778
|
+
/**********************************************************
|
|
779
|
+
/* Helper class to contain basic state needed to implement
|
|
780
|
+
/* MapperConfig.
|
|
781
|
+
/**********************************************************
|
|
782
|
+
*/
|
|
783
|
+
|
|
784
|
+
/**
|
|
785
|
+
* Immutable container class used to store simple configuration
|
|
786
|
+
* settings. Since instances are fully immutable, instances can
|
|
787
|
+
* be freely shared and used without synchronization.
|
|
788
|
+
*/
|
|
789
|
+
public static class Base
|
|
790
|
+
{
|
|
791
|
+
/*
|
|
792
|
+
/**********************************************************
|
|
793
|
+
/* Configuration settings; introspection, related
|
|
794
|
+
/**********************************************************
|
|
795
|
+
*/
|
|
796
|
+
|
|
797
|
+
/**
|
|
798
|
+
* Introspector used to figure out Bean properties needed for bean serialization
|
|
799
|
+
* and deserialization. Overridable so that it is possible to change low-level
|
|
800
|
+
* details of introspection, like adding new annotation types.
|
|
801
|
+
*/
|
|
802
|
+
protected final ClassIntrospector<? extends BeanDescription> _classIntrospector;
|
|
803
|
+
|
|
804
|
+
/**
|
|
805
|
+
* Introspector used for accessing annotation value based configuration.
|
|
806
|
+
*/
|
|
807
|
+
protected final AnnotationIntrospector _annotationIntrospector;
|
|
808
|
+
|
|
809
|
+
/**
|
|
810
|
+
* Object used for determining whether specific property elements
|
|
811
|
+
* (method, constructors, fields) can be auto-detected based on
|
|
812
|
+
* their visibility (access modifiers). Can be changed to allow
|
|
813
|
+
* different minimum visibility levels for auto-detection. Note
|
|
814
|
+
* that this is the global handler; individual types (classes)
|
|
815
|
+
* can further override active checker used (using
|
|
816
|
+
* {@link JsonAutoDetect} annotation)
|
|
817
|
+
*
|
|
818
|
+
* @since 1.5
|
|
819
|
+
*/
|
|
820
|
+
protected final VisibilityChecker<?> _visibilityChecker;
|
|
821
|
+
|
|
822
|
+
/**
|
|
823
|
+
* Custom property naming strategy in use, if any.
|
|
824
|
+
*
|
|
825
|
+
* @since 1.8
|
|
826
|
+
*/
|
|
827
|
+
protected final PropertyNamingStrategy _propertyNamingStrategy;
|
|
828
|
+
|
|
829
|
+
/**
|
|
830
|
+
* Specific factory used for creating {@link JavaType} instances;
|
|
831
|
+
* needed to allow modules to add more custom type handling
|
|
832
|
+
* (mostly to support types of non-Java JVM languages)
|
|
833
|
+
*/
|
|
834
|
+
protected final TypeFactory _typeFactory;
|
|
835
|
+
|
|
836
|
+
/*
|
|
837
|
+
/**********************************************************
|
|
838
|
+
/* Configuration settings; type resolution
|
|
839
|
+
/**********************************************************
|
|
840
|
+
*/
|
|
841
|
+
|
|
842
|
+
/**
|
|
843
|
+
* Type information handler used for "untyped" values (ones declared
|
|
844
|
+
* to have type <code>Object.class</code>)
|
|
845
|
+
*
|
|
846
|
+
* @since 1.5
|
|
847
|
+
*/
|
|
848
|
+
protected final TypeResolverBuilder<?> _typeResolverBuilder;
|
|
849
|
+
|
|
850
|
+
/*
|
|
851
|
+
/**********************************************************
|
|
852
|
+
/* Configuration settings; other
|
|
853
|
+
/**********************************************************
|
|
854
|
+
*/
|
|
855
|
+
|
|
856
|
+
/**
|
|
857
|
+
* Custom date format to use for de-serialization. If specified, will be
|
|
858
|
+
* used instead of {@link sh.calaba.org.codehaus.jackson.map.util.StdDateFormat}.
|
|
859
|
+
*<p>
|
|
860
|
+
* Note that the configured format object will be cloned once per
|
|
861
|
+
* deserialization process (first time it is needed)
|
|
862
|
+
*/
|
|
863
|
+
protected final DateFormat _dateFormat;
|
|
864
|
+
|
|
865
|
+
/**
|
|
866
|
+
* Object used for creating instances of handlers (serializers, deserializers,
|
|
867
|
+
* type and type id resolvers), given class to instantiate. This is typically
|
|
868
|
+
* used to do additional configuration (with dependency injection, for example)
|
|
869
|
+
* beyond simply construction of instances; or to use alternative constructors.
|
|
870
|
+
*/
|
|
871
|
+
protected final HandlerInstantiator _handlerInstantiator;
|
|
872
|
+
|
|
873
|
+
/*
|
|
874
|
+
/**********************************************************
|
|
875
|
+
/* Construction
|
|
876
|
+
/**********************************************************
|
|
877
|
+
*/
|
|
878
|
+
|
|
879
|
+
public Base(ClassIntrospector<? extends BeanDescription> ci, AnnotationIntrospector ai,
|
|
880
|
+
VisibilityChecker<?> vc, PropertyNamingStrategy pns, TypeFactory tf,
|
|
881
|
+
TypeResolverBuilder<?> typer, DateFormat dateFormat, HandlerInstantiator hi)
|
|
882
|
+
{
|
|
883
|
+
_classIntrospector = ci;
|
|
884
|
+
_annotationIntrospector = ai;
|
|
885
|
+
_visibilityChecker = vc;
|
|
886
|
+
_propertyNamingStrategy = pns;
|
|
887
|
+
_typeFactory = tf;
|
|
888
|
+
_typeResolverBuilder = typer;
|
|
889
|
+
_dateFormat = dateFormat;
|
|
890
|
+
_handlerInstantiator = hi;
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
/*
|
|
894
|
+
/**********************************************************
|
|
895
|
+
/* Factory methods
|
|
896
|
+
/**********************************************************
|
|
897
|
+
*/
|
|
898
|
+
|
|
899
|
+
public Base withClassIntrospector(ClassIntrospector<? extends BeanDescription> ci) {
|
|
900
|
+
return new Base(ci, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
|
|
901
|
+
_typeResolverBuilder, _dateFormat, _handlerInstantiator);
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
public Base withAnnotationIntrospector(AnnotationIntrospector ai) {
|
|
905
|
+
return new Base(_classIntrospector, ai, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
|
|
906
|
+
_typeResolverBuilder, _dateFormat, _handlerInstantiator);
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
public Base withInsertedAnnotationIntrospector(AnnotationIntrospector ai) {
|
|
910
|
+
return withAnnotationIntrospector(AnnotationIntrospector.Pair.create(ai, _annotationIntrospector));
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
public Base withAppendedAnnotationIntrospector(AnnotationIntrospector ai) {
|
|
914
|
+
return withAnnotationIntrospector(AnnotationIntrospector.Pair.create(_annotationIntrospector, ai));
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
public Base withVisibilityChecker(VisibilityChecker<?> vc) {
|
|
918
|
+
return new Base(_classIntrospector, _annotationIntrospector, vc, _propertyNamingStrategy, _typeFactory,
|
|
919
|
+
_typeResolverBuilder, _dateFormat, _handlerInstantiator);
|
|
920
|
+
}
|
|
921
|
+
|
|
922
|
+
public Base withVisibility(JsonMethod forMethod, JsonAutoDetect.Visibility visibility) {
|
|
923
|
+
return new Base(_classIntrospector, _annotationIntrospector,
|
|
924
|
+
_visibilityChecker.withVisibility(forMethod, visibility),
|
|
925
|
+
_propertyNamingStrategy, _typeFactory,
|
|
926
|
+
_typeResolverBuilder, _dateFormat, _handlerInstantiator);
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
public Base withPropertyNamingStrategy(PropertyNamingStrategy pns) {
|
|
930
|
+
return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, pns, _typeFactory,
|
|
931
|
+
_typeResolverBuilder, _dateFormat, _handlerInstantiator);
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
public Base withTypeFactory(TypeFactory tf) {
|
|
935
|
+
return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, tf,
|
|
936
|
+
_typeResolverBuilder, _dateFormat, _handlerInstantiator);
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
public Base withTypeResolverBuilder(TypeResolverBuilder<?> typer) {
|
|
940
|
+
return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
|
|
941
|
+
typer, _dateFormat, _handlerInstantiator);
|
|
942
|
+
}
|
|
943
|
+
|
|
944
|
+
public Base withDateFormat(DateFormat df) {
|
|
945
|
+
return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
|
|
946
|
+
_typeResolverBuilder, df, _handlerInstantiator);
|
|
947
|
+
}
|
|
948
|
+
|
|
949
|
+
public Base withHandlerInstantiator(HandlerInstantiator hi) {
|
|
950
|
+
return new Base(_classIntrospector, _annotationIntrospector, _visibilityChecker, _propertyNamingStrategy, _typeFactory,
|
|
951
|
+
_typeResolverBuilder, _dateFormat, hi);
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
/*
|
|
955
|
+
/**********************************************************
|
|
956
|
+
/* API
|
|
957
|
+
/**********************************************************
|
|
958
|
+
*/
|
|
959
|
+
|
|
960
|
+
public ClassIntrospector<? extends BeanDescription> getClassIntrospector() {
|
|
961
|
+
return _classIntrospector;
|
|
962
|
+
}
|
|
963
|
+
|
|
964
|
+
public AnnotationIntrospector getAnnotationIntrospector() {
|
|
965
|
+
return _annotationIntrospector;
|
|
966
|
+
}
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
public VisibilityChecker<?> getVisibilityChecker() {
|
|
970
|
+
return _visibilityChecker;
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
public PropertyNamingStrategy getPropertyNamingStrategy() {
|
|
974
|
+
return _propertyNamingStrategy;
|
|
975
|
+
}
|
|
976
|
+
|
|
977
|
+
public TypeFactory getTypeFactory() {
|
|
978
|
+
return _typeFactory;
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
public TypeResolverBuilder<?> getTypeResolverBuilder() {
|
|
982
|
+
return _typeResolverBuilder;
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
public DateFormat getDateFormat() {
|
|
986
|
+
return _dateFormat;
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
public HandlerInstantiator getHandlerInstantiator() {
|
|
990
|
+
return _handlerInstantiator;
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
/*
|
|
995
|
+
/**********************************************************
|
|
996
|
+
/* Basic extension; added to avoid having to change generic
|
|
997
|
+
/* signature of MapperConfig
|
|
998
|
+
/*
|
|
999
|
+
/* NOTE: May be merge in MapperConfig for 2.0, depending
|
|
1000
|
+
/* on how much we value backwards compatibility
|
|
1001
|
+
/**********************************************************
|
|
1002
|
+
*/
|
|
1003
|
+
|
|
1004
|
+
static abstract class Impl<CFG extends MapperConfig.ConfigFeature,
|
|
1005
|
+
T extends Impl<CFG,T>>
|
|
1006
|
+
extends MapperConfig<T>
|
|
1007
|
+
{
|
|
1008
|
+
/**
|
|
1009
|
+
*<p>
|
|
1010
|
+
* Note: moved to base class in 1.9; was stored by sub-class earlier
|
|
1011
|
+
*/
|
|
1012
|
+
protected int _featureFlags;
|
|
1013
|
+
|
|
1014
|
+
/*
|
|
1015
|
+
/**********************************************************
|
|
1016
|
+
/* Construction
|
|
1017
|
+
/**********************************************************
|
|
1018
|
+
*/
|
|
1019
|
+
|
|
1020
|
+
protected Impl(ClassIntrospector<? extends BeanDescription> ci, AnnotationIntrospector ai,
|
|
1021
|
+
VisibilityChecker<?> vc, SubtypeResolver str, PropertyNamingStrategy pns, TypeFactory tf,
|
|
1022
|
+
HandlerInstantiator hi,
|
|
1023
|
+
int defaultFeatures)
|
|
1024
|
+
{
|
|
1025
|
+
super(ci, ai, vc, str, pns, tf, hi);
|
|
1026
|
+
_featureFlags = defaultFeatures;
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
protected Impl(Impl<CFG,T> src) {
|
|
1030
|
+
super(src);
|
|
1031
|
+
_featureFlags = src._featureFlags;
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
protected Impl(Impl<CFG,T> src, int features) {
|
|
1035
|
+
super(src);
|
|
1036
|
+
_featureFlags = features;
|
|
1037
|
+
}
|
|
1038
|
+
|
|
1039
|
+
/**
|
|
1040
|
+
* @since 1.8
|
|
1041
|
+
*/
|
|
1042
|
+
protected Impl(Impl<CFG,T> src, MapperConfig.Base base, SubtypeResolver str)
|
|
1043
|
+
{
|
|
1044
|
+
super(src, base, str);
|
|
1045
|
+
_featureFlags = src._featureFlags;
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
/**
|
|
1049
|
+
* Method that calculates bit set (flags) of all features that
|
|
1050
|
+
* are enabled by default.
|
|
1051
|
+
*/
|
|
1052
|
+
static <F extends Enum<F> & MapperConfig.ConfigFeature> int collectFeatureDefaults(Class<F> enumClass)
|
|
1053
|
+
{
|
|
1054
|
+
int flags = 0;
|
|
1055
|
+
for (F value : enumClass.getEnumConstants()) {
|
|
1056
|
+
if (value.enabledByDefault()) {
|
|
1057
|
+
flags |= value.getMask();
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
1060
|
+
return flags;
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1063
|
+
/*
|
|
1064
|
+
/**********************************************************
|
|
1065
|
+
/* Additional fluent-factory methods
|
|
1066
|
+
/**********************************************************
|
|
1067
|
+
*/
|
|
1068
|
+
|
|
1069
|
+
/**
|
|
1070
|
+
* Fluent factory method that will construct and return a new configuration
|
|
1071
|
+
* object instance with specified features enabled.
|
|
1072
|
+
*
|
|
1073
|
+
* @since 1.9
|
|
1074
|
+
*/
|
|
1075
|
+
public abstract T with(CFG... features);
|
|
1076
|
+
|
|
1077
|
+
/**
|
|
1078
|
+
* Fluent factory method that will construct and return a new configuration
|
|
1079
|
+
* object instance with specified features disabled.
|
|
1080
|
+
*
|
|
1081
|
+
* @since 1.9
|
|
1082
|
+
*/
|
|
1083
|
+
public abstract T without(CFG... features);
|
|
1084
|
+
|
|
1085
|
+
/*
|
|
1086
|
+
/**********************************************************
|
|
1087
|
+
/* Configuration: simple features
|
|
1088
|
+
/**********************************************************
|
|
1089
|
+
*/
|
|
1090
|
+
|
|
1091
|
+
/* NOTE: this method was added in 1.9, but should be
|
|
1092
|
+
* removed from 2.0 -- overloads do not work nicely with
|
|
1093
|
+
* enums, so we better not try
|
|
1094
|
+
*<p>
|
|
1095
|
+
* Also note that we can NOT use type variable CFG here, because
|
|
1096
|
+
* non-generic base class had to use base type.
|
|
1097
|
+
*
|
|
1098
|
+
* @Deprecated
|
|
1099
|
+
*/
|
|
1100
|
+
@Override
|
|
1101
|
+
public boolean isEnabled(MapperConfig.ConfigFeature f) {
|
|
1102
|
+
return (_featureFlags & f.getMask()) != 0;
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
/*
|
|
1106
|
+
/**********************************************************
|
|
1107
|
+
/* Configuration: deprecated methods
|
|
1108
|
+
/**********************************************************
|
|
1109
|
+
*/
|
|
1110
|
+
|
|
1111
|
+
/**
|
|
1112
|
+
* Method for enabling specified feature.
|
|
1113
|
+
*
|
|
1114
|
+
* @deprecated Since 1.9, it is preferable to use {@link #with} instead;
|
|
1115
|
+
* this method is deprecated as it modifies current instance instead of
|
|
1116
|
+
* creating a new one (as the goal is to make this class immutable)
|
|
1117
|
+
*/
|
|
1118
|
+
@Deprecated
|
|
1119
|
+
public void enable(CFG f) {
|
|
1120
|
+
_featureFlags |= f.getMask();
|
|
1121
|
+
}
|
|
1122
|
+
|
|
1123
|
+
/**
|
|
1124
|
+
* Method for disabling specified feature.
|
|
1125
|
+
*
|
|
1126
|
+
* @deprecated Since 1.9, it is preferable to use {@link #without} instead;
|
|
1127
|
+
* this method is deprecated as it modifies current instance instead of
|
|
1128
|
+
* creating a new one (as the goal is to make this class immutable)
|
|
1129
|
+
*/
|
|
1130
|
+
@Deprecated
|
|
1131
|
+
public void disable(CFG f) {
|
|
1132
|
+
_featureFlags &= ~f.getMask();
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
/**
|
|
1136
|
+
* Method for enabling or disabling specified feature.
|
|
1137
|
+
*
|
|
1138
|
+
* @deprecated Since 1.9, it is preferable to use {@link #with} and
|
|
1139
|
+
* {@link #without} methods instead;
|
|
1140
|
+
* this method is deprecated as it modifies current instance instead of
|
|
1141
|
+
* creating a new one (as the goal is to make this class immutable)
|
|
1142
|
+
*/
|
|
1143
|
+
@SuppressWarnings("deprecation")
|
|
1144
|
+
@Deprecated
|
|
1145
|
+
public void set(CFG f, boolean state)
|
|
1146
|
+
{
|
|
1147
|
+
if (state) {
|
|
1148
|
+
enable(f);
|
|
1149
|
+
} else {
|
|
1150
|
+
disable(f);
|
|
1151
|
+
}
|
|
1152
|
+
}
|
|
1153
|
+
}
|
|
1154
|
+
}
|