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