Class FieldCloner
java.lang.Object
com.comphenix.protocol.reflect.cloning.FieldCloner
- All Implemented Interfaces:
Cloner
Represents a class capable of cloning objects by deeply copying its fields.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Clonerprotected InstanceProviderprotected ObjectWriter -
Constructor Summary
ConstructorsConstructorDescriptionFieldCloner(Cloner defaultCloner, InstanceProvider instanceProvider) Constructs a field cloner that copies objects by reading and writing the internal fields directly. -
Method Summary
Modifier and TypeMethodDescriptionbooleanDetermine whether the current cloner can clone the given object.Perform the clone.protected voiddefaultTransform(StructureModifier<Object> modifierSource, StructureModifier<Object> modifierDest, Cloner defaultCloner, int fieldIndex) Default implementation of the field transform.Retrieve the default cloner used to clone the content of each field.Retrieve the instance provider this cloner is using to create new, empty classes.
-
Field Details
-
defaultCloner
-
instanceProvider
-
writer
-
-
Constructor Details
-
FieldCloner
Constructs a field cloner that copies objects by reading and writing the internal fields directly.- Parameters:
defaultCloner- - the default cloner used while copying fields.instanceProvider- - used to construct new, empty copies of a given type.
-
-
Method Details
-
defaultTransform
protected void defaultTransform(StructureModifier<Object> modifierSource, StructureModifier<Object> modifierDest, Cloner defaultCloner, int fieldIndex) Default implementation of the field transform. Applies a clone operation before a field value is written.- Parameters:
modifierSource- - modifier for the original object.modifierDest- - modifier for the new cloned object.defaultCloner- - cloner to use.fieldIndex- - the current field index.
-
canClone
Description copied from interface:ClonerDetermine whether the current cloner can clone the given object. -
clone
Description copied from interface:ClonerPerform the clone.This method should never be called unless a corresponding
Cloner.canClone(Object)returns TRUE. -
getDefaultCloner
Retrieve the default cloner used to clone the content of each field.- Returns:
- Cloner used to clone fields.
-
getInstanceProvider
Retrieve the instance provider this cloner is using to create new, empty classes.- Returns:
- The instance provider in use.
-