[jira] [Updated] (BEANUTILS-405) DynaBean should support nested dynamic structures

2011-11-06 Thread Michael Vorburger (Updated) (JIRA)

 [ 
https://issues.apache.org/jira/browse/BEANUTILS-405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Vorburger updated BEANUTILS-405:


Attachment: 0001-BEANUTILS-405-related-minor-improvement-this-is-clea.patch

Attaching small additional patch, which makes sense for the API to be clearer 
to use.

 DynaBean should support nested dynamic structures
 -

 Key: BEANUTILS-405
 URL: https://issues.apache.org/jira/browse/BEANUTILS-405
 Project: Commons BeanUtils
  Issue Type: New Feature
  Components: DynaBean
Affects Versions: 1.8.3
Reporter: Michael Vorburger
 Attachments: 
 0001-BEANUTILS-405-DynaBean-support-nested-dynamic-struct.patch, 
 0001-BEANUTILS-405-related-minor-improvement-this-is-clea.patch


 It would be useful if DynaBean would have support for nested dynamic types, 
 like e.g. EMF and SDO have.
 Currently simple types (or the content types of indexed or mapped types) must 
 be a Java language primitive (such as int, a simple object (such as a 
 java.lang.String), or a more complex object whose class is defined either by 
 the Java language.  It turns out it wouldn't be very hard at all (I've tried 
 and will attach a patch) to make some minor changes to relax this, and in 
 addition also allow the following usage:
 {noformat}DynaProperty[] adrProps = new DynaProperty[]{
 new DynaProperty(zip, Long.class)
   };
 BasicDynaClass adrDynaClass = new BasicDynaClass(Address, adrProps);
 DynaProperty[] empProps = new DynaProperty[]{
 new DynaProperty(address, java.util.Map.class,  
 adrDynaClass),
 new DynaProperty(subordinate, java.util.List.class, 
 DynaClass.class),
 new DynaProperty(firstName,   String.class),
 new DynaProperty(lastName,String.class),
 new DynaProperty(mainAddress, adrDynaClass),
 new DynaProperty(boss,DynaClass.class)
   };
 BasicDynaClass empDynaClass = new BasicDynaClass(Employee, 
 empProps);
 empDynaClass.getDynaProperty(boss).setDynaType(empDynaClass);
 empDynaClass.getDynaProperty(subordinate).setDynaType(empDynaClass);
 
 // ---
 
 DynaBean address = adrDynaClass.newInstance();
 address.set(zip, new Long(9016));
 DynaBean subordinate = empDynaClass.newInstance();
 subordinate.set(firstName, Dino);
 DynaBean boss = empDynaClass.newInstance();
 boss.set(firstName, Wilma);
 DynaBean employee = empDynaClass.newInstance();
 employee.set(firstName, Fred);
 employee.set(lastName, Flintstone);
 employee.set(mainAddress, address);
 employee.set(boss, boss);
 PropertyUtils.setProperty(employee, boss.lastName, Flintstone);
 employee.set(address, new HashMap());
 PropertyUtils.setProperty(employee, address(home), address);
 employee.set(subordinate, new ArrayList());
 ((List)employee.get(subordinate)).add(subordinate);
 {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (BEANUTILS-405) DynaBean should support nested dynamic structures

2011-11-05 Thread Michael Vorburger (Updated) (JIRA)

 [ 
https://issues.apache.org/jira/browse/BEANUTILS-405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Vorburger updated BEANUTILS-405:


Attachment: 0001-BEANUTILS-405-DynaBean-support-nested-dynamic-struct.patch

Attached proposed patch.

Same also on 
https://github.com/vorburger/apache-commons-beanutils/commit/cc76a5ee7e86877745689cbdb520d210e9971493
 (would be easier with BEANUTILS-404...)

 DynaBean should support nested dynamic structures
 -

 Key: BEANUTILS-405
 URL: https://issues.apache.org/jira/browse/BEANUTILS-405
 Project: Commons BeanUtils
  Issue Type: New Feature
  Components: DynaBean
Affects Versions: 1.8.3
Reporter: Michael Vorburger
 Attachments: 
 0001-BEANUTILS-405-DynaBean-support-nested-dynamic-struct.patch


 It would be useful if DynaBean would have support for nested dynamic types, 
 like e.g. EMF and SDO have.
 Currently simple types (or the content types of indexed or mapped types) must 
 be a Java language primitive (such as int, a simple object (such as a 
 java.lang.String), or a more complex object whose class is defined either by 
 the Java language.  It turns out it wouldn't be very hard at all (I've tried 
 and will attach a patch) to make some minor changes to relax this, and in 
 addition also allow the following usage:
 {noformat}DynaProperty[] adrProps = new DynaProperty[]{
 new DynaProperty(zip, Long.class)
   };
 BasicDynaClass adrDynaClass = new BasicDynaClass(Address, adrProps);
 DynaProperty[] empProps = new DynaProperty[]{
 new DynaProperty(address, java.util.Map.class,  
 adrDynaClass),
 new DynaProperty(subordinate, java.util.List.class, 
 DynaClass.class),
 new DynaProperty(firstName,   String.class),
 new DynaProperty(lastName,String.class),
 new DynaProperty(mainAddress, adrDynaClass),
 new DynaProperty(boss,DynaClass.class)
   };
 BasicDynaClass empDynaClass = new BasicDynaClass(Employee, 
 empProps);
 empDynaClass.getDynaProperty(boss).setDynaType(empDynaClass);
 empDynaClass.getDynaProperty(subordinate).setDynaType(empDynaClass);
 
 // ---
 
 DynaBean address = adrDynaClass.newInstance();
 address.set(zip, new Long(9016));
 DynaBean subordinate = empDynaClass.newInstance();
 subordinate.set(firstName, Dino);
 DynaBean boss = empDynaClass.newInstance();
 boss.set(firstName, Wilma);
 DynaBean employee = empDynaClass.newInstance();
 employee.set(firstName, Fred);
 employee.set(lastName, Flintstone);
 employee.set(mainAddress, address);
 employee.set(boss, boss);
 PropertyUtils.setProperty(employee, boss.lastName, Flintstone);
 employee.set(address, new HashMap());
 PropertyUtils.setProperty(employee, address(home), address);
 employee.set(subordinate, new ArrayList());
 ((List)employee.get(subordinate)).add(subordinate);
 {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira