You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jb...@apache.org on 2006/08/08 16:25:48 UTC

svn commit: r429659 - /incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java

Author: jboynes
Date: Tue Aug  8 07:25:47 2006
New Revision: 429659

URL: http://svn.apache.org/viewvc?rev=429659&view=rev
Log:
handle bound references

Modified:
    incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java

Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java?rev=429659&r1=429658&r2=429659&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java Tue Aug  8 07:25:47 2006
@@ -34,6 +34,8 @@
 import org.apache.tuscany.spi.model.Multiplicity;
 import org.apache.tuscany.spi.model.ReferenceDefinition;
 import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.model.Binding;
+import org.apache.tuscany.spi.model.BoundReferenceDefinition;
 import org.apache.tuscany.spi.annotation.Autowire;
 
 /**
@@ -59,22 +61,35 @@
     )
         throws XMLStreamException, LoaderException {
         assert REFERENCE.equals(reader.getName());
-        ReferenceDefinition referenceDefinition = new ReferenceDefinition();
-        referenceDefinition.setName(reader.getAttributeValue(null, "name"));
-        referenceDefinition.setMultiplicity(
-            StAXUtil.multiplicity(reader.getAttributeValue(null, "multiplicity"), Multiplicity.ONE_ONE));
 
+        String name = reader.getAttributeValue(null, "name");
+        Multiplicity multiplicity = StAXUtil.multiplicity(reader.getAttributeValue(null, "multiplicity"), Multiplicity.ONE_ONE);
+        Binding binding = null;
+        ServiceContract serviceContract = null;
         while (true) {
             switch (reader.next()) {
                 case START_ELEMENT:
                     ModelObject o = registry.load(parent, reader, deploymentContext);
                     if (o instanceof ServiceContract) {
-                        referenceDefinition.setServiceContract((ServiceContract) o);
+                        serviceContract = (ServiceContract) o;
+                    } else if (o instanceof Binding) {
+                        binding = (Binding) o;
                     }
                     reader.next();
                     break;
                 case END_ELEMENT:
-                    return referenceDefinition;
+                    if (binding == null) {
+                        ReferenceDefinition referenceDefinition = new ReferenceDefinition(name, serviceContract);
+                        referenceDefinition.setMultiplicity(multiplicity);
+                        return referenceDefinition;
+                    } else {
+                        BoundReferenceDefinition<Binding> referenceDefinition = new BoundReferenceDefinition<Binding>();
+                        referenceDefinition.setName(name);
+                        referenceDefinition.setServiceContract(serviceContract);
+                        referenceDefinition.setMultiplicity(multiplicity);
+                        referenceDefinition.setBinding(binding);
+                        return referenceDefinition;
+                    }
             }
         }
     }



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