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,206 @@
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.module;
|
2
|
+
|
3
|
+
import java.util.*;
|
4
|
+
|
5
|
+
import sh.calaba.org.codehaus.jackson.map.*;
|
6
|
+
import sh.calaba.org.codehaus.jackson.map.type.ArrayType;
|
7
|
+
import sh.calaba.org.codehaus.jackson.map.type.ClassKey;
|
8
|
+
import sh.calaba.org.codehaus.jackson.map.type.CollectionLikeType;
|
9
|
+
import sh.calaba.org.codehaus.jackson.map.type.CollectionType;
|
10
|
+
import sh.calaba.org.codehaus.jackson.map.type.MapLikeType;
|
11
|
+
import sh.calaba.org.codehaus.jackson.map.type.MapType;
|
12
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
13
|
+
|
14
|
+
/**
|
15
|
+
* Simple implementation {@link Serializers} which allows registration of
|
16
|
+
* serializers based on raw (type erased class).
|
17
|
+
* It can work well for basic bean and scalar type serializers, but is not
|
18
|
+
* a good fit for handling generic types (like {@link Map}s and {@link Collection}s).
|
19
|
+
*<p>
|
20
|
+
* Type registrations are assumed to be general; meaning that registration of serializer
|
21
|
+
* for a super type will also be used for handling subtypes, unless an exact match
|
22
|
+
* is found first. As an example, handler for {@link CharSequence} would also be used
|
23
|
+
* serializing {@link StringBuilder} instances, unless a direct mapping was found.
|
24
|
+
*
|
25
|
+
* @since 1.7
|
26
|
+
*/
|
27
|
+
public class SimpleSerializers extends Serializers.Base
|
28
|
+
{
|
29
|
+
/**
|
30
|
+
* Class-based mappings that are used both for exact and
|
31
|
+
* sub-class matches.
|
32
|
+
*/
|
33
|
+
protected HashMap<ClassKey,JsonSerializer<?>> _classMappings = null;
|
34
|
+
|
35
|
+
/**
|
36
|
+
* Interface-based matches.
|
37
|
+
*/
|
38
|
+
protected HashMap<ClassKey,JsonSerializer<?>> _interfaceMappings = null;
|
39
|
+
|
40
|
+
/*
|
41
|
+
/**********************************************************
|
42
|
+
/* Life-cycle, construction and configuring
|
43
|
+
/**********************************************************
|
44
|
+
*/
|
45
|
+
|
46
|
+
public SimpleSerializers() { }
|
47
|
+
|
48
|
+
/**
|
49
|
+
* Method for adding given serializer for type that {@link JsonSerializer#handledType}
|
50
|
+
* specifies (which MUST return a non-null class; and can NOT be {@link Object}, as a
|
51
|
+
* sanity check).
|
52
|
+
* For serializers that do not declare handled type, use the variant that takes
|
53
|
+
* two arguments.
|
54
|
+
*
|
55
|
+
* @param ser
|
56
|
+
*/
|
57
|
+
public void addSerializer(JsonSerializer<?> ser)
|
58
|
+
{
|
59
|
+
// Interface to match?
|
60
|
+
Class<?> cls = ser.handledType();
|
61
|
+
if (cls == null || cls == Object.class) {
|
62
|
+
throw new IllegalArgumentException("JsonSerializer of type "+ser.getClass().getName()
|
63
|
+
+" does not define valid handledType() -- must either register with method that takes type argument "
|
64
|
+
+" or make serializer extend 'sh.calaba.org.codehaus.jackson.map.ser.std.SerializerBase'");
|
65
|
+
}
|
66
|
+
_addSerializer(cls, ser);
|
67
|
+
}
|
68
|
+
|
69
|
+
public <T> void addSerializer(Class<? extends T> type, JsonSerializer<T> ser)
|
70
|
+
{
|
71
|
+
_addSerializer(type, ser);
|
72
|
+
}
|
73
|
+
|
74
|
+
private void _addSerializer(Class<?> cls, JsonSerializer<?> ser)
|
75
|
+
{
|
76
|
+
ClassKey key = new ClassKey(cls);
|
77
|
+
// Interface or class type?
|
78
|
+
if (cls.isInterface()) {
|
79
|
+
if (_interfaceMappings == null) {
|
80
|
+
_interfaceMappings = new HashMap<ClassKey,JsonSerializer<?>>();
|
81
|
+
}
|
82
|
+
_interfaceMappings.put(key, ser);
|
83
|
+
} else { // nope, class:
|
84
|
+
if (_classMappings == null) {
|
85
|
+
_classMappings = new HashMap<ClassKey,JsonSerializer<?>>();
|
86
|
+
}
|
87
|
+
_classMappings.put(key, ser);
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
91
|
+
/*
|
92
|
+
/**********************************************************
|
93
|
+
/* Serializers implementation
|
94
|
+
/**********************************************************
|
95
|
+
*/
|
96
|
+
|
97
|
+
@Override
|
98
|
+
public JsonSerializer<?> findSerializer(SerializationConfig config, JavaType type,
|
99
|
+
BeanDescription beanDesc, BeanProperty property)
|
100
|
+
{
|
101
|
+
Class<?> cls = type.getRawClass();
|
102
|
+
ClassKey key = new ClassKey(cls);
|
103
|
+
JsonSerializer<?> ser = null;
|
104
|
+
|
105
|
+
// First: direct match?
|
106
|
+
if (cls.isInterface()) {
|
107
|
+
if (_interfaceMappings != null) {
|
108
|
+
ser = _interfaceMappings.get(key);
|
109
|
+
if (ser != null) {
|
110
|
+
return ser;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
} else {
|
114
|
+
if (_classMappings != null) {
|
115
|
+
ser = _classMappings.get(key);
|
116
|
+
if (ser != null) {
|
117
|
+
return ser;
|
118
|
+
}
|
119
|
+
// If not direct match, maybe super-class match?
|
120
|
+
for (Class<?> curr = cls; (curr != null); curr = curr.getSuperclass()) {
|
121
|
+
key.reset(curr);
|
122
|
+
ser = _classMappings.get(key);
|
123
|
+
if (ser != null) {
|
124
|
+
return ser;
|
125
|
+
}
|
126
|
+
}
|
127
|
+
}
|
128
|
+
}
|
129
|
+
// No direct match? How about super-interfaces?
|
130
|
+
if (_interfaceMappings != null) {
|
131
|
+
ser = _findInterfaceMapping(cls, key);
|
132
|
+
if (ser != null) {
|
133
|
+
return ser;
|
134
|
+
}
|
135
|
+
// still no matches? Maybe interfaces of super classes
|
136
|
+
if (!cls.isInterface()) {
|
137
|
+
while ((cls = cls.getSuperclass()) != null) {
|
138
|
+
ser = _findInterfaceMapping(cls, key);
|
139
|
+
if (ser != null) {
|
140
|
+
return ser;
|
141
|
+
}
|
142
|
+
}
|
143
|
+
}
|
144
|
+
}
|
145
|
+
return null;
|
146
|
+
}
|
147
|
+
|
148
|
+
@Override
|
149
|
+
public JsonSerializer<?> findArraySerializer(SerializationConfig config,
|
150
|
+
ArrayType type, BeanDescription beanDesc, BeanProperty property,
|
151
|
+
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) {
|
152
|
+
return findSerializer(config, type, beanDesc, property);
|
153
|
+
}
|
154
|
+
|
155
|
+
@Override
|
156
|
+
public JsonSerializer<?> findCollectionSerializer(SerializationConfig config,
|
157
|
+
CollectionType type, BeanDescription beanDesc, BeanProperty property,
|
158
|
+
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) {
|
159
|
+
return findSerializer(config, type, beanDesc, property);
|
160
|
+
}
|
161
|
+
|
162
|
+
@Override
|
163
|
+
public JsonSerializer<?> findCollectionLikeSerializer(SerializationConfig config,
|
164
|
+
CollectionLikeType type, BeanDescription beanDesc, BeanProperty property,
|
165
|
+
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) {
|
166
|
+
return findSerializer(config, type, beanDesc, property);
|
167
|
+
}
|
168
|
+
|
169
|
+
@Override
|
170
|
+
public JsonSerializer<?> findMapSerializer(SerializationConfig config,
|
171
|
+
MapType type, BeanDescription beanDesc, BeanProperty property,
|
172
|
+
JsonSerializer<Object> keySerializer,
|
173
|
+
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) {
|
174
|
+
return findSerializer(config, type, beanDesc, property);
|
175
|
+
}
|
176
|
+
|
177
|
+
@Override
|
178
|
+
public JsonSerializer<?> findMapLikeSerializer(SerializationConfig config,
|
179
|
+
MapLikeType type, BeanDescription beanDesc, BeanProperty property,
|
180
|
+
JsonSerializer<Object> keySerializer,
|
181
|
+
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer) {
|
182
|
+
return findSerializer(config, type, beanDesc, property);
|
183
|
+
}
|
184
|
+
|
185
|
+
/*
|
186
|
+
/**********************************************************
|
187
|
+
/* Internal methods
|
188
|
+
/**********************************************************
|
189
|
+
*/
|
190
|
+
|
191
|
+
protected JsonSerializer<?> _findInterfaceMapping(Class<?> cls, ClassKey key)
|
192
|
+
{
|
193
|
+
for (Class<?> iface : cls.getInterfaces()) {
|
194
|
+
key.reset(iface);
|
195
|
+
JsonSerializer<?> ser = _interfaceMappings.get(key);
|
196
|
+
if (ser != null) {
|
197
|
+
return ser;
|
198
|
+
}
|
199
|
+
ser = _findInterfaceMapping(iface, key);
|
200
|
+
if (ser != null) {
|
201
|
+
return ser;
|
202
|
+
}
|
203
|
+
}
|
204
|
+
return null;
|
205
|
+
}
|
206
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.module;
|
2
|
+
|
3
|
+
import java.util.HashMap;
|
4
|
+
|
5
|
+
import sh.calaba.org.codehaus.jackson.map.BeanDescription;
|
6
|
+
import sh.calaba.org.codehaus.jackson.map.DeserializationConfig;
|
7
|
+
import sh.calaba.org.codehaus.jackson.map.deser.ValueInstantiator;
|
8
|
+
import sh.calaba.org.codehaus.jackson.map.deser.ValueInstantiators;
|
9
|
+
import sh.calaba.org.codehaus.jackson.map.type.ClassKey;
|
10
|
+
|
11
|
+
public class SimpleValueInstantiators
|
12
|
+
extends ValueInstantiators.Base
|
13
|
+
{
|
14
|
+
/**
|
15
|
+
* Mappings from raw (type-erased, i.e. non-generic) types
|
16
|
+
* to matching {@link ValueInstantiator} instances.
|
17
|
+
*/
|
18
|
+
protected HashMap<ClassKey,ValueInstantiator> _classMappings;
|
19
|
+
|
20
|
+
/*
|
21
|
+
/**********************************************************
|
22
|
+
/* Life-cycle, construction and configuring
|
23
|
+
/**********************************************************
|
24
|
+
*/
|
25
|
+
|
26
|
+
public SimpleValueInstantiators()
|
27
|
+
{
|
28
|
+
_classMappings = new HashMap<ClassKey,ValueInstantiator>();
|
29
|
+
}
|
30
|
+
|
31
|
+
public SimpleValueInstantiators addValueInstantiator(Class<?> forType,
|
32
|
+
ValueInstantiator inst)
|
33
|
+
{
|
34
|
+
_classMappings.put(new ClassKey(forType), inst);
|
35
|
+
return this;
|
36
|
+
}
|
37
|
+
|
38
|
+
@Override
|
39
|
+
public ValueInstantiator findValueInstantiator(DeserializationConfig config,
|
40
|
+
BeanDescription beanDesc, ValueInstantiator defaultInstantiator)
|
41
|
+
{
|
42
|
+
ValueInstantiator inst = _classMappings.get(new ClassKey(beanDesc.getBeanClass()));
|
43
|
+
return (inst == null) ? defaultInstantiator : inst;
|
44
|
+
}
|
45
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/**
|
2
|
+
* Package that contains classes and interfaces to help implement
|
3
|
+
* custom extension {@link sh.calaba.org.codehaus.jackson.map.Module}s
|
4
|
+
* (which are registered using
|
5
|
+
* {@link sh.calaba.org.codehaus.jackson.map.ObjectMapper#registerModule}.
|
6
|
+
*<p>
|
7
|
+
* Note that classes in the package only support registering
|
8
|
+
* handlers for non-generic types (types without type
|
9
|
+
* parameterization) -- hence "simple" -- which works for
|
10
|
+
* many cases, but not all. So if you will need to register
|
11
|
+
* handlers for generic types, you will usually need to either
|
12
|
+
* sub-class handlers, or implement/extend base types directly.
|
13
|
+
*
|
14
|
+
* @since 1.7
|
15
|
+
*/
|
16
|
+
package sh.calaba.org.codehaus.jackson.map.module;
|
data/test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/map/package-info.java
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
/**
|
2
|
+
Contains basic mapper (conversion) functionality that
|
3
|
+
allows for converting between regular streaming json content and
|
4
|
+
Java objects (beans or Tree Model: support for both is via
|
5
|
+
{@link sh.calaba.org.codehaus.jackson.map.ObjectMapper} class, as well
|
6
|
+
as convenience methods included in
|
7
|
+
{@link sh.calaba.org.codehaus.jackson.JsonParser}
|
8
|
+
<p>
|
9
|
+
Object mapper will convert Json content to ant from
|
10
|
+
basic Java wrapper types (Integer, Boolean, Double),
|
11
|
+
Collection types (List, Map), Java Beans,
|
12
|
+
Strings and nulls.
|
13
|
+
<p>
|
14
|
+
Tree mapper builds dynamically typed tree of <code>JsonNode</code>s
|
15
|
+
from Json content (and writes such trees as Json),
|
16
|
+
similar to how DOM model works with xml.
|
17
|
+
Main benefits over Object mapping are:
|
18
|
+
<ul>
|
19
|
+
<li>No null checks are needed (dummy
|
20
|
+
nodes are created as necessary to represent "missing" Object fields
|
21
|
+
and Array elements)
|
22
|
+
</li>
|
23
|
+
<li>No type casts are usually needed: all public access methods are defined
|
24
|
+
in basic JsonNode class, and when "incompatible" method (such as Array
|
25
|
+
element access on, say, Boolean node) is used, returned node is
|
26
|
+
virtual "missing" node.
|
27
|
+
</li>
|
28
|
+
</ul>
|
29
|
+
Because of its dynamic nature, Tree mapping is often convenient
|
30
|
+
for basic path access and tree navigation, where structure of
|
31
|
+
the resulting tree is known in advance.
|
32
|
+
*/
|
33
|
+
|
34
|
+
package sh.calaba.org.codehaus.jackson.map;
|
@@ -0,0 +1,48 @@
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.ser;
|
2
|
+
|
3
|
+
import java.lang.reflect.Method;
|
4
|
+
import java.util.Map;
|
5
|
+
|
6
|
+
import sh.calaba.org.codehaus.jackson.*;
|
7
|
+
import sh.calaba.org.codehaus.jackson.map.*;
|
8
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.AnnotatedMethod;
|
9
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.MapSerializer;
|
10
|
+
|
11
|
+
/**
|
12
|
+
* Class similar to {@link BeanPropertyWriter}, but that will be used
|
13
|
+
* for serializing {@link sh.calaba.org.codehaus.jackson.annotate.JsonAnyGetter} annotated
|
14
|
+
* (Map) properties
|
15
|
+
*
|
16
|
+
* @since 1.6
|
17
|
+
*/
|
18
|
+
public class AnyGetterWriter
|
19
|
+
{
|
20
|
+
protected final Method _anyGetter;
|
21
|
+
|
22
|
+
protected final MapSerializer _serializer;
|
23
|
+
|
24
|
+
public AnyGetterWriter(AnnotatedMethod anyGetter, MapSerializer serializer)
|
25
|
+
{
|
26
|
+
_anyGetter = anyGetter.getAnnotated();
|
27
|
+
_serializer = serializer;
|
28
|
+
}
|
29
|
+
|
30
|
+
public void getAndSerialize(Object bean, JsonGenerator jgen, SerializerProvider provider)
|
31
|
+
throws Exception
|
32
|
+
{
|
33
|
+
Object value = _anyGetter.invoke(bean);
|
34
|
+
if (value == null) {
|
35
|
+
return;
|
36
|
+
}
|
37
|
+
if (!(value instanceof Map<?,?>)) {
|
38
|
+
throw new JsonMappingException("Value returned by 'any-getter' ("+_anyGetter.getName()+"()) not java.util.Map but "
|
39
|
+
+value.getClass().getName());
|
40
|
+
}
|
41
|
+
_serializer.serializeFields((Map<?,?>) value, jgen, provider);
|
42
|
+
}
|
43
|
+
|
44
|
+
public void resolve(SerializerProvider provider) throws JsonMappingException
|
45
|
+
{
|
46
|
+
_serializer.resolve(provider);
|
47
|
+
}
|
48
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.ser;
|
2
|
+
|
3
|
+
/**
|
4
|
+
* @deprecated Since 1.9 use {@link sh.calaba.org.codehaus.jackson.map.ser.std.StdArraySerializers}
|
5
|
+
*/
|
6
|
+
@Deprecated
|
7
|
+
public class ArraySerializers extends sh.calaba.org.codehaus.jackson.map.ser.std.StdArraySerializers { }
|
@@ -0,0 +1,806 @@
|
|
1
|
+
package sh.calaba.org.codehaus.jackson.map.ser;
|
2
|
+
|
3
|
+
import java.lang.reflect.Method;
|
4
|
+
import java.math.BigDecimal;
|
5
|
+
import java.math.BigInteger;
|
6
|
+
import java.net.InetAddress;
|
7
|
+
import java.util.*;
|
8
|
+
|
9
|
+
import sh.calaba.org.codehaus.jackson.map.*;
|
10
|
+
import sh.calaba.org.codehaus.jackson.map.annotate.JsonSerialize;
|
11
|
+
import sh.calaba.org.codehaus.jackson.map.ext.OptionalHandlerFactory;
|
12
|
+
import sh.calaba.org.codehaus.jackson.map.introspect.*;
|
13
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.NamedType;
|
14
|
+
import sh.calaba.org.codehaus.jackson.map.jsontype.TypeResolverBuilder;
|
15
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.CalendarSerializer;
|
16
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.DateSerializer;
|
17
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.EnumMapSerializer;
|
18
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.EnumSerializer;
|
19
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.IndexedStringListSerializer;
|
20
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.InetAddressSerializer;
|
21
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.JsonValueSerializer;
|
22
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.MapSerializer;
|
23
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.NullSerializer;
|
24
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.ObjectArraySerializer;
|
25
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.SerializableSerializer;
|
26
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.SerializableWithTypeSerializer;
|
27
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.StdArraySerializers;
|
28
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.StdContainerSerializers;
|
29
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.StdJdkSerializers;
|
30
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.StringCollectionSerializer;
|
31
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.StringSerializer;
|
32
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.TimeZoneSerializer;
|
33
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.ToStringSerializer;
|
34
|
+
import sh.calaba.org.codehaus.jackson.map.ser.std.TokenBufferSerializer;
|
35
|
+
import sh.calaba.org.codehaus.jackson.map.type.*;
|
36
|
+
import sh.calaba.org.codehaus.jackson.map.util.ClassUtil;
|
37
|
+
import sh.calaba.org.codehaus.jackson.map.util.EnumValues;
|
38
|
+
import sh.calaba.org.codehaus.jackson.type.JavaType;
|
39
|
+
import sh.calaba.org.codehaus.jackson.util.TokenBuffer;
|
40
|
+
|
41
|
+
/**
|
42
|
+
* Factory class that can provide serializers for standard JDK classes,
|
43
|
+
* as well as custom classes that extend standard classes or implement
|
44
|
+
* one of "well-known" interfaces (such as {@link java.util.Collection}).
|
45
|
+
*<p>
|
46
|
+
* Since all the serializers are eagerly instantiated, and there is
|
47
|
+
* no additional introspection or customizability of these types,
|
48
|
+
* this factory is essentially stateless.
|
49
|
+
*/
|
50
|
+
public abstract class BasicSerializerFactory
|
51
|
+
extends SerializerFactory
|
52
|
+
{
|
53
|
+
|
54
|
+
/*
|
55
|
+
/**********************************************************
|
56
|
+
/* Configuration, lookup tables/maps
|
57
|
+
/**********************************************************
|
58
|
+
*/
|
59
|
+
|
60
|
+
/**
|
61
|
+
* Since these are all JDK classes, we shouldn't have to worry
|
62
|
+
* about ClassLoader used to load them. Rather, we can just
|
63
|
+
* use the class name, and keep things simple and efficient.
|
64
|
+
*/
|
65
|
+
protected final static HashMap<String, JsonSerializer<?>> _concrete =
|
66
|
+
new HashMap<String, JsonSerializer<?>>();
|
67
|
+
|
68
|
+
/**
|
69
|
+
* Actually it may not make much sense to eagerly instantiate all
|
70
|
+
* kinds of serializers: so this Map actually contains class references,
|
71
|
+
* not instances
|
72
|
+
*
|
73
|
+
* @since 1.6
|
74
|
+
*/
|
75
|
+
protected final static HashMap<String, Class<? extends JsonSerializer<?>>> _concreteLazy =
|
76
|
+
new HashMap<String, Class<? extends JsonSerializer<?>>>();
|
77
|
+
|
78
|
+
static {
|
79
|
+
/* String and string-like types (note: date types explicitly
|
80
|
+
* not included -- can use either textual or numeric serialization)
|
81
|
+
*/
|
82
|
+
_concrete.put(String.class.getName(), new StringSerializer());
|
83
|
+
final ToStringSerializer sls = ToStringSerializer.instance;
|
84
|
+
_concrete.put(StringBuffer.class.getName(), sls);
|
85
|
+
_concrete.put(StringBuilder.class.getName(), sls);
|
86
|
+
_concrete.put(Character.class.getName(), sls);
|
87
|
+
_concrete.put(Character.TYPE.getName(), sls);
|
88
|
+
|
89
|
+
// Primitives/wrappers for primitives (primitives needed for Beans)
|
90
|
+
_concrete.put(Boolean.TYPE.getName(), new StdSerializers.BooleanSerializer(true));
|
91
|
+
_concrete.put(Boolean.class.getName(), new StdSerializers.BooleanSerializer(false));
|
92
|
+
final JsonSerializer<?> intS = new StdSerializers.IntegerSerializer();
|
93
|
+
_concrete.put(Integer.class.getName(), intS);
|
94
|
+
_concrete.put(Integer.TYPE.getName(), intS);
|
95
|
+
_concrete.put(Long.class.getName(), StdSerializers.LongSerializer.instance);
|
96
|
+
_concrete.put(Long.TYPE.getName(), StdSerializers.LongSerializer.instance);
|
97
|
+
_concrete.put(Byte.class.getName(), StdSerializers.IntLikeSerializer.instance);
|
98
|
+
_concrete.put(Byte.TYPE.getName(), StdSerializers.IntLikeSerializer.instance);
|
99
|
+
_concrete.put(Short.class.getName(), StdSerializers.IntLikeSerializer.instance);
|
100
|
+
_concrete.put(Short.TYPE.getName(), StdSerializers.IntLikeSerializer.instance);
|
101
|
+
|
102
|
+
// Numbers, limited length floating point
|
103
|
+
_concrete.put(Float.class.getName(), StdSerializers.FloatSerializer.instance);
|
104
|
+
_concrete.put(Float.TYPE.getName(), StdSerializers.FloatSerializer.instance);
|
105
|
+
_concrete.put(Double.class.getName(), StdSerializers.DoubleSerializer.instance);
|
106
|
+
_concrete.put(Double.TYPE.getName(), StdSerializers.DoubleSerializer.instance);
|
107
|
+
|
108
|
+
// Other numbers, more complicated
|
109
|
+
final JsonSerializer<?> ns = new StdSerializers.NumberSerializer();
|
110
|
+
_concrete.put(BigInteger.class.getName(), ns);
|
111
|
+
_concrete.put(BigDecimal.class.getName(), ns);
|
112
|
+
|
113
|
+
// Other discrete non-container types:
|
114
|
+
// First, Date/Time zoo:
|
115
|
+
_concrete.put(Calendar.class.getName(), CalendarSerializer.instance);
|
116
|
+
DateSerializer dateSer = DateSerializer.instance;
|
117
|
+
_concrete.put(java.util.Date.class.getName(), dateSer);
|
118
|
+
// note: timestamps are very similar to java.util.Date, thus serialized as such
|
119
|
+
_concrete.put(java.sql.Timestamp.class.getName(), dateSer);
|
120
|
+
_concrete.put(java.sql.Date.class.getName(), new StdSerializers.SqlDateSerializer());
|
121
|
+
_concrete.put(java.sql.Time.class.getName(), new StdSerializers.SqlTimeSerializer());
|
122
|
+
|
123
|
+
// And then other standard non-structured JDK types
|
124
|
+
for (Map.Entry<Class<?>,Object> en : new StdJdkSerializers().provide()) {
|
125
|
+
Object value = en.getValue();
|
126
|
+
if (value instanceof JsonSerializer<?>) {
|
127
|
+
_concrete.put(en.getKey().getName(), (JsonSerializer<?>) value);
|
128
|
+
} else if (value instanceof Class<?>) {
|
129
|
+
@SuppressWarnings("unchecked")
|
130
|
+
Class<? extends JsonSerializer<?>> cls = (Class<? extends JsonSerializer<?>>) value;
|
131
|
+
_concreteLazy.put(en.getKey().getName(), cls);
|
132
|
+
} else { // should never happen, but:
|
133
|
+
throw new IllegalStateException("Internal error: unrecognized value of type "+en.getClass().getName());
|
134
|
+
}
|
135
|
+
}
|
136
|
+
|
137
|
+
// Jackson-specific type(s)
|
138
|
+
// (Q: can this ever be sub-classed?)
|
139
|
+
_concreteLazy.put(TokenBuffer.class.getName(), TokenBufferSerializer.class);
|
140
|
+
}
|
141
|
+
|
142
|
+
protected final static HashMap<String, JsonSerializer<?>> _arraySerializers =
|
143
|
+
new HashMap<String, JsonSerializer<?>>();
|
144
|
+
static {
|
145
|
+
// Arrays of various types (including common object types)
|
146
|
+
_arraySerializers.put(boolean[].class.getName(), new StdArraySerializers.BooleanArraySerializer());
|
147
|
+
_arraySerializers.put(byte[].class.getName(), new StdArraySerializers.ByteArraySerializer());
|
148
|
+
_arraySerializers.put(char[].class.getName(), new StdArraySerializers.CharArraySerializer());
|
149
|
+
_arraySerializers.put(short[].class.getName(), new StdArraySerializers.ShortArraySerializer());
|
150
|
+
_arraySerializers.put(int[].class.getName(), new StdArraySerializers.IntArraySerializer());
|
151
|
+
_arraySerializers.put(long[].class.getName(), new StdArraySerializers.LongArraySerializer());
|
152
|
+
_arraySerializers.put(float[].class.getName(), new StdArraySerializers.FloatArraySerializer());
|
153
|
+
_arraySerializers.put(double[].class.getName(), new StdArraySerializers.DoubleArraySerializer());
|
154
|
+
}
|
155
|
+
|
156
|
+
/**
|
157
|
+
* Helper object used to deal with serializers for optional JDK types (like ones
|
158
|
+
* omitted from GAE, Android)
|
159
|
+
*/
|
160
|
+
protected OptionalHandlerFactory optionalHandlers = OptionalHandlerFactory.instance;
|
161
|
+
|
162
|
+
/*
|
163
|
+
/**********************************************************
|
164
|
+
/* Life cycle
|
165
|
+
/**********************************************************
|
166
|
+
*/
|
167
|
+
|
168
|
+
/**
|
169
|
+
* We will provide default constructor to allow sub-classing,
|
170
|
+
* but make it protected so that no non-singleton instances of
|
171
|
+
* the class will be instantiated.
|
172
|
+
*/
|
173
|
+
protected BasicSerializerFactory() { }
|
174
|
+
|
175
|
+
/*
|
176
|
+
/**********************************************************
|
177
|
+
/* SerializerFactory impl
|
178
|
+
/**********************************************************
|
179
|
+
*/
|
180
|
+
|
181
|
+
// Implemented by sub-classes
|
182
|
+
@Override
|
183
|
+
public abstract JsonSerializer<Object> createSerializer(SerializationConfig config, JavaType type,
|
184
|
+
BeanProperty property)
|
185
|
+
throws JsonMappingException;
|
186
|
+
|
187
|
+
/**
|
188
|
+
* Method called to construct a type serializer for values with given declared
|
189
|
+
* base type. This is called for values other than those of bean property
|
190
|
+
* types.
|
191
|
+
*/
|
192
|
+
@Override
|
193
|
+
public TypeSerializer createTypeSerializer(SerializationConfig config, JavaType baseType,
|
194
|
+
BeanProperty property)
|
195
|
+
{
|
196
|
+
BasicBeanDescription bean = config.introspectClassAnnotations(baseType.getRawClass());
|
197
|
+
AnnotatedClass ac = bean.getClassInfo();
|
198
|
+
AnnotationIntrospector ai = config.getAnnotationIntrospector();
|
199
|
+
TypeResolverBuilder<?> b = ai.findTypeResolver(config, ac, baseType);
|
200
|
+
/* Ok: if there is no explicit type info handler, we may want to
|
201
|
+
* use a default. If so, config object knows what to use.
|
202
|
+
*/
|
203
|
+
Collection<NamedType> subtypes = null;
|
204
|
+
if (b == null) {
|
205
|
+
b = config.getDefaultTyper(baseType);
|
206
|
+
} else {
|
207
|
+
subtypes = config.getSubtypeResolver().collectAndResolveSubtypes(ac, config, ai);
|
208
|
+
}
|
209
|
+
return (b == null) ? null : b.buildTypeSerializer(config, baseType, subtypes, property);
|
210
|
+
}
|
211
|
+
|
212
|
+
|
213
|
+
/*
|
214
|
+
/**********************************************************
|
215
|
+
/* Additional API for other core classes
|
216
|
+
/**********************************************************
|
217
|
+
*/
|
218
|
+
|
219
|
+
public final JsonSerializer<?> getNullSerializer() {
|
220
|
+
return NullSerializer.instance;
|
221
|
+
}
|
222
|
+
|
223
|
+
protected abstract Iterable<Serializers> customSerializers();
|
224
|
+
|
225
|
+
/*
|
226
|
+
/**********************************************************
|
227
|
+
/* Overridable secondary serializer accessor methods
|
228
|
+
/**********************************************************
|
229
|
+
*/
|
230
|
+
|
231
|
+
/**
|
232
|
+
* Method that will use fast lookup (and identity comparison) methods to
|
233
|
+
* see if we know serializer to use for given type.
|
234
|
+
*/
|
235
|
+
public final JsonSerializer<?> findSerializerByLookup(JavaType type, SerializationConfig config,
|
236
|
+
BasicBeanDescription beanDesc, BeanProperty property,
|
237
|
+
boolean staticTyping)
|
238
|
+
{
|
239
|
+
Class<?> raw = type.getRawClass();
|
240
|
+
String clsName = raw.getName();
|
241
|
+
JsonSerializer<?> ser = _concrete.get(clsName);
|
242
|
+
if (ser != null) {
|
243
|
+
return ser;
|
244
|
+
}
|
245
|
+
Class<? extends JsonSerializer<?>> serClass = _concreteLazy.get(clsName);
|
246
|
+
if (serClass != null) {
|
247
|
+
try {
|
248
|
+
return serClass.newInstance();
|
249
|
+
} catch (Exception e) {
|
250
|
+
throw new IllegalStateException("Failed to instantiate standard serializer (of type "+serClass.getName()+"): "
|
251
|
+
+e.getMessage(), e);
|
252
|
+
}
|
253
|
+
}
|
254
|
+
return null;
|
255
|
+
}
|
256
|
+
|
257
|
+
/**
|
258
|
+
* Method for checking if we can determine serializer to use based on set of
|
259
|
+
* known primary types, checking for set of known base types (exact matches
|
260
|
+
* having been compared against with <code>findSerializerByLookup</code>).
|
261
|
+
* This does not include "secondary" interfaces, but
|
262
|
+
* mostly concrete or abstract base classes.
|
263
|
+
*/
|
264
|
+
@SuppressWarnings("deprecation")
|
265
|
+
public final JsonSerializer<?> findSerializerByPrimaryType(JavaType type, SerializationConfig config,
|
266
|
+
BasicBeanDescription beanDesc, BeanProperty property,
|
267
|
+
boolean staticTyping)
|
268
|
+
throws JsonMappingException
|
269
|
+
{
|
270
|
+
Class<?> raw = type.getRawClass();
|
271
|
+
// First: JsonSerializable and related
|
272
|
+
if (JsonSerializable.class.isAssignableFrom(raw)) {
|
273
|
+
if (JsonSerializableWithType.class.isAssignableFrom(raw)) {
|
274
|
+
return SerializableWithTypeSerializer.instance;
|
275
|
+
}
|
276
|
+
return SerializableSerializer.instance;
|
277
|
+
}
|
278
|
+
// Second: as per [JACKSON-193] consider @JsonValue for any types:
|
279
|
+
AnnotatedMethod valueMethod = beanDesc.findJsonValueMethod();
|
280
|
+
if (valueMethod != null) {
|
281
|
+
// [JACKSON-586]: need to ensure accessibility of method
|
282
|
+
Method m = valueMethod.getAnnotated();
|
283
|
+
if (config.isEnabled(SerializationConfig.Feature.CAN_OVERRIDE_ACCESS_MODIFIERS)) {
|
284
|
+
ClassUtil.checkAndFixAccess(m);
|
285
|
+
}
|
286
|
+
JsonSerializer<Object> ser = findSerializerFromAnnotation(config, valueMethod, property);
|
287
|
+
return new JsonValueSerializer(m, ser, property);
|
288
|
+
}
|
289
|
+
|
290
|
+
// One unfortunate special case, as per [JACKSON-484]
|
291
|
+
if (InetAddress.class.isAssignableFrom(raw)) {
|
292
|
+
return InetAddressSerializer.instance;
|
293
|
+
}
|
294
|
+
// ... and another one, [JACKSON-522], for TimeZone
|
295
|
+
if (TimeZone.class.isAssignableFrom(raw)) {
|
296
|
+
return TimeZoneSerializer.instance;
|
297
|
+
}
|
298
|
+
// and yet one more [JACKSON-789]
|
299
|
+
if (java.nio.charset.Charset.class.isAssignableFrom(raw)) {
|
300
|
+
return ToStringSerializer.instance;
|
301
|
+
}
|
302
|
+
|
303
|
+
// Then check for optional/external serializers [JACKSON-386]
|
304
|
+
JsonSerializer<?> ser = optionalHandlers.findSerializer(config, type);
|
305
|
+
if (ser != null) {
|
306
|
+
return ser;
|
307
|
+
}
|
308
|
+
|
309
|
+
if (Number.class.isAssignableFrom(raw)) {
|
310
|
+
return StdSerializers.NumberSerializer.instance;
|
311
|
+
}
|
312
|
+
if (Enum.class.isAssignableFrom(raw)) {
|
313
|
+
@SuppressWarnings("unchecked")
|
314
|
+
Class<Enum<?>> enumClass = (Class<Enum<?>>) raw;
|
315
|
+
return EnumSerializer.construct(enumClass, config, beanDesc);
|
316
|
+
}
|
317
|
+
if (Calendar.class.isAssignableFrom(raw)) {
|
318
|
+
return CalendarSerializer.instance;
|
319
|
+
}
|
320
|
+
if (java.util.Date.class.isAssignableFrom(raw)) {
|
321
|
+
return DateSerializer.instance;
|
322
|
+
}
|
323
|
+
return null;
|
324
|
+
}
|
325
|
+
|
326
|
+
/**
|
327
|
+
* Reflection-based serialized find method, which checks if
|
328
|
+
* given class implements one of recognized "add-on" interfaces.
|
329
|
+
* Add-on here means a role that is usually or can be a secondary
|
330
|
+
* trait: for example,
|
331
|
+
* bean classes may implement {@link Iterable}, but their main
|
332
|
+
* function is usually something else. The reason for
|
333
|
+
*/
|
334
|
+
public final JsonSerializer<?> findSerializerByAddonType(SerializationConfig config, JavaType javaType,
|
335
|
+
BasicBeanDescription beanDesc, BeanProperty property,
|
336
|
+
boolean staticTyping)
|
337
|
+
throws JsonMappingException
|
338
|
+
{
|
339
|
+
Class<?> type = javaType.getRawClass();
|
340
|
+
|
341
|
+
// These need to be in decreasing order of specificity...
|
342
|
+
if (Iterator.class.isAssignableFrom(type)) {
|
343
|
+
return buildIteratorSerializer(config, javaType, beanDesc, property, staticTyping);
|
344
|
+
}
|
345
|
+
if (Iterable.class.isAssignableFrom(type)) {
|
346
|
+
return buildIterableSerializer(config, javaType, beanDesc, property, staticTyping);
|
347
|
+
}
|
348
|
+
if (CharSequence.class.isAssignableFrom(type)) {
|
349
|
+
return ToStringSerializer.instance;
|
350
|
+
}
|
351
|
+
return null;
|
352
|
+
}
|
353
|
+
|
354
|
+
/**
|
355
|
+
* Helper method called to check if a class or method
|
356
|
+
* has an annotation
|
357
|
+
* (@link sh.calaba.org.codehaus.jackson.map.ser.JsonSerialize#using)
|
358
|
+
* that tells the class to use for serialization.
|
359
|
+
* Returns null if no such annotation found.
|
360
|
+
*/
|
361
|
+
@SuppressWarnings("unchecked")
|
362
|
+
protected JsonSerializer<Object> findSerializerFromAnnotation(SerializationConfig config, Annotated a,
|
363
|
+
BeanProperty property)
|
364
|
+
throws JsonMappingException
|
365
|
+
{
|
366
|
+
Object serDef = config.getAnnotationIntrospector().findSerializer(a);
|
367
|
+
if (serDef == null) {
|
368
|
+
return null;
|
369
|
+
}
|
370
|
+
if (serDef instanceof JsonSerializer) {
|
371
|
+
JsonSerializer<Object> ser = (JsonSerializer<Object>) serDef;
|
372
|
+
if (ser instanceof ContextualSerializer<?>) {
|
373
|
+
return ((ContextualSerializer<Object>) ser).createContextual(config, property);
|
374
|
+
}
|
375
|
+
return ser;
|
376
|
+
}
|
377
|
+
/* Alas, there's no way to force return type of "either class
|
378
|
+
* X or Y" -- need to throw an exception after the fact
|
379
|
+
*/
|
380
|
+
if (!(serDef instanceof Class)) {
|
381
|
+
throw new IllegalStateException("AnnotationIntrospector returned value of type "+serDef.getClass().getName()+"; expected type JsonSerializer or Class<JsonSerializer> instead");
|
382
|
+
}
|
383
|
+
Class<?> cls = (Class<?>) serDef;
|
384
|
+
if (!JsonSerializer.class.isAssignableFrom(cls)) {
|
385
|
+
throw new IllegalStateException("AnnotationIntrospector returned Class "+cls.getName()+"; expected Class<JsonSerializer>");
|
386
|
+
}
|
387
|
+
JsonSerializer<Object> ser = config.serializerInstance(a, (Class<? extends JsonSerializer<?>>) cls);
|
388
|
+
if (ser instanceof ContextualSerializer<?>) {
|
389
|
+
return ((ContextualSerializer<Object>) ser).createContextual(config, property);
|
390
|
+
}
|
391
|
+
return ser;
|
392
|
+
}
|
393
|
+
|
394
|
+
/*
|
395
|
+
/**********************************************************
|
396
|
+
/* Factory methods, container types:
|
397
|
+
/**********************************************************
|
398
|
+
*/
|
399
|
+
|
400
|
+
public JsonSerializer<?> buildContainerSerializer(SerializationConfig config, JavaType type,
|
401
|
+
BasicBeanDescription beanDesc, BeanProperty property, boolean staticTyping)
|
402
|
+
{
|
403
|
+
// Let's see what we can learn about element/content/value type, type serializer for it:
|
404
|
+
JavaType elementType = type.getContentType();
|
405
|
+
TypeSerializer elementTypeSerializer = createTypeSerializer(config, elementType, property);
|
406
|
+
|
407
|
+
// if elements have type serializer, can not force static typing:
|
408
|
+
if (elementTypeSerializer != null) {
|
409
|
+
staticTyping = false;
|
410
|
+
} else if (!staticTyping) {
|
411
|
+
staticTyping = usesStaticTyping(config, beanDesc, elementTypeSerializer, property);
|
412
|
+
}
|
413
|
+
JsonSerializer<Object> elementValueSerializer = findContentSerializer(config,
|
414
|
+
beanDesc.getClassInfo(), property);
|
415
|
+
|
416
|
+
if (type.isMapLikeType()) { // implements java.util.Map
|
417
|
+
MapLikeType mlt = (MapLikeType) type;
|
418
|
+
JsonSerializer<Object> keySerializer = findKeySerializer(config, beanDesc.getClassInfo(), property);
|
419
|
+
if (mlt.isTrueMapType()) {
|
420
|
+
return buildMapSerializer(config, (MapType) mlt, beanDesc, property, staticTyping,
|
421
|
+
keySerializer, elementTypeSerializer, elementValueSerializer);
|
422
|
+
}
|
423
|
+
return buildMapLikeSerializer(config, mlt, beanDesc, property, staticTyping,
|
424
|
+
keySerializer, elementTypeSerializer, elementValueSerializer);
|
425
|
+
}
|
426
|
+
if (type.isCollectionLikeType()) {
|
427
|
+
CollectionLikeType clt = (CollectionLikeType) type;
|
428
|
+
if (clt.isTrueCollectionType()) {
|
429
|
+
return buildCollectionSerializer(config, (CollectionType) clt, beanDesc, property, staticTyping,
|
430
|
+
elementTypeSerializer, elementValueSerializer);
|
431
|
+
}
|
432
|
+
return buildCollectionLikeSerializer(config, clt, beanDesc, property, staticTyping,
|
433
|
+
elementTypeSerializer, elementValueSerializer);
|
434
|
+
}
|
435
|
+
if (type.isArrayType()) {
|
436
|
+
return buildArraySerializer(config, (ArrayType) type, beanDesc, property, staticTyping,
|
437
|
+
elementTypeSerializer, elementValueSerializer);
|
438
|
+
}
|
439
|
+
return null;
|
440
|
+
}
|
441
|
+
|
442
|
+
/**
|
443
|
+
* Helper method that handles configuration details when constructing serializers for
|
444
|
+
* Collection and Collection-like types.
|
445
|
+
*
|
446
|
+
* @since 1.8
|
447
|
+
*/
|
448
|
+
protected JsonSerializer<?> buildCollectionLikeSerializer(SerializationConfig config,
|
449
|
+
CollectionLikeType type,
|
450
|
+
BasicBeanDescription beanDesc, BeanProperty property,
|
451
|
+
boolean staticTyping,
|
452
|
+
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)
|
453
|
+
{
|
454
|
+
for (Serializers serializers : customSerializers()) {
|
455
|
+
JsonSerializer<?> ser = serializers.findCollectionLikeSerializer(config, type, beanDesc, property,
|
456
|
+
elementTypeSerializer, elementValueSerializer);
|
457
|
+
if (ser != null) {
|
458
|
+
return ser;
|
459
|
+
}
|
460
|
+
}
|
461
|
+
return null;
|
462
|
+
}
|
463
|
+
|
464
|
+
/**
|
465
|
+
* Helper method that handles configuration details when constructing serializers for
|
466
|
+
* {@link java.util.List} types that support efficient by-index access
|
467
|
+
*<p>
|
468
|
+
* Note: signature changed in 1.8, to take 'staticTyping' argument
|
469
|
+
*/
|
470
|
+
protected JsonSerializer<?> buildCollectionSerializer(SerializationConfig config,
|
471
|
+
CollectionType type,
|
472
|
+
BasicBeanDescription beanDesc, BeanProperty property,
|
473
|
+
boolean staticTyping,
|
474
|
+
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)
|
475
|
+
{
|
476
|
+
// Module-provided custom collection serializers?
|
477
|
+
for (Serializers serializers : customSerializers()) {
|
478
|
+
JsonSerializer<?> ser = serializers.findCollectionSerializer(config, type, beanDesc, property,
|
479
|
+
elementTypeSerializer, elementValueSerializer);
|
480
|
+
if (ser != null) {
|
481
|
+
return ser;
|
482
|
+
}
|
483
|
+
}
|
484
|
+
Class<?> raw = type.getRawClass();
|
485
|
+
if (EnumSet.class.isAssignableFrom(raw)) {
|
486
|
+
return buildEnumSetSerializer(config, type, beanDesc, property, staticTyping,
|
487
|
+
elementTypeSerializer, elementValueSerializer);
|
488
|
+
}
|
489
|
+
Class<?> elementRaw = type.getContentType().getRawClass();
|
490
|
+
if (isIndexedList(raw)) {
|
491
|
+
if (elementRaw == String.class) {
|
492
|
+
return new IndexedStringListSerializer(property);
|
493
|
+
}
|
494
|
+
return StdContainerSerializers.indexedListSerializer(type.getContentType(), staticTyping,
|
495
|
+
elementTypeSerializer, property, elementValueSerializer);
|
496
|
+
}
|
497
|
+
if (elementRaw == String.class) {
|
498
|
+
return new StringCollectionSerializer(property);
|
499
|
+
}
|
500
|
+
return StdContainerSerializers.collectionSerializer(type.getContentType(), staticTyping,
|
501
|
+
elementTypeSerializer, property, elementValueSerializer);
|
502
|
+
}
|
503
|
+
|
504
|
+
protected JsonSerializer<?> buildEnumSetSerializer(SerializationConfig config, JavaType type,
|
505
|
+
BasicBeanDescription beanDesc, BeanProperty property,
|
506
|
+
boolean staticTyping,
|
507
|
+
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)
|
508
|
+
{
|
509
|
+
// this may or may not be available (Class doesn't; type of field/method does)
|
510
|
+
JavaType enumType = type.getContentType();
|
511
|
+
// and even if nominally there is something, only use if it really is enum
|
512
|
+
if (!enumType.isEnumType()) {
|
513
|
+
enumType = null;
|
514
|
+
}
|
515
|
+
return StdContainerSerializers.enumSetSerializer(enumType, property);
|
516
|
+
}
|
517
|
+
|
518
|
+
/**
|
519
|
+
* @since 1.8
|
520
|
+
*/
|
521
|
+
protected boolean isIndexedList(Class<?> cls)
|
522
|
+
{
|
523
|
+
return RandomAccess.class.isAssignableFrom(cls);
|
524
|
+
}
|
525
|
+
|
526
|
+
/*
|
527
|
+
/**********************************************************
|
528
|
+
/* Factory methods, for Maps
|
529
|
+
/**********************************************************
|
530
|
+
*/
|
531
|
+
|
532
|
+
/**
|
533
|
+
* Helper method that handles configuration details when constructing serializers for
|
534
|
+
* all "Map-like" types; both ones that implement {@link java.util.Map} and
|
535
|
+
* ones that do not (but that have been indicated to behave like Maps).
|
536
|
+
*
|
537
|
+
* @since 1.8
|
538
|
+
*/
|
539
|
+
protected JsonSerializer<?> buildMapLikeSerializer(SerializationConfig config, MapLikeType type,
|
540
|
+
BasicBeanDescription beanDesc, BeanProperty property,
|
541
|
+
boolean staticTyping,
|
542
|
+
JsonSerializer<Object> keySerializer,
|
543
|
+
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)
|
544
|
+
{
|
545
|
+
for (Serializers serializers : customSerializers()) {
|
546
|
+
JsonSerializer<?> ser = serializers.findMapLikeSerializer(config, type, beanDesc, property,
|
547
|
+
keySerializer, elementTypeSerializer, elementValueSerializer);
|
548
|
+
if (ser != null) {
|
549
|
+
return ser;
|
550
|
+
}
|
551
|
+
}
|
552
|
+
return null;
|
553
|
+
}
|
554
|
+
|
555
|
+
/**
|
556
|
+
* Helper method that handles configuration details when constructing serializers for
|
557
|
+
* {@link java.util.Map} types.
|
558
|
+
*<p>
|
559
|
+
* Note: signature changed in 1.8, to take 'staticTyping' argument
|
560
|
+
*/
|
561
|
+
protected JsonSerializer<?> buildMapSerializer(SerializationConfig config, MapType type,
|
562
|
+
BasicBeanDescription beanDesc, BeanProperty property,
|
563
|
+
boolean staticTyping,
|
564
|
+
JsonSerializer<Object> keySerializer,
|
565
|
+
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)
|
566
|
+
{
|
567
|
+
for (Serializers serializers : customSerializers()) {
|
568
|
+
JsonSerializer<?> ser = serializers.findMapSerializer(config, type, beanDesc, property,
|
569
|
+
keySerializer, elementTypeSerializer, elementValueSerializer);
|
570
|
+
if (ser != null) {
|
571
|
+
return ser;
|
572
|
+
}
|
573
|
+
}
|
574
|
+
if (EnumMap.class.isAssignableFrom(type.getRawClass())) {
|
575
|
+
return buildEnumMapSerializer(config, type, beanDesc, property, staticTyping,
|
576
|
+
elementTypeSerializer, elementValueSerializer);
|
577
|
+
}
|
578
|
+
return MapSerializer.construct(config.getAnnotationIntrospector().findPropertiesToIgnore(beanDesc.getClassInfo()),
|
579
|
+
type, staticTyping, elementTypeSerializer, property,
|
580
|
+
keySerializer, elementValueSerializer);
|
581
|
+
}
|
582
|
+
|
583
|
+
/**
|
584
|
+
* Helper method that handles configuration details when constructing serializers for
|
585
|
+
* {@link java.util.EnumMap} types.
|
586
|
+
*<p>
|
587
|
+
* Note: signature changed in 1.8, to take 'staticTyping' argument
|
588
|
+
*/
|
589
|
+
protected JsonSerializer<?> buildEnumMapSerializer(SerializationConfig config, JavaType type,
|
590
|
+
BasicBeanDescription beanDesc, BeanProperty property,
|
591
|
+
boolean staticTyping,
|
592
|
+
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)
|
593
|
+
{
|
594
|
+
JavaType keyType = type.getKeyType();
|
595
|
+
// Need to find key enum values...
|
596
|
+
EnumValues enums = null;
|
597
|
+
if (keyType.isEnumType()) { // non-enum if we got it as type erased class (from instance)
|
598
|
+
@SuppressWarnings("unchecked")
|
599
|
+
Class<Enum<?>> enumClass = (Class<Enum<?>>) keyType.getRawClass();
|
600
|
+
enums = EnumValues.construct(enumClass, config.getAnnotationIntrospector());
|
601
|
+
}
|
602
|
+
return new EnumMapSerializer(type.getContentType(), staticTyping, enums,
|
603
|
+
elementTypeSerializer, property, elementValueSerializer);
|
604
|
+
}
|
605
|
+
|
606
|
+
/*
|
607
|
+
/**********************************************************
|
608
|
+
/* Factory methods, for Arrays
|
609
|
+
/**********************************************************
|
610
|
+
*/
|
611
|
+
|
612
|
+
/**
|
613
|
+
* Helper method that handles configuration details when constructing serializers for
|
614
|
+
* <code>Object[]</code> (and subtypes, except for String).
|
615
|
+
*/
|
616
|
+
protected JsonSerializer<?> buildArraySerializer(SerializationConfig config, ArrayType type,
|
617
|
+
BasicBeanDescription beanDesc, BeanProperty property,
|
618
|
+
boolean staticTyping,
|
619
|
+
TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)
|
620
|
+
{
|
621
|
+
Class<?> raw = type.getRawClass();
|
622
|
+
if (String[].class == raw) {
|
623
|
+
return new StdArraySerializers.StringArraySerializer(property);
|
624
|
+
}
|
625
|
+
// other standard types?
|
626
|
+
JsonSerializer<?> ser = _arraySerializers.get(raw.getName());
|
627
|
+
if (ser != null) {
|
628
|
+
return ser;
|
629
|
+
}
|
630
|
+
return new ObjectArraySerializer(type.getContentType(), staticTyping, elementTypeSerializer,
|
631
|
+
property, elementValueSerializer);
|
632
|
+
}
|
633
|
+
|
634
|
+
/*
|
635
|
+
/**********************************************************
|
636
|
+
/* Factory methods, for non-container types
|
637
|
+
/**********************************************************
|
638
|
+
*/
|
639
|
+
|
640
|
+
protected JsonSerializer<?> buildIteratorSerializer(SerializationConfig config, JavaType type,
|
641
|
+
BasicBeanDescription beanDesc, BeanProperty property,
|
642
|
+
boolean staticTyping)
|
643
|
+
{
|
644
|
+
// if there's generic type, it'll be the first contained type
|
645
|
+
JavaType valueType = type.containedType(0);
|
646
|
+
if (valueType == null) {
|
647
|
+
valueType = TypeFactory.unknownType();
|
648
|
+
}
|
649
|
+
TypeSerializer vts = createTypeSerializer(config, valueType, property);
|
650
|
+
return StdContainerSerializers.iteratorSerializer(valueType,
|
651
|
+
usesStaticTyping(config, beanDesc, vts, property), vts, property);
|
652
|
+
}
|
653
|
+
|
654
|
+
protected JsonSerializer<?> buildIterableSerializer(SerializationConfig config, JavaType type,
|
655
|
+
BasicBeanDescription beanDesc, BeanProperty property,
|
656
|
+
boolean staticTyping)
|
657
|
+
{
|
658
|
+
// if there's generic type, it'll be the first contained type
|
659
|
+
JavaType valueType = type.containedType(0);
|
660
|
+
if (valueType == null) {
|
661
|
+
valueType = TypeFactory.unknownType();
|
662
|
+
}
|
663
|
+
TypeSerializer vts = createTypeSerializer(config, valueType, property);
|
664
|
+
return StdContainerSerializers.iterableSerializer(valueType,
|
665
|
+
usesStaticTyping(config, beanDesc, vts, property), vts, property);
|
666
|
+
}
|
667
|
+
|
668
|
+
/*
|
669
|
+
/**********************************************************
|
670
|
+
/* Other helper methods
|
671
|
+
/**********************************************************
|
672
|
+
*/
|
673
|
+
|
674
|
+
/**
|
675
|
+
* Helper method used to encapsulate details of annotation-based type
|
676
|
+
* coercion
|
677
|
+
*
|
678
|
+
* @since 1.8
|
679
|
+
*/
|
680
|
+
@SuppressWarnings("unchecked")
|
681
|
+
protected <T extends JavaType> T modifyTypeByAnnotation(SerializationConfig config, Annotated a, T type)
|
682
|
+
{
|
683
|
+
// first: let's check class for the instance itself:
|
684
|
+
Class<?> superclass = config.getAnnotationIntrospector().findSerializationType(a);
|
685
|
+
if (superclass != null) {
|
686
|
+
try {
|
687
|
+
type = (T) type.widenBy(superclass);
|
688
|
+
} catch (IllegalArgumentException iae) {
|
689
|
+
throw new IllegalArgumentException("Failed to widen type "+type+" with concrete-type annotation (value "+superclass.getName()+"), method '"+a.getName()+"': "+iae.getMessage());
|
690
|
+
}
|
691
|
+
}
|
692
|
+
return modifySecondaryTypesByAnnotation(config, a, type);
|
693
|
+
}
|
694
|
+
|
695
|
+
/**
|
696
|
+
* @since 1.8
|
697
|
+
*/
|
698
|
+
@SuppressWarnings("unchecked")
|
699
|
+
protected static <T extends JavaType> T modifySecondaryTypesByAnnotation(SerializationConfig config, Annotated a, T type)
|
700
|
+
{
|
701
|
+
AnnotationIntrospector intr = config.getAnnotationIntrospector();
|
702
|
+
// then key class
|
703
|
+
if (type.isContainerType()) {
|
704
|
+
Class<?> keyClass = intr.findSerializationKeyType(a, type.getKeyType());
|
705
|
+
if (keyClass != null) {
|
706
|
+
// illegal to use on non-Maps
|
707
|
+
if (!(type instanceof MapType)) {
|
708
|
+
throw new IllegalArgumentException("Illegal key-type annotation: type "+type+" is not a Map type");
|
709
|
+
}
|
710
|
+
try {
|
711
|
+
type = (T) ((MapType) type).widenKey(keyClass);
|
712
|
+
} catch (IllegalArgumentException iae) {
|
713
|
+
throw new IllegalArgumentException("Failed to narrow key type "+type+" with key-type annotation ("+keyClass.getName()+"): "+iae.getMessage());
|
714
|
+
}
|
715
|
+
}
|
716
|
+
|
717
|
+
// and finally content class; only applicable to structured types
|
718
|
+
Class<?> cc = intr.findSerializationContentType(a, type.getContentType());
|
719
|
+
if (cc != null) {
|
720
|
+
try {
|
721
|
+
type = (T) type.widenContentsBy(cc);
|
722
|
+
} catch (IllegalArgumentException iae) {
|
723
|
+
throw new IllegalArgumentException("Failed to narrow content type "+type+" with content-type annotation ("+cc.getName()+"): "+iae.getMessage());
|
724
|
+
}
|
725
|
+
}
|
726
|
+
}
|
727
|
+
return type;
|
728
|
+
}
|
729
|
+
|
730
|
+
protected static JsonSerializer<Object> findKeySerializer(SerializationConfig config,
|
731
|
+
Annotated a, BeanProperty property)
|
732
|
+
{
|
733
|
+
AnnotationIntrospector intr = config.getAnnotationIntrospector();
|
734
|
+
Class<? extends JsonSerializer<?>> serClass = intr.findKeySerializer(a);
|
735
|
+
if (serClass == null || serClass == JsonSerializer.None.class) {
|
736
|
+
if (property != null) {
|
737
|
+
serClass = intr.findKeySerializer(property.getMember());
|
738
|
+
}
|
739
|
+
}
|
740
|
+
if (serClass != null && serClass != JsonSerializer.None.class) {
|
741
|
+
return config.serializerInstance(a, serClass);
|
742
|
+
}
|
743
|
+
return null;
|
744
|
+
}
|
745
|
+
|
746
|
+
protected static JsonSerializer<Object> findContentSerializer(SerializationConfig config,
|
747
|
+
Annotated a, BeanProperty property)
|
748
|
+
{
|
749
|
+
AnnotationIntrospector intr = config.getAnnotationIntrospector();
|
750
|
+
Class<? extends JsonSerializer<?>> serClass = intr.findContentSerializer(a);
|
751
|
+
if (serClass == null || serClass == JsonSerializer.None.class) {
|
752
|
+
if (property != null) {
|
753
|
+
serClass = intr.findContentSerializer(property.getMember());
|
754
|
+
}
|
755
|
+
}
|
756
|
+
if (serClass != null && serClass != JsonSerializer.None.class) {
|
757
|
+
return config.serializerInstance(a, serClass);
|
758
|
+
}
|
759
|
+
return null;
|
760
|
+
}
|
761
|
+
|
762
|
+
/**
|
763
|
+
* Helper method to check whether global settings and/or class
|
764
|
+
* annotations for the bean class indicate that static typing
|
765
|
+
* (declared types) should be used for properties.
|
766
|
+
* (instead of dynamic runtime types).
|
767
|
+
*/
|
768
|
+
protected boolean usesStaticTyping(SerializationConfig config, BasicBeanDescription beanDesc,
|
769
|
+
TypeSerializer typeSer, BeanProperty property)
|
770
|
+
{
|
771
|
+
/* 16-Aug-2010, tatu: If there is a (value) type serializer, we can not force
|
772
|
+
* static typing; that would make it impossible to handle expected subtypes
|
773
|
+
*/
|
774
|
+
if (typeSer != null) {
|
775
|
+
return false;
|
776
|
+
}
|
777
|
+
AnnotationIntrospector intr = config.getAnnotationIntrospector();
|
778
|
+
JsonSerialize.Typing t = intr.findSerializationTyping(beanDesc.getClassInfo());
|
779
|
+
if (t != null) {
|
780
|
+
if (t == JsonSerialize.Typing.STATIC) {
|
781
|
+
return true;
|
782
|
+
}
|
783
|
+
} else {
|
784
|
+
if (config.isEnabled(SerializationConfig.Feature.USE_STATIC_TYPING)) {
|
785
|
+
return true;
|
786
|
+
}
|
787
|
+
}
|
788
|
+
/* 11-Mar-2011, tatu: Ok. This is bit hacky, but we really need to be able to find cases
|
789
|
+
* where key and/or value serializers were specified, to force use of static typing
|
790
|
+
*/
|
791
|
+
if (property != null) {
|
792
|
+
JavaType type = property.getType();
|
793
|
+
if (type.isContainerType()) {
|
794
|
+
if (intr.findSerializationContentType(property.getMember(), property.getType()) != null) {
|
795
|
+
return true;
|
796
|
+
}
|
797
|
+
if (type instanceof MapType) {
|
798
|
+
if (intr.findSerializationKeyType(property.getMember(), property.getType()) != null) {
|
799
|
+
return true;
|
800
|
+
}
|
801
|
+
}
|
802
|
+
}
|
803
|
+
}
|
804
|
+
return false;
|
805
|
+
}
|
806
|
+
}
|