Class AbstractCopier<A>
java.lang.Object
com.github.benmanes.caffeine.jcache.copy.AbstractCopier<A>
- All Implemented Interfaces:
Copier
- Direct Known Subclasses:
JavaSerializationCopier
A skeleton implementation where subclasses provide the serialization strategy. Serialization is
not performed if the type is a known immutable, an array of known immutable types, or specially
handled by a known cloning strategy.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleancanDeeplyCopy(Class<?> clazz) Returns if the class has a known deep copy strategy.<T> Tcopy(T object, ClassLoader classLoader) Returns a deep copy of the object.protected abstract Objectdeserialize(A data, ClassLoader classLoader) Deserializes the data using the provided classloader.protected booleanisImmutable(Class<?> clazz) Returns if the class is an immutable type and does not need to be copied.Returns the set of Java native classes that are deeply copied.Returns the set of Java native classes that are immutable.protected <T> Troundtrip(T object, ClassLoader classLoader) Performs the serialization and deserialization, returning the copied object.protected abstract ASerializes the object.
-
Constructor Details
-
AbstractCopier
protected AbstractCopier() -
AbstractCopier
-
-
Method Details
-
javaImmutableClasses
-
javaDeepCopyStrategies
-
copy
Description copied from interface:CopierReturns a deep copy of the object. -
isImmutable
Returns if the class is an immutable type and does not need to be copied.- Parameters:
clazz- the class of the object being copied- Returns:
- if the class is an immutable type and does not need to be copied
-
canDeeplyCopy
Returns if the class has a known deep copy strategy.- Parameters:
clazz- the class of the object being copied- Returns:
- if the class has a known deep copy strategy
-
roundtrip
Performs the serialization and deserialization, returning the copied object.- Type Parameters:
T- the type of object being copied- Parameters:
object- the object to serializeclassLoader- the classloader to create the instance with- Returns:
- the deserialized object
-
serialize
-
deserialize
Deserializes the data using the provided classloader.- Parameters:
data- the serialized bytesclassLoader- the classloader to create the instance with- Returns:
- the deserialized object
-