From 0ad04e4563a99953b206bf1a721e5918a51f3c24 Mon Sep 17 00:00:00 2001 From: "andrew.asa" Date: Wed, 3 Jan 2018 16:31:02 +0800 Subject: [PATCH] =?UTF-8?q?jackson-core-2.3=EF=BC=8Cjackson-databind?= =?UTF-8?q?=EF=BC=8Cjackson-annotation-2.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fine-jackson/lib/hamcrest-core-1.3.jar | Bin 0 -> 45024 bytes fine-jackson/resources/META-INF/LICENSE | 8 + fine-jackson/resources/META-INF/NOTICE | 20 + .../com.fasterxml.jackson.core.JsonFactory | 1 + .../com.fasterxml.jackson.core.ObjectCodec | 1 + .../jackson/annotation/JacksonAnnotation.java | 20 + .../annotation/JacksonAnnotationsInside.java | 25 + .../jackson/annotation/JacksonInject.java | 28 + .../jackson/annotation/JsonAnyGetter.java | 23 + .../jackson/annotation/JsonAnySetter.java | 25 + .../jackson/annotation/JsonAutoDetect.java | 126 + .../jackson/annotation/JsonBackReference.java | 39 + .../jackson/annotation/JsonCreator.java | 36 + .../jackson/annotation/JsonFilter.java | 33 + .../jackson/annotation/JsonFormat.java | 252 ++ .../jackson/annotation/JsonGetter.java | 33 + .../jackson/annotation/JsonIdentityInfo.java | 75 + .../annotation/JsonIdentityReference.java | 35 + .../jackson/annotation/JsonIgnore.java | 58 + .../annotation/JsonIgnoreProperties.java | 51 + .../jackson/annotation/JsonIgnoreType.java | 31 + .../jackson/annotation/JsonInclude.java | 96 + .../annotation/JsonManagedReference.java | 41 + .../jackson/annotation/JsonProperty.java | 67 + .../annotation/JsonPropertyDescription.java | 25 + .../jackson/annotation/JsonPropertyOrder.java | 46 + .../jackson/annotation/JsonRawValue.java | 31 + .../jackson/annotation/JsonRootName.java | 25 + .../jackson/annotation/JsonSetter.java | 33 + .../jackson/annotation/JsonSubTypes.java | 43 + .../jackson/annotation/JsonTypeId.java | 37 + .../jackson/annotation/JsonTypeInfo.java | 277 ++ .../jackson/annotation/JsonTypeName.java | 26 + .../jackson/annotation/JsonUnwrapped.java | 89 + .../jackson/annotation/JsonValue.java | 54 + .../jackson/annotation/JsonView.java | 34 + .../jackson/annotation/ObjectIdGenerator.java | 145 + .../annotation/ObjectIdGenerators.java | 164 + .../jackson/annotation/PropertyAccessor.java | 87 + .../jackson/annotation/package-info.java | 12 + .../fasterxml/jackson/core/Base64Variant.java | 593 +++ .../jackson/core/Base64Variants.java | 111 + .../fasterxml/jackson/core/FormatSchema.java | 32 + .../fasterxml/jackson/core/JsonEncoding.java | 57 + .../fasterxml/jackson/core/JsonFactory.java | 1462 ++++++++ .../jackson/core/JsonGenerationException.java | 32 + .../fasterxml/jackson/core/JsonGenerator.java | 1637 +++++++++ .../fasterxml/jackson/core/JsonLocation.java | 139 + .../jackson/core/JsonParseException.java | 27 + .../fasterxml/jackson/core/JsonParser.java | 1536 ++++++++ .../fasterxml/jackson/core/JsonPointer.java | 277 ++ .../jackson/core/JsonProcessingException.java | 130 + .../jackson/core/JsonStreamContext.java | 112 + .../fasterxml/jackson/core/JsonToken.java | 212 ++ .../fasterxml/jackson/core/JsonTokenId.java | 87 + .../fasterxml/jackson/core/ObjectCodec.java | 185 + .../fasterxml/jackson/core/PrettyPrinter.java | 177 + .../jackson/core/SerializableString.java | 156 + .../fasterxml/jackson/core/TreeCodec.java | 23 + .../fasterxml/jackson/core/TreeNode.java | 276 ++ .../third/fasterxml/jackson/core/Version.java | 141 + .../fasterxml/jackson/core/Versioned.java | 23 + .../jackson/core/base/GeneratorBase.java | 317 ++ .../jackson/core/base/ParserBase.java | 1090 ++++++ .../jackson/core/base/ParserMinimalBase.java | 574 +++ .../jackson/core/base/package-info.java | 9 + .../core/format/DataFormatDetector.java | 211 ++ .../core/format/DataFormatMatcher.java | 124 + .../jackson/core/format/InputAccessor.java | 151 + .../jackson/core/format/MatchStrength.java | 62 + .../jackson/core/format/package-info.java | 6 + .../fasterxml/jackson/core/io/BaseReader.java | 116 + .../fasterxml/jackson/core/io/CharTypes.java | 261 ++ .../jackson/core/io/CharacterEscapes.java | 70 + .../fasterxml/jackson/core/io/IOContext.java | 265 ++ .../jackson/core/io/InputDecorator.java | 68 + .../jackson/core/io/JsonStringEncoder.java | 396 ++ .../jackson/core/io/MergedStream.java | 145 + .../jackson/core/io/NumberInput.java | 319 ++ .../jackson/core/io/NumberOutput.java | 398 ++ .../jackson/core/io/OutputDecorator.java | 41 + .../core/io/SegmentedStringWriter.java | 102 + .../jackson/core/io/SerializedString.java | 280 ++ .../jackson/core/io/UTF32Reader.java | 218 ++ .../fasterxml/jackson/core/io/UTF8Writer.java | 387 ++ .../core/json/ByteSourceJsonBootstrapper.java | 513 +++ .../jackson/core/json/DupDetector.java | 90 + .../jackson/core/json/JsonGeneratorImpl.java | 172 + .../jackson/core/json/JsonReadContext.java | 227 ++ .../jackson/core/json/JsonWriteContext.java | 208 ++ .../jackson/core/json/PackageVersion.java.in | 20 + .../core/json/ReaderBasedJsonParser.java | 2044 +++++++++++ .../jackson/core/json/UTF8JsonGenerator.java | 1865 ++++++++++ .../core/json/UTF8StreamJsonParser.java | 3251 +++++++++++++++++ .../core/json/WriterBasedJsonGenerator.java | 1913 ++++++++++ .../jackson/core/json/package-info.java | 7 + .../fasterxml/jackson/core/package-info.java | 28 + .../core/sym/BytesToNameCanonicalizer.java | 1199 ++++++ .../core/sym/CharsToNameCanonicalizer.java | 728 ++++ .../fasterxml/jackson/core/sym/Name.java | 50 + .../fasterxml/jackson/core/sym/Name1.java | 44 + .../fasterxml/jackson/core/sym/Name2.java | 40 + .../fasterxml/jackson/core/sym/Name3.java | 39 + .../fasterxml/jackson/core/sym/NameN.java | 68 + .../jackson/core/sym/package-info.java | 5 + .../jackson/core/type/ResolvedType.java | 122 + .../jackson/core/type/TypeReference.java | 61 + .../jackson/core/type/package-info.java | 8 + .../jackson/core/util/ArraysCompat.java | 123 + .../jackson/core/util/BufferRecycler.java | 125 + .../jackson/core/util/ByteArrayBuilder.java | 278 ++ .../core/util/DefaultPrettyPrinter.java | 483 +++ .../jackson/core/util/Instantiatable.java | 24 + .../jackson/core/util/InternCache.java | 69 + .../core/util/JsonGeneratorDelegate.java | 555 +++ .../jackson/core/util/JsonParserDelegate.java | 462 +++ .../jackson/core/util/JsonParserSequence.java | 148 + .../core/util/MinimalPrettyPrinter.java | 153 + .../jackson/core/util/TextBuffer.java | 707 ++++ .../jackson/core/util/VersionUtil.java | 216 ++ .../jackson/core/util/package-info.java | 4 + .../databind/AbstractTypeResolver.java | 52 + .../databind/AnnotationIntrospector.java | 1115 ++++++ .../jackson/databind/BeanDescription.java | 249 ++ .../jackson/databind/BeanProperty.java | 222 ++ .../jackson/databind/DatabindContext.java | 202 + .../databind/DeserializationConfig.java | 566 +++ .../databind/DeserializationContext.java | 858 +++++ .../databind/DeserializationFeature.java | 317 ++ .../jackson/databind/InjectableValues.java | 85 + .../fasterxml/jackson/databind/JavaType.java | 446 +++ .../jackson/databind/JsonDeserializer.java | 302 ++ .../databind/JsonMappingException.java | 370 ++ .../fasterxml/jackson/databind/JsonNode.java | 896 +++++ .../jackson/databind/JsonSerializable.java | 49 + .../jackson/databind/JsonSerializer.java | 243 ++ .../jackson/databind/KeyDeserializer.java | 29 + .../jackson/databind/MapperFeature.java | 289 ++ .../jackson/databind/MappingIterator.java | 266 ++ .../jackson/databind/MappingJsonFactory.java | 95 + .../fasterxml/jackson/databind/Module.java | 293 ++ .../jackson/databind/ObjectMapper.java | 3115 ++++++++++++++++ .../jackson/databind/ObjectReader.java | 1586 ++++++++ .../jackson/databind/ObjectWriter.java | 969 +++++ .../jackson/databind/PropertyMetadata.java | 96 + .../jackson/databind/PropertyName.java | 198 + .../databind/PropertyNamingStrategy.java | 301 ++ .../databind/RuntimeJsonMappingException.java | 21 + .../jackson/databind/SerializationConfig.java | 543 +++ .../databind/SerializationFeature.java | 351 ++ .../jackson/databind/SerializerProvider.java | 1125 ++++++ .../databind/annotation/JacksonStdImpl.java | 23 + .../databind/annotation/JsonDeserialize.java | 135 + .../databind/annotation/JsonNaming.java | 19 + .../databind/annotation/JsonPOJOBuilder.java | 74 + .../databind/annotation/JsonSerialize.java | 261 ++ .../annotation/JsonTypeIdResolver.java | 36 + .../databind/annotation/JsonTypeResolver.java | 28 + .../annotation/JsonValueInstantiator.java | 23 + .../jackson/databind/annotation/NoClass.java | 14 + .../databind/annotation/package-info.java | 7 + .../jackson/databind/cfg/BaseSettings.java | 343 ++ .../jackson/databind/cfg/ConfigFeature.java | 20 + .../databind/cfg/ContextAttributes.java | 215 ++ .../cfg/DeserializerFactoryConfig.java | 206 ++ .../databind/cfg/HandlerInstantiator.java | 146 + .../jackson/databind/cfg/MapperConfig.java | 397 ++ .../databind/cfg/MapperConfigBase.java | 410 +++ .../jackson/databind/cfg/PackageVersion.java | 20 + .../databind/cfg/PackageVersion.java.in | 20 + .../databind/cfg/SerializerFactoryConfig.java | 99 + .../jackson/databind/cfg/package-info.java | 8 + .../databind/deser/AbstractDeserializer.java | 208 ++ .../deser/BasicDeserializerFactory.java | 1609 ++++++++ .../databind/deser/BeanDeserializer.java | 773 ++++ .../databind/deser/BeanDeserializerBase.java | 1486 ++++++++ .../deser/BeanDeserializerBuilder.java | 441 +++ .../deser/BeanDeserializerFactory.java | 870 +++++ .../deser/BeanDeserializerModifier.java | 171 + .../deser/BuilderBasedDeserializer.java | 702 ++++ .../deser/ContextualDeserializer.java | 43 + .../deser/ContextualKeyDeserializer.java | 34 + .../databind/deser/CreatorProperty.java | 244 ++ .../databind/deser/DataFormatReaders.java | 388 ++ .../deser/DefaultDeserializationContext.java | 226 ++ .../deser/DeserializationProblemHandler.java | 62 + .../databind/deser/DeserializerCache.java | 583 +++ .../databind/deser/DeserializerFactory.java | 198 + .../jackson/databind/deser/Deserializers.java | 299 ++ .../databind/deser/KeyDeserializers.java | 19 + .../deser/ResolvableDeserializer.java | 45 + .../databind/deser/SettableAnyProperty.java | 193 + .../databind/deser/SettableBeanProperty.java | 575 +++ .../databind/deser/ValueInstantiator.java | 292 ++ .../databind/deser/ValueInstantiators.java | 47 + .../impl/BeanAsArrayBuilderDeserializer.java | 368 ++ .../deser/impl/BeanAsArrayDeserializer.java | 357 ++ .../databind/deser/impl/BeanPropertyMap.java | 418 +++ .../databind/deser/impl/CreatorCollector.java | 204 ++ .../deser/impl/ExternalTypeHandler.java | 316 ++ .../deser/impl/FailingDeserializer.java | 31 + .../databind/deser/impl/FieldProperty.java | 149 + .../deser/impl/InnerClassProperty.java | 127 + .../deser/impl/ManagedReferenceProperty.java | 159 + .../databind/deser/impl/MethodProperty.java | 143 + .../databind/deser/impl/NullProvider.java | 39 + .../databind/deser/impl/ObjectIdReader.java | 106 + .../deser/impl/ObjectIdValueProperty.java | 120 + .../deser/impl/PropertyBasedCreator.java | 177 + .../impl/PropertyBasedObjectIdGenerator.java | 37 + .../databind/deser/impl/PropertyValue.java | 118 + .../deser/impl/PropertyValueBuffer.java | 154 + .../databind/deser/impl/ReadableObjectId.java | 31 + .../deser/impl/SetterlessProperty.java | 143 + .../deser/impl/TypeWrappedDeserializer.java | 63 + .../deser/impl/UnwrappedPropertyHandler.java | 66 + .../databind/deser/impl/ValueInjector.java | 54 + .../databind/deser/impl/package-info.java | 9 + .../jackson/databind/deser/package-info.java | 5 + .../std/ArrayBlockingQueueDeserializer.java | 134 + .../deser/std/AtomicBooleanDeserializer.java | 26 + .../std/AtomicReferenceDeserializer.java | 95 + .../deser/std/ByteBufferDeserializer.java | 35 + .../deser/std/CharsetDeserializer.java | 21 + .../databind/deser/std/ClassDeserializer.java | 37 + .../deser/std/CollectionDeserializer.java | 275 ++ .../deser/std/ContainerDeserializerBase.java | 62 + .../databind/deser/std/DateDeserializers.java | 345 ++ .../deser/std/DelegatingDeserializer.java | 160 + .../databind/deser/std/EnumDeserializer.java | 172 + .../deser/std/EnumMapDeserializer.java | 194 + .../deser/std/EnumSetDeserializer.java | 125 + .../deser/std/FromStringDeserializer.java | 88 + .../deser/std/InetAddressDeserializer.java | 26 + .../std/InetSocketAddressDeserializer.java | 52 + .../deser/std/JavaTypeDeserializer.java | 42 + .../databind/deser/std/JdkDeserializers.java | 220 ++ .../deser/std/JsonLocationInstantiator.java | 59 + .../deser/std/JsonNodeDeserializer.java | 349 ++ .../databind/deser/std/MapDeserializer.java | 519 +++ .../deser/std/NullifyingDeserializer.java | 55 + .../deser/std/NumberDeserializers.java | 606 +++ .../deser/std/ObjectArrayDeserializer.java | 246 ++ .../std/PrimitiveArrayDeserializers.java | 514 +++ .../std/StackTraceElementDeserializer.java | 54 + .../deser/std/StdDelegatingDeserializer.java | 187 + .../databind/deser/std/StdDeserializer.java | 780 ++++ .../deser/std/StdKeyDeserializer.java | 450 +++ .../deser/std/StdKeyDeserializers.java | 149 + .../deser/std/StdScalarDeserializer.java | 34 + .../deser/std/StdValueInstantiator.java | 444 +++ .../deser/std/StringArrayDeserializer.java | 160 + .../std/StringCollectionDeserializer.java | 232 ++ .../deser/std/StringDeserializer.java | 58 + .../deser/std/ThrowableDeserializer.java | 164 + .../deser/std/TokenBufferDeserializer.java | 43 + .../databind/deser/std/UUIDDeserializer.java | 144 + .../deser/std/UntypedObjectDeserializer.java | 389 ++ .../databind/deser/std/package-info.java | 13 + .../exc/IgnoredPropertyException.java | 59 + .../databind/exc/InvalidFormatException.java | 84 + .../exc/PropertyBindingException.java | 127 + .../exc/UnrecognizedPropertyException.java | 65 + .../databind/ext/CoreXMLDeserializers.java | 120 + .../databind/ext/CoreXMLSerializers.java | 70 + .../jackson/databind/ext/DOMDeserializer.java | 69 + .../jackson/databind/ext/DOMSerializer.java | 57 + .../databind/ext/OptionalHandlerFactory.java | 174 + .../jackson/databind/ext/package-info.java | 23 + .../databind/introspect/Annotated.java | 90 + .../databind/introspect/AnnotatedClass.java | 1026 ++++++ .../introspect/AnnotatedConstructor.java | 214 ++ .../databind/introspect/AnnotatedField.java | 187 + .../databind/introspect/AnnotatedMember.java | 99 + .../databind/introspect/AnnotatedMethod.java | 276 ++ .../introspect/AnnotatedMethodMap.java | 85 + .../introspect/AnnotatedParameter.java | 187 + .../introspect/AnnotatedWithParams.java | 168 + .../AnnotationIntrospectorPair.java | 797 ++++ .../databind/introspect/AnnotationMap.java | 112 + .../introspect/BasicBeanDescription.java | 621 ++++ .../introspect/BasicClassIntrospector.java | 188 + .../introspect/BeanPropertyDefinition.java | 208 ++ .../introspect/ClassIntrospector.java | 94 + .../JacksonAnnotationIntrospector.java | 936 +++++ .../databind/introspect/MemberKey.java | 83 + .../introspect/NopAnnotationIntrospector.java | 36 + .../databind/introspect/ObjectIdInfo.java | 56 + .../introspect/POJOPropertiesCollector.java | 866 +++++ .../introspect/POJOPropertyBuilder.java | 869 +++++ .../introspect/VisibilityChecker.java | 395 ++ .../databind/introspect/WithMember.java | 6 + .../databind/introspect/package-info.java | 12 + .../JsonAnyFormatVisitor.java | 11 + .../JsonArrayFormatVisitor.java | 55 + .../JsonBooleanFormatVisitor.java | 12 + .../jsonFormatVisitors/JsonFormatTypes.java | 27 + .../JsonFormatVisitable.java | 19 + ...onFormatVisitorWithSerializerProvider.java | 14 + .../JsonFormatVisitorWrapper.java | 59 + .../JsonIntegerFormatVisitor.java | 25 + .../JsonMapFormatVisitor.java | 45 + .../JsonNullFormatVisitor.java | 10 + .../JsonNumberFormatVisitor.java | 25 + .../JsonObjectFormatVisitor.java | 66 + .../JsonStringFormatVisitor.java | 13 + .../jsonFormatVisitors/JsonValueFormat.java | 124 + .../JsonValueFormatVisitor.java | 28 + .../jsonFormatVisitors/package-info.java | 12 + .../databind/jsonschema/JsonSchema.java | 96 + .../jsonschema/JsonSerializableSchema.java | 70 + .../databind/jsonschema/SchemaAware.java | 34 + .../databind/jsonschema/package-info.java | 5 + .../jackson/databind/jsontype/NamedType.java | 55 + .../databind/jsontype/SubtypeResolver.java | 51 + .../databind/jsontype/TypeDeserializer.java | 193 + .../databind/jsontype/TypeIdResolver.java | 84 + .../jsontype/TypeResolverBuilder.java | 155 + .../databind/jsontype/TypeSerializer.java | 230 ++ .../impl/AsArrayTypeDeserializer.java | 147 + .../jsontype/impl/AsArrayTypeSerializer.java | 234 ++ .../impl/AsExternalTypeDeserializer.java | 45 + .../impl/AsExternalTypeSerializer.java | 208 ++ .../impl/AsPropertyTypeDeserializer.java | 171 + .../impl/AsPropertyTypeSerializer.java | 116 + .../impl/AsWrapperTypeDeserializer.java | 134 + .../impl/AsWrapperTypeSerializer.java | 232 ++ .../jsontype/impl/ClassNameIdResolver.java | 142 + .../impl/MinimalClassNameIdResolver.java | 66 + .../jsontype/impl/StdSubtypeResolver.java | 173 + .../jsontype/impl/StdTypeResolverBuilder.java | 215 ++ .../jsontype/impl/TypeDeserializerBase.java | 243 ++ .../jsontype/impl/TypeIdResolverBase.java | 74 + .../jsontype/impl/TypeNameIdResolver.java | 166 + .../jsontype/impl/TypeSerializerBase.java | 54 + .../databind/jsontype/impl/package-info.java | 7 + .../databind/jsontype/package-info.java | 8 + .../module/SimpleAbstractTypeResolver.java | 89 + .../databind/module/SimpleDeserializers.java | 165 + .../module/SimpleKeyDeserializers.java | 61 + .../jackson/databind/module/SimpleModule.java | 416 +++ .../databind/module/SimpleSerializers.java | 246 ++ .../module/SimpleValueInstantiators.java | 48 + .../jackson/databind/module/package-info.java | 14 + .../jackson/databind/node/ArrayNode.java | 787 ++++ .../jackson/databind/node/BaseJsonNode.java | 98 + .../jackson/databind/node/BigIntegerNode.java | 122 + .../jackson/databind/node/BinaryNode.java | 123 + .../jackson/databind/node/BooleanNode.java | 94 + .../jackson/databind/node/ContainerNode.java | 147 + .../jackson/databind/node/DecimalNode.java | 126 + .../jackson/databind/node/DoubleNode.java | 123 + .../jackson/databind/node/FloatNode.java | 122 + .../jackson/databind/node/IntNode.java | 133 + .../databind/node/JsonNodeCreator.java | 49 + .../databind/node/JsonNodeFactory.java | 349 ++ .../jackson/databind/node/JsonNodeType.java | 28 + .../jackson/databind/node/LongNode.java | 111 + .../jackson/databind/node/MissingNode.java | 97 + .../jackson/databind/node/NodeCursor.java | 234 ++ .../jackson/databind/node/NullNode.java | 58 + .../jackson/databind/node/NumericNode.java | 72 + .../jackson/databind/node/ObjectNode.java | 791 ++++ .../jackson/databind/node/POJONode.java | 160 + .../jackson/databind/node/ShortNode.java | 109 + .../jackson/databind/node/TextNode.java | 305 ++ .../databind/node/TreeTraversingParser.java | 408 +++ .../jackson/databind/node/ValueNode.java | 147 + .../jackson/databind/node/package-info.java | 8 + .../jackson/databind/package-info.java | 34 + .../jackson/databind/ser/AnyGetterWriter.java | 72 + .../databind/ser/BasicSerializerFactory.java | 1010 +++++ .../databind/ser/BeanPropertyFilter.java | 94 + .../databind/ser/BeanPropertyWriter.java | 761 ++++ .../jackson/databind/ser/BeanSerializer.java | 166 + .../databind/ser/BeanSerializerBuilder.java | 196 + .../databind/ser/BeanSerializerFactory.java | 763 ++++ .../databind/ser/BeanSerializerModifier.java | 187 + .../databind/ser/ContainerSerializer.java | 135 + .../databind/ser/ContextualSerializer.java | 41 + .../ser/DefaultSerializerProvider.java | 513 +++ .../jackson/databind/ser/FilterProvider.java | 58 + .../jackson/databind/ser/PropertyBuilder.java | 261 ++ .../jackson/databind/ser/PropertyFilter.java | 121 + .../jackson/databind/ser/PropertyWriter.java | 98 + .../databind/ser/ResolvableSerializer.java | 33 + .../jackson/databind/ser/SerializerCache.java | 294 ++ .../databind/ser/SerializerFactory.java | 106 + .../jackson/databind/ser/Serializers.java | 142 + .../ser/impl/BeanAsArraySerializer.java | 218 ++ .../databind/ser/impl/FailingSerializer.java | 51 + .../ser/impl/FilteredBeanPropertyWriter.java | 149 + .../ser/impl/IndexedListSerializer.java | 171 + .../ser/impl/IndexedStringListSerializer.java | 197 + .../databind/ser/impl/IteratorSerializer.java | 86 + .../databind/ser/impl/JsonSerializerMap.java | 91 + .../databind/ser/impl/ObjectIdWriter.java | 95 + .../impl/PropertyBasedObjectIdGenerator.java | 77 + .../ser/impl/PropertySerializerMap.java | 287 ++ .../impl/ReadOnlyClassToSerializerMap.java | 88 + .../ser/impl/SimpleBeanPropertyFilter.java | 279 ++ .../ser/impl/SimpleFilterProvider.java | 187 + .../ser/impl/StringArraySerializer.java | 213 ++ .../ser/impl/StringCollectionSerializer.java | 195 + .../ser/impl/TypeWrappedSerializer.java | 51 + .../databind/ser/impl/UnknownSerializer.java | 61 + .../impl/UnwrappingBeanPropertyWriter.java | 197 + .../ser/impl/UnwrappingBeanSerializer.java | 128 + .../databind/ser/impl/WritableObjectId.java | 69 + .../databind/ser/impl/package-info.java | 5 + .../jackson/databind/ser/package-info.java | 5 + .../databind/ser/std/ArraySerializerBase.java | 74 + .../ser/std/AsArraySerializerBase.java | 285 ++ .../databind/ser/std/BeanSerializerBase.java | 774 ++++ .../databind/ser/std/BooleanSerializer.java | 59 + .../ser/std/ByteBufferSerializer.java | 36 + .../databind/ser/std/CalendarSerializer.java | 59 + .../databind/ser/std/ClassSerializer.java | 42 + .../ser/std/CollectionSerializer.java | 158 + .../databind/ser/std/DateSerializer.java | 63 + .../ser/std/DateTimeSerializerBase.java | 151 + .../databind/ser/std/EnumMapSerializer.java | 365 ++ .../databind/ser/std/EnumSerializer.java | 231 ++ .../databind/ser/std/EnumSetSerializer.java | 66 + .../databind/ser/std/FileSerializer.java | 43 + .../ser/std/InetAddressSerializer.java | 49 + .../ser/std/InetSocketAddressSerializer.java | 54 + .../databind/ser/std/IterableSerializer.java | 100 + .../databind/ser/std/JsonValueSerializer.java | 301 ++ .../jackson/databind/ser/std/MapProperty.java | 112 + .../databind/ser/std/MapSerializer.java | 692 ++++ .../ser/std/NonTypedScalarSerializerBase.java | 32 + .../databind/ser/std/NullSerializer.java | 47 + .../databind/ser/std/NumberSerializers.java | 327 ++ .../ser/std/ObjectArraySerializer.java | 387 ++ .../databind/ser/std/RawSerializer.java | 58 + .../ser/std/SerializableSerializer.java | 116 + .../databind/ser/std/SqlDateSerializer.java | 51 + .../databind/ser/std/SqlTimeSerializer.java | 45 + .../ser/std/StaticListSerializerBase.java | 55 + .../databind/ser/std/StdArraySerializers.java | 668 ++++ .../ser/std/StdContainerSerializers.java | 81 + .../ser/std/StdDelegatingSerializer.java | 240 ++ .../databind/ser/std/StdJdkSerializers.java | 175 + .../databind/ser/std/StdKeySerializer.java | 51 + .../databind/ser/std/StdKeySerializers.java | 95 + .../databind/ser/std/StdScalarSerializer.java | 65 + .../databind/ser/std/StdSerializer.java | 280 ++ .../databind/ser/std/StringSerializer.java | 54 + .../databind/ser/std/TimeZoneSerializer.java | 35 + .../databind/ser/std/ToStringSerializer.java | 93 + .../ser/std/TokenBufferSerializer.java | 78 + .../databind/ser/std/UUIDSerializer.java | 112 + .../jackson/databind/type/ArrayType.java | 257 ++ .../jackson/databind/type/ClassKey.java | 97 + .../databind/type/CollectionLikeType.java | 201 + .../jackson/databind/type/CollectionType.java | 103 + .../jackson/databind/type/HierarchicType.java | 84 + .../jackson/databind/type/MapLikeType.java | 249 ++ .../jackson/databind/type/MapType.java | 139 + .../jackson/databind/type/SimpleType.java | 249 ++ .../jackson/databind/type/TypeBase.java | 147 + .../jackson/databind/type/TypeBindings.java | 338 ++ .../jackson/databind/type/TypeFactory.java | 1058 ++++++ .../jackson/databind/type/TypeModifier.java | 36 + .../jackson/databind/type/TypeParser.java | 132 + .../jackson/databind/type/package-info.java | 10 + .../jackson/databind/util/Annotations.java | 24 + .../jackson/databind/util/ArrayBuilders.java | 358 ++ .../jackson/databind/util/BeanUtil.java | 194 + .../util/ByteBufferBackedInputStream.java | 39 + .../util/ByteBufferBackedOutputStream.java | 27 + .../jackson/databind/util/ClassUtil.java | 688 ++++ .../jackson/databind/util/Converter.java | 66 + .../jackson/databind/util/EmptyIterator.java | 33 + .../jackson/databind/util/EnumResolver.java | 147 + .../jackson/databind/util/EnumValues.java | 96 + .../databind/util/ISO8601DateFormat.java | 64 + .../jackson/databind/util/ISO8601Utils.java | 259 ++ .../jackson/databind/util/JSONPObject.java | 92 + .../databind/util/JSONWrappedObject.java | 107 + .../jackson/databind/util/LRUMap.java | 58 + .../jackson/databind/util/LinkedNode.java | 45 + .../databind/util/NameTransformer.java | 135 + .../jackson/databind/util/Named.java | 8 + .../jackson/databind/util/ObjectBuffer.java | 252 ++ .../jackson/databind/util/ObjectIdMap.java | 38 + .../databind/util/PrimitiveArrayBuilder.java | 180 + .../jackson/databind/util/Provider.java | 24 + .../jackson/databind/util/RootNameLookup.java | 63 + .../util/SimpleBeanPropertyDefinition.java | 234 ++ .../jackson/databind/util/StdConverter.java | 44 + .../jackson/databind/util/StdDateFormat.java | 422 +++ .../jackson/databind/util/TokenBuffer.java | 1760 +++++++++ .../jackson/databind/util/ViewMatcher.java | 77 + .../jackson/databind/util/package-info.java | 4 + 496 files changed, 111483 insertions(+) create mode 100644 fine-jackson/lib/hamcrest-core-1.3.jar create mode 100644 fine-jackson/resources/META-INF/LICENSE create mode 100644 fine-jackson/resources/META-INF/NOTICE create mode 100644 fine-jackson/resources/META-INF/services/com.fasterxml.jackson.core.JsonFactory create mode 100644 fine-jackson/resources/META-INF/services/com.fasterxml.jackson.core.ObjectCodec create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JacksonAnnotation.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JacksonAnnotationsInside.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JacksonInject.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonAnyGetter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonAnySetter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonAutoDetect.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonBackReference.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonCreator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonFilter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonFormat.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonGetter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIdentityInfo.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIdentityReference.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIgnore.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIgnoreProperties.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIgnoreType.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonInclude.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonManagedReference.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonProperty.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonPropertyDescription.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonPropertyOrder.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonRawValue.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonRootName.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonSetter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonSubTypes.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonTypeId.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonTypeInfo.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonTypeName.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonUnwrapped.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonValue.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonView.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/ObjectIdGenerator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/ObjectIdGenerators.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/PropertyAccessor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/Base64Variant.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/Base64Variants.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/FormatSchema.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/JsonEncoding.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/JsonFactory.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/JsonGenerationException.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/JsonGenerator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/JsonLocation.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/JsonParseException.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/JsonParser.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/JsonPointer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/JsonProcessingException.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/JsonStreamContext.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/JsonToken.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/JsonTokenId.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/ObjectCodec.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/PrettyPrinter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/SerializableString.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/TreeCodec.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/TreeNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/Version.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/Versioned.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/base/GeneratorBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/base/ParserBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/base/ParserMinimalBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/base/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/format/DataFormatDetector.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/format/DataFormatMatcher.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/format/InputAccessor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/format/MatchStrength.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/format/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/BaseReader.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/CharTypes.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/CharacterEscapes.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/IOContext.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/InputDecorator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/JsonStringEncoder.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/MergedStream.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/NumberInput.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/NumberOutput.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/OutputDecorator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/SegmentedStringWriter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/SerializedString.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/UTF32Reader.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/io/UTF8Writer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/json/ByteSourceJsonBootstrapper.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/json/DupDetector.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/json/JsonGeneratorImpl.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/json/JsonReadContext.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/json/JsonWriteContext.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/json/PackageVersion.java.in create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/json/ReaderBasedJsonParser.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/json/UTF8JsonGenerator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/json/UTF8StreamJsonParser.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/json/WriterBasedJsonGenerator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/json/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/sym/BytesToNameCanonicalizer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/sym/CharsToNameCanonicalizer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/sym/Name.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/sym/Name1.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/sym/Name2.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/sym/Name3.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/sym/NameN.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/sym/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/type/ResolvedType.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/type/TypeReference.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/type/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/ArraysCompat.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/BufferRecycler.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/ByteArrayBuilder.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/DefaultPrettyPrinter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/Instantiatable.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/InternCache.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/JsonGeneratorDelegate.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/JsonParserDelegate.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/JsonParserSequence.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/MinimalPrettyPrinter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/TextBuffer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/VersionUtil.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/core/util/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/AbstractTypeResolver.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/AnnotationIntrospector.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/BeanDescription.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/BeanProperty.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/DatabindContext.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/DeserializationConfig.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/DeserializationContext.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/DeserializationFeature.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/InjectableValues.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/JavaType.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/JsonDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/JsonMappingException.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/JsonNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/JsonSerializable.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/JsonSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/KeyDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/MapperFeature.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/MappingIterator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/MappingJsonFactory.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/Module.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ObjectMapper.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ObjectReader.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ObjectWriter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/PropertyMetadata.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/PropertyName.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/PropertyNamingStrategy.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/RuntimeJsonMappingException.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/SerializationConfig.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/SerializationFeature.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/SerializerProvider.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/annotation/JacksonStdImpl.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/annotation/JsonDeserialize.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/annotation/JsonNaming.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/annotation/JsonPOJOBuilder.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/annotation/JsonSerialize.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/annotation/JsonTypeIdResolver.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/annotation/JsonTypeResolver.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/annotation/JsonValueInstantiator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/annotation/NoClass.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/annotation/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/cfg/BaseSettings.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/cfg/ConfigFeature.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/cfg/ContextAttributes.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/cfg/DeserializerFactoryConfig.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/cfg/HandlerInstantiator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/cfg/MapperConfig.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/cfg/MapperConfigBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/cfg/PackageVersion.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/cfg/PackageVersion.java.in create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/cfg/SerializerFactoryConfig.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/cfg/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/AbstractDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/BasicDeserializerFactory.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/BeanDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/BeanDeserializerBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/BeanDeserializerBuilder.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/BeanDeserializerFactory.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/BeanDeserializerModifier.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/BuilderBasedDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/ContextualDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/ContextualKeyDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/CreatorProperty.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/DataFormatReaders.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/DefaultDeserializationContext.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/DeserializationProblemHandler.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/DeserializerCache.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/DeserializerFactory.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/Deserializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/KeyDeserializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/ResolvableDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/SettableAnyProperty.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/SettableBeanProperty.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/ValueInstantiator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/ValueInstantiators.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/BeanAsArrayBuilderDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/BeanAsArrayDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/BeanPropertyMap.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/CreatorCollector.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/ExternalTypeHandler.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/FailingDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/FieldProperty.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/InnerClassProperty.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/ManagedReferenceProperty.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/MethodProperty.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/NullProvider.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/ObjectIdReader.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/ObjectIdValueProperty.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/PropertyBasedCreator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/PropertyBasedObjectIdGenerator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/PropertyValue.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/PropertyValueBuffer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/ReadableObjectId.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/SetterlessProperty.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/TypeWrappedDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/UnwrappedPropertyHandler.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/ValueInjector.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/impl/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/ArrayBlockingQueueDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/AtomicBooleanDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/AtomicReferenceDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/ByteBufferDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/CharsetDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/ClassDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/CollectionDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/ContainerDeserializerBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/DateDeserializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/DelegatingDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/EnumDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/EnumMapDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/EnumSetDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/FromStringDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/InetAddressDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/InetSocketAddressDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/JavaTypeDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/JdkDeserializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/JsonLocationInstantiator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/JsonNodeDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/MapDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/NullifyingDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/NumberDeserializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/ObjectArrayDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/PrimitiveArrayDeserializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/StackTraceElementDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/StdDelegatingDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/StdDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/StdKeyDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/StdKeyDeserializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/StdScalarDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/StdValueInstantiator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/StringArrayDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/StringCollectionDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/StringDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/ThrowableDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/TokenBufferDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/UUIDDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/UntypedObjectDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/deser/std/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/exc/IgnoredPropertyException.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/exc/InvalidFormatException.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/exc/PropertyBindingException.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/exc/UnrecognizedPropertyException.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ext/CoreXMLDeserializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ext/CoreXMLSerializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ext/DOMDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ext/DOMSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ext/OptionalHandlerFactory.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ext/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/Annotated.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/AnnotatedClass.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/AnnotatedConstructor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/AnnotatedField.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/AnnotatedMember.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/AnnotatedMethod.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/AnnotatedMethodMap.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/AnnotatedParameter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/AnnotatedWithParams.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/AnnotationMap.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/BasicBeanDescription.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/BasicClassIntrospector.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/BeanPropertyDefinition.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/ClassIntrospector.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/MemberKey.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/NopAnnotationIntrospector.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/ObjectIdInfo.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/POJOPropertiesCollector.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/POJOPropertyBuilder.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/VisibilityChecker.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/WithMember.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/introspect/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonAnyFormatVisitor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonArrayFormatVisitor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonBooleanFormatVisitor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatTypes.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitable.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitorWithSerializerProvider.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonFormatVisitorWrapper.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonIntegerFormatVisitor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonMapFormatVisitor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonNullFormatVisitor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonNumberFormatVisitor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonObjectFormatVisitor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonStringFormatVisitor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonValueFormat.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/JsonValueFormatVisitor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonFormatVisitors/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonschema/JsonSchema.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonschema/JsonSerializableSchema.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonschema/SchemaAware.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsonschema/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/NamedType.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/SubtypeResolver.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/TypeDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/TypeIdResolver.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/TypeResolverBuilder.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/TypeSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/AsArrayTypeDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/AsArrayTypeSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/AsExternalTypeDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/AsExternalTypeSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/AsPropertyTypeDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/AsPropertyTypeSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/AsWrapperTypeDeserializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/AsWrapperTypeSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/ClassNameIdResolver.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/MinimalClassNameIdResolver.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/StdSubtypeResolver.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/StdTypeResolverBuilder.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/TypeDeserializerBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/TypeIdResolverBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/TypeNameIdResolver.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/TypeSerializerBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/impl/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/jsontype/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/module/SimpleAbstractTypeResolver.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/module/SimpleDeserializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/module/SimpleKeyDeserializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/module/SimpleModule.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/module/SimpleSerializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/module/SimpleValueInstantiators.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/module/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/ArrayNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/BaseJsonNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/BigIntegerNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/BinaryNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/BooleanNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/ContainerNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/DecimalNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/DoubleNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/FloatNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/IntNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/JsonNodeCreator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/JsonNodeFactory.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/JsonNodeType.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/LongNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/MissingNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/NodeCursor.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/NullNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/NumericNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/ObjectNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/POJONode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/ShortNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/TextNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/TreeTraversingParser.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/ValueNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/node/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/AnyGetterWriter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/BasicSerializerFactory.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/BeanPropertyFilter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/BeanPropertyWriter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/BeanSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/BeanSerializerBuilder.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/BeanSerializerFactory.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/BeanSerializerModifier.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/ContainerSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/ContextualSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/DefaultSerializerProvider.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/FilterProvider.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/PropertyBuilder.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/PropertyFilter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/PropertyWriter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/ResolvableSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/SerializerCache.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/SerializerFactory.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/Serializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/BeanAsArraySerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/FailingSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/FilteredBeanPropertyWriter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/IndexedListSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/IndexedStringListSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/IteratorSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/JsonSerializerMap.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/ObjectIdWriter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/PropertyBasedObjectIdGenerator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/PropertySerializerMap.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/ReadOnlyClassToSerializerMap.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/SimpleBeanPropertyFilter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/SimpleFilterProvider.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/StringArraySerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/StringCollectionSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/TypeWrappedSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/UnknownSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/UnwrappingBeanPropertyWriter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/UnwrappingBeanSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/WritableObjectId.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/impl/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/ArraySerializerBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/AsArraySerializerBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/BeanSerializerBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/BooleanSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/ByteBufferSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/CalendarSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/ClassSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/CollectionSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/DateSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/DateTimeSerializerBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/EnumMapSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/EnumSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/EnumSetSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/FileSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/InetAddressSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/InetSocketAddressSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/IterableSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/JsonValueSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/MapProperty.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/MapSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/NonTypedScalarSerializerBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/NullSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/NumberSerializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/ObjectArraySerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/RawSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/SerializableSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/SqlDateSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/SqlTimeSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/StaticListSerializerBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/StdArraySerializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/StdContainerSerializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/StdDelegatingSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/StdJdkSerializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/StdKeySerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/StdKeySerializers.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/StdScalarSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/StdSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/StringSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/TimeZoneSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/ToStringSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/TokenBufferSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/ser/std/UUIDSerializer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/ArrayType.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/ClassKey.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/CollectionLikeType.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/CollectionType.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/HierarchicType.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/MapLikeType.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/MapType.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/SimpleType.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/TypeBase.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/TypeBindings.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/TypeFactory.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/TypeModifier.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/TypeParser.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/type/package-info.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/Annotations.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/ArrayBuilders.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/BeanUtil.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/ByteBufferBackedInputStream.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/ByteBufferBackedOutputStream.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/ClassUtil.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/Converter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/EmptyIterator.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/EnumResolver.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/EnumValues.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/ISO8601DateFormat.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/ISO8601Utils.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/JSONPObject.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/JSONWrappedObject.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/LRUMap.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/LinkedNode.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/NameTransformer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/Named.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/ObjectBuffer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/ObjectIdMap.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/PrimitiveArrayBuilder.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/Provider.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/RootNameLookup.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/SimpleBeanPropertyDefinition.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/StdConverter.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/StdDateFormat.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/TokenBuffer.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/ViewMatcher.java create mode 100644 fine-jackson/src/com/fr/third/fasterxml/jackson/databind/util/package-info.java diff --git a/fine-jackson/lib/hamcrest-core-1.3.jar b/fine-jackson/lib/hamcrest-core-1.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..9d5fe16e3dd37ebe79a36f61f5d0e1a69a653a8a GIT binary patch literal 45024 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 UgpPtD2z>DYYp}SJr5?)v0beu;=l}o! literal 0 HcmV?d00001 diff --git a/fine-jackson/resources/META-INF/LICENSE b/fine-jackson/resources/META-INF/LICENSE new file mode 100644 index 000000000..ff94ef8c4 --- /dev/null +++ b/fine-jackson/resources/META-INF/LICENSE @@ -0,0 +1,8 @@ +This copy of Jackson JSON processor annotations is licensed under the +Apache (Software) License, version 2.0 ("the License"). +See the License for details about distribution rights, and the +specific rights regarding derivate works. + +You may obtain a copy of the License at: + +http://www.apache.org/licenses/LICENSE-2.0 diff --git a/fine-jackson/resources/META-INF/NOTICE b/fine-jackson/resources/META-INF/NOTICE new file mode 100644 index 000000000..5ab1e5636 --- /dev/null +++ b/fine-jackson/resources/META-INF/NOTICE @@ -0,0 +1,20 @@ +# Jackson JSON processor + +Jackson is a high-performance, Free/Open Source JSON processing library. +It was originally written by Tatu Saloranta (tatu.saloranta@iki.fi), and has +been in development since 2007. +It is currently developed by a community of developers, as well as supported +commercially by FasterXML.com. + +## Licensing + +Jackson core and extension components may be licensed under different licenses. +To find the details that apply to this artifact see the accompanying LICENSE file. +For more information, including possible other licensing options, contact +FasterXML.com (http://fasterxml.com). + +## Credits + +A list of contributors may be found from CREDITS file, which is included +in some artifacts (usually source distributions); but is always available +from the source code management (SCM) system project uses. diff --git a/fine-jackson/resources/META-INF/services/com.fasterxml.jackson.core.JsonFactory b/fine-jackson/resources/META-INF/services/com.fasterxml.jackson.core.JsonFactory new file mode 100644 index 000000000..fd45dd9ce --- /dev/null +++ b/fine-jackson/resources/META-INF/services/com.fasterxml.jackson.core.JsonFactory @@ -0,0 +1 @@ +com.fr.third.fasterxml.jackson.core.JsonFactory diff --git a/fine-jackson/resources/META-INF/services/com.fasterxml.jackson.core.ObjectCodec b/fine-jackson/resources/META-INF/services/com.fasterxml.jackson.core.ObjectCodec new file mode 100644 index 000000000..344570b9d --- /dev/null +++ b/fine-jackson/resources/META-INF/services/com.fasterxml.jackson.core.ObjectCodec @@ -0,0 +1 @@ +com.fr.third.fasterxml.jackson.databind.ObjectMapper diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JacksonAnnotation.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JacksonAnnotation.java new file mode 100644 index 000000000..c3164a915 --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JacksonAnnotation.java @@ -0,0 +1,20 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Meta-annotation (annotations used on other annotations) + * used for marking all annotations that are + * part of Jackson package. Can be used for recognizing all + * Jackson annotations generically, and in future also for + * passing other generic annotation configuration. + */ +@Target({ElementType.ANNOTATION_TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface JacksonAnnotation +{ + // for now, a pure tag annotation, no parameters +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JacksonAnnotationsInside.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JacksonAnnotationsInside.java new file mode 100644 index 000000000..4f40174ee --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JacksonAnnotationsInside.java @@ -0,0 +1,25 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Meta-annotation (annotations used on other annotations) + * used for indicating that instead of using target annotation + * (annotation annotated with this annotation), + * Jackson should use meta-annotations it has. + * This can be useful in creating "combo-annotations" by having + * a container annotation, which needs to be annotated with this + * annotation as well as all annotations it 'contains'. + * + * @since 2.0 + */ +@Target({ElementType.ANNOTATION_TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JacksonAnnotationsInside +{ + +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JacksonInject.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JacksonInject.java new file mode 100644 index 000000000..013fb1d53 --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JacksonInject.java @@ -0,0 +1,28 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import com.fr.third.fasterxml.jackson.annotation.JacksonAnnotation; + +/** + * Jackson-specific annotation used for indicating that value of + * annotated property will be "injected", i.e. set based on value + * configured by ObjectMapper (usually on per-call basis). + * Usually property is not deserialized from JSON, although it possible + * to have injected value as default and still allow optional override + * from JSON. + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JacksonInject +{ + /** + * Logical id of the value to inject; if not specified (or specified + * as empty String), will use id based on declared type of property. + */ + public String value() default ""; +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonAnyGetter.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonAnyGetter.java new file mode 100644 index 000000000..35e0639e3 --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonAnyGetter.java @@ -0,0 +1,23 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that can be used to define a non-static, + * no-argument method or member field as something of a reverse of + * {@link JsonAnySetter} method; basically being used like a + * getter but such that contents of the returned Map (type must be + * {@link java.util.Map}) are serialized as if they were actual properties + * of the bean that contains method/field with this annotations. + * As with {@link JsonAnySetter}, only one property should be annotated + * with this annotation. + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonAnyGetter +{ +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonAnySetter.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonAnySetter.java new file mode 100644 index 000000000..f6f0f4515 --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonAnySetter.java @@ -0,0 +1,25 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that can be used to define a non-static, + * two-argument method (first argument name of property, second value + * to set), to be used as a "fallback" handler + * for all otherwise unrecognized properties found from JSON content. + * It is similar to {@link javax.xml.bind.annotation.XmlAnyElement} + * in behavior; and can only be used to denote a single property + * per type. + *

+ * If used, all otherwise unmapped key-value pairs from JSON Object values + * are added to the property (of type Map or bean). + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonAnySetter +{ +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonAutoDetect.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonAutoDetect.java new file mode 100644 index 000000000..460f4d0be --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonAutoDetect.java @@ -0,0 +1,126 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.lang.reflect.Member; +import java.lang.reflect.Modifier; + +/** + * Class annotation that can be used to define which kinds of Methods + * are to be detected by auto-detection. + * Auto-detection means using name conventions + * and/or signature templates to find methods to use for data binding. + * For example, so-called "getters" can be auto-detected by looking for + * public member methods that return a value, do not take argument, + * and have prefix "get" in their name. + *

+ * Pseudo-value NONE means that all auto-detection is disabled + * for the specific class that annotation is applied to (including + * its super-types, but only when resolving that class). + * Pseudo-value ALWAYS means that auto-detection is enabled + * for all method types for the class in similar way. + *

+ * The default value is ALWAYS: that is, by default, auto-detection + * is enabled for all classes unless instructed otherwise. + *

+ * Starting with version 1.5, it is also possible to use more fine-grained + * definitions, to basically define minimum visibility level needed. Defaults + * are different for different types (getters need to be public; setters can + * have any access modifier, for example). + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonAutoDetect +{ + /** + * Enumeration for possible visibility thresholds (minimum visibility) + * that can be used to limit which methods (and fields) are + * auto-detected. + */ + public enum Visibility { + /** + * Value that means that all kinds of access modifiers are acceptable, + * from private to public. + */ + ANY, + /** + * Value that means that any other access modifier other than 'private' + * is considered auto-detectable. + */ + NON_PRIVATE, + /** + * Value that means access modifiers 'protected' and 'public' are + * auto-detectable (and 'private' and "package access" == no modifiers + * are not) + */ + PROTECTED_AND_PUBLIC, + /** + * Value to indicate that only 'public' access modifier is considered + * auto-detectable. + */ + PUBLIC_ONLY, + /** + * Value that indicates that no access modifiers are auto-detectable: + * this can be used to explicitly disable auto-detection for specified + * types. + */ + NONE, + + /** + * Value that indicates that default visibility level (whatever it is, + * depends on context) is to be used. This usually means that inherited + * value (from parent visibility settings) is to be used. + */ + DEFAULT; + + public boolean isVisible(Member m) { + switch (this) { + case ANY: + return true; + case NONE: + return false; + case NON_PRIVATE: + return !Modifier.isPrivate(m.getModifiers()); + case PROTECTED_AND_PUBLIC: + if (Modifier.isProtected(m.getModifiers())) { + return true; + } + // fall through to public case: + case PUBLIC_ONLY: + return Modifier.isPublic(m.getModifiers()); + default: + return false; + } + } + } + + /** + * Minimum visibility required for auto-detecting regular getter methods. + */ + Visibility getterVisibility() default Visibility.DEFAULT; + + /** + * Minimum visibility required for auto-detecting is-getter methods. + */ + Visibility isGetterVisibility() default Visibility.DEFAULT; + + /** + * Minimum visibility required for auto-detecting setter methods. + */ + Visibility setterVisibility() default Visibility.DEFAULT; + + /** + * Minimum visibility required for auto-detecting Creator methods, + * except for no-argument constructors (which are always detected + * no matter what). + */ + Visibility creatorVisibility() default Visibility.DEFAULT; + + /** + * Minimum visibility required for auto-detecting member fields. + */ + Visibility fieldVisibility() default Visibility.DEFAULT; +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonBackReference.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonBackReference.java new file mode 100644 index 000000000..c08c5db70 --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonBackReference.java @@ -0,0 +1,39 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate that associated property is part of + * two-way linkage between fields; and that its role is "child" (or "back") link. + * Value type of the property must be a bean: it can not be a Collection, Map, + * Array or enumeration. + * Linkage is handled such that the property + * annotated with this annotation is not serialized; and during deserialization, + * its value is set to instance that has the "managed" (forward) link. + *

+ * All references have logical name to allow handling multiple linkages; typical case + * would be that where nodes have both parent/child and sibling linkages. If so, + * pairs of references should be named differently. + * It is an error for a class to have multiple back references with same name, + * even if types pointed are different. + *

+ * Note: only methods and fields can be annotated with this annotation: constructor + * arguments should NOT be annotated, as they can not be either managed or back + * references. + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.FIELD, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonBackReference +{ + /** + * Logical have for the reference property pair; used to link managed and + * back references. Default name can be used if there is just single + * reference pair (for example, node class that just has parent/child linkage, + * consisting of one managed reference and matching back reference) + */ + public String value() default "defaultReference"; +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonCreator.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonCreator.java new file mode 100644 index 000000000..ca429aed7 --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonCreator.java @@ -0,0 +1,36 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that can be used to define constructors and factory + * methods as one to use for instantiating new instances of the associated + * class. + *

+ * NOTE: when annotating creator methods (constructors, factory methods), + * method must either be: + *

    + *
  • Single-argument constructor/factory method without {@link JsonProperty} + * annotation for the argument: if so, this is so-called "delegate creator", + * in which case Jackson first binds JSON into type of the argument, and + * then calls creator + *
  • + *
  • Constructor/factory method where every argument is annotated with + * either {@link JsonProperty} or {@link JacksonInject}, to indicate name + * of property to bind to + *
  • + *
+ * Also note that all {@link JsonProperty} annotations MUST use actual name + * (NOT empty String for "default"): this because Java bytecode does not + * retain names of method or constructor arguments. + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonCreator +{ + // no values, since there's no property +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonFilter.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonFilter.java new file mode 100644 index 000000000..731dd3244 --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonFilter.java @@ -0,0 +1,33 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate which logical filter is to be used + * for filtering out properties of type (class) annotated; + * association made by this annotation declaring ids of filters, + * and com.fr.third.fasterxml.jackson.databind.ObjectMapper (or objects + * it delegates to) providing matching filters by id. + *

+ * Filters to use are usually of type + * com.fr.third.fasterxml.jackson.databind.ser.BeanPropertyFilter and + * are registered through com.fr.third.fasterxml.jackson.databind.ObjectMapper + *

+ * Since 2.3, this annotation can also be used on properties (fields, methods, + * constructor parameters). + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.TYPE, + ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER // new in 2.3 +}) +@Retention(RetentionPolicy.RUNTIME) +@com.fr.third.fasterxml.jackson.annotation.JacksonAnnotation +public @interface JsonFilter +{ + /** + * Id of filter to use; if empty String (""), no filter is to be used. + */ + public String value(); +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonFormat.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonFormat.java new file mode 100644 index 000000000..f0caa72b4 --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonFormat.java @@ -0,0 +1,252 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.util.Locale; +import java.util.TimeZone; + +/** + * General-purpose annotation used for configuring details of how + * values of properties are to be serialized. + * Unlike most other Jackson annotations, annotation does not + * have specific universal interpretation: instead, effect depends on datatype + * of property being annotated (or more specifically, deserializer + * and serializer being used). + *

+ * Common uses include choosing between alternate representations -- for example, + * whether {@link java.util.Date} is to be serialized as number (Java timestamp) + * or String (such as ISO-8601 compatible time value) -- as well as configuring + * exact details with {@link #pattern} property. + *

+ * As of Jackson 2.1, known special handling include: + *

    + *
  • {@link java.util.Date}: Shape can be {@link Shape#STRING} or {@link Shape#NUMBER}; + * pattern may contain {@link java.text.SimpleDateFormat}-compatible pattern definition. + *
  • + *
+ * Jackson 2.1 added following new features: + *
    + *
  • Can now be used on Classes (types) as well, for modified default behavior, possibly + * overridden by per-property annotation + *
  • + *
  • {@link java.lang.Enum}s: Shapes {@link Shape#STRING} and {@link Shape#NUMBER} can be + * used to change between numeric (index) and textual (name or toString()); + * but it is also possible to use {@link Shape#OBJECT} to serialize (but not deserialize) + * {@link java.lang.Enum}s as JSON Objects (as if they were POJOs). NOTE: serialization + * as JSON Object only works with class annotation; + * will not work as per-property annotation. + *
  • + *
  • {@link java.util.Collection}s can be serialized as (and deserialized from) JSON Objects, + * if {@link Shape#OBJECT} is used. NOTE: can ONLY be used as class annotation; + * will not work as per-property annotation. + *
  • + *
+ * + * @since 2.0 + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, + ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonFormat +{ + /** + * Value that indicates that default {@link java.util.Locale} + * (from deserialization or serialization context) should be used: + * annotation does not define value to use. + */ + public final static String DEFAULT_LOCALE = "##default"; + + /** + * Value that indicates that default {@link java.util.TimeZone} + * (from deserialization or serialization context) should be used: + * annotation does not define value to use. + */ + public final static String DEFAULT_TIMEZONE = "##default"; + + /** + * Datatype-specific additional piece of configuration that may be used + * to further refine formatting aspects. This may, for example, determine + * low-level format String used for {@link java.util.Date} serialization; + * however, exact use is determined by specific JsonSerializer + */ + public String pattern() default ""; + + /** + * Structure to use for serialization: definition of mapping depends on datatype, + * but usually has straight-forward counterpart in data format (JSON). + * Note that commonly only a subset of shapes is available; and if 'invalid' value + * is chosen, defaults are usually used. + */ + public Shape shape() default Shape.ANY; + + /** + * {@link java.util.Locale} to use for serialization (if needed). + * Special value of {@link #DEFAULT_LOCALE} + * can be used to mean "just use the default", where default is specified + * by the serialization context, which in turn defaults to system + * defaults ({@link java.util.Locale#getDefault()}) unless explicitly + * set to another locale. + */ + public String locale() default DEFAULT_LOCALE; + + /** + * {@link java.util.TimeZone} to use for serialization (if needed). + * Special value of {@link #DEFAULT_TIMEZONE} + * can be used to mean "just use the default", where default is specified + * by the serialization context, which in turn defaults to system + * defaults ({@link java.util.TimeZone#getDefault()}) unless explicitly + * set to another locale. + */ + public String timezone() default DEFAULT_TIMEZONE; + + /* + /********************************************************** + /* Value enumeration(s), value class(es) + /********************************************************** + */ + + /** + * Value enumeration used for indicating preferred Shape; translates + * loosely to JSON types, with some extra values to indicate less precise + * choices (i.e. allowing one of multiple actual shapes) + */ + public enum Shape + { + /** + * Marker enum value that indicates "default" (or "whatever") choice; needed + * since Annotations can not have null values for enums. + */ + ANY, + + /** + * Value that indicates shape should not be structural (that is, not + * {@link #ARRAY} or {@link #OBJECT}, but can be any other shape. + */ + SCALAR, + + /** + * Value that indicates that (JSON) Array type should be used. + */ + ARRAY, + + /** + * Value that indicates that (JSON) Object type should be used. + */ + OBJECT, + + /** + * Value that indicates that a numeric (JSON) type should be used + * (but does not specify whether integer or floating-point representation + * should be used) + */ + NUMBER, + + /** + * Value that indicates that floating-point numeric type should be used + */ + NUMBER_FLOAT, + + /** + * Value that indicates that integer number type should be used + * (and not {@link #NUMBER_FLOAT}). + */ + NUMBER_INT, + + /** + * Value that indicates that (JSON) String type should be used. + */ + STRING, + + /** + * Value that indicates that (JSON) boolean type + * (true, false) should be used. + */ + BOOLEAN + ; + + public boolean isNumeric() { + return (this == NUMBER) || (this == NUMBER_INT) || (this == NUMBER_FLOAT); + } + + public boolean isStructured() { + return (this == OBJECT) || (this == ARRAY); + } + } + + /** + * Helper class used to contain information from a single {@link JsonFormat} + * annotation. + */ + public static class Value + { + private final String pattern; + private final Shape shape; + private final Locale locale; + private final TimeZone timezone; + + public Value() { + this("", Shape.ANY, "", ""); + } + + public Value(JsonFormat ann) { + this(ann.pattern(), ann.shape(), ann.locale(), ann.timezone()); + } + + public Value(String p, Shape sh, String localeStr, String tzStr) + { + this(p, sh + ,(localeStr == null || localeStr.length() == 0 || DEFAULT_LOCALE.equals(localeStr)) ? + null : new Locale(localeStr) + ,(tzStr == null || tzStr.length() == 0 || DEFAULT_TIMEZONE.equals(tzStr)) ? + null : TimeZone.getTimeZone(tzStr) + ); + } + + /** + * @since 2.1 + */ + public Value(String p, Shape sh, Locale l, TimeZone tz) + { + pattern = p; + shape = sh; + locale = l; + timezone = tz; + } + + /** + * @since 2.1 + */ + public Value withPattern(String p) { + return new Value(p, shape, locale, timezone); + } + + /** + * @since 2.1 + */ + public Value withShape(Shape s) { + return new Value(pattern, s, locale, timezone); + } + + /** + * @since 2.1 + */ + public Value withLocale(Locale l) { + return new Value(pattern, shape, l, timezone); + } + + /** + * @since 2.1 + */ + public Value withTimeZone(TimeZone tz) { + return new Value(pattern, shape, locale, tz); + } + + public String getPattern() { return pattern; } + public Shape getShape() { return shape; } + public Locale getLocale() { return locale; } + public TimeZone getTimeZone() { return timezone; } + } +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonGetter.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonGetter.java new file mode 100644 index 000000000..413e4ec31 --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonGetter.java @@ -0,0 +1,33 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that can be used to define a non-static, + * no-argument value-returning (non-void) method to be used as a "getter" + * for a logical property. + * It can be used as an alternative to more general + * {@link JsonProperty} annotation (which is the recommended choice in + * general case). + *

+ * Getter means that when serializing Object instance of class that has + * this method (possibly inherited from a super class), a call is made + * through the method, and return value will be serialized as value of + * the property. + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonGetter +{ + /** + * Defines name of the logical property this + * method is used to access ("get"); empty String means that + * name should be derived from the underlying method (using + * standard Bean name detection rules) + */ + String value() default ""; +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIdentityInfo.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIdentityInfo.java new file mode 100644 index 000000000..2166d0782 --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIdentityInfo.java @@ -0,0 +1,75 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation used for indicating that values of annotated type + * or property should be serializing so that instances either + * contain additional object identifier (in addition actual object + * properties), or as a reference that consists of an object id + * that refers to a full serialization. In practice this is done + * by serializing the first instance as full object and object + * identity, and other references to the object as reference values. + *

+ * There are two main approaches to generating object identifier: + * either using a generator (either one of standard ones, or a custom + * generator), or using a value of a property. The latter case is + * indicated by using a placeholder generator marker + * {@link ObjectIdGenerators.PropertyGenerator}; former by using explicit generator. + * Object id has to be serialized as a property in case of POJOs; + * object identity is currently NOT support for JSON Array types + * (Java arrays or Lists) or Java Map types. + *

+ * Finally, note that generator type of {@link ObjectIdGenerators.None} + * indicates that no Object Id should be included or used: it is included + * to allow suppressing Object Ids using mix-in annotations. + * + * @since 2.0 + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.TYPE, + ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonIdentityInfo +{ + /** + * Name of JSON property in which Object Id will reside: also, + * if "from property" marker generator is used, identifies + * property that will be accessed to get type id. + * If a property is used, name must match its external + * name (one defined by annotation, or derived from accessor + * name as per Java Bean Introspection rules). + *

+ * Default value is @id. + */ + public String property() default "@id"; + + /** + * Generator to use for producing Object Identifier for objects: + * either one of pre-defined generators from + * {@link ObjectIdGenerator}, or a custom generator. + * Defined as class to instantiate. + *

+ * Note that special type + * {@link ObjectIdGenerators.None} + * can be used to disable inclusion of Object Ids. + */ + public Class> generator(); + + /** + * Scope is used to define applicability of an Object Id: all ids + * must be unique within their scope; where scope is defined + * as combination of this value and generator type. + * Comparison is simple equivalence, meaning that both type + * generator type and scope class must be the same. + *

+ * Scope is used for determining how many generators are needed; + * more than one scope is typically only needed if external Object Ids + * have overlapping value domains (i.e. are only unique within some + * limited scope) + */ + public Class scope() default Object.class; +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIdentityReference.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIdentityReference.java new file mode 100644 index 000000000..ac2099efb --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIdentityReference.java @@ -0,0 +1,35 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Optional annotation that can be used for customizing details of a reference + * to Objects for which "Object Identity" is enabled (see {@link JsonIdentityInfo}). + * The main use case is that of enforcing use of Object Id even for the first + * time an Object is referenced, instead of first instance being serialized + * as full POJO. + * + * @since 2.1 + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.TYPE, + ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonIdentityReference +{ + /** + * Marker to indicate whether all referenced values are to + * be serialized as ids (true); or by serializing the + * first encountered reference as POJO and only then as id (false). + *

+ * Note that if value of 'true' is used, deserialization may require + * additional contextual information, and possibly using a custom + * id resolver -- the default handling may not be sufficient. + * + * @since 2.1 + */ + public boolean alwaysAsId() default false; +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIgnore.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIgnore.java new file mode 100644 index 000000000..f891a3c28 --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIgnore.java @@ -0,0 +1,58 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that indicates that the annotated method or field is to be + * ignored by introspection-based + * serialization and deserialization functionality. That is, it should + * not be consider a "getter", "setter" or "creator". + *

+ * In addition, starting with Jackson 1.9, if this is the only annotation + * associated with a property, it will also cause cause the whole + * property to be ignored: that is, if setter has this annotation and + * getter has no annotations, getter is also effectively ignored. + * It is still possible for different accessors to use different + * annotations; so if only "getter" is to be ignored, other accessors + * (setter or field) would need explicit annotation to prevent + * ignoral (usually {@link JsonProperty}). + *

+ * For example, a "getter" method that would otherwise denote + * a property (like, say, "getValue" to suggest property "value") + * to serialize, would be ignored and no such property would + * be output unless another annotation defines alternative method to use. + *

+ * Before version 1.9, this annotation worked purely on method-by-method (or field-by-field) + * basis; annotation on one method or field did not imply ignoring other methods + * or fields. However, with version 1.9 and above, annotations associated + * with various accessors (getter, setter, field, constructor parameter) of + * a logical property are combined; meaning that annotations in one (say, setter) + * can have effects on all of them (if getter or field has nothing indicating + * otherwise). + *

+ * Annotation is usually used just a like a marker annotation, that + * is, without explicitly defining 'value' argument (which defaults + * to true): but argument can be explicitly defined. + * This can be done to override an existing JsonIgnore by explicitly + * defining one with 'false' argument. + *

+ * Annotation is similar to {@link javax.xml.bind.annotation.XmlTransient} + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonIgnore +{ + /** + * Optional argument that defines whether this annotation is active + * or not. The only use for value 'false' if for overriding purposes + * (which is not needed often); most likely it is needed for use + * with "mix-in annotations" (aka "annotation overrides"). + * For most cases, however, default value of "true" is just fine + * and should be omitted. + */ + boolean value() default true; +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIgnoreProperties.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIgnoreProperties.java new file mode 100644 index 000000000..e5e574b0a --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIgnoreProperties.java @@ -0,0 +1,51 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation that can be used to either suppress serialization of + * properties (during serialization), or ignore processing of + * JSON properties read (during deserialization). + *

+ * Example: + *

+ * // to prevent specified fields from being serialized or deserialized
+ * // (i.e. not include in JSON output; or being set even if they were included)
+ * @JsonIgnoreProperties({ "internalId", "secretKey" })
+ * // To ignore any unknown properties in JSON input without exception:
+ * @JsonIgnoreProperties(ignoreUnknown=true)
+ *
+ *

+ * Starting with 2.0, this annotation can be applied both to classes and + * to properties. If used for both, actual set will be union of all + * ignorals: that is, you can only add properties to ignore, not remove + * or override. So you can not remove properties to ignore using + * per-property annotation. + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.TYPE, + ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonIgnoreProperties +{ + /** + * Names of properties to ignore. + */ + public String[] value() default { }; + + /** + * Property that defines whether it is ok to just ignore any + * unrecognized properties during deserialization. + * If true, all properties that are unrecognized -- that is, + * there are no setters or creators that accept them -- are + * ignored without warnings (although handlers for unknown + * properties, if any, will still be called) without + * exception. + *

+ * Does not have any effect on serialization. + */ + public boolean ignoreUnknown() default false; +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIgnoreType.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIgnoreType.java new file mode 100644 index 000000000..318d259bd --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonIgnoreType.java @@ -0,0 +1,31 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Marker annotation that indicates that all properties of annotated + * type are to be ignored during serialization and deserialization. + *

+ * Note: annotation does have boolean 'value' property (which defaults + * to 'true'), so that it is actually possible to override value + * using mix-in annotations. + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@JacksonAnnotation +public @interface JsonIgnoreType +{ + /** + * Optional argument that defines whether this annotation is active + * or not. The only use for value 'false' if for overriding purposes + * (which is not needed often); most likely it is needed for use + * with "mix-in annotations" ("annotation overrides"). + * For most cases, however, default value of "true" is just fine + * and should be omitted. + */ + boolean value() default true; + +} diff --git a/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonInclude.java b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonInclude.java new file mode 100644 index 000000000..c5f1453bb --- /dev/null +++ b/fine-jackson/src/com/fr/third/fasterxml/jackson/annotation/JsonInclude.java @@ -0,0 +1,96 @@ +package com.fr.third.fasterxml.jackson.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Annotation used to indicate when value of the annotated property (when + * used for a field, method or constructor parameter), or all + * properties of the annotated class, is to be serialized. + * Without annotation property values are always included, but by using + * this annotation one can specify simple exclusion rules to reduce + * amount of properties to write out. + * + * @since 2.0 + */ +@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.FIELD, + ElementType.TYPE, ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +@com.fr.third.fasterxml.jackson.annotation.JacksonAnnotation +public @interface JsonInclude +{ + /** + * Inclusion rule to use. + */ + public Include value() default Include.ALWAYS; + + /* + /********************************************************** + /* Value enumerations needed + /********************************************************** + */ + + /** + * Enumeration used with {@link JsonInclude} + * to define which properties + * of Java Beans are to be included in serialization. + *

+ * Note: Jackson 1.x had similarly named ("Inclusion") enumeration included + * in JsonSerialize annotation: it is not deprecated + * and this value used instead. + */ + public enum Include + { + /** + * Value that indicates that property is to be always included, + * independent of value of the property. + */ + ALWAYS, + + /** + * Value that indicates that only properties with non-null + * values are to be included. + */ + NON_NULL, + + /** + * Value that indicates that only properties that have values + * that differ from default settings (meaning values they have + * when Bean is constructed with its no-arguments constructor) + * are to be included. Value is generally not useful with + * {@link java.util.Map}s, since they have no default values; + * and if used, works same as {@link #ALWAYS}. + */ + NON_DEFAULT, + + /** + * Value that indicates that only properties that have values + * that values that are null or what is considered empty are + * not to be included. + *

+ * Default emptiness is defined for following type: + *