You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2016/12/04 16:23:50 UTC

[1/3] mina git commit: Fixed the missing javadoc

Repository: mina
Updated Branches:
  refs/heads/2.0 756ea4270 -> 9c95cd14e


Fixed the missing javadoc

Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/0562fd4f
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/0562fd4f
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/0562fd4f

Branch: refs/heads/2.0
Commit: 0562fd4f321947445a6476b21d576ec2761dcdc4
Parents: 756ea42
Author: Emmanuel L�charny <el...@symas.com>
Authored: Sun Dec 4 10:02:30 2016 +0100
Committer: Emmanuel L�charny <el...@symas.com>
Committed: Sun Dec 4 10:02:30 2016 +0100

----------------------------------------------------------------------
 .../mina/integration/xbean/StandardThreadPool.java       | 11 +++++++++++
 1 file changed, 11 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/0562fd4f/mina-integration-xbean/src/main/java/org/apache/mina/integration/xbean/StandardThreadPool.java
----------------------------------------------------------------------
diff --git a/mina-integration-xbean/src/main/java/org/apache/mina/integration/xbean/StandardThreadPool.java b/mina-integration-xbean/src/main/java/org/apache/mina/integration/xbean/StandardThreadPool.java
index 6efbb46..cff274c 100644
--- a/mina-integration-xbean/src/main/java/org/apache/mina/integration/xbean/StandardThreadPool.java
+++ b/mina-integration-xbean/src/main/java/org/apache/mina/integration/xbean/StandardThreadPool.java
@@ -24,16 +24,27 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
 /**
+ * A ThreadPool
+ * 
  * @org.apache.xbean.XBean
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */
 public class StandardThreadPool implements Executor {
     private final ExecutorService delegate;
 
+    /**
+     * Creates a new StandardThreadPool instance
+     * 
+     * @param maxThreads The maximum number of threads to use in the associated pool
+     */
     public StandardThreadPool(int maxThreads) {
         delegate = Executors.newFixedThreadPool(maxThreads);
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
     public void execute(Runnable command) {
         delegate.execute(command);
     }


[3/3] mina git commit: Added some missing Javadoc

Posted by el...@apache.org.
Added some missing Javadoc

Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/9c95cd14
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/9c95cd14
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/9c95cd14

Branch: refs/heads/2.0
Commit: 9c95cd14e9c955ed78703a1f780923fbe6b8b961
Parents: 2405f81
Author: Emmanuel L�charny <el...@symas.com>
Authored: Sun Dec 4 17:23:06 2016 +0100
Committer: Emmanuel L�charny <el...@symas.com>
Committed: Sun Dec 4 17:23:06 2016 +0100

----------------------------------------------------------------------
 .../mina/core/buffer/IoBufferWrapper.java       |   2 +-
 .../mina/util/byteaccess/AbstractByteArray.java |  18 +-
 .../mina/util/byteaccess/BufferByteArray.java   |  74 +++++-
 .../apache/mina/util/byteaccess/ByteArray.java  |  12 +
 .../mina/util/byteaccess/ByteArrayList.java     |   8 +-
 .../util/byteaccess/CompositeByteArray.java     | 255 ++++++++++++-------
 .../CompositeByteArrayRelativeBase.java         |  25 +-
 7 files changed, 286 insertions(+), 108 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/9c95cd14/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferWrapper.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferWrapper.java b/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferWrapper.java
index 600db21..b10d74c 100644
--- a/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferWrapper.java
+++ b/mina-core/src/main/java/org/apache/mina/core/buffer/IoBufferWrapper.java
@@ -1498,10 +1498,10 @@ public class IoBufferWrapper extends IoBuffer {
         return this;
     }
 
-    @Override
     /**
      * {@inheritDoc}
      */
+    @Override
     public IoBuffer putUnsigned(short value) {
         buf.putUnsigned(value);
         return this;

http://git-wip-us.apache.org/repos/asf/mina/blob/9c95cd14/mina-core/src/main/java/org/apache/mina/util/byteaccess/AbstractByteArray.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/util/byteaccess/AbstractByteArray.java b/mina-core/src/main/java/org/apache/mina/util/byteaccess/AbstractByteArray.java
index 6da8cfb..0036c08 100644
--- a/mina-core/src/main/java/org/apache/mina/util/byteaccess/AbstractByteArray.java
+++ b/mina-core/src/main/java/org/apache/mina/util/byteaccess/AbstractByteArray.java
@@ -27,13 +27,20 @@ package org.apache.mina.util.byteaccess;
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */
 abstract class AbstractByteArray implements ByteArray {
-
     /**
      * {@inheritDoc}
      */
+    @Override
     public final int length() {
         return last() - first();
     }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public abstract int hashCode();
 
     /**
      * {@inheritDoc}
@@ -44,36 +51,43 @@ abstract class AbstractByteArray implements ByteArray {
         if (other == this) {
             return true;
         }
+        
         // Compare types.
         if (!(other instanceof ByteArray)) {
             return false;
         }
+        
         ByteArray otherByteArray = (ByteArray) other;
+        
         // Compare properties.
         if (first() != otherByteArray.first() || last() != otherByteArray.last()
                 || !order().equals(otherByteArray.order())) {
             return false;
         }
+        
         // Compare bytes.
         Cursor cursor = cursor();
         Cursor otherCursor = otherByteArray.cursor();
+        
         for (int remaining = cursor.getRemaining(); remaining > 0;) {
             // Optimization: prefer int comparisons over byte comparisons
             if (remaining >= 4) {
                 int i = cursor.getInt();
                 int otherI = otherCursor.getInt();
+                
                 if (i != otherI) {
                     return false;
                 }
             } else {
                 byte b = cursor.get();
                 byte otherB = otherCursor.get();
+                
                 if (b != otherB) {
                     return false;
                 }
             }
         }
+        
         return true;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/9c95cd14/mina-core/src/main/java/org/apache/mina/util/byteaccess/BufferByteArray.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/util/byteaccess/BufferByteArray.java b/mina-core/src/main/java/org/apache/mina/util/byteaccess/BufferByteArray.java
index 851b4a6..64d3ab6 100644
--- a/mina-core/src/main/java/org/apache/mina/util/byteaccess/BufferByteArray.java
+++ b/mina-core/src/main/java/org/apache/mina/util/byteaccess/BufferByteArray.java
@@ -54,6 +54,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public Iterable<IoBuffer> getIoBuffers() {
         return Collections.singletonList(bb);
     }
@@ -61,6 +62,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public IoBuffer getSingleIoBuffer() {
         return bb;
     }
@@ -70,6 +72,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
      * 
      * Calling <code>free()</code> on the returned slice has no effect.
      */
+    @Override
     public ByteArray slice(int index, int length) {
         int oldLimit = bb.limit();
         bb.position(index);
@@ -88,11 +91,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
-    public abstract void free();
-
-    /**
-     * {@inheritDoc}
-     */
+    @Override
     public Cursor cursor() {
         return new CursorImpl();
     }
@@ -100,6 +99,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public Cursor cursor(int index) {
         return new CursorImpl(index);
     }
@@ -107,6 +107,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public int first() {
         return 0;
     }
@@ -114,6 +115,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public int last() {
         return bb.limit();
     }
@@ -121,6 +123,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public ByteOrder order() {
         return bb.order();
     }
@@ -128,6 +131,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void order(ByteOrder order) {
         bb.order(order);
     }
@@ -135,6 +139,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public byte get(int index) {
         return bb.get(index);
     }
@@ -142,6 +147,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void put(int index, byte b) {
         bb.put(index, b);
     }
@@ -149,6 +155,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void get(int index, IoBuffer other) {
         bb.position(index);
         other.put(bb);
@@ -157,6 +164,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void put(int index, IoBuffer other) {
         bb.position(index);
         bb.put(other);
@@ -165,6 +173,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public short getShort(int index) {
         return bb.getShort(index);
     }
@@ -172,6 +181,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void putShort(int index, short s) {
         bb.putShort(index, s);
     }
@@ -179,6 +189,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public int getInt(int index) {
         return bb.getInt(index);
     }
@@ -186,6 +197,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void putInt(int index, int i) {
         bb.putInt(index, i);
     }
@@ -193,6 +205,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public long getLong(int index) {
         return bb.getLong(index);
     }
@@ -200,6 +213,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void putLong(int index, long l) {
         bb.putLong(index, l);
     }
@@ -207,6 +221,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public float getFloat(int index) {
         return bb.getFloat(index);
     }
@@ -214,6 +229,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void putFloat(int index, float f) {
         bb.putFloat(index, f);
     }
@@ -221,6 +237,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public double getDouble(int index) {
         return bb.getDouble(index);
     }
@@ -228,6 +245,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void putDouble(int index, double d) {
         bb.putDouble(index, d);
     }
@@ -235,6 +253,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public char getChar(int index) {
         return bb.getChar(index);
     }
@@ -242,6 +261,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void putChar(int index, char c) {
         bb.putChar(index, c);
     }
@@ -261,6 +281,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public int getRemaining() {
             return last() - index;
         }
@@ -268,6 +289,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public boolean hasRemaining() {
             return getRemaining() > 0;
         }
@@ -275,6 +297,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public int getIndex() {
             return index;
         }
@@ -282,6 +305,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void setIndex(int index) {
             if (index < 0 || index > last()) {
                 throw new IndexOutOfBoundsException();
@@ -289,10 +313,18 @@ public abstract class BufferByteArray extends AbstractByteArray {
             this.index = index;
         }
 
+        /**
+         * {@inheritDoc}
+         */
+        @Override
         public void skip(int length) {
             setIndex(index + length);
         }
 
+        /**
+         * {@inheritDoc}
+         */
+        @Override
         public ByteArray slice(int length) {
             ByteArray slice = BufferByteArray.this.slice(index, length);
             index += length;
@@ -302,6 +334,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public ByteOrder order() {
             return BufferByteArray.this.order();
         }
@@ -309,6 +342,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public byte get() {
             byte b = BufferByteArray.this.get(index);
             index += 1;
@@ -318,6 +352,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void put(byte b) {
             BufferByteArray.this.put(index, b);
             index += 1;
@@ -326,6 +361,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void get(IoBuffer bb) {
             int size = Math.min(getRemaining(), bb.remaining());
             BufferByteArray.this.get(index, bb);
@@ -335,6 +371,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void put(IoBuffer bb) {
             int size = bb.remaining();
             BufferByteArray.this.put(index, bb);
@@ -344,6 +381,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public short getShort() {
             short s = BufferByteArray.this.getShort(index);
             index += 2;
@@ -353,6 +391,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void putShort(short s) {
             BufferByteArray.this.putShort(index, s);
             index += 2;
@@ -361,6 +400,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public int getInt() {
             int i = BufferByteArray.this.getInt(index);
             index += 4;
@@ -370,6 +410,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void putInt(int i) {
             BufferByteArray.this.putInt(index, i);
             index += 4;
@@ -378,6 +419,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public long getLong() {
             long l = BufferByteArray.this.getLong(index);
             index += 8;
@@ -387,6 +429,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void putLong(long l) {
             BufferByteArray.this.putLong(index, l);
             index += 8;
@@ -395,6 +438,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public float getFloat() {
             float f = BufferByteArray.this.getFloat(index);
             index += 4;
@@ -404,6 +448,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void putFloat(float f) {
             BufferByteArray.this.putFloat(index, f);
             index += 4;
@@ -412,6 +457,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public double getDouble() {
             double d = BufferByteArray.this.getDouble(index);
             index += 8;
@@ -421,6 +467,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void putDouble(double d) {
             BufferByteArray.this.putDouble(index, d);
             index += 8;
@@ -429,6 +476,7 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public char getChar() {
             char c = BufferByteArray.this.getChar(index);
             index += 2;
@@ -438,9 +486,25 @@ public abstract class BufferByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void putChar(char c) {
             BufferByteArray.this.putChar(index, c);
             index += 2;
         }
     }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public int hashCode() {
+        int h = 17;
+        
+        if (bb != null) {
+            h = h * 37 + bb.hashCode();
+        }
+        
+        return h;
+    }
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/9c95cd14/mina-core/src/main/java/org/apache/mina/util/byteaccess/ByteArray.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/util/byteaccess/ByteArray.java b/mina-core/src/main/java/org/apache/mina/util/byteaccess/ByteArray.java
index 78a0559..f813577 100644
--- a/mina-core/src/main/java/org/apache/mina/util/byteaccess/ByteArray.java
+++ b/mina-core/src/main/java/org/apache/mina/util/byteaccess/ByteArray.java
@@ -34,16 +34,19 @@ public interface ByteArray extends IoAbsoluteReader, IoAbsoluteWriter {
     /**
      * {@inheritDoc}
      */
+    @Override
     int first();
 
     /**
      * {@inheritDoc}
      */
+    @Override
     int last();
 
     /**
      * {@inheritDoc}
      */
+    @Override
     ByteOrder order();
 
     /**
@@ -82,21 +85,25 @@ public interface ByteArray extends IoAbsoluteReader, IoAbsoluteWriter {
      * @param other The ByteArray we want to compare with
      * @return <tt>true</tt> if both ByteArray are equals
      */
+    @Override
     boolean equals(Object other);
 
     /**
      * {@inheritDoc}
      */
+    @Override
     byte get(int index);
 
     /**
      * {@inheritDoc}
      */
+    @Override
     void get(int index, IoBuffer bb);
 
     /**
      * {@inheritDoc}
      */
+    @Override
     int getInt(int index);
 
     /**
@@ -136,26 +143,31 @@ public interface ByteArray extends IoAbsoluteReader, IoAbsoluteWriter {
         /**
          * {@inheritDoc}
          */
+        @Override
         int getRemaining();
 
         /**
          * {@inheritDoc}
          */
+        @Override
         boolean hasRemaining();
 
         /**
          * {@inheritDoc}
          */
+        @Override
         byte get();
 
         /**
          * {@inheritDoc}
          */
+        @Override
         void get(IoBuffer bb);
 
         /**
          * {@inheritDoc}
          */
+        @Override
         int getInt();
     }
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/9c95cd14/mina-core/src/main/java/org/apache/mina/util/byteaccess/ByteArrayList.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/util/byteaccess/ByteArrayList.java b/mina-core/src/main/java/org/apache/mina/util/byteaccess/ByteArrayList.java
index 6d5e312..a897f88 100644
--- a/mina-core/src/main/java/org/apache/mina/util/byteaccess/ByteArrayList.java
+++ b/mina-core/src/main/java/org/apache/mina/util/byteaccess/ByteArrayList.java
@@ -23,6 +23,8 @@ import java.util.NoSuchElementException;
 
 /**
  * A linked list that stores <code>ByteArray</code>s and maintains several useful invariants.
+ * 
+ * Note : this class is *not* thread safe.
  *
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */
@@ -194,7 +196,6 @@ class ByteArrayList {
          * Constructs a new header node.
          */
         private Node() {
-            super();
             previous = this;
             next = this;
         }
@@ -203,8 +204,6 @@ class ByteArrayList {
          * Constructs a new node with a value.
          */
         private Node(ByteArray ba) {
-            super();
-
             if (ba == null) {
                 throw new IllegalArgumentException("ByteArray must not be null.");
             }
@@ -221,6 +220,7 @@ class ByteArrayList {
             if (!hasPreviousNode()) {
                 throw new NoSuchElementException();
             }
+            
             return previous;
         }
 
@@ -233,6 +233,7 @@ class ByteArrayList {
             if (!hasNextNode()) {
                 throw new NoSuchElementException();
             }
+            
             return next;
         }
 
@@ -252,5 +253,4 @@ class ByteArrayList {
             return removed;
         }
     }
-
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/9c95cd14/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArray.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArray.java b/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArray.java
index 4134e6e..baebd01 100644
--- a/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArray.java
+++ b/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArray.java
@@ -28,7 +28,7 @@ import org.apache.mina.core.buffer.IoBuffer;
 import org.apache.mina.util.byteaccess.ByteArrayList.Node;
 
 /**
- * A ByteArray composed of other ByteArrays. Optimised for fast relative access
+ * A ByteArray composed of other ByteArrays. Optimized for fast relative access
  * via cursors. Absolute access methods are provided, but may perform poorly.
  *
  * TODO: Write about laziness of cursor implementation - how movement doesn't
@@ -125,8 +125,7 @@ public final class CompositeByteArray extends AbstractByteArray {
      * Adds the specified {@link ByteArray} to the first
      * position in the list
      *
-     * @param ba
-     *  The ByteArray to add to the list
+     * @param ba The ByteArray to add to the list
      */
     public void addFirst(ByteArray ba) {
         addHook(ba);
@@ -136,8 +135,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * Remove the first {@link ByteArray} in the list
      *
-     * @return
-     *  The first ByteArray in the list
+     * @return The first ByteArray in the list
      */
     public ByteArray removeFirst() {
         Node node = bas.removeFirst();
@@ -152,7 +150,7 @@ public final class CompositeByteArray extends AbstractByteArray {
      * TODO: Document free behaviour more thoroughly.
      * 
      * @param index The index from where we will remove bytes
-     * @return$ The resulting byte aaay
+     * @return The resulting byte aaay
      */
     public ByteArray removeTo(int index) {
         if (index < first() || index > last()) {
@@ -176,20 +174,28 @@ public final class CompositeByteArray extends AbstractByteArray {
                 // TODO: Consider using getIoBuffers(), as would avoid
                 // performance problems for nested ComponentByteArrays.
                 IoBuffer bb = component.getSingleIoBuffer();
+                
                 // get the limit of the buffer
                 int originalLimit = bb.limit();
+                
                 // set the position to the beginning of the buffer
                 bb.position(0);
+                
                 // set the limit of the buffer to what is remaining
                 bb.limit(remaining);
+                
                 // create a new IoBuffer, sharing the data with 'bb'
                 IoBuffer bb1 = bb.slice();
+                
                 // set the position at the end of the buffer
                 bb.position(remaining);
+                
                 // gets the limit of the buffer
                 bb.limit(originalLimit);
+                
                 // create a new IoBuffer, sharing teh data with 'bb'
                 IoBuffer bb2 = bb.slice();
+                
                 // create a new ByteArray with 'bb1'
                 ByteArray ba1 = new BufferByteArray(bb1) {
                     @Override
@@ -210,6 +216,7 @@ public final class CompositeByteArray extends AbstractByteArray {
                         componentFinal.free();
                     }
                 };
+                
                 // add the new ByteArray to the CompositeByteArray
                 addFirst(ba2);
             }
@@ -222,8 +229,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * Adds the specified {@link ByteArray} to the end of the list
      *
-     * @param ba
-     *  The ByteArray to add to the end of the list
+     * @param ba The ByteArray to add to the end of the list
      */
     public void addLast(ByteArray ba) {
         addHook(ba);
@@ -233,8 +239,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * Removes the last {@link ByteArray} in the list
      *
-     * @return
-     *  The ByteArray that was removed
+     * @return The ByteArray that was removed
      */
     public ByteArray removeLast() {
         Node node = bas.removeLast();
@@ -245,6 +250,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void free() {
         while (!bas.isEmpty()) {
             Node node = bas.getLast();
@@ -253,28 +259,16 @@ public final class CompositeByteArray extends AbstractByteArray {
         }
     }
 
-    private void checkBounds(int index, int accessSize) {
-        int lower = index;
-        int upper = index + accessSize;
-
-        if (lower < first()) {
-            throw new IndexOutOfBoundsException("Index " + lower + " less than start " + first() + ".");
-        }
-
-        if (upper > last()) {
-            throw new IndexOutOfBoundsException("Index " + upper + " greater than length " + last() + ".");
-        }
-    }
-
     /**
      * {@inheritDoc}
      */
+    @Override
     public Iterable<IoBuffer> getIoBuffers() {
         if (bas.isEmpty()) {
             return Collections.emptyList();
         }
 
-        Collection<IoBuffer> result = new ArrayList<IoBuffer>();
+        Collection<IoBuffer> result = new ArrayList<>();
         Node node = bas.getFirst();
 
         for (IoBuffer bb : node.getByteArray().getIoBuffers()) {
@@ -295,6 +289,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public IoBuffer getSingleIoBuffer() {
         if (byteArrayFactory == null) {
             throw new IllegalStateException(
@@ -308,13 +303,11 @@ public final class CompositeByteArray extends AbstractByteArray {
 
         int actualLength = last() - first();
 
-        {
-            Node node = bas.getFirst();
-            ByteArray ba = node.getByteArray();
+        Node firstNode = bas.getFirst();
+        ByteArray ba = firstNode.getByteArray();
 
-            if (ba.last() == actualLength) {
-                return ba.getSingleIoBuffer();
-            }
+        if (ba.last() == actualLength) {
+            return ba.getSingleIoBuffer();
         }
 
         // Replace all nodes with a single node.
@@ -331,12 +324,14 @@ public final class CompositeByteArray extends AbstractByteArray {
         }
 
         bas.addLast(target);
+        
         return bb;
     }
 
     /**
      * {@inheritDoc}
      */
+    @Override
     public Cursor cursor() {
         return new CursorImpl();
     }
@@ -344,6 +339,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public Cursor cursor(int index) {
         return new CursorImpl(index);
     }
@@ -373,6 +369,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public ByteArray slice(int index, int length) {
         return cursor(index).slice(length);
     }
@@ -380,6 +377,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public byte get(int index) {
         return cursor(index).get();
     }
@@ -387,6 +385,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void put(int index, byte b) {
         cursor(index).put(b);
     }
@@ -394,6 +393,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void get(int index, IoBuffer bb) {
         cursor(index).get(bb);
     }
@@ -401,6 +401,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void put(int index, IoBuffer bb) {
         cursor(index).put(bb);
     }
@@ -408,6 +409,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public int first() {
         return bas.firstByte();
     }
@@ -415,6 +417,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public int last() {
         return bas.lastByte();
     }
@@ -423,8 +426,7 @@ public final class CompositeByteArray extends AbstractByteArray {
      * This method should be called prior to adding any component
      * <code>ByteArray</code> to a composite.
      *
-     * @param ba
-     *  The component to add.
+     * @param ba The component to add.
      */
     private void addHook(ByteArray ba) {
         // Check first() is zero, otherwise cursor might not work.
@@ -432,6 +434,7 @@ public final class CompositeByteArray extends AbstractByteArray {
         if (ba.first() != 0) {
             throw new IllegalArgumentException("Cannot add byte array that doesn't start from 0: " + ba.first());
         }
+        
         // Check order.
         if (order == null) {
             order = ba.order();
@@ -443,6 +446,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public ByteOrder order() {
         if (order == null) {
             throw new IllegalStateException("Byte order not yet set.");
@@ -453,6 +457,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void order(ByteOrder order) {
         if (order == null || !order.equals(this.order)) {
             this.order = order;
@@ -468,6 +473,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public short getShort(int index) {
         return cursor(index).getShort();
     }
@@ -475,6 +481,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void putShort(int index, short s) {
         cursor(index).putShort(s);
     }
@@ -482,6 +489,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public int getInt(int index) {
         return cursor(index).getInt();
     }
@@ -489,6 +497,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void putInt(int index, int i) {
         cursor(index).putInt(i);
     }
@@ -496,6 +505,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public long getLong(int index) {
         return cursor(index).getLong();
     }
@@ -503,6 +513,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void putLong(int index, long l) {
         cursor(index).putLong(l);
     }
@@ -510,6 +521,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public float getFloat(int index) {
         return cursor(index).getFloat();
     }
@@ -517,6 +529,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void putFloat(int index, float f) {
         cursor(index).putFloat(f);
     }
@@ -524,6 +537,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public double getDouble(int index) {
         return cursor(index).getDouble();
     }
@@ -531,6 +545,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void putDouble(int index, double d) {
         cursor(index).putDouble(d);
     }
@@ -538,6 +553,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public char getChar(int index) {
         return cursor(index).getChar();
     }
@@ -545,6 +561,7 @@ public final class CompositeByteArray extends AbstractByteArray {
     /**
      * {@inheritDoc}
      */
+    @Override
     public void putChar(int index, char c) {
         cursor(index).putChar(c);
     }
@@ -583,6 +600,7 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public int getIndex() {
             return index;
         }
@@ -590,6 +608,7 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void setIndex(int index) {
             checkBounds(index, 0);
             this.index = index;
@@ -598,6 +617,7 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void skip(int length) {
             setIndex(index + length);
         }
@@ -605,9 +625,11 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public ByteArray slice(int length) {
             CompositeByteArray slice = new CompositeByteArray(byteArrayFactory);
             int remaining = length;
+
             while (remaining > 0) {
                 prepareForAccess(remaining);
                 int componentSliceSize = Math.min(remaining, componentCursor.getRemaining());
@@ -616,12 +638,14 @@ public final class CompositeByteArray extends AbstractByteArray {
                 index += componentSliceSize;
                 remaining -= componentSliceSize;
             }
+            
             return slice;
         }
 
         /**
          * {@inheritDoc}
          */
+        @Override
         public ByteOrder order() {
             return CompositeByteArray.this.order();
         }
@@ -644,10 +668,12 @@ public final class CompositeByteArray extends AbstractByteArray {
             // Handle missing node.
             if (componentNode == null) {
                 int basMidpoint = (last() - first()) / 2 + first();
+                
                 if (index <= basMidpoint) {
                     // Search from the start.
                     componentNode = bas.getFirst();
                     componentIndex = first();
+                    
                     if (listener != null) {
                         listener.enteredFirstComponent(componentIndex, componentNode.getByteArray());
                     }
@@ -655,6 +681,7 @@ public final class CompositeByteArray extends AbstractByteArray {
                     // Search from the end.
                     componentNode = bas.getLast();
                     componentIndex = last() - componentNode.getByteArray().last();
+                    
                     if (listener != null) {
                         listener.enteredLastComponent(componentIndex, componentNode.getByteArray());
                     }
@@ -665,6 +692,7 @@ public final class CompositeByteArray extends AbstractByteArray {
             while (index < componentIndex) {
                 componentNode = componentNode.getPreviousNode();
                 componentIndex -= componentNode.getByteArray().last();
+                
                 if (listener != null) {
                     listener.enteredPreviousComponent(componentIndex, componentNode.getByteArray());
                 }
@@ -674,6 +702,7 @@ public final class CompositeByteArray extends AbstractByteArray {
             while (index >= componentIndex + componentNode.getByteArray().length()) {
                 componentIndex += componentNode.getByteArray().last();
                 componentNode = componentNode.getNextNode();
+                
                 if (listener != null) {
                     listener.enteredNextComponent(componentIndex, componentNode.getByteArray());
                 }
@@ -681,6 +710,7 @@ public final class CompositeByteArray extends AbstractByteArray {
 
             // Update the cursor.
             int internalComponentIndex = index - componentIndex;
+            
             if (componentNode == oldComponentNode) {
                 // Move existing cursor.
                 componentCursor.setIndex(internalComponentIndex);
@@ -693,6 +723,7 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public int getRemaining() {
             return last() - index + 1;
         }
@@ -700,6 +731,7 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public boolean hasRemaining() {
             return getRemaining() > 0;
         }
@@ -707,16 +739,19 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public byte get() {
             prepareForAccess(1);
             byte b = componentCursor.get();
             index += 1;
+            
             return b;
         }
 
         /**
          * {@inheritDoc}
          */
+        @Override
         public void put(byte b) {
             prepareForAccess(1);
             componentCursor.put(b);
@@ -726,12 +761,14 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void get(IoBuffer bb) {
             while (bb.hasRemaining()) {
                 int remainingBefore = bb.remaining();
                 prepareForAccess(remainingBefore);
                 componentCursor.get(bb);
                 int remainingAfter = bb.remaining();
+                
                 // Advance index by actual amount got.
                 int chunkSize = remainingBefore - remainingAfter;
                 index += chunkSize;
@@ -741,12 +778,14 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void put(IoBuffer bb) {
             while (bb.hasRemaining()) {
                 int remainingBefore = bb.remaining();
                 prepareForAccess(remainingBefore);
                 componentCursor.put(bb);
                 int remainingAfter = bb.remaining();
+                
                 // Advance index by actual amount put.
                 int chunkSize = remainingBefore - remainingAfter;
                 index += chunkSize;
@@ -756,15 +795,19 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public short getShort() {
             prepareForAccess(2);
+
             if (componentCursor.getRemaining() >= 4) {
                 short s = componentCursor.getShort();
                 index += 2;
+                
                 return s;
             } else {
                 byte b0 = get();
                 byte b1 = get();
+                
                 if (order.equals(ByteOrder.BIG_ENDIAN)) {
                     return (short) ((b0 << 8) | (b1 & 0xFF));
                 } else {
@@ -776,40 +819,42 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void putShort(short s) {
             prepareForAccess(2);
+            
             if (componentCursor.getRemaining() >= 4) {
                 componentCursor.putShort(s);
                 index += 2;
             } else {
-                byte b0;
-                byte b1;
                 if (order.equals(ByteOrder.BIG_ENDIAN)) {
-                    b0 = (byte) ((s >> 8) & 0xff);
-                    b1 = (byte) ((s >> 0) & 0xff);
+                    put((byte) ((s >> 8) & 0xff));
+                    put((byte) (s & 0xff));
                 } else {
-                    b0 = (byte) ((s >> 0) & 0xff);
-                    b1 = (byte) ((s >> 8) & 0xff);
+                    put((byte) (s & 0xff));
+                    put((byte) ((s >> 8) & 0xff));
                 }
-                put(b0);
-                put(b1);
             }
         }
 
         /**
          * {@inheritDoc}
          */
+        @Override
         public int getInt() {
             prepareForAccess(4);
+            
             if (componentCursor.getRemaining() >= 4) {
                 int i = componentCursor.getInt();
                 index += 4;
+                
                 return i;
             } else {
                 byte b0 = get();
                 byte b1 = get();
                 byte b2 = get();
                 byte b3 = get();
+                
                 if (order.equals(ByteOrder.BIG_ENDIAN)) {
                     return (b0 << 24) | ((b1 & 0xFF) << 16) | ((b2 & 0xFF) << 8) | (b3 & 0xFF);
                 } else {
@@ -821,42 +866,39 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void putInt(int i) {
             prepareForAccess(4);
+            
             if (componentCursor.getRemaining() >= 4) {
                 componentCursor.putInt(i);
                 index += 4;
             } else {
-                byte b0;
-                byte b1;
-                byte b2;
-                byte b3;
                 if (order.equals(ByteOrder.BIG_ENDIAN)) {
-                    b0 = (byte) ((i >> 24) & 0xff);
-                    b1 = (byte) ((i >> 16) & 0xff);
-                    b2 = (byte) ((i >> 8) & 0xff);
-                    b3 = (byte) ((i >> 0) & 0xff);
+                    put((byte) ((i >> 24) & 0xff));
+                    put((byte) ((i >> 16) & 0xff));
+                    put((byte) ((i >> 8) & 0xff));
+                    put((byte) (i & 0xff));
                 } else {
-                    b0 = (byte) ((i >> 0) & 0xff);
-                    b1 = (byte) ((i >> 8) & 0xff);
-                    b2 = (byte) ((i >> 16) & 0xff);
-                    b3 = (byte) ((i >> 24) & 0xff);
+                    put((byte) (i & 0xff));
+                    put((byte) ((i >> 8) & 0xff));
+                    put((byte) ((i >> 16) & 0xff));
+                    put((byte) ((i >> 24) & 0xff));
                 }
-                put(b0);
-                put(b1);
-                put(b2);
-                put(b3);
             }
         }
 
         /**
          * {@inheritDoc}
          */
+        @Override
         public long getLong() {
             prepareForAccess(8);
+            
             if (componentCursor.getRemaining() >= 4) {
                 long l = componentCursor.getLong();
                 index += 8;
+                
                 return l;
             } else {
                 byte b0 = get();
@@ -867,6 +909,7 @@ public final class CompositeByteArray extends AbstractByteArray {
                 byte b5 = get();
                 byte b6 = get();
                 byte b7 = get();
+                
                 if (order.equals(ByteOrder.BIG_ENDIAN)) {
                     return ((b0 & 0xFFL) << 56) | ((b1 & 0xFFL) << 48) | ((b2 & 0xFFL) << 40) | ((b3 & 0xFFL) << 32)
                             | ((b4 & 0xFFL) << 24) | ((b5 & 0xFFL) << 16) | ((b6 & 0xFFL) << 8) | (b7 & 0xFFL);
@@ -880,62 +923,50 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void putLong(long l) {
-            //TODO: see if there is some optimizing that can be done here
             prepareForAccess(8);
+            
             if (componentCursor.getRemaining() >= 4) {
                 componentCursor.putLong(l);
                 index += 8;
             } else {
-                byte b0;
-                byte b1;
-                byte b2;
-                byte b3;
-                byte b4;
-                byte b5;
-                byte b6;
-                byte b7;
                 if (order.equals(ByteOrder.BIG_ENDIAN)) {
-                    b0 = (byte) ((l >> 56) & 0xff);
-                    b1 = (byte) ((l >> 48) & 0xff);
-                    b2 = (byte) ((l >> 40) & 0xff);
-                    b3 = (byte) ((l >> 32) & 0xff);
-                    b4 = (byte) ((l >> 24) & 0xff);
-                    b5 = (byte) ((l >> 16) & 0xff);
-                    b6 = (byte) ((l >> 8) & 0xff);
-                    b7 = (byte) ((l >> 0) & 0xff);
+                    put((byte) ((l >> 56) & 0xff));
+                    put((byte) ((l >> 48) & 0xff));
+                    put((byte) ((l >> 40) & 0xff));
+                    put((byte) ((l >> 32) & 0xff));
+                    put((byte) ((l >> 24) & 0xff));
+                    put((byte) ((l >> 16) & 0xff));
+                    put((byte) ((l >> 8) & 0xff));
+                    put((byte) (l & 0xff));
                 } else {
-                    b0 = (byte) ((l >> 0) & 0xff);
-                    b1 = (byte) ((l >> 8) & 0xff);
-                    b2 = (byte) ((l >> 16) & 0xff);
-                    b3 = (byte) ((l >> 24) & 0xff);
-                    b4 = (byte) ((l >> 32) & 0xff);
-                    b5 = (byte) ((l >> 40) & 0xff);
-                    b6 = (byte) ((l >> 48) & 0xff);
-                    b7 = (byte) ((l >> 56) & 0xff);
+                    put((byte) (l & 0xff));
+                    put((byte) ((l >> 8) & 0xff));
+                    put((byte) ((l >> 16) & 0xff));
+                    put((byte) ((l >> 24) & 0xff));
+                    put((byte) ((l >> 32) & 0xff));
+                    put((byte) ((l >> 40) & 0xff));
+                    put((byte) ((l >> 48) & 0xff));
+                    put((byte) ((l >> 56) & 0xff));
                 }
-                put(b0);
-                put(b1);
-                put(b2);
-                put(b3);
-                put(b4);
-                put(b5);
-                put(b6);
-                put(b7);
             }
         }
 
         /**
          * {@inheritDoc}
          */
+        @Override
         public float getFloat() {
             prepareForAccess(4);
+            
             if (componentCursor.getRemaining() >= 4) {
                 float f = componentCursor.getFloat();
                 index += 4;
                 return f;
             } else {
                 int i = getInt();
+                
                 return Float.intBitsToFloat(i);
             }
         }
@@ -943,8 +974,10 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void putFloat(float f) {
             prepareForAccess(4);
+            
             if (componentCursor.getRemaining() >= 4) {
                 componentCursor.putFloat(f);
                 index += 4;
@@ -957,14 +990,18 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public double getDouble() {
             prepareForAccess(8);
+            
             if (componentCursor.getRemaining() >= 4) {
                 double d = componentCursor.getDouble();
                 index += 8;
+                
                 return d;
             } else {
                 long l = getLong();
+                
                 return Double.longBitsToDouble(l);
             }
         }
@@ -972,8 +1009,10 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void putDouble(double d) {
             prepareForAccess(8);
+            
             if (componentCursor.getRemaining() >= 4) {
                 componentCursor.putDouble(d);
                 index += 8;
@@ -986,15 +1025,19 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public char getChar() {
             prepareForAccess(2);
+            
             if (componentCursor.getRemaining() >= 4) {
                 char c = componentCursor.getChar();
                 index += 2;
+                
                 return c;
             } else {
                 byte b0 = get();
                 byte b1 = get();
+                
                 if (order.equals(ByteOrder.BIG_ENDIAN)) {
                     return (char)((b0 << 8) | (b1 & 0xFF));
                 } else {
@@ -1006,25 +1049,55 @@ public final class CompositeByteArray extends AbstractByteArray {
         /**
          * {@inheritDoc}
          */
+        @Override
         public void putChar(char c) {
             prepareForAccess(2);
+            
+            
             if (componentCursor.getRemaining() >= 4) {
                 componentCursor.putChar(c);
                 index += 2;
             } else {
                 byte b0;
                 byte b1;
+                
                 if (order.equals(ByteOrder.BIG_ENDIAN)) {
                     b0 = (byte) ((c >> 8) & 0xff);
-                    b1 = (byte) ((c >> 0) & 0xff);
+                    b1 = (byte) (c & 0xff);
                 } else {
-                    b0 = (byte) ((c >> 0) & 0xff);
+                    b0 = (byte) (c & 0xff);
                     b1 = (byte) ((c >> 8) & 0xff);
                 }
+                
                 put(b0);
                 put(b1);
             }
         }
+        
+        private void checkBounds(int index, int accessSize) {
+            int lower = index;
+            int upper = index + accessSize;
+
+            if (lower < first()) {
+                throw new IndexOutOfBoundsException("Index " + lower + " less than start " + first() + ".");
+            }
 
+            if (upper > last()) {
+                throw new IndexOutOfBoundsException("Index " + upper + " greater than length " + last() + ".");
+            }
+        }
+    }
+    
+    
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public int hashCode() {
+        int h = 17;
+
+        h = h*37 + bas.hashCode();
+        
+        return h;
     }
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/9c95cd14/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArrayRelativeBase.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArrayRelativeBase.java b/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArrayRelativeBase.java
index 2e1be05..370ab48 100644
--- a/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArrayRelativeBase.java
+++ b/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArrayRelativeBase.java
@@ -55,19 +55,35 @@ abstract class CompositeByteArrayRelativeBase {
     public CompositeByteArrayRelativeBase(CompositeByteArray cba) {
         this.cba = cba;
         cursor = cba.cursor(cba.first(), new CursorListener() {
-
+            
+            /**
+             * {@inheritDoc}
+             */
+            @Override
             public void enteredFirstComponent(int componentIndex, ByteArray component) {
                 // Do nothing.
             }
 
+            /**
+             * {@inheritDoc}
+             */
+            @Override
             public void enteredLastComponent(int componentIndex, ByteArray component) {
                 assert false;
             }
 
+            /**
+             * {@inheritDoc}
+             */
+            @Override
             public void enteredNextComponent(int componentIndex, ByteArray component) {
                 cursorPassedFirstComponent();
             }
 
+            /**
+             * {@inheritDoc}
+             */
+            @Override
             public void enteredPreviousComponent(int componentIndex, ByteArray component) {
                 assert false;
             }
@@ -76,21 +92,21 @@ abstract class CompositeByteArrayRelativeBase {
     }
 
     /**
-     * {@inheritDoc}
+     * @return The number of remaining bytes
      */
     public final int getRemaining() {
         return cursor.getRemaining();
     }
 
     /**
-     * {@inheritDoc}
+     * @return <T>TRUE</T> if there are some more bytes
      */
     public final boolean hasRemaining() {
         return cursor.hasRemaining();
     }
 
     /**
-     * {@inheritDoc}
+     * @return The used byte order (little of big indian)
      */
     public ByteOrder order() {
         return cba.order();
@@ -133,5 +149,4 @@ abstract class CompositeByteArrayRelativeBase {
      * freeing it).
      */
     protected abstract void cursorPassedFirstComponent();
-
 }


[2/3] mina git commit: Fixed the missing Javadoc

Posted by el...@apache.org.
Fixed the missing Javadoc

Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/2405f81c
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/2405f81c
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/2405f81c

Branch: refs/heads/2.0
Commit: 2405f81cb15ef25f3404496fcf05bcdd4675a06a
Parents: 0562fd4
Author: Emmanuel L�charny <el...@symas.com>
Authored: Sun Dec 4 10:06:55 2016 +0100
Committer: Emmanuel L�charny <el...@symas.com>
Committed: Sun Dec 4 10:06:55 2016 +0100

----------------------------------------------------------------------
 .../ognl/AbstractPropertyAccessor.java          | 24 ----------------
 .../mina/integration/ognl/IoSessionFinder.java  | 29 ++++++++++----------
 .../ognl/IoSessionPropertyAccessor.java         |  2 +-
 .../integration/ognl/PropertyTypeConverter.java |  7 +++--
 4 files changed, 20 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/2405f81c/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/AbstractPropertyAccessor.java
----------------------------------------------------------------------
diff --git a/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/AbstractPropertyAccessor.java b/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/AbstractPropertyAccessor.java
index 313e0a6..518ef92 100644
--- a/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/AbstractPropertyAccessor.java
+++ b/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/AbstractPropertyAccessor.java
@@ -29,7 +29,6 @@ import ognl.PropertyAccessor;
  * 
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */
-@SuppressWarnings("unchecked")
 public abstract class AbstractPropertyAccessor extends ObjectPropertyAccessor {
 
     static final Object READ_ONLY_MODE = new Object();
@@ -97,27 +96,4 @@ public abstract class AbstractPropertyAccessor extends ObjectPropertyAccessor {
 
     protected abstract Object setProperty0(OgnlContext context, Object target, String name, Object value)
             throws OgnlException;
-
-    // The following methods uses the four method above, so there's no need
-    // to override them.
-
-    @Override
-    public final Object getProperty(Map context, Object target, Object oname) throws OgnlException {
-        return super.getProperty(context, target, oname);
-    }
-
-    @Override
-    public final boolean hasGetProperty(Map context, Object target, Object oname) throws OgnlException {
-        return super.hasGetProperty(context, target, oname);
-    }
-
-    @Override
-    public final boolean hasSetProperty(Map context, Object target, Object oname) throws OgnlException {
-        return super.hasSetProperty(context, target, oname);
-    }
-
-    @Override
-    public final void setProperty(Map context, Object target, Object oname, Object value) throws OgnlException {
-        super.setProperty(context, target, oname, value);
-    }
 }

http://git-wip-us.apache.org/repos/asf/mina/blob/2405f81c/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/IoSessionFinder.java
----------------------------------------------------------------------
diff --git a/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/IoSessionFinder.java b/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/IoSessionFinder.java
index 28fd9c3..7f95bc3 100644
--- a/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/IoSessionFinder.java
+++ b/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/IoSessionFinder.java
@@ -60,17 +60,17 @@ public class IoSessionFinder {
         int comp = -1;
         
         for (int i=0; i<query.length();i++) {
-        	char c = query.charAt(i);
-        	
-        	if ((c == '=') || (c == '<') || (c == '>') || (c == '!')) {
-        		comp = i;
-        	} else if ( !Character.isJavaIdentifierPart(c) && (c != ' ')) {
+            char c = query.charAt(i);
+            
+            if ((c == '=') || (c == '<') || (c == '>') || (c == '!')) {
+                comp = i;
+            } else if ( !Character.isJavaIdentifierPart(c) && (c != ' ')) {
                 throw new IllegalArgumentException("Invalid query.");
-        	} else {
-        		if ( comp > 0) {
-        			break;
-        		}
-        	}
+            } else {
+                if ( comp > 0) {
+                    break;
+                }
+            }
         }
         
         if (comp<=0) {
@@ -78,11 +78,11 @@ public class IoSessionFinder {
         }
         
         for (int i=comp+1; i<query.length();i++) {
-        	char c = query.charAt(i);
+            char c = query.charAt(i);
 
-        	if (!Character.isJavaIdentifierPart(c) && (c != ' ') && (c != '"') && (c != '\'')) {
+            if (!Character.isJavaIdentifierPart(c) && (c != ' ') && (c != '"') && (c != '\'')) {
                 throw new IllegalArgumentException("Invalid query.");
-        	}
+            }
         }
         
         this.query = query;
@@ -97,7 +97,6 @@ public class IoSessionFinder {
     /**
      * Finds a {@link Set} of {@link IoSession}s that matches the query
      * from the specified sessions and returns the matches.
-     * @throws OgnlException if failed to evaluate the OGNL expression
      * 
      * @param sessions The list of sessions to check
      * @return A set of the session that matches the query
@@ -108,7 +107,7 @@ public class IoSessionFinder {
             throw new IllegalArgumentException("sessions");
         }
 
-        Set<IoSession> answer = new LinkedHashSet<IoSession>();
+        Set<IoSession> answer = new LinkedHashSet<>();
         
         for (IoSession s : sessions) {
             OgnlContext context = (OgnlContext) Ognl.createDefaultContext(s);

http://git-wip-us.apache.org/repos/asf/mina/blob/2405f81c/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/IoSessionPropertyAccessor.java
----------------------------------------------------------------------
diff --git a/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/IoSessionPropertyAccessor.java b/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/IoSessionPropertyAccessor.java
index b728baa..c009fba 100644
--- a/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/IoSessionPropertyAccessor.java
+++ b/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/IoSessionPropertyAccessor.java
@@ -36,7 +36,7 @@ public class IoSessionPropertyAccessor extends AbstractPropertyAccessor {
     @Override
     protected Object getProperty0(OgnlContext context, Object target, String name) throws OgnlException {
         if (target instanceof IoSession && "attributes".equals(name)) {
-            Map<String, Object> attributes = new TreeMap<String, Object>();
+            Map<String, Object> attributes = new TreeMap<>();
             IoSession s = (IoSession) target;
             for (Object key : s.getAttributeKeys()) {
                 Object value = s.getAttribute(key);

http://git-wip-us.apache.org/repos/asf/mina/blob/2405f81c/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/PropertyTypeConverter.java
----------------------------------------------------------------------
diff --git a/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/PropertyTypeConverter.java b/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/PropertyTypeConverter.java
index c4c927a..b98e4c9 100644
--- a/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/PropertyTypeConverter.java
+++ b/mina-integration-ognl/src/main/java/org/apache/mina/integration/ognl/PropertyTypeConverter.java
@@ -34,14 +34,17 @@ import org.apache.mina.integration.beans.PropertyEditorFactory;
  * OgnlContext ctx = Ognl.createDefaultContext(root);
  * ctx.put(OgnlContext.TYPE_CONVERTER_CONTEXT_KEY, new PropertyTypeConverter());
  * </code></pre>
- * You can also override {@link #getPropertyEditor(Class, String, Class)}
+ * You can also override getPropertyEditor(Class, String, Class)
  * method to have more control over how an appropriate {@link PropertyEditor}
  * is chosen.
  * 
  * @author <a href="http://mina.apache.org">Apache MINA Project</a>
  */
 public class PropertyTypeConverter implements TypeConverter {
-
+    /**
+     * {@inheritDoc}
+     */
+    @Override
     @SuppressWarnings("unchecked")
     public Object convertValue(Map ctx, Object target, Member member, String attrName, Object value, Class toType) {
         if (value == null) {