You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2017/01/09 15:07:32 UTC

[19/30] qpid-proton git commit: PROTON-1385: remove proton-j from the existing repo, it now has its own repo at: https://git-wip-us.apache.org/repos/asf/qpid-proton-j.git

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DataDecoder.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DataDecoder.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DataDecoder.java
deleted file mode 100644
index 71199bb..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DataDecoder.java
+++ /dev/null
@@ -1,1074 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-import java.nio.charset.Charset;
-import java.util.Date;
-import java.util.UUID;
-
-import org.apache.qpid.proton.amqp.*;
-import org.apache.qpid.proton.codec.Data;
-
-class DataDecoder
-{
-
-    private static final Charset ASCII = Charset.forName("US-ASCII");
-    private static final Charset UTF_8 = Charset.forName("UTF-8");
-
-    private static final TypeConstructor[] _constructors = new TypeConstructor[256];
-
-    static
-    {
-
-        _constructors[0x00] = new DescribedTypeConstructor();
-
-        _constructors[0x40] = new NullConstructor();
-        _constructors[0x41] = new TrueConstructor();
-        _constructors[0x42] = new FalseConstructor();
-        _constructors[0x43] = new UInt0Constructor();
-        _constructors[0x44] = new ULong0Constructor();
-        _constructors[0x45] = new EmptyListConstructor();
-
-        _constructors[0x50] = new UByteConstructor();
-        _constructors[0x51] = new ByteConstructor();
-        _constructors[0x52] = new SmallUIntConstructor();
-        _constructors[0x53] = new SmallULongConstructor();
-        _constructors[0x54] = new SmallIntConstructor();
-        _constructors[0x55] = new SmallLongConstructor();
-        _constructors[0x56] = new BooleanConstructor();
-
-        _constructors[0x60] = new UShortConstructor();
-        _constructors[0x61] = new ShortConstructor();
-
-        _constructors[0x70] = new UIntConstructor();
-        _constructors[0x71] = new IntConstructor();
-        _constructors[0x72] = new FloatConstructor();
-        _constructors[0x73] = new CharConstructor();
-        _constructors[0x74] = new Decimal32Constructor();
-
-        _constructors[0x80] = new ULongConstructor();
-        _constructors[0x81] = new LongConstructor();
-        _constructors[0x82] = new DoubleConstructor();
-        _constructors[0x83] = new TimestampConstructor();
-        _constructors[0x84] = new Decimal64Constructor();
-
-        _constructors[0x94] = new Decimal128Constructor();
-        _constructors[0x98] = new UUIDConstructor();
-
-        _constructors[0xa0] = new SmallBinaryConstructor();
-        _constructors[0xa1] = new SmallStringConstructor();
-        _constructors[0xa3] = new SmallSymbolConstructor();
-
-        _constructors[0xb0] = new BinaryConstructor();
-        _constructors[0xb1] = new StringConstructor();
-        _constructors[0xb3] = new SymbolConstructor();
-
-        _constructors[0xc0] = new SmallListConstructor();
-        _constructors[0xc1] = new SmallMapConstructor();
-
-
-        _constructors[0xd0] = new ListConstructor();
-        _constructors[0xd1] = new MapConstructor();
-
-        _constructors[0xe0] = new SmallArrayConstructor();
-        _constructors[0xf0] = new ArrayConstructor();
-
-    }
-
-    private interface TypeConstructor
-    {
-        Data.DataType getType();
-
-        int size(ByteBuffer b);
-
-        void parse(ByteBuffer b, Data data);
-    }
-
-
-    static int decode(ByteBuffer b, Data data)
-    {
-        if(b.hasRemaining())
-        {
-            int position = b.position();
-            TypeConstructor c = readConstructor(b);
-            final int size = c.size(b);
-            if(b.remaining() >= size)
-            {
-                c.parse(b, data);
-                return 1+size;
-            }
-            else
-            {
-                b.position(position);
-                return -4;
-            }
-        }
-        return 0;
-    }
-
-    private static TypeConstructor readConstructor(ByteBuffer b)
-    {
-        int index = b.get() & 0xff;
-        TypeConstructor tc = _constructors[index];
-        if(tc == null)
-        {
-            throw new IllegalArgumentException("No constructor for type " + index);
-        }
-        return tc;
-    }
-
-
-    private static class NullConstructor implements TypeConstructor
-    {
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.NULL;
-        }
-
-        @Override
-        public int size(ByteBuffer b)
-        {
-            return 0;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putNull();
-        }
-    }
-
-    private static class TrueConstructor implements TypeConstructor
-    {
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.BOOL;
-        }
-
-        @Override
-        public int size(ByteBuffer b)
-        {
-            return 0;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putBoolean(true);
-        }
-    }
-
-
-    private static class FalseConstructor implements TypeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.BOOL;
-        }
-
-        @Override
-        public int size(ByteBuffer b)
-        {
-            return 0;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putBoolean(false);
-        }
-    }
-
-    private static class UInt0Constructor implements TypeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.UINT;
-        }
-
-        @Override
-        public int size(ByteBuffer b)
-        {
-            return 0;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putUnsignedInteger(UnsignedInteger.ZERO);
-        }
-    }
-
-    private static class ULong0Constructor implements TypeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.ULONG;
-        }
-
-        @Override
-        public int size(ByteBuffer b)
-        {
-            return 0;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putUnsignedLong(UnsignedLong.ZERO);
-        }
-    }
-
-
-    private static class EmptyListConstructor implements TypeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.LIST;
-        }
-
-        @Override
-        public int size(ByteBuffer b)
-        {
-            return 0;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putList();
-        }
-    }
-
-
-    private static abstract class Fixed0SizeConstructor implements TypeConstructor
-    {
-        @Override
-        public final int size(ByteBuffer b)
-        {
-            return 0;
-        }
-    }
-
-    private static abstract class Fixed1SizeConstructor implements TypeConstructor
-    {
-        @Override
-        public int size(ByteBuffer b)
-        {
-            return 1;
-        }
-    }
-
-    private static abstract class Fixed2SizeConstructor implements TypeConstructor
-    {
-        @Override
-        public int size(ByteBuffer b)
-        {
-            return 2;
-        }
-    }
-
-    private static abstract class Fixed4SizeConstructor implements TypeConstructor
-    {
-        @Override
-        public int size(ByteBuffer b)
-        {
-            return 4;
-        }
-    }
-
-    private static abstract class Fixed8SizeConstructor implements TypeConstructor
-    {
-        @Override
-        public int size(ByteBuffer b)
-        {
-            return 8;
-        }
-    }
-
-    private static abstract class Fixed16SizeConstructor implements TypeConstructor
-    {
-        @Override
-        public int size(ByteBuffer b)
-        {
-            return 16;
-        }
-    }
-
-    private static class UByteConstructor extends Fixed1SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.UBYTE;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putUnsignedByte(UnsignedByte.valueOf(b.get()));
-        }
-    }
-
-    private static class ByteConstructor extends Fixed1SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.BYTE;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putByte(b.get());
-        }
-    }
-
-    private static class SmallUIntConstructor extends Fixed1SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.UINT;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putUnsignedInteger(UnsignedInteger.valueOf(((int) b.get()) & 0xff));
-        }
-    }
-
-    private static class SmallIntConstructor extends Fixed1SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.INT;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putInt(b.get());
-        }
-    }
-
-    private static class SmallULongConstructor extends Fixed1SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.ULONG;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putUnsignedLong(UnsignedLong.valueOf(((int) b.get()) & 0xff));
-        }
-    }
-
-    private static class SmallLongConstructor extends Fixed1SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.LONG;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putLong(b.get());
-        }
-    }
-
-    private static class BooleanConstructor extends Fixed1SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.BOOL;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            int i = b.get();
-            if(i != 0 && i != 1)
-            {
-                throw new IllegalArgumentException("Illegal value " + i + " for boolean");
-            }
-            data.putBoolean(i == 1);
-        }
-    }
-
-    private static class UShortConstructor extends Fixed2SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.USHORT;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putUnsignedShort(UnsignedShort.valueOf(b.getShort()));
-        }
-    }
-
-    private static class ShortConstructor extends Fixed2SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.SHORT;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putShort(b.getShort());
-        }
-    }
-
-    private static class UIntConstructor extends Fixed4SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.UINT;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putUnsignedInteger(UnsignedInteger.valueOf(b.getInt()));
-        }
-    }
-
-    private static class IntConstructor extends Fixed4SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.INT;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putInt(b.getInt());
-        }
-    }
-
-    private static class FloatConstructor extends Fixed4SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.FLOAT;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putFloat(b.getFloat());
-        }
-    }
-
-    private static class CharConstructor extends Fixed4SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.CHAR;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putChar(b.getInt());
-        }
-    }
-
-    private static class Decimal32Constructor extends Fixed4SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.DECIMAL32;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putDecimal32(new Decimal32(b.getInt()));
-        }
-    }
-
-    private static class ULongConstructor extends Fixed8SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.ULONG;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putUnsignedLong(UnsignedLong.valueOf(b.getLong()));
-        }
-    }
-
-    private static class LongConstructor extends Fixed8SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.LONG;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putLong(b.getLong());
-        }
-    }
-
-    private static class DoubleConstructor extends Fixed8SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.DOUBLE;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putDouble(b.getDouble());
-        }
-    }
-
-    private static class TimestampConstructor extends Fixed8SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.TIMESTAMP;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putTimestamp(new Date(b.getLong()));
-        }
-    }
-
-    private static class Decimal64Constructor extends Fixed8SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.DECIMAL64;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putDecimal64(new Decimal64(b.getLong()));
-        }
-    }
-
-    private static class Decimal128Constructor extends Fixed16SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.DECIMAL128;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putDecimal128(new Decimal128(b.getLong(), b.getLong()));
-        }
-    }
-
-    private static class UUIDConstructor extends Fixed16SizeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.UUID;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putUUID(new UUID(b.getLong(), b.getLong()));
-        }
-    }
-
-    private static abstract class SmallVariableConstructor implements TypeConstructor
-    {
-
-        @Override
-        public int size(ByteBuffer b)
-        {
-            int position = b.position();
-            if(b.hasRemaining())
-            {
-                int size = b.get() & 0xff;
-                b.position(position);
-
-                return size+1;
-            }
-            else
-            {
-                return 1;
-            }
-        }
-
-    }
-
-    private static abstract class VariableConstructor implements TypeConstructor
-    {
-
-        @Override
-        public int size(ByteBuffer b)
-        {
-            int position = b.position();
-            if(b.remaining()>=4)
-            {
-                int size = b.getInt();
-                b.position(position);
-
-                return size+4;
-            }
-            else
-            {
-                return 4;
-            }
-        }
-
-    }
-
-
-    private static class SmallBinaryConstructor extends SmallVariableConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.BINARY;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            int size = b.get() & 0xff;
-            byte[] bytes = new byte[size];
-            b.get(bytes);
-            data.putBinary(bytes);
-        }
-    }
-
-    private static class SmallSymbolConstructor extends SmallVariableConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.SYMBOL;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            int size = b.get() & 0xff;
-            byte[] bytes = new byte[size];
-            b.get(bytes);
-            data.putSymbol(Symbol.valueOf(new String(bytes, ASCII)));
-        }
-    }
-
-
-    private static class SmallStringConstructor extends SmallVariableConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.STRING;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            int size = b.get() & 0xff;
-            byte[] bytes = new byte[size];
-            b.get(bytes);
-            data.putString(new String(bytes, UTF_8));
-        }
-    }
-
-    private static class BinaryConstructor extends VariableConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.BINARY;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            int size = b.getInt();
-            byte[] bytes = new byte[size];
-            b.get(bytes);
-            data.putBinary(bytes);
-        }
-    }
-
-    private static class SymbolConstructor extends VariableConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.SYMBOL;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            int size = b.getInt();
-            byte[] bytes = new byte[size];
-            b.get(bytes);
-            data.putSymbol(Symbol.valueOf(new String(bytes, ASCII)));
-        }
-    }
-
-
-    private static class StringConstructor extends VariableConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.STRING;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            int size = b.getInt();
-            byte[] bytes = new byte[size];
-            b.get(bytes);
-            data.putString(new String(bytes, UTF_8));
-        }
-    }
-
-
-    private static class SmallListConstructor extends SmallVariableConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.LIST;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            int size = b.get() & 0xff;
-            ByteBuffer buf = b.slice();
-            buf.limit(size);
-            b.position(b.position()+size);
-            int count = buf.get() & 0xff;
-            data.putList();
-            parseChildren(data, buf, count);
-        }
-    }
-
-
-    private static class SmallMapConstructor extends SmallVariableConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.MAP;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            int size = b.get() & 0xff;
-            ByteBuffer buf = b.slice();
-            buf.limit(size);
-            b.position(b.position()+size);
-            int count = buf.get() & 0xff;
-            data.putMap();
-            parseChildren(data, buf, count);
-        }
-    }
-
-
-    private static class ListConstructor extends VariableConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.LIST;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            int size = b.getInt();
-            ByteBuffer buf = b.slice();
-            buf.limit(size);
-            b.position(b.position()+size);
-            int count = buf.getInt();
-            data.putList();
-            parseChildren(data, buf, count);
-        }
-    }
-
-
-    private static class MapConstructor extends VariableConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.MAP;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            int size = b.getInt();
-            ByteBuffer buf = b.slice();
-            buf.limit(size);
-            b.position(b.position()+size);
-            int count = buf.getInt();
-            data.putMap();
-            parseChildren(data, buf, count);
-        }
-    }
-
-
-    private static void parseChildren(Data data, ByteBuffer buf, int count)
-    {
-        data.enter();
-        for(int i = 0; i < count; i++)
-        {
-            TypeConstructor c = readConstructor(buf);
-            final int size = c.size(buf);
-            final int remaining = buf.remaining();
-            if(size <= remaining)
-            {
-                c.parse(buf, data);
-            }
-            else
-            {
-                throw new IllegalArgumentException("Malformed data");
-            }
-
-        }
-        data.exit();
-    }
-
-    private static class DescribedTypeConstructor implements TypeConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.DESCRIBED;
-        }
-
-        @Override
-        public int size(ByteBuffer b)
-        {
-            ByteBuffer buf = b.slice();
-            if(buf.hasRemaining())
-            {
-                TypeConstructor c = readConstructor(buf);
-                int size = c.size(buf);
-                if(buf.remaining()>size)
-                {
-                    buf.position(size + 1);
-                    c = readConstructor(buf);
-                    return size + 2 + c.size(buf);
-                }
-                else
-                {
-                    return size + 2;
-                }
-            }
-            else
-            {
-                return 1;
-            }
-
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-            data.putDescribed();
-            data.enter();
-            TypeConstructor c = readConstructor(b);
-            c.parse(b, data);
-            c = readConstructor(b);
-            c.parse(b, data);
-            data.exit();
-        }
-    }
-
-    private static class SmallArrayConstructor extends SmallVariableConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.ARRAY;
-        }
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-
-            int size = b.get() & 0xff;
-            ByteBuffer buf = b.slice();
-            buf.limit(size);
-            b.position(b.position()+size);
-            int count = buf.get() & 0xff;
-            parseArray(data, buf, count);
-        }
-
-    }
-
-    private static class ArrayConstructor extends VariableConstructor
-    {
-
-        @Override
-        public Data.DataType getType()
-        {
-            return Data.DataType.ARRAY;
-        }
-
-
-        @Override
-        public void parse(ByteBuffer b, Data data)
-        {
-
-            int size = b.getInt();
-            ByteBuffer buf = b.slice();
-            buf.limit(size);
-            b.position(b.position()+size);
-            int count = buf.getInt();
-            parseArray(data, buf, count);
-        }
-    }
-
-    private static void parseArray(Data data, ByteBuffer buf, int count)
-    {
-        byte type = buf.get();
-        boolean isDescribed = type == (byte)0x00;
-        int descriptorPosition = buf.position();
-        if(isDescribed)
-        {
-            TypeConstructor descriptorTc = readConstructor(buf);
-            buf.position(buf.position()+descriptorTc.size(buf));
-            type = buf.get();
-            if(type == (byte)0x00)
-            {
-                throw new IllegalArgumentException("Malformed array data");
-            }
-
-        }
-        TypeConstructor tc = _constructors[type&0xff];
-
-        data.putArray(isDescribed, tc.getType());
-        data.enter();
-        if(isDescribed)
-        {
-            int position = buf.position();
-            buf.position(descriptorPosition);
-            TypeConstructor descriptorTc = readConstructor(buf);
-            descriptorTc.parse(buf,data);
-            buf.position(position);
-        }
-        for(int i = 0; i<count; i++)
-        {
-            tc.parse(buf,data);
-        }
-
-        data.exit();
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DataImpl.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DataImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DataImpl.java
deleted file mode 100644
index 5f430ba..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DataImpl.java
+++ /dev/null
@@ -1,928 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-import java.util.*;
-
-import org.apache.qpid.proton.ProtonUnsupportedOperationException;
-import org.apache.qpid.proton.amqp.*;
-import org.apache.qpid.proton.codec.Data;
-
-
-public class DataImpl implements Data
-{
-
-    private Element _first;
-    private Element _current;
-    private Element _parent;
-
-
-    public DataImpl()
-    {
-    }
-
-    @Override
-    public void free()
-    {
-        _first = null;
-        _current = null;
-
-    }
-
-    @Override
-    public void clear()
-    {
-        _first=null;
-        _current=null;
-        _parent=null;
-    }
-
-    @Override
-    public long size()
-    {
-        return _first == null ? 0 : _first.size();
-    }
-
-    @Override
-    public void rewind()
-    {
-        _current = null;
-        _parent = null;
-    }
-
-    @Override
-    public DataType next()
-    {
-        Element next = _current == null ? (_parent == null ? _first : _parent.child()) : _current.next();
-
-        if(next != null)
-        {
-            _current = next;
-        }
-        return next == null ? null : next.getDataType();
-    }
-
-    @Override
-    public DataType prev()
-    {
-        Element prev = _current == null ? null : _current.prev();
-
-        _current = prev;
-        return prev == null ? null : prev.getDataType();
-    }
-
-    @Override
-    public boolean enter()
-    {
-        if(_current != null && _current.canEnter())
-        {
-
-            _parent = _current;
-            _current = null;
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public boolean exit()
-    {
-        if(_parent != null)
-        {
-            Element parent = _parent;
-            _current = parent;
-            _parent = _current.parent();
-            return true;
-
-        }
-        return false;
-    }
-
-    @Override
-    public boolean lookup(String name)
-    {
-        // TODO
-        throw new ProtonUnsupportedOperationException();
-
-    }
-
-    @Override
-    public DataType type()
-    {
-        return _current == null ? null : _current.getDataType();
-    }
-
-    @Override
-    public long encodedSize()
-    {
-        int size = 0;
-        Element elt = _first;
-        while(elt != null)
-        {
-            size += elt.size();
-            elt = elt.next();
-        }
-        return size;
-    }
-
-    @Override
-    public Binary encode()
-    {
-        byte[] data = new byte[(int)encodedSize()];
-        ByteBuffer buf = ByteBuffer.wrap(data);
-        encode(buf);
-
-        return new Binary(data);
-    }
-
-    @Override
-    public long encode(ByteBuffer buf)
-    {
-        Element elt = _first;
-        int size = 0;
-        while(elt != null )
-        {
-            final int eltSize = elt.size();
-            if(eltSize <= buf.remaining())
-            {
-                size += elt.encode(buf);
-            }
-            else
-            {
-                size+= eltSize;
-            }
-            elt = elt.next();
-        }
-        return size;
-    }
-
-    @Override
-    public long decode(ByteBuffer buf)
-    {
-        return DataDecoder.decode(buf, this);
-    }
-
-
-    private void putElement(Element element)
-    {
-        if(_first == null)
-        {
-            _first = element;
-        }
-        else
-        {
-            if(_current == null)
-            {
-                if (_parent == null) {
-                    _first = _first.replaceWith(element);
-                    element = _first;
-                } else {
-                    element = _parent.addChild(element);
-                }
-            }
-            else
-            {
-                if(_parent!=null)
-                {
-                    element = _parent.checkChild(element);
-                }
-                _current.setNext(element);
-            }
-        }
-
-        _current = element;
-    }
-
-    @Override
-    public void putList()
-    {
-        putElement(new ListElement(_parent, _current));
-    }
-
-    @Override
-    public void putMap()
-    {
-        putElement(new MapElement(_parent, _current));
-    }
-
-    @Override
-    public void putArray(boolean described, DataType type)
-    {
-        putElement(new ArrayElement(_parent, _current, described, type));
-
-    }
-
-    @Override
-    public void putDescribed()
-    {
-        putElement(new DescribedTypeElement(_parent, _current));
-    }
-
-    @Override
-    public void putNull()
-    {
-        putElement(new NullElement(_parent, _current));
-
-    }
-
-    @Override
-    public void putBoolean(boolean b)
-    {
-        putElement(new BooleanElement(_parent, _current, b));
-    }
-
-    @Override
-    public void putUnsignedByte(UnsignedByte ub)
-    {
-        putElement(new UnsignedByteElement(_parent, _current, ub));
-
-    }
-
-    @Override
-    public void putByte(byte b)
-    {
-        putElement(new ByteElement(_parent, _current, b));
-    }
-
-    @Override
-    public void putUnsignedShort(UnsignedShort us)
-    {
-        putElement(new UnsignedShortElement(_parent, _current, us));
-
-    }
-
-    @Override
-    public void putShort(short s)
-    {
-        putElement(new ShortElement(_parent, _current, s));
-    }
-
-    @Override
-    public void putUnsignedInteger(UnsignedInteger ui)
-    {
-        putElement(new UnsignedIntegerElement(_parent, _current, ui));
-    }
-
-    @Override
-    public void putInt(int i)
-    {
-        putElement(new IntegerElement(_parent, _current, i));
-    }
-
-    @Override
-    public void putChar(int c)
-    {
-        putElement(new CharElement(_parent, _current, c));
-    }
-
-    @Override
-    public void putUnsignedLong(UnsignedLong ul)
-    {
-        putElement(new UnsignedLongElement(_parent, _current, ul));
-    }
-
-    @Override
-    public void putLong(long l)
-    {
-        putElement(new LongElement(_parent, _current, l));
-    }
-
-    @Override
-    public void putTimestamp(Date t)
-    {
-        putElement(new TimestampElement(_parent,_current,t));
-    }
-
-    @Override
-    public void putFloat(float f)
-    {
-        putElement(new FloatElement(_parent,_current,f));
-    }
-
-    @Override
-    public void putDouble(double d)
-    {
-        putElement(new DoubleElement(_parent,_current,d));
-    }
-
-    @Override
-    public void putDecimal32(Decimal32 d)
-    {
-        putElement(new Decimal32Element(_parent,_current,d));
-    }
-
-    @Override
-    public void putDecimal64(Decimal64 d)
-    {
-        putElement(new Decimal64Element(_parent,_current,d));
-    }
-
-    @Override
-    public void putDecimal128(Decimal128 d)
-    {
-        putElement(new Decimal128Element(_parent,_current,d));
-    }
-
-    @Override
-    public void putUUID(UUID u)
-    {
-        putElement(new UUIDElement(_parent,_current,u));
-    }
-
-    @Override
-    public void putBinary(Binary bytes)
-    {
-        putElement(new BinaryElement(_parent, _current, bytes));
-    }
-
-    @Override
-    public void putBinary(byte[] bytes)
-    {
-        putBinary(new Binary(bytes));
-    }
-
-    @Override
-    public void putString(String string)
-    {
-        putElement(new StringElement(_parent,_current,string));
-    }
-
-    @Override
-    public void putSymbol(Symbol symbol)
-    {
-        putElement(new SymbolElement(_parent,_current,symbol));
-    }
-
-    @Override
-    public void putObject(Object o)
-    {
-        if(o == null)
-        {
-            putNull();
-        }
-        else if(o instanceof Boolean)
-        {
-            putBoolean((Boolean) o);
-        }
-        else if(o instanceof UnsignedByte)
-        {
-            putUnsignedByte((UnsignedByte)o);
-        }
-        else if(o instanceof Byte)
-        {
-            putByte((Byte)o);
-        }
-        else if(o instanceof UnsignedShort)
-        {
-            putUnsignedShort((UnsignedShort)o);
-        }
-        else if(o instanceof Short)
-        {
-            putShort((Short)o);
-        }
-        else if(o instanceof UnsignedInteger)
-        {
-            putUnsignedInteger((UnsignedInteger)o);
-        }
-        else if(o instanceof Integer)
-        {
-            putInt((Integer)o);
-        }
-        else if(o instanceof Character)
-        {
-            putChar((Character)o);
-        }
-        else if(o instanceof UnsignedLong)
-        {
-            putUnsignedLong((UnsignedLong)o);
-        }
-        else if(o instanceof Long)
-        {
-            putLong((Long)o);
-        }
-        else if(o instanceof Date)
-        {
-            putTimestamp((Date)o);
-        }
-        else if(o instanceof Float)
-        {
-            putFloat((Float)o);
-        }
-        else if(o instanceof Double)
-        {
-            putDouble((Double)o);
-        }
-        else if(o instanceof Decimal32)
-        {
-            putDecimal32((Decimal32)o);
-        }
-        else if(o instanceof Decimal64)
-        {
-            putDecimal64((Decimal64)o);
-        }
-        else if(o instanceof Decimal128)
-        {
-            putDecimal128((Decimal128)o);
-        }
-        else if(o instanceof UUID)
-        {
-            putUUID((UUID)o);
-        }
-        else if(o instanceof Binary)
-        {
-            putBinary((Binary)o);
-        }
-        else if(o instanceof String)
-        {
-            putString((String)o);
-        }
-        else if(o instanceof Symbol)
-        {
-            putSymbol((Symbol)o);
-        }
-        else if(o instanceof DescribedType)
-        {
-            putDescribedType((DescribedType)o);
-        }
-        else if(o instanceof Symbol[])
-        {
-            putArray(false, Data.DataType.SYMBOL);
-            enter();
-            for(Symbol s : (Symbol[]) o)
-            {
-                putSymbol(s);
-            }
-            exit();
-        }
-        else if(o instanceof Object[])
-        {
-            putJavaArray((Object[]) o);
-        }
-        else if(o instanceof List)
-        {
-            putJavaList((List)o);
-        }
-        else if(o instanceof Map)
-        {
-            putJavaMap((Map)o);
-        }
-        else
-        {
-            throw new IllegalArgumentException("Unknown type " + o.getClass().getSimpleName());
-        }
-    }
-
-    @Override
-    public void putJavaMap(Map<Object, Object> map)
-    {
-        putMap();
-        enter();
-        for(Map.Entry<Object, Object> entry : map.entrySet())
-        {
-            putObject(entry.getKey());
-            putObject(entry.getValue());
-        }
-        exit();
-
-    }
-
-    @Override
-    public void putJavaList(List<Object> list)
-    {
-        putList();
-        enter();
-        for(Object o : list)
-        {
-            putObject(o);
-        }
-        exit();
-    }
-
-    @Override
-    public void putJavaArray(Object[] array)
-    {
-        // TODO
-        throw new ProtonUnsupportedOperationException();
-    }
-
-    @Override
-    public void putDescribedType(DescribedType dt)
-    {
-        putElement(new DescribedTypeElement(_parent,_current));
-        enter();
-        putObject(dt.getDescriptor());
-        putObject(dt.getDescribed());
-        exit();
-    }
-
-    @Override
-    public long getList()
-    {
-        if(_current instanceof ListElement)
-        {
-            return ((ListElement)_current).count();
-        }
-        throw new IllegalStateException("Current value not list");
-    }
-
-    @Override
-    public long getMap()
-    {
-        if(_current instanceof MapElement)
-        {
-            return ((MapElement)_current).count();
-        }
-        throw new IllegalStateException("Current value not map");
-    }
-
-    @Override
-    public long getArray()
-    {
-        if(_current instanceof ArrayElement)
-        {
-            return ((ArrayElement)_current).count();
-        }
-        throw new IllegalStateException("Current value not array");
-    }
-
-    @Override
-    public boolean isArrayDescribed()
-    {
-        if(_current instanceof ArrayElement)
-        {
-            return ((ArrayElement)_current).isDescribed();
-        }
-        throw new IllegalStateException("Current value not array");
-    }
-
-    @Override
-    public DataType getArrayType()
-    {
-        if(_current instanceof ArrayElement)
-        {
-            return ((ArrayElement)_current).getArrayDataType();
-        }
-        throw new IllegalStateException("Current value not array");
-    }
-
-    @Override
-    public boolean isDescribed()
-    {
-        return _current != null && _current.getDataType() == DataType.DESCRIBED;
-    }
-
-    @Override
-    public boolean isNull()
-    {
-        return _current != null && _current.getDataType() == DataType.NULL;
-    }
-
-    @Override
-    public boolean getBoolean()
-    {
-        if(_current instanceof BooleanElement)
-        {
-            return ((BooleanElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not boolean");
-    }
-
-    @Override
-    public UnsignedByte getUnsignedByte()
-    {
-
-        if(_current instanceof UnsignedByteElement)
-        {
-            return ((UnsignedByteElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not unsigned byte");
-    }
-
-    @Override
-    public byte getByte()
-    {
-        if(_current instanceof ByteElement)
-        {
-            return ((ByteElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not byte");
-    }
-
-    @Override
-    public UnsignedShort getUnsignedShort()
-    {
-        if(_current instanceof UnsignedShortElement)
-        {
-            return ((UnsignedShortElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not unsigned short");
-    }
-
-    @Override
-    public short getShort()
-    {
-        if(_current instanceof ShortElement)
-        {
-            return ((ShortElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not short");
-    }
-
-    @Override
-    public UnsignedInteger getUnsignedInteger()
-    {
-        if(_current instanceof UnsignedIntegerElement)
-        {
-            return ((UnsignedIntegerElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not unsigned integer");
-    }
-
-    @Override
-    public int getInt()
-    {
-        if(_current instanceof IntegerElement)
-        {
-            return ((IntegerElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not integer");
-    }
-
-    @Override
-    public int getChar()
-    {
-        if(_current instanceof CharElement)
-        {
-            return ((CharElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not char");
-    }
-
-    @Override
-    public UnsignedLong getUnsignedLong()
-    {
-        if(_current instanceof UnsignedLongElement)
-        {
-            return ((UnsignedLongElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not unsigned long");
-    }
-
-    @Override
-    public long getLong()
-    {
-        if(_current instanceof LongElement)
-        {
-            return ((LongElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not long");
-    }
-
-    @Override
-    public Date getTimestamp()
-    {
-        if(_current instanceof TimestampElement)
-        {
-            return ((TimestampElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not timestamp");
-    }
-
-    @Override
-    public float getFloat()
-    {
-        if(_current instanceof FloatElement)
-        {
-            return ((FloatElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not float");
-    }
-
-    @Override
-    public double getDouble()
-    {
-        if(_current instanceof DoubleElement)
-        {
-            return ((DoubleElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not double");
-    }
-
-    @Override
-    public Decimal32 getDecimal32()
-    {
-        if(_current instanceof Decimal32Element)
-        {
-            return ((Decimal32Element)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not decimal32");
-    }
-
-    @Override
-    public Decimal64 getDecimal64()
-    {
-        if(_current instanceof Decimal64Element)
-        {
-            return ((Decimal64Element)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not decimal32");
-    }
-
-    @Override
-    public Decimal128 getDecimal128()
-    {
-        if(_current instanceof Decimal128Element)
-        {
-            return ((Decimal128Element)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not decimal32");
-    }
-
-    @Override
-    public UUID getUUID()
-    {
-        if(_current instanceof UUIDElement)
-        {
-            return ((UUIDElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not uuid");
-    }
-
-    @Override
-    public Binary getBinary()
-    {
-        if(_current instanceof BinaryElement)
-        {
-            return ((BinaryElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not binary");
-    }
-
-    @Override
-    public String getString()
-    {
-        if (_current instanceof StringElement)
-        {
-            return ((StringElement) _current).getValue();
-        }
-        throw new IllegalStateException("Current value not string");
-    }
-
-    @Override
-    public Symbol getSymbol()
-    {
-        if(_current instanceof SymbolElement)
-        {
-            return ((SymbolElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not symbol");
-    }
-
-    @Override
-    public Object getObject()
-    {
-        return _current == null ? null : _current.getValue();
-    }
-
-    @Override
-    public Map<Object, Object> getJavaMap()
-    {
-        if(_current instanceof MapElement)
-        {
-            return ((MapElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not map");
-    }
-
-    @Override
-    public List<Object> getJavaList()
-    {
-        if(_current instanceof ListElement)
-        {
-            return ((ListElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not list");
-    }
-
-    @Override
-    public Object[] getJavaArray()
-    {
-        if(_current instanceof ArrayElement)
-        {
-            return ((ArrayElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not array");
-    }
-
-    @Override
-    public DescribedType getDescribedType()
-    {
-        if(_current instanceof DescribedTypeElement)
-        {
-            return ((DescribedTypeElement)_current).getValue();
-        }
-        throw new IllegalStateException("Current value not described type");
-    }
-
-    @Override
-    public void copy(Data src)
-    {
-        // TODO
-
-        throw new ProtonUnsupportedOperationException();
-    }
-
-    @Override
-    public void append(Data src)
-    {
-        // TODO
-
-        throw new ProtonUnsupportedOperationException();
-    }
-
-    @Override
-    public void appendn(Data src, int limit)
-    {
-        // TODO
-
-        throw new ProtonUnsupportedOperationException();
-    }
-
-    @Override
-    public void narrow()
-    {
-        // TODO
-
-        throw new ProtonUnsupportedOperationException();
-    }
-
-    @Override
-    public void widen()
-    {
-        // TODO
-
-        throw new ProtonUnsupportedOperationException();
-    }
-
-
-    @Override
-    public String format()
-    {
-        StringBuilder sb = new StringBuilder();
-        Element el = _first;
-        boolean first = true;
-        while (el != null) {
-            if (first) {
-                first = false;
-            } else {
-                sb.append(", ");
-            }
-            el.render(sb);
-            el = el.next();
-        }
-
-        return sb.toString();
-    }
-
-    private void render(StringBuilder sb, Element el)
-    {
-        if (el == null) return;
-        sb.append("    ").append(el).append("\n");
-        if (el.canEnter()) {
-            render(sb, el.child());
-        }
-        render(sb, el.next());
-    }
-
-    @Override
-    public String toString()
-    {
-        StringBuilder sb = new StringBuilder();
-        render(sb, _first);
-        return String.format("Data[current=%h, parent=%h]{%n%s}",
-                             System.identityHashCode(_current),
-                             System.identityHashCode(_parent),
-                             sb);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Decimal128Element.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Decimal128Element.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Decimal128Element.java
deleted file mode 100644
index 433c10b..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Decimal128Element.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-
-import org.apache.qpid.proton.amqp.Decimal128;
-import org.apache.qpid.proton.codec.Data;
-
-class Decimal128Element extends AtomicElement<Decimal128>
-{
-
-    private final Decimal128 _value;
-
-    Decimal128Element(Element parent, Element prev, Decimal128 d)
-    {
-        super(parent, prev);
-        _value = d;
-    }
-
-    @Override
-    public int size()
-    {
-        return isElementOfArray() ? 16 : 17;
-    }
-
-    @Override
-    public Decimal128 getValue()
-    {
-        return _value;
-    }
-
-    @Override
-    public Data.DataType getDataType()
-    {
-        return Data.DataType.DECIMAL128;
-    }
-
-    @Override
-    public int encode(ByteBuffer b)
-    {
-        int size = size();
-        if(b.remaining()>=size)
-        {
-            if(size == 17)
-            {
-                b.put((byte)0x94);
-            }
-            b.putLong(_value.getMostSignificantBits());
-            b.putLong(_value.getLeastSignificantBits());
-            return size;
-        }
-        else
-        {
-            return 0;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Decimal32Element.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Decimal32Element.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Decimal32Element.java
deleted file mode 100644
index 4859a78..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Decimal32Element.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-
-import org.apache.qpid.proton.amqp.Decimal32;
-import org.apache.qpid.proton.codec.Data;
-
-class Decimal32Element extends AtomicElement<Decimal32>
-{
-
-    private final Decimal32 _value;
-
-    Decimal32Element(Element parent, Element prev, Decimal32 d)
-    {
-        super(parent, prev);
-        _value = d;
-    }
-
-    @Override
-    public int size()
-    {
-        return isElementOfArray() ? 4 : 5;
-    }
-
-    @Override
-    public Decimal32 getValue()
-    {
-        return _value;
-    }
-
-    @Override
-    public Data.DataType getDataType()
-    {
-        return Data.DataType.DECIMAL32;
-    }
-
-    @Override
-    public int encode(ByteBuffer b)
-    {
-        int size = size();
-        if(b.remaining()>=size)
-        {
-            if(size == 5)
-            {
-                b.put((byte)0x74);
-            }
-            b.putInt(_value.getBits());
-            return size;
-        }
-        else
-        {
-            return 0;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Decimal64Element.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Decimal64Element.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Decimal64Element.java
deleted file mode 100644
index cd8ce45..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Decimal64Element.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-
-import org.apache.qpid.proton.amqp.Decimal64;
-import org.apache.qpid.proton.codec.Data;
-
-class Decimal64Element extends AtomicElement<Decimal64>
-{
-
-    private final Decimal64 _value;
-
-    Decimal64Element(Element parent, Element prev, Decimal64 d)
-    {
-        super(parent, prev);
-        _value = d;
-    }
-
-    @Override
-    public int size()
-    {
-        return isElementOfArray() ? 8 : 9;
-    }
-
-    @Override
-    public Decimal64 getValue()
-    {
-        return _value;
-    }
-
-    @Override
-    public Data.DataType getDataType()
-    {
-        return Data.DataType.DECIMAL64;
-    }
-
-    @Override
-    public int encode(ByteBuffer b)
-    {
-        int size = size();
-        if(b.remaining()>=size)
-        {
-            if(size == 9)
-            {
-                b.put((byte)0x84);
-            }
-            b.putLong(_value.getBits());
-            return size;
-        }
-        else
-        {
-            return 0;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DescribedTypeElement.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DescribedTypeElement.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DescribedTypeElement.java
deleted file mode 100644
index 432cd21..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DescribedTypeElement.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-import java.util.AbstractSequentialList;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.apache.qpid.proton.amqp.DescribedType;
-import org.apache.qpid.proton.codec.Data;
-
-class DescribedTypeElement extends AbstractElement<DescribedType>
-{
-    private Element _first;
-
-    DescribedTypeElement(Element parent, Element prev)
-    {
-        super(parent, prev);
-    }
-
-
-
-
-    @Override
-    public int size()
-    {
-        int count = 0;
-        int size = 0;
-        Element elt = _first;
-        while(elt != null)
-        {
-            count++;
-            size += elt.size();
-            elt = elt.next();
-        }
-
-        if(isElementOfArray())
-        {
-            throw new IllegalArgumentException("Cannot add described type members to an array");
-        }
-        else if(count > 2)
-        {
-            throw new IllegalArgumentException("Too many elements in described type");
-        }
-        else if(count == 0)
-        {
-            size = 3;
-        }
-        else if(count == 1)
-        {
-            size += 2;
-        }
-        else
-        {
-            size+=1;
-        }
-
-        return size;
-    }
-
-    @Override
-    public DescribedType getValue()
-    {
-        final Object descriptor = _first == null ? null : _first.getValue();
-        Element second = _first == null ? null : _first.next();
-        final Object described = second == null ? null : second.getValue();
-        return new DescribedTypeImpl(descriptor,described);
-    }
-
-    @Override
-    public Data.DataType getDataType()
-    {
-        return Data.DataType.DESCRIBED;
-    }
-
-    @Override
-    public int encode(ByteBuffer b)
-    {
-        int encodedSize = size();
-
-        if(encodedSize > b.remaining())
-        {
-            return 0;
-        }
-        else
-        {
-            b.put((byte) 0);
-            if(_first == null)
-            {
-                b.put((byte)0x40);
-                b.put((byte)0x40);
-            }
-            else
-            {
-                _first.encode(b);
-                if(_first.next() == null)
-                {
-                    b.put((byte)0x40);
-                }
-                else
-                {
-                    _first.next().encode(b);
-                }
-            }
-        }
-        return encodedSize;
-    }
-
-    @Override
-    public boolean canEnter()
-    {
-        return true;
-    }
-
-    @Override
-    public Element child()
-    {
-        return _first;
-    }
-
-    @Override
-    public void setChild(Element elt)
-    {
-        _first = elt;
-    }
-
-    @Override
-    public Element checkChild(Element element)
-    {
-        if(element.prev() != _first)
-        {
-            throw new IllegalArgumentException("Described Type may only have two elements");
-        }
-        return element;
-
-    }
-
-    @Override
-    public Element addChild(Element element)
-    {
-        _first = element;
-        return element;
-    }
-
-    @Override
-    String startSymbol() {
-        return "(";
-    }
-
-    @Override
-    String stopSymbol() {
-        return ")";
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DescribedTypeImpl.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DescribedTypeImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DescribedTypeImpl.java
deleted file mode 100644
index a16595a..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DescribedTypeImpl.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import org.apache.qpid.proton.amqp.DescribedType;
-
-class DescribedTypeImpl implements DescribedType
-{
-    private final Object _descriptor;
-    private final Object _described;
-
-    public DescribedTypeImpl(final Object descriptor, final Object described)
-    {
-        _descriptor = descriptor;
-        _described = described;
-    }
-
-    @Override
-    public Object getDescriptor()
-    {
-        return _descriptor;
-    }
-
-    @Override
-    public Object getDescribed()
-    {
-        return _described;
-    }
-
-    @Override
-    public boolean equals(Object o)
-    {
-        if (this == o)
-        {
-            return true;
-        }
-        if (o == null || ! (o instanceof DescribedType))
-        {
-            return false;
-        }
-
-        DescribedType that = (DescribedType) o;
-
-        if (_described != null ? !_described.equals(that.getDescribed()) : that.getDescribed() != null)
-        {
-            return false;
-        }
-        if (_descriptor != null ? !_descriptor.equals(that.getDescriptor()) : that.getDescriptor() != null)
-        {
-            return false;
-        }
-
-        return true;
-    }
-
-    @Override
-    public int hashCode()
-    {
-        int result = _descriptor != null ? _descriptor.hashCode() : 0;
-        result = 31 * result + (_described != null ? _described.hashCode() : 0);
-        return result;
-    }
-
-    @Override
-    public String toString()
-    {
-        return "{"  + _descriptor +
-               ": " + _described +
-               '}';
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DoubleElement.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DoubleElement.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DoubleElement.java
deleted file mode 100644
index b4c56bc..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/DoubleElement.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-
-import org.apache.qpid.proton.codec.Data;
-
-class DoubleElement extends AtomicElement<Double>
-{
-
-    private final double _value;
-
-    DoubleElement(Element parent, Element prev, double d)
-    {
-        super(parent, prev);
-        _value = d;
-    }
-
-    @Override
-    public int size()
-    {
-        return isElementOfArray() ? 8 : 9;
-    }
-
-    @Override
-    public Double getValue()
-    {
-        return _value;
-    }
-
-    @Override
-    public Data.DataType getDataType()
-    {
-        return Data.DataType.DOUBLE;
-    }
-
-    @Override
-    public int encode(ByteBuffer b)
-    {
-        int size = size();
-        if(b.remaining()>=size)
-        {
-            if(size == 9)
-            {
-                b.put((byte)0x82);
-            }
-            b.putDouble(_value);
-            return size;
-        }
-        else
-        {
-            return 0;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Element.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Element.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Element.java
deleted file mode 100644
index 492008d..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/Element.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-
-import org.apache.qpid.proton.codec.Data;
-
-interface Element<T>
-{
-    int size();
-    T getValue();
-    Data.DataType getDataType();
-    int encode(ByteBuffer b);
-    Element next();
-    Element prev();
-    Element child();
-    Element parent();
-
-    void setNext(Element elt);
-    void setPrev(Element elt);
-    void setParent(Element elt);
-    void setChild(Element elt);
-
-    Element replaceWith(Element elt);
-
-    Element addChild(Element element);
-    Element checkChild(Element element);
-
-    boolean canEnter();
-
-    void render(StringBuilder sb);
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/FloatElement.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/FloatElement.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/FloatElement.java
deleted file mode 100644
index d8c13c2..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/FloatElement.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-
-import org.apache.qpid.proton.codec.Data;
-
-class FloatElement extends AtomicElement<Float>
-{
-
-    private final float _value;
-
-    FloatElement(Element parent, Element prev, float f)
-    {
-        super(parent, prev);
-        _value = f;
-    }
-
-    @Override
-    public int size()
-    {
-        return isElementOfArray() ? 4 : 5;
-    }
-
-    @Override
-    public Float getValue()
-    {
-        return _value;
-    }
-
-    @Override
-    public Data.DataType getDataType()
-    {
-        return Data.DataType.FLOAT;
-    }
-
-    @Override
-    public int encode(ByteBuffer b)
-    {
-        int size = size();
-        if(b.remaining()>=size)
-        {
-            if(size == 5)
-            {
-                b.put((byte)0x72);
-            }
-            b.putFloat(_value);
-            return size;
-        }
-        else
-        {
-            return 0;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/IntegerElement.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/IntegerElement.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/IntegerElement.java
deleted file mode 100644
index 8e4f435..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/IntegerElement.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-
-import org.apache.qpid.proton.codec.Data;
-
-class IntegerElement extends AtomicElement<Integer>
-{
-
-    private final int _value;
-
-    IntegerElement(Element parent, Element prev, int i)
-    {
-        super(parent, prev);
-        _value = i;
-    }
-
-    @Override
-    public int size()
-    {
-        if(isElementOfArray())
-        {
-            final ArrayElement parent = (ArrayElement) parent();
-            if(parent.constructorType() == ArrayElement.SMALL)
-            {
-                if(-128 <= _value && _value <= 127)
-                {
-                    return 1;
-                }
-                else
-                {
-                    parent.setConstructorType(ArrayElement.LARGE);
-                    return 4;
-                }
-            }
-            else
-            {
-                return 4;
-            }
-        }
-        else
-        {
-            return (-128 <= _value && _value <= 127) ? 2 : 5;
-        }
-
-    }
-
-    @Override
-    public Integer getValue()
-    {
-        return _value;
-    }
-
-    @Override
-    public Data.DataType getDataType()
-    {
-        return Data.DataType.INT;
-    }
-
-    @Override
-    public int encode(ByteBuffer b)
-    {
-        int size = size();
-        if(size <= b.remaining())
-        {
-            switch(size)
-            {
-                case 2:
-                    b.put((byte)0x54);
-                case 1:
-                    b.put((byte)_value);
-                    break;
-
-                case 5:
-                    b.put((byte)0x71);
-                case 4:
-                    b.putInt(_value);
-
-            }
-
-            return size;
-        }
-        return 0;
-    }
-}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/ListElement.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/ListElement.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/ListElement.java
deleted file mode 100644
index 6b2dde1..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/ListElement.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-import java.util.*;
-
-import org.apache.qpid.proton.codec.Data;
-
-class ListElement extends AbstractElement<List<Object>>
-{
-    private Element _first;
-
-    ListElement(Element parent, Element prev)
-    {
-        super(parent, prev);
-    }
-
-    public int count()
-    {
-        int count = 0;
-        Element elt = _first;
-        while(elt != null)
-        {
-            count++;
-            elt = elt.next();
-        }
-        return count;
-    }
-
-
-    @Override
-    public int size()
-    {
-        int count = 0;
-        int size = 0;
-        Element elt = _first;
-        while(elt != null)
-        {
-            count++;
-            size += elt.size();
-            elt = elt.next();
-        }
-        if(isElementOfArray())
-        {
-            ArrayElement parent = (ArrayElement) parent();
-            if(parent.constructorType() == ArrayElement.TINY)
-            {
-                if(count != 0)
-                {
-                    parent.setConstructorType(ArrayElement.ConstructorType.SMALL);
-                    size += 2;
-                }
-            }
-            else if(parent.constructorType() == ArrayElement.SMALL)
-            {
-                if(count > 255 || size > 254)
-                {
-                    parent.setConstructorType(ArrayElement.ConstructorType.LARGE);
-                    size += 8;
-                }
-                else
-                {
-                    size += 2;
-                }
-            }
-            size += 8;
-
-        }
-        else
-        {
-            if(count == 0)
-            {
-                size = 1;
-            }
-            else if(count <= 255 && size <= 254)
-            {
-                size += 3;
-            }
-            else
-            {
-                size+=9;
-            }
-        }
-
-        return size;
-    }
-
-    @Override
-    public List<Object> getValue()
-    {
-        List<Object> list = new ArrayList<Object>();
-        Element elt = _first;
-        while(elt != null)
-        {
-            list.add(elt.getValue());
-            elt = elt.next();
-        }
-
-        return Collections.unmodifiableList(list);
-    }
-
-    @Override
-    public Data.DataType getDataType()
-    {
-        return Data.DataType.LIST;
-    }
-
-    @Override
-    public int encode(ByteBuffer b)
-    {
-        int encodedSize = size();
-
-        int count = 0;
-        int size = 0;
-        Element elt = _first;
-        while(elt != null)
-        {
-            count++;
-            size += elt.size();
-            elt = elt.next();
-        }
-
-        if(encodedSize > b.remaining())
-        {
-            return 0;
-        }
-        else
-        {
-            if(isElementOfArray())
-            {
-                switch(((ArrayElement)parent()).constructorType())
-                {
-                    case TINY:
-                        break;
-                    case SMALL:
-                        b.put((byte)(size+1));
-                        b.put((byte)count);
-                        break;
-                    case LARGE:
-                        b.putInt((size+4));
-                        b.putInt(count);
-                }
-            }
-            else
-            {
-                if(count == 0)
-                {
-                    b.put((byte)0x45);
-                }
-                else if(size <= 254 && count <=255)
-                {
-                    b.put((byte)0xc0);
-                    b.put((byte)(size+1));
-                    b.put((byte)count);
-                }
-                else
-                {
-                    b.put((byte)0xd0);
-                    b.putInt((size+4));
-                    b.putInt(count);
-                }
-
-            }
-
-            elt = _first;
-            while(elt != null)
-            {
-                elt.encode(b);
-                elt = elt.next();
-            }
-
-            return encodedSize;
-        }
-    }
-
-    @Override
-    public boolean canEnter()
-    {
-        return true;
-    }
-
-    @Override
-    public Element child()
-    {
-        return _first;
-    }
-
-    @Override
-    public void setChild(Element elt)
-    {
-        _first = elt;
-    }
-
-    @Override
-    public Element checkChild(Element element)
-    {
-        return element;
-    }
-
-    @Override
-    public Element addChild(Element element)
-    {
-        _first = element;
-        return element;
-    }
-
-    @Override
-    String startSymbol() {
-        return "[";
-    }
-
-    @Override
-    String stopSymbol() {
-        return "]";
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/LongElement.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/LongElement.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/LongElement.java
deleted file mode 100644
index e2e832d..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/LongElement.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-
-import org.apache.qpid.proton.codec.Data;
-
-class LongElement extends AtomicElement<Long>
-{
-
-    private final long _value;
-
-    LongElement(Element parent, Element prev, long l)
-    {
-        super(parent, prev);
-        _value = l;
-    }
-
-    @Override
-    public int size()
-    {
-        if(isElementOfArray())
-        {
-            final ArrayElement parent = (ArrayElement) parent();
-
-            if(parent.constructorType() == ArrayElement.SMALL)
-            {
-                if(-128l <= _value && _value <= 127l)
-                {
-                    return 1;
-                }
-                else
-                {
-                    parent.setConstructorType(ArrayElement.LARGE);
-                }
-            }
-
-            return 8;
-
-        }
-        else
-        {
-            return (-128l <= _value && _value <= 127l) ? 2 : 9;
-        }
-
-    }
-
-    @Override
-    public Long getValue()
-    {
-        return _value;
-    }
-
-    @Override
-    public Data.DataType getDataType()
-    {
-        return Data.DataType.LONG;
-    }
-
-    @Override
-    public int encode(ByteBuffer b)
-    {
-        int size = size();
-        if(size > b.remaining())
-        {
-            return 0;
-        }
-        switch(size)
-        {
-            case 2:
-                b.put((byte)0x55);
-            case 1:
-                b.put((byte)_value);
-                break;
-            case 9:
-                b.put((byte)0x81);
-            case 8:
-                b.putLong(_value);
-
-        }
-        return size;
-    }
-}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ccdcf329/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/MapElement.java
----------------------------------------------------------------------
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/MapElement.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/MapElement.java
deleted file mode 100644
index 710e9f0..0000000
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/impl/MapElement.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.qpid.proton.codec.impl;
-
-import java.nio.ByteBuffer;
-import java.util.*;
-
-import org.apache.qpid.proton.codec.Data;
-
-class MapElement extends AbstractElement<Map<Object,Object>>
-{
-    private Element _first;
-
-    MapElement(Element parent, Element prev)
-    {
-        super(parent, prev);
-    }
-
-
-    public int count()
-    {
-        int count = 0;
-        Element elt = _first;
-        while(elt != null)
-        {
-            count++;
-            elt = elt.next();
-        }
-        return count;
-    }
-
-    @Override
-    public int size()
-    {
-        int count = 0;
-        int size = 0;
-        Element elt = _first;
-        while(elt != null)
-        {
-            count++;
-            size += elt.size();
-            elt = elt.next();
-        }
-        if(isElementOfArray())
-        {
-            ArrayElement parent = (ArrayElement) parent();
-
-            if(parent.constructorType() == ArrayElement.SMALL)
-            {
-                if(count > 255 || size > 254)
-                {
-                    parent.setConstructorType(ArrayElement.ConstructorType.LARGE);
-                    size += 8;
-                }
-                else
-                {
-                    size += 2;
-                }
-            }
-            size += 8;
-
-        }
-        else
-        {
-            if(count <= 255 && size <= 254)
-            {
-                size += 3;
-            }
-            else
-            {
-                size+=9;
-            }
-        }
-
-        return size;
-    }
-
-    @Override
-    public Map<Object,Object> getValue()
-    {
-        LinkedHashMap<Object,Object> map = new LinkedHashMap<Object,Object>();
-        Element elt = _first;
-        while(elt != null)
-        {
-            Object key = elt.getValue();
-            Object value;
-            elt = elt.next();
-            if(elt != null)
-            {
-                value = elt.getValue();
-                elt = elt.next();
-            }
-            else
-            {
-                value = null;
-            }
-            map.put(key,value);
-        }
-
-        return Collections.unmodifiableMap(map);
-    }
-
-    @Override
-    public Data.DataType getDataType()
-    {
-        return Data.DataType.MAP;
-    }
-
-    @Override
-    public int encode(ByteBuffer b)
-    {
-        int encodedSize = size();
-
-        int count = 0;
-        int size = 0;
-        Element elt = _first;
-        while(elt != null)
-        {
-            count++;
-            size += elt.size();
-            elt = elt.next();
-        }
-
-        if(encodedSize > b.remaining())
-        {
-            return 0;
-        }
-        else
-        {
-            if(isElementOfArray())
-            {
-                switch(((ArrayElement)parent()).constructorType())
-                {
-                    case SMALL:
-                        b.put((byte)(size+1));
-                        b.put((byte)count);
-                        break;
-                    case LARGE:
-                        b.putInt((size+4));
-                        b.putInt(count);
-                }
-            }
-            else
-            {
-                if(size <= 254 && count <=255)
-                {
-                    b.put((byte)0xc1);
-                    b.put((byte)(size+1));
-                    b.put((byte)count);
-                }
-                else
-                {
-                    b.put((byte)0xd1);
-                    b.putInt((size+4));
-                    b.putInt(count);
-                }
-
-            }
-
-            elt = _first;
-            while(elt != null)
-            {
-                elt.encode(b);
-                elt = elt.next();
-            }
-
-            return encodedSize;
-        }
-    }
-
-    @Override
-    public boolean canEnter()
-    {
-        return true;
-    }
-
-    @Override
-    public Element child()
-    {
-        return _first;
-    }
-
-    @Override
-    public void setChild(Element elt)
-    {
-        _first = elt;
-    }
-
-    @Override
-    public Element checkChild(Element element)
-    {
-        return element;
-    }
-
-    @Override
-    public Element addChild(Element element)
-    {
-        _first = element;
-        return element;
-    }
-
-    @Override
-    String startSymbol() {
-        return "{";
-    }
-
-    @Override
-    String stopSymbol() {
-        return "}";
-    }
-
-}


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