1 package org.andromda.core.simpleuml; 2 3 import org.andromda.core.uml14.UMLStaticHelper; 4 import org.omg.uml.foundation.core.AssociationEnd; 5 import org.omg.uml.foundation.core.Classifier; 6 7 /*** 8 * dynamic proxy for an AssociationEnd: dynamically supports the UMLAssociationEnd, 9 * and org.omg.uml.foundation.core.AssociationEnd interfaces. 10 * 11 * @author <A HREF="http://www.amowers.com">Anthony Mowers</A> 12 */ 13 public class PAssociationEnd 14 extends PModelElement 15 implements UMLAssociationEnd 16 { 17 public static AssociationEnd newInstance( 18 UMLStaticHelper scriptHelper, 19 AssociationEnd associationEnd) 20 { 21 Class[] interfaces = { 22 UMLAssociationEnd.class, 23 AssociationEnd.class 24 }; 25 26 return (AssociationEnd)java.lang.reflect.Proxy.newProxyInstance( 27 associationEnd.getClass().getClassLoader(), 28 interfaces, 29 new PAssociationEnd(associationEnd, scriptHelper)); 30 } 31 32 33 34 protected PAssociationEnd( 35 AssociationEnd associationEnd, 36 UMLStaticHelper scriptHelper) 37 { 38 super(associationEnd,scriptHelper); 39 } 40 41 public String getRoleName() 42 { 43 String roleName = modelElement.getName(); 44 if ( (roleName == null) || (roleName.length() == 0) ) 45 { 46 AssociationEnd ae = (AssociationEnd)modelElement; 47 roleName = "The" + ae.getParticipant().getName(); 48 } 49 50 return roleName; 51 } 52 53 public Classifier getType() 54 { 55 AssociationEnd ae = (AssociationEnd)modelElement; 56 57 return PClassifier.newInstance( 58 scriptHelper, ae.getParticipant()); 59 } 60 61 public Object getId() 62 { 63 return modelElement.refMofId(); 64 } 65 66 public String getNavigable() 67 { 68 AssociationEnd ae = (AssociationEnd)modelElement; 69 70 return ae.isNavigable() ? "true" : "false"; 71 } 72 }