You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yoko-commits@incubator.apache.org by en...@apache.org on 2006/11/08 17:10:17 UTC

svn commit: r472546 - /incubator/yoko/branches/cxf_port/bindings/src/main/java/org/apache/yoko/bindings/corba2/CorbaMessage.java

Author: enolan
Date: Wed Nov  8 09:10:16 2006
New Revision: 472546

URL: http://svn.apache.org/viewvc?view=rev&rev=472546
Log:
Update if the message already contains values - need to do correct initialisation.

Modified:
    incubator/yoko/branches/cxf_port/bindings/src/main/java/org/apache/yoko/bindings/corba2/CorbaMessage.java

Modified: incubator/yoko/branches/cxf_port/bindings/src/main/java/org/apache/yoko/bindings/corba2/CorbaMessage.java
URL: http://svn.apache.org/viewvc/incubator/yoko/branches/cxf_port/bindings/src/main/java/org/apache/yoko/bindings/corba2/CorbaMessage.java?view=diff&rev=472546&r1=472545&r2=472546
==============================================================================
--- incubator/yoko/branches/cxf_port/bindings/src/main/java/org/apache/yoko/bindings/corba2/CorbaMessage.java (original)
+++ incubator/yoko/branches/cxf_port/bindings/src/main/java/org/apache/yoko/bindings/corba2/CorbaMessage.java Wed Nov  8 09:10:16 2006
@@ -35,49 +35,59 @@
 
     public CorbaMessage(Message m) {
         super(m);
+        if (m instanceof CorbaMessage) {
+            CorbaMessage msg = (CorbaMessage)m;
+            CorbaStreamable[] data = msg.getStreamableArguments();
+            setStreamableArguments(data);            
+            returnParam = msg.getStreamableReturn();
+            except = msg.getStreamableException();
+        } else {
+            this.arguments = new ArrayList<CorbaStreamable>();    
+        }        
     }
 
     public CorbaStreamable getStreamableException() {
-        return except;
-    }
-
-    public CorbaStreamable[] getStreamableArguments() {
-        return arguments.toArray(new CorbaStreamable[0]);
+        return this.except;
     }
 
     public CorbaStreamable getStreamableReturn() {
-        return returnParam;
+        return this.returnParam;
     }
 
     public void addStreamableArgument(CorbaStreamable arg) {
-        if (arguments == null) {
-            arguments = new ArrayList<CorbaStreamable>(1);
+        if (this.arguments == null) {
+            this.arguments = new ArrayList<CorbaStreamable>(1);
         }
 
-        arguments.add(arg);
+        this.arguments.add(arg);
+    }
+    
+    public CorbaStreamable[] getStreamableArguments() {
+        return this.arguments.toArray(new CorbaStreamable[0]);
     }
 
+
     public void setStreamableArguments(CorbaStreamable[] data) {
-        if (arguments == null) {
-            arguments = new ArrayList<CorbaStreamable>(data.length);
+        if (this.arguments == null) {
+            this.arguments = new ArrayList<CorbaStreamable>(data.length);
         }
 
-        for (int i = 0; i < data.length; ++i) {
-            arguments.set(i, data[i]);
-        }
+        for (CorbaStreamable streamable : data) {         
+            addStreamableArgument(streamable);
+        }       
     }
 
     public void setStreamableArgumentValue(CorbaObjectHandler data, int idx) {
-        if (idx >= arguments.size()) {
+        if (idx >= this.arguments.size()) {
             throw new CorbaBindingException("setStreamableArgumentValue: Index out of range");
         }
 
-        arguments.get(idx).setObject(data);
+        this.arguments.get(idx).setObject(data);
     }
 
     public void setStreamableArgumentValues(CorbaObjectHandler[] data) {
         for (int i = 0; i < data.length; ++i) {
-            arguments.get(i).setObject(data[i]);
+            this.arguments.get(i).setObject(data[i]);
         }
     }
 
@@ -98,4 +108,5 @@
         // TODO: Handle case of the return parameter has not yet been initialized.
         except.setObject(exData);
     }
+
 }