Class ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl
java.lang.Object
org.glassfish.pfl.dynamic.copyobject.impl.ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl
- All Implemented Interfaces:
ClassCopierOrdinaryImpl.ClassFieldCopier
- Enclosing class:
ClassCopierOrdinaryImpl
private static class ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl
extends Object
implements ClassCopierOrdinaryImpl.ClassFieldCopier
Use bridge to copy objects. Now that we are on JDK 5, this has not
been known to fail on any VM (unlike on JDK 1.4.1). Note that the
reflective copier should work now on JDK 5, due to the change in
suppressAccessChecks that supports writing to final fields.
This copier also supports @Copy annotations on fields.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate PipelineClassCopierFactory
private long[]
private Class
<?> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Copy all fields from src to dest, using oldToNew as usual to preserve aliasing.private boolean
fieldIsCopyable
(Field field) getPrimitiveFieldCopier
(Class<?> cls) getPrimitiveFieldInitializer
(Class<?> cls) toString()
-
Field Details
-
myClass
-
fieldOffsets
private long[] fieldOffsets -
fieldCopiers
-
classCopierFactory
-
superCopier
-
byteUnsafeFieldInitializer
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier byteUnsafeFieldInitializer -
charUnsafeFieldInitializer
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier charUnsafeFieldInitializer -
shortUnsafeFieldInitializer
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier shortUnsafeFieldInitializer -
intUnsafeFieldInitializer
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier intUnsafeFieldInitializer -
longUnsafeFieldInitializer
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier longUnsafeFieldInitializer -
booleanUnsafeFieldInitializer
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier booleanUnsafeFieldInitializer -
floatUnsafeFieldInitializer
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier floatUnsafeFieldInitializer -
doubleUnsafeFieldInitializer
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier doubleUnsafeFieldInitializer -
byteUnsafeFieldCopier
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier byteUnsafeFieldCopier -
charUnsafeFieldCopier
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier charUnsafeFieldCopier -
shortUnsafeFieldCopier
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier shortUnsafeFieldCopier -
intUnsafeFieldCopier
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier intUnsafeFieldCopier -
longUnsafeFieldCopier
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier longUnsafeFieldCopier -
booleanUnsafeFieldCopier
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier booleanUnsafeFieldCopier -
floatUnsafeFieldCopier
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier floatUnsafeFieldCopier -
doubleUnsafeFieldCopier
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier doubleUnsafeFieldCopier -
objectUnsafeFieldCopier
private ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier objectUnsafeFieldCopier -
objectUnsafeFieldInitializer
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier objectUnsafeFieldInitializer -
objectUnsafeFieldSourceCopier
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier objectUnsafeFieldSourceCopier -
objectUnsafeFieldResultCopier
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier objectUnsafeFieldResultCopier -
objectUnsafeFieldIdentityCopier
private static ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier objectUnsafeFieldIdentityCopier
-
-
Constructor Details
-
ClassFieldCopierUnsafeImpl
public ClassFieldCopierUnsafeImpl(Class<?> cls, PipelineClassCopierFactory ccf) throws ReflectiveCopyException - Throws:
ReflectiveCopyException
-
-
Method Details
-
getPrimitiveFieldInitializer
private ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier getPrimitiveFieldInitializer(Class<?> cls) -
getPrimitiveFieldCopier
private ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier getPrimitiveFieldCopier(Class<?> cls) -
getUnsafeFieldCopier
private ClassCopierOrdinaryImpl.ClassFieldCopierUnsafeImpl.UnsafeFieldCopier getUnsafeFieldCopier(Field fld) -
fieldIsCopyable
-
toString
-
copy
public void copy(Map<Object, Object> oldToNew, Object source, Object result) throws ReflectiveCopyExceptionDescription copied from interface:ClassCopierOrdinaryImpl.ClassFieldCopier
Copy all fields from src to dest, using oldToNew as usual to preserve aliasing. This copies all fields declared in the class, as well as in the super class.- Specified by:
copy
in interfaceClassCopierOrdinaryImpl.ClassFieldCopier
- Throws:
ReflectiveCopyException
-