[argouml-dev] Re: Multiplicity Questions
Bob Tarling <[email protected]> Wed, 4 Apr 2012 17:54:31 +0100
| Newsgroups | gmane.comp.version-control.subversion.rapidsvn.devel,gmane.comp.lang.uml.argouml.user |
|---|---|
| Message-ID | <CAKWB3RSRGccS+9eyAXAmgzVeCMc3wjQR3vEtg68qBh_5GoX3+w__10954.0221085355$1333558485$gmane$org@mail.gmail.com> |
------=_Part_13421_158764744.1333558475792 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit I'll investigate when I get home from work. Could we move this conversation to the dev list please and make this the last one to cc users Regards Bob On 4 April 2012 15:32, Mark Fortner <[email protected]> wrote: > I've fixed the multiplicity issues and altered the GeneratorJava class to > return Lists instead of Vectors. However, I can't seem to get the > generateVisibility method to give me the appropriate visibility. Here's > what's happening: > > - When I debug into the method I find that a call > to Model.getFacade().isPublic(obj) is always returning true. It is being > passed an AssociationEndImpl object, and when you get its visibility it > returns Public. When I try to inspect the AssociationEnd all I get are a > ton of MOF IDs, and maps and lots of useless crap but no attribute called > visibility that I can inspect. > > - When I make a call to getName on the Association, it returns null > for both association ends, despite the fact that one of the association > ends is named. > > My thought is that the Property panel is setting some other attribute of > the Association End to private. But I can't really confirm this. Does > anyone have any suggestions for how to proceed further? > > Mark > > > On Thu, Mar 29, 2012 at 8:11 AM, Mark Fortner <[email protected]> wrote: > >> I've created an issue for this: >> http://argouml.tigris.org/issues/show_bug.cgi?id=6421 >> >> If I get a chance this weekend, I'll take a look at the existing code for >> this. >> >> Cheers, >> >> Mark >> >> >> >> On Wed, Mar 28, 2012 at 9:33 AM, Mark Fortner <[email protected]>wrote: >> >>> Thanks, Tom! >>> >>> I knew there had to be some UML-specific thing that I needed to do to >>> get the employeeList in the right place. >>> >>> As for generating the appropriate type, (ArrayLists vs Vectors), my >>> thought was that I'd simply generate: >>> >>> List<Employee> employeeList; >>> >>> >>> And let the user create the right-side of declaration if they want after >>> the code has been generated. >>> >>> Is there currently a preference that allows the user to specify what >>> version of Java they want to use? Perhaps using the Java profile? Since >>> Oracle doesn't support 1.4 anymore, is there a reason that we would need to >>> support the non-generic list? >>> >>> Mark >>> >>> >>> >>> On Wed, Mar 28, 2012 at 8:32 AM, Tom Morris <[email protected]> wrote: >>> >>>> On Wed, Mar 28, 2012 at 11:06 AM, Mark Fortner <[email protected]> >>>> wrote: >>>> > Hi Linus, >>>> > I created the association again, clicked on the link in the >>>> Properties panel >>>> > to go to the Department association end, and then clicked Private. >>>> When I >>>> > looked at the source tab, it still showed up as public. Oddly >>>> enough, on >>>> > the diagram we see "-employeeList" indicating that the association >>>> end is >>>> > private. >>>> >>>> I've lost track of the ends now, but my impression from the original >>>> message was that you were changing the visibility on the wrong >>>> association end. Remember that it's the *far* end that you need to >>>> change for things like visibility and navigability. >>>> >>>> > What's also odd is the fact that Employee also ends up with a public >>>> Vector >>>> > employeeList declaration. >>>> >>>> Is the association navigable in both directions? (the default) If so, >>>> you'll get data structures on both ends to allow you to get to the >>>> other end. Set isNavigable to false on the end opposite where you >>>> want the data structure to disappear from. >>>> >>>> > I suspect changing Vectors into generified Lists, and fixing the >>>> > Multiplicity=1 issue are probably trivial changes and I'll look into >>>> that >>>> > within the next few days. >>>> >>>> Support for UML Templates and Java generics is only partially >>>> implemented. You could probably special case the code generation for >>>> this specific use case without generics support, but you might need to >>>> take backward compatibility into account (e.g. provide a preference >>>> setting for what type to generate). >>>> >>>> Note also that ArrayList and Vector have slightly different semantics, >>>> particularly vis a vis synchronization, so the two types aren't >>>> completely interchangeable. >>>> >>>> Tom >>>> >>>> ------------------------------------------------------ >>>> >>>> http://argouml.tigris.org/ds/viewMessage.do?dsForumId=449&dsMessageId=2941640 >>>> >>>> To unsubscribe from this discussion, e-mail: [ >>>> [email protected]]. >>>> >>> >>> >> > ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=449&dsMessageId=2944620 To unsubscribe from this discussion, e-mail: [[email protected]]. ------=_Part_13421_158764744.1333558475792 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I'll investigate when I get home from work.<div><br></div><div>Could we= move this conversation to the dev list please and make this the last one t= o cc users</div><div><br></div><div>Regards</div><div><br></div><div>Bob<br= > <br><div class=3D"gmail_quote">On 4 April 2012 15:32, Mark Fortner <span di= r=3D"ltr"><<a href=3D"mailto:[email protected]">[email protected]</a= >></span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 = 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> I've fixed the multiplicity issues and altered the GeneratorJava class = to return Lists instead of Vectors. =A0However, I can't seem to get the= generateVisibility method to give me the appropriate visibility. =A0Here&#= 39;s what's happening:<div> <ul><li>When I debug into the method I find that a call to=A0Model.getFacad= e().isPublic(obj) is always returning true. =A0It is being passed an Associ= ationEndImpl object, and when you get its visibility it returns Public. =A0= When I try to inspect the AssociationEnd all I get are a ton of MOF IDs, an= d maps and lots of useless crap but no attribute called visibility that I c= an inspect.<br> <br></li><li>When I make a call to getName on the Association, it returns n= ull for both association ends, despite the fact that one of the association= ends is named. =A0</li></ul><div>My thought is that the Property panel is = setting some other attribute of the Association End to private. =A0But I ca= n't really confirm this. =A0Does anyone have any suggestions for how to= proceed further?</div> <span class=3D"HOEnZb"><font color=3D"#888888"> <div><br></div><div>Mark</div></font></span><div><div class=3D"h5"> <br><br><div class=3D"gmail_quote">On Thu, Mar 29, 2012 at 8:11 AM, Mark Fo= rtner <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" target= =3D"_blank">[email protected]</a>></span> wrote:<br><blockquote class= =3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd= ing-left:1ex"> I've created an issue for this:<div><a href=3D"http://argouml.tigris.or= g/issues/show_bug.cgi?id=3D6421" target=3D"_blank">http://argouml.tigris.or= g/issues/show_bug.cgi?id=3D6421</a></div><div><br></div><div>If I get a cha= nce this weekend, I'll take a look at the existing code for this.</div> <div><br></div><div>Cheers,</div><div><br></div><div>Mark<div><div><br> <br><br><div class=3D"gmail_quote">On Wed, Mar 28, 2012 at 9:33 AM, Mark Fo= rtner <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" target= =3D"_blank">[email protected]</a>></span> wrote:<br><blockquote class= =3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd= ing-left:1ex"> Thanks, Tom!=A0<div><br></div><div>I knew there had to be some UML-specific= thing that I needed to do to get the employeeList in the right place.<div>= <br></div><div>As for generating the appropriate type, (ArrayLists vs Vecto= rs), my thought was that I'd simply generate:</div> <div><br></div></div><blockquote style=3D"margin:0 0 0 40px;border:none;pad= ding:0px"><div><div>List<Employee> employeeList;</div></div></blockqu= ote><div><div><br></div><div>And let the user create the right-side of decl= aration if they want after the code has been generated.</div> <div><br></div><div>Is there currently a preference that allows the user to= specify what version of Java they want to use? Perhaps using the Java prof= ile? Since Oracle doesn't support 1.4 anymore, is there a reason that w= e would need to support the non-generic list?</div> <span><font color=3D"#888888"> <div><br></div></font></span><div><span><font color=3D"#888888">Mark</font>= </span><div><div><br> <br><br><div class=3D"gmail_quote">On Wed, Mar 28, 2012 at 8:32 AM, Tom Mor= ris <span dir=3D"ltr"><<a href=3D"mailto:[email protected]" target=3D"_= blank">[email protected]</a>></span> wrote:<br><blockquote class=3D"gma= il_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-lef= t:1ex"> <div>On Wed, Mar 28, 2012 at 11:06 AM, Mark Fortner <<a href=3D"mailto:p= [email protected]" target=3D"_blank">[email protected]</a>> wrote:<br= > > Hi Linus,<br> > I created the association again, clicked on the link in the Properties= panel<br> > to go to the Department association end, and then clicked Private. =A0= When I<br> > looked at the source tab, it still showed up as public. =A0Oddly enoug= h, on<br> > the diagram we see "-employeeList" indicating that the assoc= iation end is<br> > private.<br> <br> </div>I've lost track of the ends now, but my impression from the origi= nal<br> message was that you were changing the visibility on the wrong<br> association end. =A0Remember that it's the *far* end that you need to<b= r> change for things like visibility and navigability.<br> <div><br> > What's also odd is the fact that Employee also ends up with a publ= ic Vector<br> > employeeList declaration.<br> <br> </div>Is the association navigable in both directions? (the default) =A0If = so,<br> you'll get data structures on both ends to allow you to get to the<br> other end. =A0Set isNavigable to false on the end opposite where you<br> want the data structure to disappear from.<br> <div><br> > I suspect changing Vectors into generified Lists, and fixing the<br> > Multiplicity=3D1 issue are probably trivial changes and I'll look = into that<br> > within the next few days.<br> <br> </div>Support for UML Templates and Java generics is only partially<br> implemented. =A0You could probably special case the code generation for<br> this specific use case without generics support, but you might need to<br> take backward compatibility into account (e.g. provide a preference<br> setting for what type to generate).<br> <br> Note also that ArrayList and Vector have slightly different semantics,<br> particularly vis a vis synchronization, so the two types aren't<br> completely interchangeable.<br> <br> Tom<br> <br> ------------------------------------------------------<br> <a href=3D"http://argouml.tigris.org/ds/viewMessage.do?dsForumId=3D449&= dsMessageId=3D2941640" target=3D"_blank">http://argouml.tigris.org/ds/viewM= essage.do?dsForumId=3D449&dsMessageId=3D2941640</a><br> <br> To unsubscribe from this discussion, e-mail: [<a href=3D"mailto:users-unsub= [email protected]" target=3D"_blank">[email protected]= is.org</a>].<br> </blockquote></div><br></div></div></div></div> </blockquote></div><br></div></div></div> </blockquote></div><br></div></div></div> </blockquote></div><br></div> ------=_Part_13421_158764744.1333558475792--