• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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