public final class ObjectUtils extends Object
Modifier and Type | Method and Description |
---|---|
static String |
clean(String string)
Removes all query characters from a string.
|
static boolean |
collectionContainsObjectWithIdentitcalKey(Collection<? extends PersistableBusinessObject> controlList,
PersistableBusinessObject bo)
Compares a business object with a List of
PersistableBusinessObject s to determine if an object with the same key as the BO exists in the list. |
static int |
countObjectsWithIdentitcalKey(Collection<? extends PersistableBusinessObject> collection,
PersistableBusinessObject bo)
Compares a business object with a Collection of
PersistableBusinessObject s to count how many have the same key as the BO. |
static void |
createHybridBusinessObject(BusinessObject businessObject,
BusinessObject source,
Map<String,String> template) |
static BusinessObject |
createHybridBusinessObject(Class businessObjectClass,
BusinessObject source,
Map<String,String> template)
Creates a new instance of a given BusinessObject, copying fields specified in template from the given source BO.
|
static Object |
createNewObjectFromClass(Class clazz)
This method safely creates a object from a class
Convenience method to create new object and throw a runtime exception if it cannot
If the class is an
ExternalizableBusinessObject , this method will determine the interface for the EBO and query the
appropriate module service to create a new instance. |
static Serializable |
deepCopy(Serializable src)
Uses Serialization mechanism to create a deep copy of the given Object.
|
static CopiedObject |
deepCopyForCaching(Serializable src)
Uses Serialization mechanism to create a deep copy of the given Object, and returns a CacheableObject instance containing the
deepCopy and its size in bytes.
|
static Class |
easyGetPropertyType(Object object,
String propertyName)
This method simply uses PojoPropertyUtilsBean logic to get the Class of a Class property.
|
static boolean |
equalByKeys(PersistableBusinessObject bo1,
PersistableBusinessObject bo2)
Compares two
PersistableBusinessObject instances for equality of type and key values. |
static String |
formatPropertyValue(Object propertyValue)
Based on the value type selects a formatter and returns the formatted
value as a string
|
static Object |
fromByteArray(byte[] bytes)
reconsitiutes the object that was converted into a byte array by toByteArray
|
static String |
getFormattedPropertyValue(BusinessObject businessObject,
String propertyName,
Formatter formatter)
Gets the property value from the business object, then based on the value
type select a formatter and format the value
|
static String |
getFormattedPropertyValueUsingDataDictionary(BusinessObject businessObject,
String propertyName)
References the data dictionary to find any registered formatter class then if not found checks for associated formatter for the
property type.
|
static Formatter |
getFormatterWithDataDictionary(Object bo,
String propertyName)
Returns a Formatter instance for the given property name in the given given business object.
|
static String |
getMD5Hash(Object object)
use MD5 to create a one way hash of an object
|
static String |
getNestedAttributePrefix(String attributeName)
Returns the prefix of a nested attribute name, or the empty string if the attribute name is not nested.
|
static String |
getNestedAttributePrimitive(String attributeName)
Returns the primitive part of an attribute name string.
|
static Object |
getNestedValue(Object bo,
String fieldName)
This method safely extracts either simple values OR nested values.
|
static Class |
getPropertyType(Object object,
String propertyName,
PersistenceStructureService persistenceStructureService)
Returns the type of the property in the object.
|
static Object |
getPropertyValue(Object businessObject,
String propertyName)
Returns the value of the property in the object.
|
static boolean |
isNestedAttribute(String attributeName)
Determines if a given string could represent a nested attribute of an object.
|
static boolean |
isNotNull(Object object)
This method is a OJB Proxy-safe way to test for notNull on a proxied object that may or may not be materialized yet.
|
static boolean |
isNull(Object object)
This method is a OJB Proxy-safe way to test for null on a proxied object that may or may not be materialized yet.
|
static boolean |
isWriteable(Object o,
String p,
PersistenceStructureService persistenceStructureService)
Return whether or not an attribute is writeable.
|
static void |
materializeAllSubObjects(PersistableBusinessObject bo)
This method attempts to materialize all of the proxied reference objects (ie, sub-objects) hanging off the passed-in BO
object.
|
static Class |
materializeClassForProxiedObject(Object object)
Attempts to find the Class for the given potentially proxied object
|
static void |
materializeObjects(Collection possiblyProxiedObjects)
This method runs the ObjectUtils.isNotNull() method for each item in a list of BOs.
|
static void |
materializeSubObjectsToDepth(PersistableBusinessObject bo,
int depth)
This method attempts to materialize all of the proxied reference objects (ie, sub-objects) hanging off the passed-in BO
object.
|
static void |
materializeUpdateableCollections(Object bo)
This method checks for updateable collections on the business object provided and materializes the corresponding collection proxies
|
static <T> T |
newInstance(Class<T> clazz)
Helper method for creating a new instance of the given class
|
static void |
removeObjectWithIdentitcalKey(Collection<? extends PersistableBusinessObject> controlList,
PersistableBusinessObject bo)
Compares a business object with a List of
PersistableBusinessObject s to determine if an object with the same key as the BO exists in the list. |
static BusinessObject |
retrieveObjectWithIdentitcalKey(Collection<? extends PersistableBusinessObject> controlList,
PersistableBusinessObject bo)
Compares a business object with a List of BOs to determine if an object with the same key as the BO exists in the list.
|
static void |
setObjectProperty(Formatter formatter,
Object bo,
String propertyName,
Class type,
Object propertyValue)
Sets the property of an object with the given value.
|
static void |
setObjectProperty(Object bo,
String propertyName,
Class propertyType,
Object propertyValue)
Sets the property of an object with the given value.
|
static void |
setObjectProperty(Object bo,
String propertyName,
Object propertyValue)
Sets the property of an object with the given value.
|
static void |
setObjectPropertyDeep(Object bo,
String propertyName,
Class type,
Object propertyValue)
Recursive; sets all occurences of the property in the object, its nested objects and its object lists with the given value.
|
static void |
setObjectPropertyDeep(Object bo,
String propertyName,
Class type,
Object propertyValue,
int depth) |
static byte[] |
toByteArray(Object object)
Converts the object to a byte array using the output stream.
|
public static Serializable deepCopy(Serializable src)
src
- public static CopiedObject deepCopyForCaching(Serializable src)
src
- public static byte[] toByteArray(Object object) throws Exception
object
- Exception
public static Object fromByteArray(byte[] bytes) throws Exception
bytes
- Exception
public static String getMD5Hash(Object object) throws Exception
object
- Exception
public static BusinessObject createHybridBusinessObject(Class businessObjectClass, BusinessObject source, Map<String,String> template) throws FormatException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
template
- a map defining the relationships between the fields of the newly created BO, and the source BO. For each K (key), V (value)
entry, the value of property V on the source BO will be assigned to the K property of the newly created BONoSuchMethodException
InvocationTargetException
IllegalAccessException
FormatException
MaintenanceUtils
public static void createHybridBusinessObject(BusinessObject businessObject, BusinessObject source, Map<String,String> template) throws FormatException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
public static Class easyGetPropertyType(Object object, String propertyName) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException
object
- An instance of the Class of which we're trying to get the property Class.propertyName
- The name of the property.IllegalAccessException
NoSuchMethodException
InvocationTargetException
public static Class getPropertyType(Object object, String propertyName, PersistenceStructureService persistenceStructureService)
object
- An instance of the Class for which we're trying to get the property type.propertyName
- The name of the property of the Class the Class of which we're trying to get. Dot notation is used to separate properties.
TODO: The rules about this dot notation needs to be explained in Confluence using examples.persistenceStructureService
- Needed to get the type of elements in a Collection from OJB.public static Object getPropertyValue(Object businessObject, String propertyName)
businessObject
- propertyName
- public static String getFormattedPropertyValue(BusinessObject businessObject, String propertyName, Formatter formatter)
businessObject
- BusinessObject instance that contains the propertypropertyName
- Name of property in BusinessObject to get value forformatter
- Default formatter to use (or null)public static String getFormattedPropertyValueUsingDataDictionary(BusinessObject businessObject, String propertyName)
businessObject
- BusinessObject instance that contains the propertypropertyName
- Name of property in BusinessObject to get value forpublic static String formatPropertyValue(Object propertyValue)
propertyValue
- Object value to be formattedpublic static void setObjectProperty(Object bo, String propertyName, Object propertyValue) throws FormatException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
public static void setObjectProperty(Object bo, String propertyName, Class propertyType, Object propertyValue) throws FormatException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
bo
- propertyName
- propertyType
- propertyValue
- NoSuchMethodException
InvocationTargetException
IllegalAccessException
FormatException
public static void setObjectProperty(Formatter formatter, Object bo, String propertyName, Class type, Object propertyValue) throws FormatException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
formatter
- bo
- propertyName
- type
- propertyValue
- NoSuchMethodException
InvocationTargetException
IllegalAccessException
FormatException
public static Formatter getFormatterWithDataDictionary(Object bo, String propertyName)
bo
- - business object instance with property to get formatter forpropertyName
- - name of property to get formatter forpublic static void setObjectPropertyDeep(Object bo, String propertyName, Class type, Object propertyValue) throws FormatException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
bo
- propertyName
- type
- propertyValue
- NoSuchMethodException
InvocationTargetException
IllegalAccessException
FormatException
public static void setObjectPropertyDeep(Object bo, String propertyName, Class type, Object propertyValue, int depth) throws FormatException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
public static void materializeUpdateableCollections(Object bo) throws FormatException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
bo
- The business object for which you want unpdateable, proxied collections materializedFormatException
IllegalAccessException
InvocationTargetException
NoSuchMethodException
public static String clean(String string)
string
- public static boolean equalByKeys(PersistableBusinessObject bo1, PersistableBusinessObject bo2)
PersistableBusinessObject
instances for equality of type and key values.bo1
- bo2
- public static boolean collectionContainsObjectWithIdentitcalKey(Collection<? extends PersistableBusinessObject> controlList, PersistableBusinessObject bo)
PersistableBusinessObject
s to determine if an object with the same key as the BO exists in the list.controlList
- - The list of items to checkbo
- - The BO whose keys we are looking for in the controlListpublic static int countObjectsWithIdentitcalKey(Collection<? extends PersistableBusinessObject> collection, PersistableBusinessObject bo)
PersistableBusinessObject
s to count how many have the same key as the BO.collection
- - The collection of items to checkbo
- - The BO whose keys we are looking for in the collectionpublic static void removeObjectWithIdentitcalKey(Collection<? extends PersistableBusinessObject> controlList, PersistableBusinessObject bo)
PersistableBusinessObject
s to determine if an object with the same key as the BO exists in the list. If it
does, the item is removed from the List. This is functionally similar to List.remove() that operates only on Key values.controlList
- - The list of items to checkbo
- - The BO whose keys we are looking for in the controlListpublic static BusinessObject retrieveObjectWithIdentitcalKey(Collection<? extends PersistableBusinessObject> controlList, PersistableBusinessObject bo)
controlList
- - The list of items to checkbo
- - The BO whose keys we are looking for in the controlListpublic static boolean isNestedAttribute(String attributeName)
attributeName
- public static String getNestedAttributePrefix(String attributeName)
attributeName
- public static String getNestedAttributePrimitive(String attributeName)
attributeName
- public static boolean isNull(Object object)
object
- - any object, proxied or not, materialized or notpublic static boolean isNotNull(Object object)
object
- - any object, proxied or not, materialized or notpublic static Class materializeClassForProxiedObject(Object object)
object
- the potentially proxied object to find the Class ofpublic static void materializeObjects(Collection possiblyProxiedObjects)
possiblyProxiedObjects
- - a Collection of objects that may be proxiespublic static void materializeSubObjectsToDepth(PersistableBusinessObject bo, int depth)
bo
- A valid, populated BusinessObject containing (possibly) proxied sub-objects. This object will be modified in place.depth
- int Value 0-5 indicating how deep to recurse the materialization. If a zero (0) is passed in, then no work will
be done.public static void materializeAllSubObjects(PersistableBusinessObject bo)
bo
- A valid, populated BusinessObject containing (possibly) proxied sub-objects. This object will be modified in place.public static Object getNestedValue(Object bo, String fieldName)
bo
- fieldName
- public static Object createNewObjectFromClass(Class clazz)
ExternalizableBusinessObject
, this method will determine the interface for the EBO and query the
appropriate module service to create a new instance.clazz
- public static boolean isWriteable(Object o, String p, PersistenceStructureService persistenceStructureService) throws IllegalArgumentException
o
- p
- IllegalArgumentException
public static <T> T newInstance(Class<T> clazz)
clazz
- - class of object to createCopyright © 2005-2012 The Kuali Foundation. All Rights Reserved.