You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by bu...@apache.org on 2005/01/15 02:34:04 UTC
DO NOT REPLY [Bug 33109] New: -
[BeanUtils]Copy bean properties with different names
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=33109>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=33109
Summary: [BeanUtils]Copy bean properties with different names
Product: Commons
Version: Nightly Builds
Platform: PC
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Bean Utilities
AssignedTo: commons-dev@jakarta.apache.org
ReportedBy: r.u.c.afonso@uol.com.br
In avaliable BeanUtils.copyProperties() implementation it is necessary that
properties names of origin and destiny bean must be equals. My propose is
include a overloading method in BeanUtils that receives - beyond destiny and
origin beans - a two dimensional String array with two columns. This array will
have name of properties to be copied - destiny property in first column, origin
property in second column.
Code Implementation:
private static final int TO = 0;
private static final int FROM = 1;
/**<p>Copy property values from the origin bean to the destination bean
* for cases where properties names are different. A bidimentional array
* provides properties names: destiny bean properties in first column and
* origin bean properties in secon column. To be added to
* org.apache.commons.beanutils.BeanUtils class.
*
* @param dest
* @param orig
* @param toFrom
* @throws IllegalAccessException
* @throws InvocationTargetException
* @throws NoSuchMethodException
*/
public static void copyProperties(Object dest, Object orig,
String[][] toFrom) throws IllegalAccessException,
InvocationTargetException, NoSuchMethodException {
BeanUtilsBean beanUtilsBean = BeanUtilsBean.getInstance();
for (int i = 0; i < toFrom.length; i++) {
String[] strings = toFrom[i];
Object value = beanUtilsBean.getProperty(orig, strings[FROM]);
beanUtilsBean.setProperty(dest, strings[TO], value);
}
}
Usage:
BeanFrom from = new BeanFrom(10, "my value"); // properties: keyFrom
(int), valueFrom (String)
BeanTo to = new BeanTo(); // properties: keyTo (int), valueTo (String)
String[][] table = { { "keyTo", "keyFrom" }, { "valueTo", "valueFrom" } };
copyProperties(b, a, table);
--
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org