Retrieving a stereotype'S property with a static profile [message #478482] |
Wed, 03 June 2009 07:36  |
Eclipse User |
|
|
|
Hey all,
what is the common way to retrieve a property value of a stereotype from
a staric profile?
I assumed, because of the additional code generation step, it had to be
something like this:
Weight w = (Weight)element.getAppliedStereotype(Misc::Weight);
w.getWeight();
But that causes a ClassCastException. I searched in the newsgroup, but i
didn't found the solution yet.
Regards Timothy
|
|
|
Re: Retrieving a stereotype'S property with a static profile [message #478489 is a reply to message #478482] |
Thu, 04 June 2009 03:29  |
Eclipse User |
|
|
|
In article <h05mvv$fht$1@build.eclipse.org>,
Timothy Marc <timothymarc@freenet.de> wrote:
> Hey all,
>
> what is the common way to retrieve a property value of a stereotype from
> a staric profile?
>
> I assumed, because of the additional code generation step, it had to be
> something like this:
>
> Weight w = (Weight)element.getAppliedStereotype(Misc::Weight);
> w.getWeight();
I'm using the following construct (since I use a lot of stereotypes):
public static ExecutionList isExecutionList(Class e) {
return isRCOSSt(ExecutionList.class,e); }
@SuppressWarnings("unchecked")
private static <M> M isRCOSSt(java.lang.Class<M> stClass, Element e) {
assert(e != null);
Stereotype st =
e.getAppliedStereotype("rCOS::"+stClass.getSimpleName());
if (st == null) return null;
else return (M)e.getStereotypeApplication(st); }
(sorry for the formatting).
ExecutionList is a stereotype I defined for Class. Jumping through the
hoop with the Class<M> ensures that any disappearing classes in the
generated code for the static profile lead to an immediate compilation
error.
If you introduce a common (abstract) superclass for your stereotypes,
you can get even more type safety by stating M extends Super.
Hope this helps,
Volker
--
United Nations University -
|
|
|
Re: Retrieving a stereotype'S property with a static profile [message #627667 is a reply to message #478482] |
Thu, 04 June 2009 03:29  |
Eclipse User |
|
|
|
In article <h05mvv$fht$1@build.eclipse.org>,
Timothy Marc <timothymarc@freenet.de> wrote:
> Hey all,
>
> what is the common way to retrieve a property value of a stereotype from
> a staric profile?
>
> I assumed, because of the additional code generation step, it had to be
> something like this:
>
> Weight w = (Weight)element.getAppliedStereotype(Misc::Weight);
> w.getWeight();
I'm using the following construct (since I use a lot of stereotypes):
public static ExecutionList isExecutionList(Class e) {
return isRCOSSt(ExecutionList.class,e); }
@SuppressWarnings("unchecked")
private static <M> M isRCOSSt(java.lang.Class<M> stClass, Element e) {
assert(e != null);
Stereotype st =
e.getAppliedStereotype("rCOS::"+stClass.getSimpleName());
if (st == null) return null;
else return (M)e.getStereotypeApplication(st); }
(sorry for the formatting).
ExecutionList is a stereotype I defined for Class. Jumping through the
hoop with the Class<M> ensures that any disappearing classes in the
generated code for the static profile lead to an immediate compilation
error.
If you introduce a common (abstract) superclass for your stereotypes,
you can get even more type safety by stating M extends Super.
Hope this helps,
Volker
--
United Nations University -
|
|
|
Powered by
FUDForum. Page generated in 0.05675 seconds