1 package org.andromda.core.simpleuml; 2 3 import java.util.Collection; 4 import java.util.Iterator; 5 import java.util.Vector; 6 7 import org.andromda.core.uml14.UMLStaticHelper; 8 import org.omg.uml.foundation.core.Classifier; 9 import org.omg.uml.foundation.core.UmlClass; 10 import org.omg.uml.modelmanagement.UmlPackage; 11 12 /*** 13 * dynamic proxy for a Package: dynamically supports the UMLPackage, 14 * and org.omg.uml.modelmanagement.UmlPackage interfaces. 15 * 16 * @author <A HREF="http://www.amowers.com">Anthony Mowers</A> 17 */ 18 public class PPackage 19 extends PModelElement 20 implements UMLPackage 21 { 22 23 public static UmlPackage newInstance( 24 UMLStaticHelper scriptHelper, 25 UmlPackage umlPackage) 26 { 27 Class[] interfaces = new Class[] 28 { 29 UMLPackage.class, 30 UmlPackage.class 31 }; 32 33 return (UmlPackage)java.lang.reflect.Proxy.newProxyInstance( 34 umlPackage.getClass().getClassLoader(), 35 interfaces, 36 new PPackage(umlPackage, scriptHelper)); 37 } 38 39 40 41 private PPackage( 42 UmlPackage umlPackage, 43 UMLStaticHelper scriptHelper) 44 { 45 super(umlPackage,scriptHelper); 46 } 47 48 public Collection getClasses() 49 { 50 UmlPackage umlPackage = (UmlPackage)modelElement; 51 Collection contents = umlPackage.getOwnedElement(); 52 Collection classProxies = new Vector(); 53 54 for (Iterator i = contents.iterator(); i.hasNext(); ) 55 { 56 Object o = i.next(); 57 if (o instanceof UmlClass) 58 { 59 o = PClassifier.newInstance(scriptHelper,(Classifier)o); 60 classProxies.add(o); 61 } 62 } 63 64 return classProxies; 65 } 66 67 }