Thanks for the patch. It's very risky to send it as a mail. Might get lost/forgotten. If you post it on the SF patches page it won't.
Aslak > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED]]On Behalf Of > [EMAIL PROTECTED] > Sent: 11. juli 2002 02:14 > To: [EMAIL PROTECTED] > Subject: Re: [Xdoclet-user] using Sets in value-objects > > > > On Wed, Jul 10, 2002 at 03:23:50PM -0700, [EMAIL PROTECTED] wrote: > + hi, > + > + look like ValueObjectTagsHandler.forAllRelation() the only > valid collection > + class is java.util.Collection. i happen to use java.util.Set in > my entity > + beans so i was working on a patch. before i work on the patch > any more i was > + wondering if this was done on purpose. please let me know either way. > > > the patch is below. it allows the user to specify Set in addition to > Collection. > > list has been quiet past couple of days. > > barbee. > > Index: > modules/ejb/src/xdoclet/modules/ejb/entity/ValueObjectTagsHandler.java > =================================================================== > RCS file: > /cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/entit > y/ValueObjectTagsHandler.java,v > retrieving revision 1.8 > diff -u -r1.8 ValueObjectTagsHandler.java > --- > modules/ejb/src/xdoclet/modules/ejb/entity/ValueObjectTagsHandl > er.java 25 Jun 2002 14:16:15 -0000 1.8 > +++ > modules/ejb/src/xdoclet/modules/ejb/entity/ValueObjectTagsHandl > er.java 11 Jul 2002 00:17:21 -0000 > @@ -389,6 +389,31 @@ > } > > /** > + * Type of the constructor for aggregates or compositions. > + * > + * @return Type of the constructor for > aggregates or compositions. > + * @exception XDocletException > + */ > + public String concreteCollectionType() throws XDocletException > + { > + String currentReturnType = > getCurrentMethod().getReturnType().getQualifiedName(); > + String res = null; > + > + if (currentReturnType.equals("java.util.Collection")) { > + res = "java.util.ArrayList"; > + } > + else if (currentReturnType.equals("java.util.Set")) { > + res = "java.util.HashSet"; > + } > + else { > + throw new XDocletException("Invalid return type (" + > + currentReturnType + > + " on aggregate or composition."); > + } > + return res; > + } > + > + /** > * Returns the data-object class name highest in the > hierarchy of derived beans. Because of possible inheritance > * between entity bean, the type of the generated getData > method must be the one of the most super class of the > * current entity bean. The current Data class must extend > the corresponding super Data class. > @@ -647,15 +672,18 @@ > } > > if (aggreg != null) { > + String currentReturnType = > getCurrentMethod().getReturnType().getQualifiedName(); > + > if (log.isDebugEnabled()) { > - log.debug("********* > METHOD=" + getCurrentMethod().getName() + " " + > getCurrentMethod().getReturnType().getQualifiedName()); > + log.debug("********* > METHOD=" + getCurrentMethod().getName() + " " + currentReturnType); > } > > // Store that we found this > field so we don't add it twice > > foundFields.put(getCurrentMethod().getName(), > getCurrentMethod().getName()); > - if > (getCurrentMethod().getReturnType().getQualifiedName().equals("jav > a.util.Collection")) { > + if > (currentReturnType.equals("java.util.Collection") || > + > currentReturnType.equals("java.util.Set")) { > if (log.isDebugEnabled()) { > - log.debug("********* > Type Collection"); > + log.debug("********* > Type Collection or Set"); > } > currentAggregateType = aggreg; > currentAggregateName = aggregName; > Index: > modules/ejb/src/xdoclet/modules/ejb/entity/resources/valueobject.xdt > =================================================================== > RCS file: > /cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/entit > y/resources/valueobject.xdt,v > retrieving revision 1.5 > diff -u -r1.5 valueobject.xdt > --- > modules/ejb/src/xdoclet/modules/ejb/entity/resources/valueobject. > xdt 10 Jul 2002 21:49:24 -0000 1.5 > +++ > modules/ejb/src/xdoclet/modules/ejb/entity/resources/valueobject. > xdt 11 Jul 2002 00:17:23 -0000 > @@ -23,7 +23,7 @@ > private boolean > <XDtEjbValueObj:currentAggregateName/>HasBeenSet = false; > </XDtMethod:ifDoesntHaveMethodTag> > <XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="type"> > - private <XDtMethod:methodTagValue tagName="ejb:value-object" > paramName="type"/> <XDtEjbValueObj:currentAggregateName/>s = new > java.util.ArrayList(); > + private <XDtMethod:methodTagValue tagName="ejb:value-object" > paramName="type"/> <XDtEjbValueObj:currentAggregateName/>s = new > <XDtEjbValueObj:concreteCollectionType/>(); > </XDtMethod:ifHasMethodTag> > </XDtEjbValueObj:forAllRelations> > > @@ -128,13 +128,13 @@ > } > </XDtMethod:ifDoesntHaveMethodTag> > <XDtMethod:ifHasMethodTag tagName="ejb:value-object" paramName="type"> > - protected java.util.Collection > added<XDtEjbValueObj:currentAggregateName/>s = new java.util.ArrayList(); > - protected java.util.Collection > removed<XDtEjbValueObj:currentAggregateName/>s = new > java.util.ArrayList(); > - protected java.util.Collection > updated<XDtEjbValueObj:currentAggregateName/>s = new > java.util.ArrayList(); > - > - public java.util.Collection > getAdded<XDtEjbValueObj:currentAggregateName/>s() { return > added<XDtEjbValueObj:currentAggregateName/>s; } > - public java.util.Collection > getRemoved<XDtEjbValueObj:currentAggregateName/>s() { return > removed<XDtEjbValueObj:currentAggregateName/>s; } > - public java.util.Collection > getUpdated<XDtEjbValueObj:currentAggregateName/>s() { return > updated<XDtEjbValueObj:currentAggregateName/>s; } > + protected <XDtMethod:methodTagValue > tagName="ejb:value-object" paramName="type"/> > added<XDtEjbValueObj:currentAggregateName/>s = new > <XDtEjbValueObj:concreteCollectionType/>(); > + protected <XDtMethod:methodTagValue > tagName="ejb:value-object" paramName="type"/> > removed<XDtEjbValueObj:currentAggregateName/>s = new > <XDtEjbValueObj:concreteCollectionType/>(); > + protected <XDtMethod:methodTagValue > tagName="ejb:value-object" paramName="type"/> > updated<XDtEjbValueObj:currentAggregateName/>s = new > <XDtEjbValueObj:concreteCollectionType/>(); > + > + public <XDtMethod:methodTagValue tagName="ejb:value-object" > paramName="type"/> > getAdded<XDtEjbValueObj:currentAggregateName/>s() { return > added<XDtEjbValueObj:currentAggregateName/>s; } > + public <XDtMethod:methodTagValue tagName="ejb:value-object" > paramName="type"/> > getRemoved<XDtEjbValueObj:currentAggregateName/>s() { return > removed<XDtEjbValueObj:currentAggregateName/>s; } > + public <XDtMethod:methodTagValue tagName="ejb:value-object" > paramName="type"/> > getUpdated<XDtEjbValueObj:currentAggregateName/>s() { return > updated<XDtEjbValueObj:currentAggregateName/>s; } > > public <XDtEjbValueObj:currentAggregateType/>[] > get<XDtEjbValueObj:currentAggregateName/>s() > { > @@ -165,9 +165,9 @@ > } > > public void clean<XDtEjbValueObj:currentAggregateName/>(){ > - this.added<XDtEjbValueObj:currentAggregateName/>s = new > java.util.ArrayList(); > - this.removed<XDtEjbValueObj:currentAggregateName/>s = new > java.util.ArrayList(); > - this.updated<XDtEjbValueObj:currentAggregateName/>s = new > java.util.ArrayList(); > + this.added<XDtEjbValueObj:currentAggregateName/>s = new > <XDtEjbValueObj:concreteCollectionType/>(); > + this.removed<XDtEjbValueObj:currentAggregateName/>s = new > <XDtEjbValueObj:concreteCollectionType/>(); > + this.updated<XDtEjbValueObj:currentAggregateName/>s = new > <XDtEjbValueObj:concreteCollectionType/>(); > } > > public void > copy<XDtEjbValueObj:currentAggregateName/>sFrom(<XDtEjbValueObj:va > lueObjectClass/> from) > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Two, two, TWO treats in one. > http://thinkgeek.com/sf > _______________________________________________ > Xdoclet-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/xdoclet-user ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Two, two, TWO treats in one. http://thinkgeek.com/sf _______________________________________________ Xdoclet-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/xdoclet-user
