Class ObjectIdGenerators.StringIdGenerator

  • All Implemented Interfaces:
    java.io.Serializable
    Enclosing class:
    ObjectIdGenerators

    public static final class ObjectIdGenerators.StringIdGenerator
    extends ObjectIdGenerators.Base<java.lang.String>
    Implementation that will accept arbitrary (but unique) String Ids on deserialization, and (by default) use random UUID generation similar to ObjectIdGenerators.UUIDGenerator for generation ids.

    This generator is most useful for cases where another system creates String Ids (of arbitrary structure, if any), and Jackson only needs to keep track of id-to-Object mapping. Generation also works, although if UUIDs are always used, ObjectIdGenerators.UUIDGenerator is a better match as it will also validate ids being used.

    Since:
    2.7
    See Also:
    Serialized Form
    • Constructor Detail

      • StringIdGenerator

        public StringIdGenerator()
      • StringIdGenerator

        private StringIdGenerator​(java.lang.Class<?> scope)
    • Method Detail

      • forScope

        public ObjectIdGenerator<java.lang.String> forScope​(java.lang.Class<?> scope)
        Description copied from class: ObjectIdGenerator
        Factory method to create a blueprint instance for specified scope. Generators that do not use scope may return 'this'.
        Specified by:
        forScope in class ObjectIdGenerator<java.lang.String>
      • newForSerialization

        public ObjectIdGenerator<java.lang.String> newForSerialization​(java.lang.Object context)
        Description copied from class: ObjectIdGenerator
        Factory method called to create a new instance to use for serialization: needed since generators may have state (next id to produce).

        Note that actual type of 'context' is com.fasterxml.jackson.databind.SerializerProvider, but can not be declared here as type itself (as well as call to this object) comes from databind package.

        Specified by:
        newForSerialization in class ObjectIdGenerator<java.lang.String>
        Parameters:
        context - Serialization context object used (of type com.fasterxml.jackson.databind.SerializerProvider); may be needed by more complex generators to access contextual information such as configuration.
      • generateId

        public java.lang.String generateId​(java.lang.Object forPojo)
        Description copied from class: ObjectIdGenerator
        Method used for generating a new Object Identifier to serialize for given POJO.
        Specified by:
        generateId in class ObjectIdGenerators.Base<java.lang.String>
        Parameters:
        forPojo - POJO for which identifier is needed
        Returns:
        Object Identifier to use.