From 733d6182773c5bc53d1146e3f7d157ebcf2d5a6c Mon Sep 17 00:00:00 2001 From: Robert Greig Date: Thu, 11 Jan 2007 09:40:44 +0000 Subject: QPID-32 : Add persistence to work with ShortStrings git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@495170 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/qpid/framing/AMQShortString.java | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'java/common/src') diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java b/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java index 6dbdb27026..f536d73469 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java +++ b/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java @@ -19,6 +19,13 @@ public final class AMQShortString implements CharSequence private int _hashCode; private static final char[] EMPTY_CHAR_ARRAY = new char[0]; + public AMQShortString(byte[] data) + { + + _data = ByteBuffer.wrap(data); + } + + public AMQShortString(String data) { this(data == null ? EMPTY_CHAR_ARRAY : data.toCharArray()); @@ -131,6 +138,29 @@ public final class AMQShortString implements CharSequence } } + + public byte[] getBytes() + { + + if(_data.buf().hasArray() && _data.arrayOffset() == 0) + { + return _data.array(); + } + else + { + final int size = length(); + byte[] b = new byte[size]; + ByteBuffer buf = _data.duplicate(); + buf.rewind(); + buf.get(b); + + + return b; + } + + + } + public void writeToBuffer(ByteBuffer buffer) { -- cgit v1.2.1