The property panel is using a different method and I would recommend you
use that.
When you have an association end call this to return the visibility
Model.getFacade().getVisibility(myAssociationEnd)
If you want to know if the visibility is public you can compare with the
value returned by one of these
Model.getVisibilityKind().getPublic()
Model.getVisibilityKind().getPackage()
Model.getVisibilityKind().getProtected()
Model.getVisibilityKind().getPrivate()
You'll see the property panel example in VisibilityGetterSetter.get(Object
modelElement, Class<?> type)
I'm confused when you say getName on an association returns null for
association ends. You need to pass the assiocation end to getName.
Try something like this when you have an association
String assName = Model.getFacade().getName(myAssocation);
System.out.println("The association name is " + assName);
Collection assEnds = Model.getFacade().getAssociationEnds();
for (Object assEnd : assEnds) {
String assEndName = Model.getFacade().getName(assEnd);
System.out.println("The associationEnd name is " + assEndName);
Object kind = Model.getFacade().getVisibility( myAssociationEnd);
if (Model.getVisibilityKind().getPublic().equals(kind)) {
System.out.println("public");
} else if (Model.getVisibilityKind().getPackage().equals(kind)) {
System.out.println("package");
} else if (Model.getVisibilityKind().getProtected().equals(kind)) {
System.out.println("protected");
} else if (Model.getVisibilityKind().getPrivate().equals(kind)) {
System.out.println("private");
} else {
System.out.println("public");
}
}
Disclaimer - all code freetyped without checking
Does your new code generate a List with generics?
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=450&dsMessageId=2944662
To unsubscribe from this discussion, e-mail:
[[email protected]].
To be allowed to post to the list contact the mailing list moderator, email:
[[email protected]]