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,83 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.introspect;
|
|
2
|
+
|
|
3
|
+
import java.lang.reflect.Constructor;
|
|
4
|
+
import java.lang.reflect.Method;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Helper class needed to be able to efficiently access class
|
|
8
|
+
* member functions ({@link Method}s and {@link Constructor}s)
|
|
9
|
+
* in {@link java.util.Map}s.
|
|
10
|
+
*/
|
|
11
|
+
public final class MemberKey
|
|
12
|
+
{
|
|
13
|
+
final static Class<?>[] NO_CLASSES = new Class<?>[0];
|
|
14
|
+
|
|
15
|
+
final String _name;
|
|
16
|
+
final Class<?>[] _argTypes;
|
|
17
|
+
|
|
18
|
+
public MemberKey(Method m)
|
|
19
|
+
{
|
|
20
|
+
this(m.getName(), m.getParameterTypes());
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public MemberKey(Constructor<?> ctor)
|
|
24
|
+
{
|
|
25
|
+
this("", ctor.getParameterTypes());
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public MemberKey(String name, Class<?>[] argTypes)
|
|
29
|
+
{
|
|
30
|
+
_name = name;
|
|
31
|
+
_argTypes = (argTypes == null) ? NO_CLASSES : argTypes;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@Override
|
|
35
|
+
public String toString() {
|
|
36
|
+
return _name + "(" + _argTypes.length+"-args)";
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@Override
|
|
40
|
+
public int hashCode()
|
|
41
|
+
{
|
|
42
|
+
return _name.hashCode() + _argTypes.length;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@Override
|
|
46
|
+
public boolean equals(Object o)
|
|
47
|
+
{
|
|
48
|
+
if (o == this) return true;
|
|
49
|
+
if (o == null) return false;
|
|
50
|
+
if (o.getClass() != getClass()) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
MemberKey other = (MemberKey) o;
|
|
54
|
+
if (!_name.equals(other._name)) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
Class<?>[] otherArgs = other._argTypes;
|
|
58
|
+
int len = _argTypes.length;
|
|
59
|
+
if (otherArgs.length != len) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
for (int i = 0; i < len; ++i) {
|
|
63
|
+
Class<?> type1 = otherArgs[i];
|
|
64
|
+
Class<?> type2 = _argTypes[i];
|
|
65
|
+
if (type1 == type2) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
/* 23-Feb-2009, tatu: Are there any cases where we would have to
|
|
69
|
+
* consider some narrowing conversions or such? For now let's
|
|
70
|
+
* assume exact type match is enough
|
|
71
|
+
*/
|
|
72
|
+
/* 07-Apr-2009, tatu: Indeed there are (see [JACKSON-97]).
|
|
73
|
+
* This happens with generics when a bound is specified.
|
|
74
|
+
* I hope this works; check here must be transitive
|
|
75
|
+
*/
|
|
76
|
+
if (type1.isAssignableFrom(type2) || type2.isAssignableFrom(type1)) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.introspect;
|
|
2
|
+
|
|
3
|
+
import java.lang.reflect.Method;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Simple interface that defines API used to filter out irrelevant
|
|
7
|
+
* methods
|
|
8
|
+
*/
|
|
9
|
+
public interface MethodFilter
|
|
10
|
+
{
|
|
11
|
+
public boolean includeMethod(Method m);
|
|
12
|
+
}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.introspect;
|
|
2
|
+
|
|
3
|
+
import java.lang.annotation.Annotation;
|
|
4
|
+
|
|
5
|
+
import sh.calaba.org.codehaus.jackson.map.AnnotationIntrospector;
|
|
6
|
+
import sh.calaba.org.codehaus.jackson.map.JsonDeserializer;
|
|
7
|
+
import sh.calaba.org.codehaus.jackson.map.KeyDeserializer;
|
|
8
|
+
import sh.calaba.org.codehaus.jackson.map.annotate.JsonSerialize.Typing;
|
|
9
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Dummy, "no-operation" implementation of {@link AnnotationIntrospector}.
|
|
13
|
+
* Can be used as is to suppress handling of annotations; or as a basis
|
|
14
|
+
* for simple complementary annotators
|
|
15
|
+
*/
|
|
16
|
+
public class NopAnnotationIntrospector
|
|
17
|
+
extends AnnotationIntrospector
|
|
18
|
+
{
|
|
19
|
+
/**
|
|
20
|
+
* Static immutable and shareable instance that can be used as
|
|
21
|
+
* "null" introspector: one that never finds any annotation
|
|
22
|
+
* information.
|
|
23
|
+
*/
|
|
24
|
+
public final static NopAnnotationIntrospector instance = new NopAnnotationIntrospector();
|
|
25
|
+
|
|
26
|
+
/*
|
|
27
|
+
/**********************************************************
|
|
28
|
+
/* General annotation properties
|
|
29
|
+
/**********************************************************
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
@Override
|
|
33
|
+
public boolean isHandled(Annotation ann) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
/**********************************************************
|
|
39
|
+
/* General annotations
|
|
40
|
+
/**********************************************************
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
@Override
|
|
44
|
+
public String findEnumValue(Enum<?> value) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/*
|
|
49
|
+
/**********************************************************
|
|
50
|
+
/* General Class annotations
|
|
51
|
+
/**********************************************************
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
@Override
|
|
55
|
+
public String findRootName(AnnotatedClass ac) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@Override
|
|
60
|
+
public String[] findPropertiesToIgnore(AnnotatedClass ac) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@Override
|
|
65
|
+
public Boolean findIgnoreUnknownProperties(AnnotatedClass ac) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/*
|
|
70
|
+
/**********************************************************
|
|
71
|
+
/* General member (field, method/constructor) annotations
|
|
72
|
+
/**********************************************************
|
|
73
|
+
*/
|
|
74
|
+
|
|
75
|
+
@Override
|
|
76
|
+
public boolean hasIgnoreMarker(AnnotatedMember member) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/*
|
|
81
|
+
/**********************************************************
|
|
82
|
+
/* General Method annotations
|
|
83
|
+
/**********************************************************
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
@Override
|
|
87
|
+
public boolean isIgnorableConstructor(AnnotatedConstructor c) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@Override
|
|
92
|
+
public boolean isIgnorableMethod(AnnotatedMethod m) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/*
|
|
97
|
+
/**********************************************************
|
|
98
|
+
/* General field annotations
|
|
99
|
+
/**********************************************************
|
|
100
|
+
*/
|
|
101
|
+
|
|
102
|
+
@Override
|
|
103
|
+
public boolean isIgnorableField(AnnotatedField f) {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/*
|
|
108
|
+
/**********************************************************
|
|
109
|
+
/* Serialization: general annotations
|
|
110
|
+
/**********************************************************
|
|
111
|
+
*/
|
|
112
|
+
|
|
113
|
+
@Override
|
|
114
|
+
public Object findSerializer(Annotated am) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
@Override
|
|
119
|
+
public Class<?> findSerializationType(Annotated a) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@Override
|
|
124
|
+
public Typing findSerializationTyping(Annotated a) {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@Override
|
|
129
|
+
public Class<?>[] findSerializationViews(Annotated a) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/*
|
|
134
|
+
/**********************************************************
|
|
135
|
+
/* Serialization: class annotations
|
|
136
|
+
/**********************************************************
|
|
137
|
+
*/
|
|
138
|
+
|
|
139
|
+
@Override
|
|
140
|
+
public String[] findSerializationPropertyOrder(AnnotatedClass ac) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@Override
|
|
145
|
+
public Boolean findSerializationSortAlphabetically(AnnotatedClass ac) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/*
|
|
150
|
+
/**********************************************************
|
|
151
|
+
/* Serialization: method annotations
|
|
152
|
+
/**********************************************************
|
|
153
|
+
*/
|
|
154
|
+
|
|
155
|
+
@Override
|
|
156
|
+
public String findGettablePropertyName(AnnotatedMethod am) {
|
|
157
|
+
return null;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
@Override
|
|
161
|
+
public boolean hasAsValueAnnotation(AnnotatedMethod am) {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
@Override
|
|
166
|
+
public String findDeserializablePropertyName(AnnotatedField af) {
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
@Override
|
|
171
|
+
public Class<?> findDeserializationContentType(Annotated am, JavaType t, String propName) {
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@Override
|
|
176
|
+
public Class<?> findDeserializationKeyType(Annotated am, JavaType t, String propName) {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
@Override
|
|
181
|
+
public Class<?> findDeserializationType(Annotated am, JavaType t, String propName) {
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
@Override
|
|
186
|
+
public Object findDeserializer(Annotated am) { return null; }
|
|
187
|
+
|
|
188
|
+
@Override
|
|
189
|
+
public Class<KeyDeserializer> findKeyDeserializer(Annotated am) { return null; }
|
|
190
|
+
|
|
191
|
+
@Override
|
|
192
|
+
public Class<JsonDeserializer<?>> findContentDeserializer(Annotated am) { return null; }
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
@Override
|
|
196
|
+
public String findPropertyNameForParam(AnnotatedParameter param) {
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
@Override
|
|
201
|
+
public String findSerializablePropertyName(AnnotatedField af) {
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@Override
|
|
206
|
+
public String findSettablePropertyName(AnnotatedMethod am) {
|
|
207
|
+
return null;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
@@ -0,0 +1,713 @@
|
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.introspect;
|
|
2
|
+
|
|
3
|
+
import java.util.*;
|
|
4
|
+
|
|
5
|
+
import sh.calaba.org.codehaus.jackson.map.*;
|
|
6
|
+
import sh.calaba.org.codehaus.jackson.map.util.BeanUtil;
|
|
7
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Helper class used for aggregating information about all possible
|
|
11
|
+
* properties of a POJO.
|
|
12
|
+
*
|
|
13
|
+
* @since 1.9
|
|
14
|
+
*/
|
|
15
|
+
public class POJOPropertiesCollector
|
|
16
|
+
{
|
|
17
|
+
/*
|
|
18
|
+
/**********************************************************
|
|
19
|
+
/* Configuration
|
|
20
|
+
/**********************************************************
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Configuration settings
|
|
25
|
+
*/
|
|
26
|
+
protected final MapperConfig<?> _config;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* True if introspection is done for serialization (giving
|
|
30
|
+
* precedence for serialization annotations), or not (false, deserialization)
|
|
31
|
+
*/
|
|
32
|
+
protected final boolean _forSerialization;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Type of POJO for which properties are being collected.
|
|
36
|
+
*/
|
|
37
|
+
protected final JavaType _type;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Low-level introspected class information (methods, fields etc)
|
|
41
|
+
*/
|
|
42
|
+
protected final AnnotatedClass _classDef;
|
|
43
|
+
|
|
44
|
+
protected final VisibilityChecker<?> _visibilityChecker;
|
|
45
|
+
|
|
46
|
+
protected final AnnotationIntrospector _annotationIntrospector;
|
|
47
|
+
|
|
48
|
+
/*
|
|
49
|
+
/**********************************************************
|
|
50
|
+
/* Collected information
|
|
51
|
+
/**********************************************************
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Set of logical property information collected so far
|
|
56
|
+
*/
|
|
57
|
+
protected final LinkedHashMap<String, POJOPropertyBuilder> _properties
|
|
58
|
+
= new LinkedHashMap<String, POJOPropertyBuilder>();
|
|
59
|
+
|
|
60
|
+
protected LinkedList<POJOPropertyBuilder> _creatorProperties = null;
|
|
61
|
+
|
|
62
|
+
protected LinkedList<AnnotatedMethod> _anyGetters = null;
|
|
63
|
+
|
|
64
|
+
protected LinkedList<AnnotatedMethod> _anySetters = null;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Method(s) marked with 'JsonValue' annotation
|
|
68
|
+
*/
|
|
69
|
+
protected LinkedList<AnnotatedMethod> _jsonValueGetters = null;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Lazily collected list of properties that can be implicitly
|
|
73
|
+
* ignored during serialization; only updated when collecting
|
|
74
|
+
* information for deserialization purposes
|
|
75
|
+
*/
|
|
76
|
+
protected Set<String> _ignoredPropertyNames;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Alternate set of property names that have been marked for
|
|
80
|
+
* explicit ignoral for deserialization: needed to deal with
|
|
81
|
+
* 1.x definition of ignorable with respect to "any setter"
|
|
82
|
+
* (see [JACKSON-313], [JACKSON-383])
|
|
83
|
+
*
|
|
84
|
+
* @since 1.9.4
|
|
85
|
+
*/
|
|
86
|
+
protected Set<String> _ignoredPropertyNamesForDeser;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Lazily collected list of members that were annotated to
|
|
90
|
+
* indicate that they represent mutators for deserializer
|
|
91
|
+
* value injection.
|
|
92
|
+
*/
|
|
93
|
+
protected LinkedHashMap<Object, AnnotatedMember> _injectables;
|
|
94
|
+
|
|
95
|
+
/*
|
|
96
|
+
/**********************************************************
|
|
97
|
+
/* Life-cycle
|
|
98
|
+
/**********************************************************
|
|
99
|
+
*/
|
|
100
|
+
|
|
101
|
+
protected POJOPropertiesCollector(MapperConfig<?> config, boolean forSerialization,
|
|
102
|
+
JavaType type, AnnotatedClass classDef)
|
|
103
|
+
{
|
|
104
|
+
_config = config;
|
|
105
|
+
_forSerialization = forSerialization;
|
|
106
|
+
_type = type;
|
|
107
|
+
_classDef = classDef;
|
|
108
|
+
_annotationIntrospector = config.isAnnotationProcessingEnabled() ?
|
|
109
|
+
_config.getAnnotationIntrospector() : null;
|
|
110
|
+
if (_annotationIntrospector == null) {
|
|
111
|
+
_visibilityChecker = _config.getDefaultVisibilityChecker();
|
|
112
|
+
} else {
|
|
113
|
+
_visibilityChecker = _annotationIntrospector.findAutoDetectVisibility(classDef,
|
|
114
|
+
_config.getDefaultVisibilityChecker());
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/*
|
|
119
|
+
/**********************************************************
|
|
120
|
+
/* Public API
|
|
121
|
+
/**********************************************************
|
|
122
|
+
*/
|
|
123
|
+
|
|
124
|
+
public MapperConfig<?> getConfig() {
|
|
125
|
+
return _config;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
public JavaType getType() {
|
|
129
|
+
return _type;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
public AnnotatedClass getClassDef() {
|
|
133
|
+
return _classDef;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
public AnnotationIntrospector getAnnotationIntrospector() {
|
|
137
|
+
return _annotationIntrospector;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
public List<BeanPropertyDefinition> getProperties() {
|
|
141
|
+
// make sure we return a copy, so caller can remove entries if need be:
|
|
142
|
+
return new ArrayList<BeanPropertyDefinition>(_properties.values());
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
public Map<Object, AnnotatedMember> getInjectables() {
|
|
146
|
+
return _injectables;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
public AnnotatedMethod getJsonValueMethod()
|
|
150
|
+
{
|
|
151
|
+
// If @JsonValue defined, must have a single one
|
|
152
|
+
if (_jsonValueGetters != null) {
|
|
153
|
+
if (_jsonValueGetters.size() > 1) {
|
|
154
|
+
reportProblem("Multiple value properties defined ("+_jsonValueGetters.get(0)+" vs "
|
|
155
|
+
+_jsonValueGetters.get(1)+")");
|
|
156
|
+
}
|
|
157
|
+
// otherwise we won't greatly care
|
|
158
|
+
return _jsonValueGetters.get(0);
|
|
159
|
+
}
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
public AnnotatedMethod getAnyGetterMethod()
|
|
164
|
+
{
|
|
165
|
+
if (_anyGetters != null) {
|
|
166
|
+
if (_anyGetters.size() > 1) {
|
|
167
|
+
reportProblem("Multiple 'any-getters' defined ("+_anyGetters.get(0)+" vs "
|
|
168
|
+
+_anyGetters.get(1)+")");
|
|
169
|
+
}
|
|
170
|
+
return _anyGetters.getFirst();
|
|
171
|
+
}
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
public AnnotatedMethod getAnySetterMethod()
|
|
176
|
+
{
|
|
177
|
+
if (_anySetters != null) {
|
|
178
|
+
if (_anySetters.size() > 1) {
|
|
179
|
+
reportProblem("Multiple 'any-setters' defined ("+_anySetters.get(0)+" vs "
|
|
180
|
+
+_anySetters.get(1)+")");
|
|
181
|
+
}
|
|
182
|
+
return _anySetters.getFirst();
|
|
183
|
+
}
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
public Set<String> getIgnoredPropertyNames() {
|
|
188
|
+
return _ignoredPropertyNames;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* @since 1.9.4
|
|
193
|
+
*/
|
|
194
|
+
public Set<String> getIgnoredPropertyNamesForDeser() {
|
|
195
|
+
return _ignoredPropertyNamesForDeser;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// for unit tests:
|
|
199
|
+
protected Map<String, POJOPropertyBuilder> getPropertyMap() {
|
|
200
|
+
return _properties;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/*
|
|
204
|
+
/**********************************************************
|
|
205
|
+
/* Public API: main-level collection
|
|
206
|
+
/**********************************************************
|
|
207
|
+
*/
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Method that orchestrates collection activities, and needs to be called
|
|
211
|
+
* after creating the instance.
|
|
212
|
+
*/
|
|
213
|
+
public POJOPropertiesCollector collect()
|
|
214
|
+
{
|
|
215
|
+
_properties.clear();
|
|
216
|
+
|
|
217
|
+
// First: gather basic data
|
|
218
|
+
_addFields();
|
|
219
|
+
_addMethods();
|
|
220
|
+
_addCreators();
|
|
221
|
+
_addInjectables();
|
|
222
|
+
|
|
223
|
+
// Remove ignored properties, individual entries
|
|
224
|
+
_removeUnwantedProperties();
|
|
225
|
+
|
|
226
|
+
// Rename remaining properties
|
|
227
|
+
_renameProperties();
|
|
228
|
+
// And use custom naming strategy, if applicable...
|
|
229
|
+
PropertyNamingStrategy naming = _config.getPropertyNamingStrategy();
|
|
230
|
+
if (naming != null) {
|
|
231
|
+
_renameUsing(naming);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/* Sort by visibility (explicit over implicit); drop all but first
|
|
235
|
+
* of member type (getter, setter etc) if there is visibility
|
|
236
|
+
* difference
|
|
237
|
+
*/
|
|
238
|
+
for (POJOPropertyBuilder property : _properties.values()) {
|
|
239
|
+
property.trimByVisibility();
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// and then the final step, "merge" annotations
|
|
243
|
+
for (POJOPropertyBuilder property : _properties.values()) {
|
|
244
|
+
property.mergeAnnotations(_forSerialization);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
// well, almost last: there's still ordering...
|
|
248
|
+
_sortProperties();
|
|
249
|
+
return this;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/*
|
|
253
|
+
/**********************************************************
|
|
254
|
+
/* Overridable internal methods, sorting
|
|
255
|
+
/**********************************************************
|
|
256
|
+
*/
|
|
257
|
+
|
|
258
|
+
/* First, order by [JACKSON-90] (explicit ordering and/or alphabetic)
|
|
259
|
+
* and then for [JACKSON-170] (implicitly order creator properties before others)
|
|
260
|
+
*/
|
|
261
|
+
protected void _sortProperties()
|
|
262
|
+
{
|
|
263
|
+
// Then how about explicit ordering?
|
|
264
|
+
AnnotationIntrospector intr = _config.getAnnotationIntrospector();
|
|
265
|
+
boolean sort;
|
|
266
|
+
Boolean alpha = intr.findSerializationSortAlphabetically(_classDef);
|
|
267
|
+
|
|
268
|
+
if (alpha == null) {
|
|
269
|
+
sort = _config.shouldSortPropertiesAlphabetically();
|
|
270
|
+
} else {
|
|
271
|
+
sort = alpha.booleanValue();
|
|
272
|
+
}
|
|
273
|
+
String[] propertyOrder = intr.findSerializationPropertyOrder(_classDef);
|
|
274
|
+
|
|
275
|
+
// no sorting? no need to shuffle, then
|
|
276
|
+
if (!sort && (_creatorProperties == null) && (propertyOrder == null)) {
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
int size = _properties.size();
|
|
280
|
+
Map<String, POJOPropertyBuilder> all;
|
|
281
|
+
// Need to (re)sort alphabetically?
|
|
282
|
+
if (sort) {
|
|
283
|
+
all = new TreeMap<String,POJOPropertyBuilder>();
|
|
284
|
+
} else {
|
|
285
|
+
all = new LinkedHashMap<String,POJOPropertyBuilder>(size+size);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
for (POJOPropertyBuilder prop : _properties.values()) {
|
|
289
|
+
all.put(prop.getName(), prop);
|
|
290
|
+
}
|
|
291
|
+
Map<String,POJOPropertyBuilder> ordered = new LinkedHashMap<String,POJOPropertyBuilder>(size+size);
|
|
292
|
+
// Ok: primarily by explicit order
|
|
293
|
+
if (propertyOrder != null) {
|
|
294
|
+
for (String name : propertyOrder) {
|
|
295
|
+
POJOPropertyBuilder w = all.get(name);
|
|
296
|
+
if (w == null) { // also, as per [JACKSON-268], we will allow use of "implicit" names
|
|
297
|
+
for (POJOPropertyBuilder prop : _properties.values()) {
|
|
298
|
+
if (name.equals(prop.getInternalName())) {
|
|
299
|
+
w = prop;
|
|
300
|
+
// plus re-map to external name, to avoid dups:
|
|
301
|
+
name = prop.getName();
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
if (w != null) {
|
|
307
|
+
ordered.put(name, w);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
// And secondly by sorting Creator properties before other unordered properties
|
|
312
|
+
if (_creatorProperties != null) {
|
|
313
|
+
for (POJOPropertyBuilder prop : _creatorProperties) {
|
|
314
|
+
ordered.put(prop.getName(), prop);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
// And finally whatever is left (trying to put again will not change ordering)
|
|
318
|
+
ordered.putAll(all);
|
|
319
|
+
|
|
320
|
+
_properties.clear();
|
|
321
|
+
_properties.putAll(ordered);
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/*
|
|
325
|
+
/**********************************************************
|
|
326
|
+
/* Overridable internal methods, adding members
|
|
327
|
+
/**********************************************************
|
|
328
|
+
*/
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Method for collecting basic information on all fields found
|
|
332
|
+
*/
|
|
333
|
+
protected void _addFields()
|
|
334
|
+
{
|
|
335
|
+
final AnnotationIntrospector ai = _annotationIntrospector;
|
|
336
|
+
|
|
337
|
+
for (AnnotatedField f : _classDef.fields()) {
|
|
338
|
+
String implName = f.getName();
|
|
339
|
+
|
|
340
|
+
String explName;
|
|
341
|
+
if (ai == null) {
|
|
342
|
+
explName = null;
|
|
343
|
+
} else if (_forSerialization) {
|
|
344
|
+
/* 18-Aug-2011, tatu: As per existing unit tests, we should only
|
|
345
|
+
* use serialization annotation (@JsonSerializer) when serializing
|
|
346
|
+
* fields, and similarly for deserialize-only annotations... so
|
|
347
|
+
* no fallbacks in this particular case.
|
|
348
|
+
*/
|
|
349
|
+
explName = ai.findSerializablePropertyName(f);
|
|
350
|
+
} else {
|
|
351
|
+
explName = ai.findDeserializablePropertyName(f);
|
|
352
|
+
}
|
|
353
|
+
if ("".equals(explName)) { // empty String meaning "use default name", here just means "same as field name"
|
|
354
|
+
explName = implName;
|
|
355
|
+
}
|
|
356
|
+
// having explicit name means that field is visible; otherwise need to check the rules
|
|
357
|
+
boolean visible = (explName != null);
|
|
358
|
+
if (!visible) {
|
|
359
|
+
visible = _visibilityChecker.isFieldVisible(f);
|
|
360
|
+
}
|
|
361
|
+
// and finally, may also have explicit ignoral
|
|
362
|
+
boolean ignored = (ai != null) && ai.hasIgnoreMarker(f);
|
|
363
|
+
_property(implName).addField(f, explName, visible, ignored);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* Method for collecting basic information on constructor(s) found
|
|
369
|
+
*/
|
|
370
|
+
protected void _addCreators()
|
|
371
|
+
{
|
|
372
|
+
final AnnotationIntrospector ai = _annotationIntrospector;
|
|
373
|
+
// can be null if annotation processing is disabled...
|
|
374
|
+
if (ai == null) {
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
for (AnnotatedConstructor ctor : _classDef.getConstructors()) {
|
|
378
|
+
if (_creatorProperties == null) {
|
|
379
|
+
_creatorProperties = new LinkedList<POJOPropertyBuilder>();
|
|
380
|
+
}
|
|
381
|
+
for (int i = 0, len = ctor.getParameterCount(); i < len; ++i) {
|
|
382
|
+
AnnotatedParameter param = ctor.getParameter(i);
|
|
383
|
+
String name = ai.findPropertyNameForParam(param);
|
|
384
|
+
// is it legal not to have name?
|
|
385
|
+
if (name != null) {
|
|
386
|
+
// shouldn't need to worry about @JsonIgnore (no real point, so)
|
|
387
|
+
POJOPropertyBuilder prop = _property(name);
|
|
388
|
+
prop.addCtor(param, name, true, false);
|
|
389
|
+
_creatorProperties.add(prop);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
for (AnnotatedMethod factory : _classDef.getStaticMethods()) {
|
|
394
|
+
if (_creatorProperties == null) {
|
|
395
|
+
_creatorProperties = new LinkedList<POJOPropertyBuilder>();
|
|
396
|
+
}
|
|
397
|
+
for (int i = 0, len = factory.getParameterCount(); i < len; ++i) {
|
|
398
|
+
AnnotatedParameter param = factory.getParameter(i);
|
|
399
|
+
String name = ai.findPropertyNameForParam(param);
|
|
400
|
+
// is it legal not to have name?
|
|
401
|
+
if (name != null) {
|
|
402
|
+
// shouldn't need to worry about @JsonIgnore (no real point, so)
|
|
403
|
+
POJOPropertyBuilder prop = _property(name);
|
|
404
|
+
prop.addCtor(param, name, true, false);
|
|
405
|
+
_creatorProperties.add(prop);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Method for collecting basic information on all fields found
|
|
413
|
+
*/
|
|
414
|
+
protected void _addMethods()
|
|
415
|
+
{
|
|
416
|
+
final AnnotationIntrospector ai = _annotationIntrospector;
|
|
417
|
+
|
|
418
|
+
for (AnnotatedMethod m : _classDef.memberMethods()) {
|
|
419
|
+
String explName; // from annotation(s)
|
|
420
|
+
String implName; // from naming convention
|
|
421
|
+
|
|
422
|
+
/* For methods, handling differs between getters and setters; and
|
|
423
|
+
* we will also only consider entries that either follow the bean
|
|
424
|
+
* naming convention or are explicitly marked: just being visible
|
|
425
|
+
* is not enough (unlike with fields)
|
|
426
|
+
*/
|
|
427
|
+
int argCount = m.getParameterCount();
|
|
428
|
+
boolean visible;
|
|
429
|
+
|
|
430
|
+
if (argCount == 0) { // getters (including 'any getter')
|
|
431
|
+
// any getter?
|
|
432
|
+
if (ai != null) {
|
|
433
|
+
if (ai.hasAnyGetterAnnotation(m)) {
|
|
434
|
+
if (_anyGetters == null) {
|
|
435
|
+
_anyGetters = new LinkedList<AnnotatedMethod>();
|
|
436
|
+
}
|
|
437
|
+
_anyGetters.add(m);
|
|
438
|
+
continue;
|
|
439
|
+
}
|
|
440
|
+
// @JsonValue?
|
|
441
|
+
if (ai.hasAsValueAnnotation(m)) {
|
|
442
|
+
if (_jsonValueGetters == null) {
|
|
443
|
+
_jsonValueGetters = new LinkedList<AnnotatedMethod>();
|
|
444
|
+
}
|
|
445
|
+
_jsonValueGetters.add(m);
|
|
446
|
+
continue;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
explName = (ai == null) ? null : ai.findGettablePropertyName(m);
|
|
451
|
+
if (explName == null) { // no explicit name; must follow naming convention
|
|
452
|
+
implName = BeanUtil.okNameForRegularGetter(m, m.getName());
|
|
453
|
+
if (implName == null) { // if not, must skip
|
|
454
|
+
implName = BeanUtil.okNameForIsGetter(m, m.getName());
|
|
455
|
+
if (implName == null) {
|
|
456
|
+
continue;
|
|
457
|
+
}
|
|
458
|
+
visible = _visibilityChecker.isIsGetterVisible(m);
|
|
459
|
+
} else {
|
|
460
|
+
visible = _visibilityChecker.isGetterVisible(m);
|
|
461
|
+
}
|
|
462
|
+
} else { // explicit indication of inclusion, but may be empty
|
|
463
|
+
// we still need implicit name to link with other pieces
|
|
464
|
+
implName = BeanUtil.okNameForGetter(m);
|
|
465
|
+
// if not regular getter name, use method name as is
|
|
466
|
+
if (implName == null) {
|
|
467
|
+
implName = m.getName();
|
|
468
|
+
}
|
|
469
|
+
if (explName.length() == 0) {
|
|
470
|
+
explName = implName;
|
|
471
|
+
}
|
|
472
|
+
visible = true;
|
|
473
|
+
}
|
|
474
|
+
boolean ignore = (ai == null) ? false : ai.hasIgnoreMarker(m);
|
|
475
|
+
_property(implName).addGetter(m, explName, visible, ignore);
|
|
476
|
+
} else if (argCount == 1) { // setters
|
|
477
|
+
explName = (ai == null) ? null : ai.findSettablePropertyName(m);
|
|
478
|
+
if (explName == null) { // no explicit name; must follow naming convention
|
|
479
|
+
implName = BeanUtil.okNameForSetter(m);
|
|
480
|
+
if (implName == null) { // if not, must skip
|
|
481
|
+
continue;
|
|
482
|
+
}
|
|
483
|
+
visible = _visibilityChecker.isSetterVisible(m);
|
|
484
|
+
} else { // explicit indication of inclusion, but may be empty
|
|
485
|
+
// we still need implicit name to link with other pieces
|
|
486
|
+
implName = BeanUtil.okNameForSetter(m);
|
|
487
|
+
// if not regular getter name, use method name as is
|
|
488
|
+
if (implName == null) {
|
|
489
|
+
implName = m.getName();
|
|
490
|
+
}
|
|
491
|
+
if (explName.length() == 0) {
|
|
492
|
+
explName = implName;
|
|
493
|
+
}
|
|
494
|
+
visible = true;
|
|
495
|
+
}
|
|
496
|
+
boolean ignore = (ai == null) ? false : ai.hasIgnoreMarker(m);
|
|
497
|
+
_property(implName).addSetter(m, explName, visible, ignore);
|
|
498
|
+
|
|
499
|
+
} else if (argCount == 2) { // any getter?
|
|
500
|
+
if (ai != null && ai.hasAnySetterAnnotation(m)) {
|
|
501
|
+
if (_anySetters == null) {
|
|
502
|
+
_anySetters = new LinkedList<AnnotatedMethod>();
|
|
503
|
+
}
|
|
504
|
+
_anySetters.add(m);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
protected void _addInjectables()
|
|
511
|
+
{
|
|
512
|
+
final AnnotationIntrospector ai = _annotationIntrospector;
|
|
513
|
+
if (ai == null) {
|
|
514
|
+
return;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
// first fields, then methods
|
|
518
|
+
for (AnnotatedField f : _classDef.fields()) {
|
|
519
|
+
_doAddInjectable(ai.findInjectableValueId(f), f);
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
for (AnnotatedMethod m : _classDef.memberMethods()) {
|
|
523
|
+
/* for now, only allow injection of a single arg
|
|
524
|
+
* (to be changed in future)
|
|
525
|
+
*/
|
|
526
|
+
if (m.getParameterCount() != 1) {
|
|
527
|
+
continue;
|
|
528
|
+
}
|
|
529
|
+
_doAddInjectable(ai.findInjectableValueId(m), m);
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
protected void _doAddInjectable(Object id, AnnotatedMember m)
|
|
534
|
+
{
|
|
535
|
+
if (id == null) {
|
|
536
|
+
return;
|
|
537
|
+
}
|
|
538
|
+
if (_injectables == null) {
|
|
539
|
+
_injectables = new LinkedHashMap<Object, AnnotatedMember>();
|
|
540
|
+
}
|
|
541
|
+
AnnotatedMember prev = _injectables.put(id, m);
|
|
542
|
+
if (prev != null) {
|
|
543
|
+
String type = (id == null) ? "[null]" : id.getClass().getName();
|
|
544
|
+
throw new IllegalArgumentException("Duplicate injectable value with id '"
|
|
545
|
+
+String.valueOf(id)+"' (of type "+type+")");
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
/*
|
|
550
|
+
/**********************************************************
|
|
551
|
+
/* Internal methods; removing ignored properties
|
|
552
|
+
/**********************************************************
|
|
553
|
+
*/
|
|
554
|
+
|
|
555
|
+
/**
|
|
556
|
+
* Method called to get rid of candidate properties that are marked
|
|
557
|
+
* as ignored, or that are not visible.
|
|
558
|
+
*/
|
|
559
|
+
protected void _removeUnwantedProperties()
|
|
560
|
+
{
|
|
561
|
+
Iterator<Map.Entry<String,POJOPropertyBuilder>> it = _properties.entrySet().iterator();
|
|
562
|
+
while (it.hasNext()) {
|
|
563
|
+
Map.Entry<String, POJOPropertyBuilder> entry = it.next();
|
|
564
|
+
POJOPropertyBuilder prop = entry.getValue();
|
|
565
|
+
|
|
566
|
+
// First: if nothing visible, just remove altogether
|
|
567
|
+
if (!prop.anyVisible()) {
|
|
568
|
+
it.remove();
|
|
569
|
+
continue;
|
|
570
|
+
}
|
|
571
|
+
// Otherwise, check ignorals
|
|
572
|
+
if (prop.anyIgnorals()) {
|
|
573
|
+
_addIgnored(prop);
|
|
574
|
+
// first: if one or more ignorals, and no explicit markers, remove the whole thing
|
|
575
|
+
if (!prop.anyExplicitNames()) {
|
|
576
|
+
it.remove();
|
|
577
|
+
continue;
|
|
578
|
+
}
|
|
579
|
+
// otherwise just remove explicitly ignored (and retain others)
|
|
580
|
+
prop.removeIgnored();
|
|
581
|
+
}
|
|
582
|
+
// and finally, handle removal of individual non-visible elements
|
|
583
|
+
prop.removeNonVisible();
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
private void _addIgnored(POJOPropertyBuilder prop)
|
|
588
|
+
{
|
|
589
|
+
// not used in any way for serialization side:
|
|
590
|
+
if (_forSerialization) {
|
|
591
|
+
return;
|
|
592
|
+
}
|
|
593
|
+
/* and with deserialization, two aspects: whether it's ok to see
|
|
594
|
+
* property ('ignore for failure reporting') and whether we forcifully
|
|
595
|
+
* ignore it even if there was "any setter" available.
|
|
596
|
+
*/
|
|
597
|
+
// but do not add unless ignoral was for field, setter or ctor param
|
|
598
|
+
String name = prop.getName();
|
|
599
|
+
_ignoredPropertyNames = addToSet(_ignoredPropertyNames, name);
|
|
600
|
+
if (prop.anyDeserializeIgnorals()) {
|
|
601
|
+
_ignoredPropertyNamesForDeser = addToSet(_ignoredPropertyNamesForDeser, name);
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
/*
|
|
606
|
+
/**********************************************************
|
|
607
|
+
/* Internal methods; renaming properties
|
|
608
|
+
/**********************************************************
|
|
609
|
+
*/
|
|
610
|
+
|
|
611
|
+
protected void _renameProperties()
|
|
612
|
+
{
|
|
613
|
+
// With renaming need to do in phases: first, find properties to rename
|
|
614
|
+
Iterator<Map.Entry<String,POJOPropertyBuilder>> it = _properties.entrySet().iterator();
|
|
615
|
+
LinkedList<POJOPropertyBuilder> renamed = null;
|
|
616
|
+
while (it.hasNext()) {
|
|
617
|
+
Map.Entry<String, POJOPropertyBuilder> entry = it.next();
|
|
618
|
+
POJOPropertyBuilder prop = entry.getValue();
|
|
619
|
+
String newName = prop.findNewName();
|
|
620
|
+
if (newName != null) {
|
|
621
|
+
if (renamed == null) {
|
|
622
|
+
renamed = new LinkedList<POJOPropertyBuilder>();
|
|
623
|
+
}
|
|
624
|
+
prop = prop.withName(newName);
|
|
625
|
+
renamed.add(prop);
|
|
626
|
+
it.remove();
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
// and if any were renamed, merge back in...
|
|
631
|
+
if (renamed != null) {
|
|
632
|
+
for (POJOPropertyBuilder prop : renamed) {
|
|
633
|
+
String name = prop.getName();
|
|
634
|
+
POJOPropertyBuilder old = _properties.get(name);
|
|
635
|
+
if (old == null) {
|
|
636
|
+
_properties.put(name, prop);
|
|
637
|
+
} else {
|
|
638
|
+
old.addAll(prop);
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
protected void _renameUsing(PropertyNamingStrategy naming)
|
|
645
|
+
{
|
|
646
|
+
POJOPropertyBuilder[] props = _properties.values().toArray(new POJOPropertyBuilder[_properties.size()]);
|
|
647
|
+
_properties.clear();
|
|
648
|
+
for (POJOPropertyBuilder prop : props) {
|
|
649
|
+
String name = prop.getName();
|
|
650
|
+
if (_forSerialization) {
|
|
651
|
+
if (prop.hasGetter()) {
|
|
652
|
+
name = naming.nameForGetterMethod(_config, prop.getGetter(), name);
|
|
653
|
+
} else if (prop.hasField()) {
|
|
654
|
+
name = naming.nameForField(_config, prop.getField(), name);
|
|
655
|
+
}
|
|
656
|
+
} else {
|
|
657
|
+
if (prop.hasSetter()) {
|
|
658
|
+
name = naming.nameForSetterMethod(_config, prop.getSetter(), name);
|
|
659
|
+
} else if (prop.hasConstructorParameter()) {
|
|
660
|
+
name = naming.nameForConstructorParameter(_config, prop.getConstructorParameter(), name);
|
|
661
|
+
} else if (prop.hasField()) {
|
|
662
|
+
name = naming.nameForField(_config, prop.getField(), name);
|
|
663
|
+
} else if (prop.hasGetter()) {
|
|
664
|
+
/* Plus, when getter-as-setter is used, need to convert that too..
|
|
665
|
+
* (should we verify that's enabled? For now, assume it's ok always)
|
|
666
|
+
*/
|
|
667
|
+
name = naming.nameForGetterMethod(_config, prop.getGetter(), name);
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
if (!name.equals(prop.getName())) {
|
|
671
|
+
prop = prop.withName(name);
|
|
672
|
+
}
|
|
673
|
+
/* As per [JACKSON-687], need to consider case where there may already be
|
|
674
|
+
* something in there...
|
|
675
|
+
*/
|
|
676
|
+
POJOPropertyBuilder old = _properties.get(name);
|
|
677
|
+
if (old == null) {
|
|
678
|
+
_properties.put(name, prop);
|
|
679
|
+
} else {
|
|
680
|
+
old.addAll(prop);
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
/*
|
|
686
|
+
/**********************************************************
|
|
687
|
+
/* Internal methods; helpers
|
|
688
|
+
/**********************************************************
|
|
689
|
+
*/
|
|
690
|
+
|
|
691
|
+
protected void reportProblem(String msg) {
|
|
692
|
+
throw new IllegalArgumentException("Problem with definition of "+_classDef+": "+msg);
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
protected POJOPropertyBuilder _property(String implName)
|
|
696
|
+
{
|
|
697
|
+
POJOPropertyBuilder prop = _properties.get(implName);
|
|
698
|
+
if (prop == null) {
|
|
699
|
+
prop = new POJOPropertyBuilder(implName);
|
|
700
|
+
_properties.put(implName, prop);
|
|
701
|
+
}
|
|
702
|
+
return prop;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
private Set<String> addToSet(Set<String> set, String str)
|
|
706
|
+
{
|
|
707
|
+
if (set == null) {
|
|
708
|
+
set = new HashSet<String>();
|
|
709
|
+
}
|
|
710
|
+
set.add(str);
|
|
711
|
+
return set;
|
|
712
|
+
}
|
|
713
|
+
}
|