T
- Type of Object Identifiers produced.public abstract class ObjectIdGenerator<T> extends Object implements Serializable
JsonIdentityInfo
).
Also defines factory methods used for creating instances
for serialization, deserialization.Modifier and Type | Class and Description |
---|---|
static class |
ObjectIdGenerator.IdKey
Simple key class that can be used as a key for
ObjectId-to-POJO mappings, when multiple ObjectId types
and scopes are used.
|
Constructor and Description |
---|
ObjectIdGenerator() |
Modifier and Type | Method and Description |
---|---|
abstract boolean |
canUseFor(ObjectIdGenerator<?> gen)
Method called to check whether this generator instance can
be used for Object Ids of specific generator type and
scope; determination is based by passing a configured
"blueprint" (prototype) instance; from which the actual
instances are created (using
newForSerialization(java.lang.Object) ). |
abstract ObjectIdGenerator<T> |
forScope(Class<?> scope)
Factory method to create a blueprint instance for specified
scope.
|
abstract T |
generateId(Object forPojo)
Method used for generating a new Object Identifier to serialize
for given POJO.
|
abstract Class<?> |
getScope() |
boolean |
isValidReferencePropertyName(String name,
Object parser)
Accessor that may be called (after verifying (via
maySerializeAsObject() )
whether given name |
abstract ObjectIdGenerator.IdKey |
key(Object key)
Method for constructing key to use for ObjectId-to-POJO maps.
|
boolean |
maySerializeAsObject()
Accessor that needs to be overridden to return
true
if the Object Id may be serialized as JSON Object; used by, for example,
JSOG handling. |
abstract ObjectIdGenerator<T> |
newForSerialization(Object context)
Factory method called to create a new instance to use for
serialization: needed since generators may have state
(next id to produce).
|
public abstract Class<?> getScope()
public abstract boolean canUseFor(ObjectIdGenerator<?> gen)
newForSerialization(java.lang.Object)
).public boolean maySerializeAsObject()
true
if the Object Id may be serialized as JSON Object; used by, for example,
JSOG handling.
The reason accessor is needed is that handling such Object Ids is
more complex and may incur additional buffering or performance overhead,
avoiding of which makes sense for common case of scalar object ids
(or native object ids some formats support).
Default implementation returns false
, so needs to be overridden
by Object-producing generators.
public boolean isValidReferencePropertyName(String name, Object parser)
maySerializeAsObject()
)
whether given namename
- Name of property to checkparser
- Parser that points to property name, in case generator needs
further verification (note: untyped, because JsonParser
is defined
in `jackson-core`, and this package does not depend on it).public abstract ObjectIdGenerator<T> forScope(Class<?> scope)
public abstract ObjectIdGenerator<T> newForSerialization(Object context)
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.
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.public abstract ObjectIdGenerator.IdKey key(Object key)
Copyright © 2008–2023 FasterXML. All rights reserved.