org.kuali.rice.krad.uif.util
Class CloneUtils
java.lang.Object
   org.kuali.rice.krad.uif.util.CloneUtils
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 for
- annotationClass- - 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 check
- propertyName- - name of the property to check
- annotationClass- - 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.