1 package com.fasterxml.jackson.core.util; 2 3 /** 4 * Add-on interface used to indicate things that may be "blueprint" objects 5 * which can not be used as is, but are used for creating usable per-process 6 * (serialization, deserialization) instances, using 7 * {@link #createInstance} method. 8 *<p> 9 * Note that some implementations may choose to implement {@link #createInstance} 10 * by simply returning 'this': this is acceptable if instances are stateless. 11 * 12 * @see DefaultPrettyPrinter 13 * 14 * @since 2.1 15 */ 16 public interface Instantiatable<T> 17 { 18 /** 19 * Method called to ensure that we have a non-blueprint object to use; 20 * it is either this object (if stateless), or a newly created object 21 * with separate state. 22 */ createInstance()23 T createInstance(); 24 } 25