You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ke...@apache.org on 2007/07/20 23:51:14 UTC

svn commit: r558163 [3/3] - in /incubator/tuscany/java/sdo: impl/src/main/java/org/apache/tuscany/sdo/helper/ impl/src/main/java/org/apache/tuscany/sdo/impl/ impl/src/main/java/org/apache/tuscany/sdo/model/impl/ impl/src/main/java/org/apache/tuscany/sd...

Modified: incubator/tuscany/java/sdo/tools/templates/models/SDOFactoryClass.javajet
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/tools/templates/models/SDOFactoryClass.javajet?view=diff&rev=558163&r1=558162&r2=558163
==============================================================================
--- incubator/tuscany/java/sdo/tools/templates/models/SDOFactoryClass.javajet (original)
+++ incubator/tuscany/java/sdo/tools/templates/models/SDOFactoryClass.javajet Fri Jul 20 14:51:12 2007
@@ -150,13 +150,21 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
-	 */	
-	public void register(HelperContext scope) {
-    if(scope == null) {
-       throw new IllegalArgumentException("Scope can not be null");
-    } 
-    TypeHelperImpl th = (TypeHelperImpl)scope.getTypeHelper();
-    th.getExtendedMetaData().putPackage(NAMESPACE_URI, this);
+	 */
+	public void register(HelperContext scope) 
+	{
+		if(scope == null) {
+			throw new IllegalArgumentException("Scope can not be null");
+		}
+    
+		//Register dependent packages with provided scope
+        <%for (Iterator p=genPackage.getPackageInitializationDependencies().iterator(); p.hasNext();) { GenPackage dep = (GenPackage)p.next();%>
+		<%=dep.getImportedFactoryInterfaceName()%>.INSTANCE.register(scope);
+        <%}%>
+    
+		// Initialize this package   
+		TypeHelperImpl th = (TypeHelperImpl)scope.getTypeHelper();
+		th.getExtendedMetaData().putPackage(NAMESPACE_URI, this);
   }
 	
 	/**
@@ -250,38 +258,27 @@
 
 <%} }%>	
 
-	private static boolean isInited = false;
-
+	private static <%=factoryType%> instance = null; 
 	public static <%=factoryType%> init()
 	{
-		if (isInited) return (<%=factoryType%>)FactoryBase.getStaticFactory(<%=factoryType%>.NAMESPACE_URI);
-		<%=factoryType%> the<%=factoryType%> = new <%=factoryType%>();
-		isInited = true;
-
-		// Initialize dependencies
-  <%
-		List packages = new ArrayList(genPackage.getPackageSimpleDependencies());
-		for (Iterator pidi=genPackage.getPackageInitializationDependencies().iterator(); pidi.hasNext();) {
-			Object pkg = pidi.next();
-			if(!packages.contains(pkg)) {
-				packages.add(pkg);
-			}
-		}
-  %>
-  <%for (Iterator p=packages.iterator(); p.hasNext();) { GenPackage dep = (GenPackage)p.next();%>
-		<%=genModel.getImportedName("org.apache.tuscany.sdo.util.SDOUtil")%>.registerStaticTypes(<%=dep.getImportedFactoryInterfaceName()%>.class);
-  <%}%>
+		if (instance != null ) return instance;
+		instance = new <%=factoryType%>();
 
+		// Initialize dependent packages
+        <%for (Iterator p=genPackage.getPackageInitializationDependencies().iterator(); p.hasNext();) { GenPackage dep = (GenPackage)p.next();%>
+		<%=dep.getImportedFactoryInterfaceName()%> <%=dep.getImportedFactoryInterfaceName()%>Instance = <%=dep.getImportedFactoryInterfaceName()%>.INSTANCE;
+        <%}%>
+		
 		// Create package meta-data objects
-		the<%=factoryType%>.createMetaData();
+		instance.createMetaData();
 
 		// Initialize created meta-data
-		the<%=factoryType%>.initializeMetaData();
-
+		instance.initializeMetaData();
+		
 		// Mark meta-data to indicate it can't be changed
 		//the<%=factoryType%>.freeze(); //FB do we need to freeze / should we freeze ????
 
-		return the<%=factoryType%>;
+		return instance;
 	}
   
 	private boolean isCreated = false;
@@ -295,7 +292,7 @@
 		// Create types and their properties
       <%for (Iterator c=genPackage.getGenClasses().iterator(); c.hasNext();) { GenClass genClass = (GenClass)c.next();%>
         <%if (!genClass.isDynamic()) {%>
-          <%=genClass.getSafeUncapName()%>Type = createType(false, <%=genPackage.getClassifierID(genClass)%>);
+		<%=genClass.getSafeUncapName()%>Type = createType(false, <%=genPackage.getClassifierID(genClass)%>);
           <%for (Iterator j=genClass.getGenFeatures().iterator(); j.hasNext();) { GenFeature genFeature = (GenFeature)j.next();%>
 		createProperty(<%=!genFeature.isReferenceType()%>, <%=genClass.getSafeUncapName()%>Type,<%=genClass.getClassName()%>.INTERNAL_<%=genFeature.getUpperName()%>); 
           <%}%>
@@ -321,7 +318,7 @@
 
 		// Obtain other dependent packages
         <%for (Iterator p=genPackage.getPackageInitializationDependencies().iterator(); p.hasNext();) { GenPackage dep = (GenPackage)p.next();%>
-		<%=dep.getImportedFactoryClassName()%> <%=genPackage.getPackageInstanceVariable(dep)%> = (<%=dep.getImportedFactoryClassName()%>)FactoryBase.getStaticFactory(<%=dep.getImportedFactoryClassName()%>.NAMESPACE_URI);
+		<%=dep.getImportedFactoryClassName()%> <%=genPackage.getPackageInstanceVariable(dep)%> = (<%=dep.getImportedFactoryClassName()%>)<%=dep.getImportedFactoryInterfaceName()%>.INSTANCE;
         <%}%>
       <%}%>
       <%List annotationSources = genPackage.getAnnotationSources();%>



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org