[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.modeling.mdt.uml2] Re: Retrieving a stereotype'S property with a static profile

In article <h05mvv$fht$1@xxxxxxxxxxxxxxxxx>,
 Timothy Marc <timothymarc@xxxxxxxxxx> 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 -                       http://rcos.iist.unu.edu/~vs/
International Institute for Software Technology   Macau SAR, China