package com.fasterxml.jackson.core.util;

Add-on interface used to indicate things that may be "blueprint" objects which can not be used as is, but are used for creating usable per-process (serialization, deserialization) instances, using createInstance method.

Note that some implementations may choose to implement createInstance by simply returning 'this': this is acceptable if instances are stateless.

See Also:
Since:2.1
/** * Add-on interface used to indicate things that may be "blueprint" objects * which can not be used as is, but are used for creating usable per-process * (serialization, deserialization) instances, using * {@link #createInstance} method. *<p> * Note that some implementations may choose to implement {@link #createInstance} * by simply returning 'this': this is acceptable if instances are stateless. * * @see DefaultPrettyPrinter * * @since 2.1 */
public interface Instantiatable<T> {
Method called to ensure that we have a non-blueprint object to use; it is either this object (if stateless), or a newly created object with separate state.
Returns:Actual instance to use
/** * Method called to ensure that we have a non-blueprint object to use; * it is either this object (if stateless), or a newly created object * with separate state. * * @return Actual instance to use */
T createInstance(); }