You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2006/02/27 00:06:29 UTC

svn commit: r381196 - in /incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model: scdl/loader/impl/SCDLModelContentHandlerImpl.java types/java/impl/JavaServiceContractImpl.java

Author: jsdelfino
Date: Sun Feb 26 15:06:28 2006
New Revision: 381196

URL: http://svn.apache.org/viewcvs?rev=381196&view=rev
Log:
added support for Java interfaces specified in .componentType SCDL side files

Modified:
    incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java
    incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/types/java/impl/JavaServiceContractImpl.java

Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java?rev=381196&r1=381195&r2=381196&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/scdl/loader/impl/SCDLModelContentHandlerImpl.java Sun Feb 26 15:06:28 2006
@@ -61,10 +61,10 @@
 import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
 import org.apache.tuscany.model.scdl.util.ScdlSwitch;
 import org.apache.tuscany.model.types.java.JavaServiceContract;
+import org.apache.tuscany.model.types.java.impl.JavaServiceContractImpl;
 import org.apache.tuscany.model.types.wsdl.WSDLServiceContract;
 import org.apache.tuscany.model.types.wsdl.impl.WSDLServiceContractImpl;
 import org.apache.tuscany.model.util.ModelContentHandler;
-//FIXME remove this EMF dependency
 import org.eclipse.emf.ecore.EObject;
 
 import commonj.sdo.DataObject;
@@ -241,9 +241,10 @@
      */
     public Object caseJavaInterface(JavaInterface object) {
         final JavaServiceContract serviceContract=factory.createJavaServiceContract();
-        serviceContract.setInterface(null);
-        serviceContract.setCallbackInterface(null);
         serviceContract.setScope(Scope.INSTANCE);
+
+        ((JavaServiceContractImpl)serviceContract).setInterfaceName(object.getInterface());
+        ((JavaServiceContractImpl)serviceContract).setCallbackInterfaceName(object.getCallbackInterface());
         
         linkServiceContract(object, serviceContract);
         

Modified: incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/types/java/impl/JavaServiceContractImpl.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/types/java/impl/JavaServiceContractImpl.java?rev=381196&r1=381195&r2=381196&view=diff
==============================================================================
--- incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/types/java/impl/JavaServiceContractImpl.java (original)
+++ incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/types/java/impl/JavaServiceContractImpl.java Sun Feb 26 15:06:28 2006
@@ -16,6 +16,7 @@
  */
 package org.apache.tuscany.model.types.java.impl;
 
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
 import org.apache.tuscany.model.assembly.impl.ServiceContractImpl;
 import org.apache.tuscany.model.types.java.JavaServiceContract;
 
@@ -23,11 +24,58 @@
  * An implementation of JavaServiceContract.
  */
 public class JavaServiceContractImpl extends ServiceContractImpl implements JavaServiceContract {
+    
+    private String interfaceName;
+    private String callbackInterfaceName;
 
     /**
      * Constructor
      */
     public JavaServiceContractImpl() {
+    }
+    
+    /**
+     * @param interfaceName The interfaceName to set.
+     */
+    public void setInterfaceName(String interfaceName) {
+        this.interfaceName = interfaceName;
+    }
+    
+    /**
+     * @param callbackInterfaceName The callbackInterfaceName to set.
+     */
+    public void setCallbackInterfaceName(String callbackInterfaceName) {
+        this.callbackInterfaceName = callbackInterfaceName;
+    }
+    
+    /**
+     * @see org.apache.tuscany.model.assembly.impl.ExtensibleImpl#initialize(org.apache.tuscany.model.assembly.AssemblyModelContext)
+     */
+    public void initialize(AssemblyModelContext modelContext) {
+        if (isInitialized())
+            return;
+        
+        // Load the interface
+        if (getInterface()==null && interfaceName!=null) {
+            try {
+                Class interfaceClass=modelContext.getAssemblyLoader().loadClass(interfaceName);
+                setInterface(interfaceClass);
+            } catch (ClassNotFoundException e) {
+                throw new IllegalArgumentException(e);
+            }
+        }
+
+        // Load the callback interface
+        if (getCallbackInterface()==null && callbackInterfaceName!=null) {
+            try {
+                Class callbackInterfaceClass=modelContext.getAssemblyLoader().loadClass(callbackInterfaceName);
+                setInterface(callbackInterfaceClass);
+            } catch (ClassNotFoundException e) {
+                throw new IllegalArgumentException(e);
+            }
+        }
+        
+        super.initialize(modelContext);
     }
 
 }