Author: rgodfrey
Date: Thu Jun 28 12:09:41 2012
New Revision: 1354964

URL: http://svn.apache.org/viewvc?rev=1354964&view=rev
Log:
NO-JIRA: [Proton-j] fixes for message api

Added:
    
qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/MessageError.java
Modified:
    qpid/proton/trunk/proton-j/jproton.py
    qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/Message.java
    
qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/MessageFormat.java

Modified: qpid/proton/trunk/proton-j/jproton.py
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/jproton.py?rev=1354964&r1=1354963&r2=1354964&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/jproton.py (original)
+++ qpid/proton/trunk/proton-j/jproton.py Thu Jun 28 12:09:41 2012
@@ -41,6 +41,8 @@ PN_MODIFIED = 5
 PN_DEFAULT_PRIORITY = Message.DEFAULT_PRIORITY
 
 PN_AMQP = MessageFormat.AMQP
+PN_TEXT = MessageFormat.TEXT
+PN_DATA = MessageFormat.DATA
 
 def enums(mask):
   local = []
@@ -223,6 +225,28 @@ def pn_local_disposition(d):
 def pn_settle(d):
   d.settle()
 
+
+def pn_get_connection(s):
+  return s.getConnection()
+
+def pn_get_session(l):
+  return l.getSession()
+
+def pn_credit(l):
+  return l.getCredit()
+
+def pn_queued(l):
+  return l.getQueued()
+
+def pn_unsettled(l):
+  return l.getUnsettled()
+
+def pn_drain(l, c):
+  l.drain(c)
+
+def pn_drained(l):
+  l.drained()
+
 def pn_message():
   return Message()
 
@@ -279,6 +303,17 @@ def pn_message_set_user_id(m, u):
   m.setUserId(u)
   return 0
 
+def pn_message_load(m, d):
+  m.load(d)
+  return 0
+
+def pn_message_save(m, s):
+  saved = m.save()
+  if saved is None:
+    saved = ""
+  return 0, saved
+
+
 def pn_message_get_address(m):
   return m.getAddress()
 
@@ -359,35 +394,26 @@ def pn_message_set_reply_to_group_id(m,d
 def pn_message_free(m):
   return
 
-def pn_message_encode(m,f,size):
+def pn_message_encode(m,size):
     output = zeros(size, "b")
-    n = m.encode(f, output, 0, size)
+    n = m.encode(output, 0, size)
     result = ""
     if n > 0:
       result = output.tostring()[:n]
     return [0, result]
 
-def pn_message_decode(m,f,data,size):
-    m.decode(f,data,0,size)
+def pn_message_decode(m,data,size):
+    m.decode(data,0,size)
     return 0
 
-def pn_get_connection(s):
-  return s.getConnection()
+def pn_message_set_format(m, f):
+    m.setMessageFormat(f)
 
-def pn_get_session(l):
-  return l.getSession()
+def pn_message_get_format(m):
+    return m.getMessageFormat()
 
-def pn_credit(l):
-  return l.getCredit()
+def pn_message_clear(m):
+    m.clear()
 
-def pn_queued(l):
-  return l.getQueued()
-
-def pn_unsettled(l):
-  return l.getUnsettled()
-
-def pn_drain(l, c):
-  l.drain(c)
-
-def pn_drained(l):
-  l.drained()
+def pn_message_error(m):
+    return m.getError().ordinal()

Modified: 
qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/Message.java
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/Message.java?rev=1354964&r1=1354963&r2=1354964&view=diff
==============================================================================
--- qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/Message.java 
(original)
+++ qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/Message.java 
Thu Jun 28 12:09:41 2012
@@ -18,6 +18,7 @@ public class Message
     private ApplicationProperties _applicationProperties;
     private Section _body;
     private Footer _footer;
+    private MessageFormat _format = MessageFormat.AMQP;
 
     public Message()
     {
@@ -437,7 +438,7 @@ public class Message
         return _footer;
     }
 
-    public int decode(MessageFormat format, byte[] data, int offset, int 
length)
+    public int decode(byte[] data, int offset, int length)
     {
         DecoderImpl decoder = new DecoderImpl();
         EncoderImpl encoder = new EncoderImpl(decoder);
@@ -552,7 +553,7 @@ public class Message
 
     }
 
-    public int encode(MessageFormat format, byte[] data, int offset, int 
length)
+    public int encode(byte[] data, int offset, int length)
     {
         DecoderImpl decoder = new DecoderImpl();
         EncoderImpl encoder = new EncoderImpl(decoder);
@@ -592,4 +593,74 @@ public class Message
         return length - buffer.remaining();
     }
 
+    public void load(Object data)
+    {
+        switch (_format)
+        {
+            case DATA:
+                Binary binData;
+                if(data instanceof byte[])
+                {
+                    binData = new Binary((byte[])data);
+                }
+                else if(data instanceof Binary)
+                {
+                    binData = (Binary) data;
+                }
+                else
+                {
+                    binData = null;
+                }
+                _body = new Data(binData);
+            default:
+                // AMQP
+                _body = new AmqpValue(data);
+        }
+
+    }
+
+    public Object save()
+    {
+        switch (_format)
+        {
+            case DATA:
+                if(_body instanceof Data)
+                {
+                    return ((Data)_body).getValue().getArray();
+                }
+                else return null;
+            case AMQP:
+                if(_body instanceof AmqpValue)
+                {
+                    return ((AmqpValue)_body).getValue();
+                }
+                else
+                {
+                    return null;
+                }
+            default:
+                return null;
+        }
+    }
+
+    public void setMessageFormat(MessageFormat format)
+    {
+        _format = format;
+    }
+
+    public MessageFormat getMessageFormat()
+    {
+        return _format;
+    }
+
+    public void clear()
+    {
+        _body = null;
+    }
+
+    public MessageError getError()
+    {
+        return MessageError.OK;
+    }
+
 }

Added: 
qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/MessageError.java
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/MessageError.java?rev=1354964&view=auto
==============================================================================
--- 
qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/MessageError.java 
(added)
+++ 
qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/MessageError.java 
Thu Jun 28 12:09:41 2012
@@ -0,0 +1,6 @@
+package org.apache.qpid.proton.message;
+
+public enum MessageError
+{
+    OK
+}

Modified: 
qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/MessageFormat.java
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/MessageFormat.java?rev=1354964&r1=1354963&r2=1354964&view=diff
==============================================================================
--- 
qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/MessageFormat.java
 (original)
+++ 
qpid/proton/trunk/proton-j/src/org/apache/qpid/proton/message/MessageFormat.java
 Thu Jun 28 12:09:41 2012
@@ -2,5 +2,8 @@ package org.apache.qpid.proton.message;
 
 public enum MessageFormat
 {
-    AMQP
+    DATA,
+    TEXT,
+    AMQP,
+    JSON
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to