com.sun.syndication.feed.impl
public class CloneableBean extends Object implements Serializable, Cloneable
It works on all read/write properties, recursively. It support all primitive types, Strings, Collections, Cloneable objects and multi-dimensional arrays of any of them.
Field Summary | |
---|---|
static Set | BASIC_TYPES |
static Map | CONSTRUCTOR_BASIC_TYPES |
static Object[] | NO_PARAMS |
static Class[] | NO_PARAMS_DEF |
Set | _ignoreProperties |
Object | _obj |
Constructor Summary | |
---|---|
protected | CloneableBean()
Default constructor.
|
CloneableBean(Object obj)
Creates a CloneableBean to be used in a delegation pattern.
| |
CloneableBean(Object obj, Set ignoreProperties)
Creates a CloneableBean to be used in a delegation pattern.
|
Method Summary | |
---|---|
Object | beanClone()
Makes a deep bean clone of the object passed in the constructor.
|
Object | clone()
Makes a deep bean clone of the object.
|
Object | cloneArray(Object array) |
Object | cloneCollection(Collection collection) |
Object | cloneMap(Map map) |
Object | doClone(Object value) |
boolean | isBasicType(Class vClass) |
To be used by classes extending CloneableBean only.
For example:
public class Foo implements Cloneable {
private CloneableBean _cloneableBean;
public Foo() {
_cloneableBean = new CloneableBean(this);
}
public Object clone() throws CloneNotSupportedException {
return _cloneableBean.beanClone();
}
}
Parameters: obj object bean to clone.
The property names in the ignoreProperties Set will not be copied into the cloned instance. This is useful for cases where the Bean has convenience properties (properties that are actually references to other properties or properties of properties). For example SyndFeed and SyndEntry beans have convenience properties, publishedDate, author, copyright and categories all of them mapped to properties in the DC Module.
Parameters: obj object bean to clone. ignoreProperties properties to ignore when cloning.
To be used by classes using CloneableBean in a delegation pattern,
Returns: a clone of the object bean.
Throws: CloneNotSupportedException thrown if the object bean could not be cloned.
See Also: constructor.
To be used by classes extending CloneableBean. Although it works also for classes using CloneableBean in a delegation pattern, for correctness those classes should use the
Returns: a clone of the object bean.
Throws: CloneNotSupportedException thrown if the object bean could not be cloned.
See Also: beanClone method.