org.kuali.rice.krad.uif.util
Class CloneUtils
java.lang.Object
org.kuali.rice.krad.uif.util.CloneUtils
public class CloneUtils
- extends Object
Utility class for copying objects using reflection. Modified from the jCommon
library: http://www.matthicks.com/2008/05/fastest-deep-cloning.html
- Author:
- Matt Hicks, Kuali Rice Team (rice.collab@kuali.org)
Method Summary |
static
|
deepClone(O original)
|
protected static Object |
deepCloneList(Object original,
Map<Object,Object> cache,
boolean referenceCollectionCopy)
|
protected static Object |
deepCloneMap(Object original,
Map<Object,Object> cache,
boolean referenceCollectionCopy)
|
protected static Object |
deepCloneObject(Object original,
Map<Object,Object> cache)
|
static
|
deepCloneReflection(O original)
|
protected static Object |
deepCloneReflectionInternal(Object original,
Map<Object,Object> cache,
boolean referenceCollectionCopy)
|
static boolean |
fieldHasAnnotation(Class<?> clazz,
String propertyName,
Class<? extends Annotation> annotationClass)
Determines whether the property of the given class has the given annotation specified |
protected static List<Class<?>> |
getClassHierarchy(Class<?> c,
boolean includeInterfaces)
|
static Field[] |
getFields(Class<?> c,
boolean includeStatic)
|
static Field[] |
getFields(Class<?> c,
boolean includeStatic,
boolean includeTransient)
|
static Field[] |
getFields(Object object,
boolean includeStatic)
|
static Field[] |
getFields(Object object,
boolean includeStatic,
boolean includeTransient)
|
static Map<String,Annotation> |
getFieldsWithAnnotation(Class<?> clazz,
Class<? extends Annotation> annotationClass)
Retrieves all field names for the given class that have the given annotation |
protected static Object |
instantiate(Object original)
|
protected static Field |
internalField(Object object,
String fieldName)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CloneUtils
public CloneUtils()
deepClone
public static final <O> O deepClone(O original)
deepCloneReflection
public static final <O> O deepCloneReflection(O original)
throws Exception
- Throws:
Exception
deepCloneReflectionInternal
protected static final Object deepCloneReflectionInternal(Object original,
Map<Object,Object> cache,
boolean referenceCollectionCopy)
throws Exception
- Throws:
Exception
deepCloneObject
protected static Object deepCloneObject(Object original,
Map<Object,Object> cache)
throws Exception
- Throws:
Exception
deepCloneMap
protected static Object deepCloneMap(Object original,
Map<Object,Object> cache,
boolean referenceCollectionCopy)
throws Exception
- Throws:
Exception
deepCloneList
protected static Object deepCloneList(Object original,
Map<Object,Object> cache,
boolean referenceCollectionCopy)
throws Exception
- Throws:
Exception
getFieldsWithAnnotation
public static Map<String,Annotation> getFieldsWithAnnotation(Class<?> clazz,
Class<? extends Annotation> annotationClass)
- Retrieves all field names for the given class that have the given annotation
- Parameters:
clazz
- - class to find field annotations forannotationClass
- - class for annotation to find
- Returns:
- Map map containing the field name that has the annotation as a key and the
annotation instance as a value
fieldHasAnnotation
public static boolean fieldHasAnnotation(Class<?> clazz,
String propertyName,
Class<? extends Annotation> annotationClass)
- Determines whether the property of the given class has the given annotation specified
- Parameters:
clazz
- - class containing the property to checkpropertyName
- - name of the property to checkannotationClass
- - class for the annotation to look for
- Returns:
- boolean true if the field associated with the property name has the given annotation, false if not
instantiate
protected static final Object instantiate(Object original)
throws InstantiationException,
IllegalAccessException
- Throws:
InstantiationException
IllegalAccessException
getFields
public static Field[] getFields(Object object,
boolean includeStatic)
getFields
public static Field[] getFields(Object object,
boolean includeStatic,
boolean includeTransient)
getFields
public static Field[] getFields(Class<?> c,
boolean includeStatic)
getFields
public static Field[] getFields(Class<?> c,
boolean includeStatic,
boolean includeTransient)
internalField
protected static final Field internalField(Object object,
String fieldName)
getClassHierarchy
protected static List<Class<?>> getClassHierarchy(Class<?> c,
boolean includeInterfaces)
Copyright © 2005-2012 The Kuali Foundation. All Rights Reserved.