tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jsdelf...@apache.org
Subject svn commit: r573928 - /incubator/tuscany/java/sca/modules/extension-helper/src/main/java/org/apache/tuscany/sca/extension/helper/impl/BindingSCDLProcessor.java
Date Sat, 08 Sep 2007 23:14:31 GMT
Author: jsdelfino
Date: Sat Sep  8 16:14:30 2007
New Revision: 573928

URL: http://svn.apache.org/viewvc?rev=573928&view=rev
Log:
Fixed writing of binding elements.

Modified:
    incubator/tuscany/java/sca/modules/extension-helper/src/main/java/org/apache/tuscany/sca/extension/helper/impl/BindingSCDLProcessor.java

Modified: incubator/tuscany/java/sca/modules/extension-helper/src/main/java/org/apache/tuscany/sca/extension/helper/impl/BindingSCDLProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/extension-helper/src/main/java/org/apache/tuscany/sca/extension/helper/impl/BindingSCDLProcessor.java?rev=573928&r1=573927&r2=573928&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/extension-helper/src/main/java/org/apache/tuscany/sca/extension/helper/impl/BindingSCDLProcessor.java
(original)
+++ incubator/tuscany/java/sca/modules/extension-helper/src/main/java/org/apache/tuscany/sca/extension/helper/impl/BindingSCDLProcessor.java
Sat Sep  8 16:14:30 2007
@@ -28,6 +28,7 @@
 import java.util.Map;
 import java.util.Set;
 
+import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
@@ -92,8 +93,13 @@
         return scdlQName;
     }
 
-    public Class<Binding> getModelType() {
-        return bindingClass;
+    public Class getModelType() {
+        //FIXME Having two different bindings, PojoBinding wrappering
+        // the real binding is pretty confusing, looks like if you don't return
+        // PojoBinding here, the write and resolve methods will never be
+        // called, returning PojoBinding.class seems to fix that issue without
+        // breaking anything else
+        return PojoBinding.class;
     }
 
     public Binding read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException
{
@@ -149,7 +155,38 @@
     public void resolve(Object model, ModelResolver resolver) throws ContributionResolveException
{
     }
 
-    public void write(Object model, XMLStreamWriter outputSource) throws ContributionWriteException,
XMLStreamException {
+    public void write(Object model, XMLStreamWriter writer) throws ContributionWriteException,
XMLStreamException {
+
+        //FIXME: none of the attributes of Binding seem to be working with PojoBinding
+        // For now at least write the binding URI
+        
+        // Find a namespace prefix and write the element 
+        String prefix = writer.getPrefix(scdlQName.getNamespaceURI());
+        if (prefix == null) {
+            NamespaceContext nsc = writer.getNamespaceContext();
+            for (int i=1; ; i++) {
+                prefix = "ns" + i;
+                if (nsc.getNamespaceURI(prefix) == null) {
+                    break;
+                }
+            }
+            writer.setPrefix(prefix, scdlQName.getNamespaceURI());
+        }
+        writer.writeStartElement(scdlQName.getNamespaceURI(), scdlQName.getLocalPart());
+
+        // Write the binding URI attribute
+        String uri;
+        try {
+            uri = (String)model.getClass().getMethod("getURI").invoke(model);
+        } catch (Exception e) {
+            uri = null;
+        }
+        if (uri != null) {
+            writer.writeAttribute("uri", uri);
+        }
+        
+        writer.writeEndElement();
+
     }
 
 }



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


Mime
View raw message