[ http://issues.apache.org/jira/browse/GRFT-99?page=comments#action_12436657 ] Dan Connelly commented on GRFT-99: ----------------------------------
Two things are needed to implement this fix: 1) A new class ManageableCollectionImpl (or ManageableCollectionWrapper if you prefer. Wraps any Collection under ManageableCollection interface. 2) A final test in ManageableCollectionUtil.getManageableCollection(Object object) that returns the wrapped Collection when object's own class is not directly a ManageableCollection. I implemented this code in a local copy for myself at the same time that I generated the JIRA. This has been working wiht no problems for lots of EMF object model testing for 2 weeks. (But I do not have a simple JUnit for you. Suggest you use a LinkedList in some object model.) It should eliminate the exception in most case for arbitrary object models where code is either not available or not easily changed. Note: I did NOT mean that the "unsupported" exception should be removed Just that it gets thrown when it really doesn't need to be. Keep throwing the exception where object is not a Collection. > ManageableCollectionUtil should not throw "unsupported" JcrMapping exception > ---------------------------------------------------------------------------- > > Key: GRFT-99 > URL: http://issues.apache.org/jira/browse/GRFT-99 > Project: Graffito > Issue Type: Improvement > Components: JCR-Mapping > Affects Versions: 1.0-a1-dev > Environment: All > Reporter: Dan Connelly > > Many times, the object model'd code cannot be altered for ocm. > To avoid the "unsupported" exception in almost all such cases, use a > delegating wrapper class to encapsulate a Collection. The wrapper class > implements MaangeableCollection. > Since delegation is a performance hit, make the test below the last resort > for *object* conversion in the method: > public static ManageableCollection getManageableCollection(Object object) > Proposed "catchall" test and program action: > if (object instanceof Collection) { > return new ManageableCollectionImpl((Collection)object); > } -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira