Class CsvMapper

  • All Implemented Interfaces:
    com.fasterxml.jackson.core.Versioned, java.io.Serializable

    public class CsvMapper
    extends com.fasterxml.jackson.databind.ObjectMapper
    Specialized ObjectMapper, with extended functionality to produce CsvSchema instances out of POJOs.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.ObjectMapper

        com.fasterxml.jackson.databind.ObjectMapper.DefaultTypeResolverBuilder, com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected LRUMap<com.fasterxml.jackson.databind.JavaType,​CsvSchema> _typedSchemas
      Simple caching for schema instances, given that they are relatively expensive to construct; this one is for typed schemas
      protected LRUMap<com.fasterxml.jackson.databind.JavaType,​CsvSchema> _untypedSchemas
      Simple caching for schema instances, given that they are relatively expensive to construct; this one is for "loose" (non-typed) schemas
      private static long serialVersionUID  
      • Fields inherited from class com.fasterxml.jackson.databind.ObjectMapper

        _configOverrides, _deserializationConfig, _deserializationContext, _injectableValues, _jsonFactory, _mixIns, _registeredModuleTypes, _rootDeserializers, _serializationConfig, _serializerFactory, _serializerProvider, _subtypeResolver, _typeFactory, DEFAULT_ANNOTATION_INTROSPECTOR, DEFAULT_BASE
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void _addSchemaProperties​(CsvSchema.Builder builder, com.fasterxml.jackson.databind.AnnotationIntrospector intr, boolean typed, com.fasterxml.jackson.databind.JavaType pojoType, com.fasterxml.jackson.databind.util.NameTransformer unwrapper)  
      protected CsvSchema.ColumnType _determineType​(java.lang.Class<?> propType)  
      protected boolean _nonPojoType​(com.fasterxml.jackson.databind.JavaType t)  
      protected CsvSchema _schemaFor​(com.fasterxml.jackson.databind.JavaType pojoType, LRUMap<com.fasterxml.jackson.databind.JavaType,​CsvSchema> schemas, boolean typed)  
      CsvMapper configure​(CsvGenerator.Feature f, boolean state)  
      CsvMapper configure​(CsvParser.Feature f, boolean state)  
      CsvMapper copy()  
      CsvMapper disable​(CsvGenerator.Feature f)  
      CsvMapper disable​(CsvParser.Feature f)  
      CsvMapper enable​(CsvGenerator.Feature f)  
      CsvMapper enable​(CsvParser.Feature f)  
      CsvFactory getFactory()
      Overridden with more specific type, since factory we have is always of type CsvFactory
      com.fasterxml.jackson.databind.ObjectReader readerWithSchemaFor​(java.lang.Class<?> pojoType)
      Convenience method which is functionally equivalent to:
      com.fasterxml.jackson.databind.ObjectReader readerWithTypedSchemaFor​(java.lang.Class<?> pojoType)
      Convenience method which is functionally equivalent to:
      CsvSchema schema()
      Convenience method that is same as
      CsvSchema schemaFor​(com.fasterxml.jackson.core.type.TypeReference<?> pojoTypeRef)  
      CsvSchema schemaFor​(com.fasterxml.jackson.databind.JavaType pojoType)
      Method that can be used to determine a CSV schema to use for given POJO type, using default serialization settings including ordering.
      CsvSchema schemaFor​(java.lang.Class<?> pojoType)  
      CsvSchema schemaWithHeader()
      Convenience method that is same as
      CsvSchema typedSchemaFor​(com.fasterxml.jackson.core.type.TypeReference<?> pojoTypeRef)  
      CsvSchema typedSchemaFor​(com.fasterxml.jackson.databind.JavaType pojoType)
      Method that can be used to determine a CSV schema to use for given POJO type, using default serialization settings including ordering.
      CsvSchema typedSchemaFor​(java.lang.Class<?> pojoType)  
      com.fasterxml.jackson.databind.ObjectWriter writerWithSchemaFor​(java.lang.Class<?> pojoType)
      Convenience method which is functionally equivalent to:
      com.fasterxml.jackson.databind.ObjectWriter writerWithTypedSchemaFor​(java.lang.Class<?> pojoType)
      Convenience method which is functionally equivalent to:
      • Methods inherited from class com.fasterxml.jackson.databind.ObjectMapper

        _assertNotNull, _checkInvalidCopy, _configAndWriteValue, _constructDefaultTypeResolverBuilder, _convert, _findRootDeserializer, _initForReading, _initForReading, _newReader, _newReader, _newWriter, _newWriter, _newWriter, _readMapAndClose, _readTreeAndClose, _readValue, _serializerProvider, _unwrapAndDeserialize, _verifyNoTrailingTokens, _verifySchemaType, _writeValueAndClose, acceptJsonFormatVisitor, acceptJsonFormatVisitor, activateDefaultTyping, activateDefaultTyping, activateDefaultTyping, activateDefaultTypingAsProperty, addHandler, addMixIn, addMixInAnnotations, canDeserialize, canDeserialize, canSerialize, canSerialize, clearProblemHandlers, configOverride, configure, configure, configure, configure, configure, constructType, convertValue, convertValue, convertValue, createArrayNode, createDeserializationContext, createGenerator, createGenerator, createGenerator, createGenerator, createGenerator, createNonBlockingByteArrayParser, createObjectNode, createParser, createParser, createParser, createParser, createParser, createParser, createParser, createParser, createParser, createParser, deactivateDefaultTyping, defaultClassIntrospector, disable, disable, disable, disable, disable, disable, disable, disableDefaultTyping, enable, enable, enable, enable, enable, enable, enable, enableDefaultTyping, enableDefaultTyping, enableDefaultTyping, enableDefaultTypingAsProperty, findAndRegisterModules, findMixInClassFor, findModules, findModules, generateJsonSchema, getDateFormat, getDeserializationConfig, getDeserializationContext, getInjectableValues, getJsonFactory, getNodeFactory, getPolymorphicTypeValidator, getPropertyNamingStrategy, getRegisteredModuleIds, getSerializationConfig, getSerializerFactory, getSerializerProvider, getSerializerProviderInstance, getSubtypeResolver, getTypeFactory, getVisibilityChecker, isEnabled, isEnabled, isEnabled, isEnabled, isEnabled, isEnabled, isEnabled, isEnabled, missingNode, mixInCount, nullNode, reader, reader, reader, reader, reader, reader, reader, reader, reader, reader, reader, readerFor, readerFor, readerFor, readerForArrayOf, readerForListOf, readerForMapOf, readerForUpdating, readerWithView, readTree, readTree, readTree, readTree, readTree, readTree, readTree, readTree, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValue, readValues, readValues, readValues, readValues, registerModule, registerModules, registerModules, registerSubtypes, registerSubtypes, registerSubtypes, setAnnotationIntrospector, setAnnotationIntrospectors, setBase64Variant, setConfig, setConfig, setDateFormat, setDefaultLeniency, setDefaultMergeable, setDefaultPrettyPrinter, setDefaultPropertyInclusion, setDefaultPropertyInclusion, setDefaultSetterInfo, setDefaultTyping, setDefaultVisibility, setFilterProvider, setFilters, setHandlerInstantiator, setInjectableValues, setLocale, setMixInAnnotations, setMixInResolver, setMixIns, setNodeFactory, setPolymorphicTypeValidator, setPropertyInclusion, setPropertyNamingStrategy, setSerializationInclusion, setSerializerFactory, setSerializerProvider, setSubtypeResolver, setTimeZone, setTypeFactory, setVisibility, setVisibility, setVisibilityChecker, tokenStreamFactory, treeAsTokens, treeToValue, updateValue, valueToTree, version, writer, writer, writer, writer, writer, writer, writer, writer, writer, writer, writerFor, writerFor, writerFor, writerWithDefaultPrettyPrinter, writerWithType, writerWithType, writerWithType, writerWithView, writeTree, writeTree, writeValue, writeValue, writeValue, writeValue, writeValue, writeValueAsBytes, writeValueAsString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • _untypedSchemas

        protected final LRUMap<com.fasterxml.jackson.databind.JavaType,​CsvSchema> _untypedSchemas
        Simple caching for schema instances, given that they are relatively expensive to construct; this one is for "loose" (non-typed) schemas
      • _typedSchemas

        protected final LRUMap<com.fasterxml.jackson.databind.JavaType,​CsvSchema> _typedSchemas
        Simple caching for schema instances, given that they are relatively expensive to construct; this one is for typed schemas
    • Constructor Detail

      • CsvMapper

        public CsvMapper()
      • CsvMapper

        protected CsvMapper​(CsvMapper src)
        Copy-constructor, mostly used to support copy().

        NOTE: ObjectMapper had this method since 2.1.

        Since:
        2.5
    • Method Detail

      • copy

        public CsvMapper copy()
        Overrides:
        copy in class com.fasterxml.jackson.databind.ObjectMapper
        Since:
        2.5
      • getFactory

        public CsvFactory getFactory()
        Overridden with more specific type, since factory we have is always of type CsvFactory
        Overrides:
        getFactory in class com.fasterxml.jackson.databind.ObjectMapper
      • readerWithSchemaFor

        public com.fasterxml.jackson.databind.ObjectReader readerWithSchemaFor​(java.lang.Class<?> pojoType)
        Convenience method which is functionally equivalent to:
          reader(pojoType).withSchema(schemaFor(pojoType));
        
        that is, constructs a ObjectReader which both binds to specified type and uses "loose" CsvSchema introspected from specified type (one without strict inferred typing).

        Parameters:
        pojoType - Type used both for data-binding (result type) and for schema introspection. NOTE: must NOT be an array or Collection type, since these only make sense for data-binding (like arrays of objects to bind), but not for schema construction (no CSV types can be mapped to arrays or Collections)
      • readerWithTypedSchemaFor

        public com.fasterxml.jackson.databind.ObjectReader readerWithTypedSchemaFor​(java.lang.Class<?> pojoType)
        Convenience method which is functionally equivalent to:
          reader(pojoType).withSchema(typedSchemaFor(pojoType));
        
        that is, constructs a ObjectReader which both binds to specified type and uses "strict" CsvSchema introspected from specified type (one where typing is inferred).
      • writerWithSchemaFor

        public com.fasterxml.jackson.databind.ObjectWriter writerWithSchemaFor​(java.lang.Class<?> pojoType)
        Convenience method which is functionally equivalent to:
          writer(pojoType).with(schemaFor(pojoType));
        
        that is, constructs a ObjectWriter which both binds to specified type and uses "loose" CsvSchema introspected from specified type (one without strict inferred typing).

        Parameters:
        pojoType - Type used both for data-binding (result type) and for schema introspection. NOTE: must NOT be an array or Collection type, since these only make sense for data-binding (like arrays of objects to bind), but not for schema construction (no root-level CSV types can be mapped to arrays or Collections)
      • writerWithTypedSchemaFor

        public com.fasterxml.jackson.databind.ObjectWriter writerWithTypedSchemaFor​(java.lang.Class<?> pojoType)
        Convenience method which is functionally equivalent to:
          writer(pojoType).with(typedSchemaFor(pojoType));
        
        that is, constructs a ObjectWriter which both binds to specified type and uses "strict" CsvSchema introspected from specified type (one where typing is inferred).
      • schemaWithHeader

        public CsvSchema schemaWithHeader()
        Convenience method that is same as
           CsvSchema.emptySchema().withHeader();
        
        and returns a CsvSchema instance that uses default configuration with additional setting that the first content line contains intended column names.
        Since:
        2.5
      • schema

        public CsvSchema schema()
        Convenience method that is same as
           CsvSchema.emptySchema()
        
        that is, returns an "empty" Schema; one with default values and no column definitions.
        Since:
        2.5
      • schemaFor

        public CsvSchema schemaFor​(com.fasterxml.jackson.databind.JavaType pojoType)
        Method that can be used to determine a CSV schema to use for given POJO type, using default serialization settings including ordering. Definition will not be strictly typed (that is, all columns are just defined to be exposed as String tokens).
      • schemaFor

        public final CsvSchema schemaFor​(java.lang.Class<?> pojoType)
      • schemaFor

        public final CsvSchema schemaFor​(com.fasterxml.jackson.core.type.TypeReference<?> pojoTypeRef)
      • typedSchemaFor

        public CsvSchema typedSchemaFor​(com.fasterxml.jackson.databind.JavaType pojoType)
        Method that can be used to determine a CSV schema to use for given POJO type, using default serialization settings including ordering. Definition WILL be strictly typed: that is, code will try to determine type limitations which may make parsing more efficient (especially for numeric types like java.lang.Integer).
      • typedSchemaFor

        public final CsvSchema typedSchemaFor​(java.lang.Class<?> pojoType)
      • typedSchemaFor

        public final CsvSchema typedSchemaFor​(com.fasterxml.jackson.core.type.TypeReference<?> pojoTypeRef)
      • _schemaFor

        protected CsvSchema _schemaFor​(com.fasterxml.jackson.databind.JavaType pojoType,
                                       LRUMap<com.fasterxml.jackson.databind.JavaType,​CsvSchema> schemas,
                                       boolean typed)
      • _nonPojoType

        protected boolean _nonPojoType​(com.fasterxml.jackson.databind.JavaType t)
      • _addSchemaProperties

        protected void _addSchemaProperties​(CsvSchema.Builder builder,
                                            com.fasterxml.jackson.databind.AnnotationIntrospector intr,
                                            boolean typed,
                                            com.fasterxml.jackson.databind.JavaType pojoType,
                                            com.fasterxml.jackson.databind.util.NameTransformer unwrapper)