You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by el...@apache.org on 2013/03/15 11:46:05 UTC
svn commit: r1456879 -
/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/
Author: elecharny
Date: Fri Mar 15 10:46:04 2013
New Revision: 1456879
URL: http://svn.apache.org/r1456879
Log:
Added deserializers that take a ByteBuffer as an input.
Modified:
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BooleanSerializer.java
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BufferHandler.java
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ByteArraySerializer.java
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ByteSerializer.java
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/CharSerializer.java
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ElementSerializer.java
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/IntSerializer.java
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/LongArraySerializer.java
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/LongSerializer.java
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ShortSerializer.java
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/StringSerializer.java
Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BooleanSerializer.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BooleanSerializer.java?rev=1456879&r1=1456878&r2=1456879&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BooleanSerializer.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BooleanSerializer.java Fri Mar 15 10:46:04 2013
@@ -21,6 +21,7 @@ package org.apache.mavibot.btree.seriali
import java.io.IOException;
+import java.nio.ByteBuffer;
import java.util.Comparator;
import org.apache.mavibot.btree.comparator.BooleanComparator;
@@ -77,6 +78,15 @@ public class BooleanSerializer implement
/**
* {@inheritDoc}
*/
+ public Boolean deserialize( ByteBuffer buffer ) throws IOException
+ {
+ return buffer.get() == 0x01;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
@Override
public Boolean deserialize( BufferHandler bufferHandler ) throws IOException
{
Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BufferHandler.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BufferHandler.java?rev=1456879&r1=1456878&r2=1456879&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BufferHandler.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/BufferHandler.java Fri Mar 15 10:46:04 2013
@@ -75,6 +75,16 @@ public class BufferHandler
}
+ public byte[] getBuffer()
+ {
+ byte[] bytes = new byte[buffer.capacity()];
+
+ buffer.get( bytes );
+
+ return bytes;
+ }
+
+
/**
* Read a buffer containing the given number of bytes
* @param len The number of bytes to read
Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ByteArraySerializer.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ByteArraySerializer.java?rev=1456879&r1=1456878&r2=1456879&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ByteArraySerializer.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ByteArraySerializer.java Fri Mar 15 10:46:04 2013
@@ -21,6 +21,7 @@ package org.apache.mavibot.btree.seriali
import java.io.IOException;
+import java.nio.ByteBuffer;
import java.util.Comparator;
import org.apache.mavibot.btree.comparator.ByteArrayComparator;
@@ -126,6 +127,32 @@ public class ByteArraySerializer impleme
/**
* {@inheritDoc}
*/
+ public byte[] deserialize( ByteBuffer buffer ) throws IOException
+ {
+ int len = buffer.getInt();
+
+ switch ( len )
+ {
+ case 0:
+ return new byte[]
+ {};
+
+ case -1:
+ return null;
+
+ default:
+ byte[] bytes = new byte[len];
+
+ buffer.get( bytes );
+
+ return bytes;
+ }
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
@Override
public int compare( byte[] type1, byte[] type2 )
{
Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ByteSerializer.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ByteSerializer.java?rev=1456879&r1=1456878&r2=1456879&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ByteSerializer.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ByteSerializer.java Fri Mar 15 10:46:04 2013
@@ -21,6 +21,7 @@ package org.apache.mavibot.btree.seriali
import java.io.IOException;
+import java.nio.ByteBuffer;
import java.util.Comparator;
import org.apache.mavibot.btree.comparator.ByteComparator;
@@ -77,6 +78,15 @@ public class ByteSerializer implements E
/**
* {@inheritDoc}
*/
+ public Byte deserialize( ByteBuffer buffer ) throws IOException
+ {
+ return buffer.get();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
public Byte deserialize( BufferHandler bufferHandler ) throws IOException
{
byte[] in = bufferHandler.read( 1 );
Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/CharSerializer.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/CharSerializer.java?rev=1456879&r1=1456878&r2=1456879&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/CharSerializer.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/CharSerializer.java Fri Mar 15 10:46:04 2013
@@ -21,6 +21,7 @@ package org.apache.mavibot.btree.seriali
import java.io.IOException;
+import java.nio.ByteBuffer;
import java.util.Comparator;
import org.apache.mavibot.btree.comparator.CharComparator;
@@ -81,6 +82,15 @@ public class CharSerializer implements E
/**
* {@inheritDoc}
*/
+ public Character deserialize( ByteBuffer buffer ) throws IOException
+ {
+ return buffer.getChar();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
public Character deserialize( BufferHandler bufferHandler ) throws IOException
{
byte[] in = bufferHandler.read( 2 );
Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ElementSerializer.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ElementSerializer.java?rev=1456879&r1=1456878&r2=1456879&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ElementSerializer.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ElementSerializer.java Fri Mar 15 10:46:04 2013
@@ -21,6 +21,7 @@ package org.apache.mavibot.btree.seriali
import java.io.IOException;
+import java.nio.ByteBuffer;
import java.util.Comparator;
@@ -45,7 +46,7 @@ public interface ElementSerializer<T>
/**
* Deserialize an element from a byte[]
*
- * @param in The incoming bufferHandler
+ * @param bufferHandler The incoming bufferHandler
* @return The deserialized element
* @throws IOException If the deserialization failed
*/
@@ -53,6 +54,16 @@ public interface ElementSerializer<T>
/**
+ * Deserialize an element from a byte[]
+ *
+ * @param buffer The incoming bufferHandler
+ * @return The deserialized element
+ * @throws IOException If the deserialization failed
+ */
+ T deserialize( ByteBuffer buffer ) throws IOException;
+
+
+ /**
* Returns the comparison of two types. <br/>
* <ul>
* <li>If type1 < type2, return -1</li>
Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/IntSerializer.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/IntSerializer.java?rev=1456879&r1=1456878&r2=1456879&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/IntSerializer.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/IntSerializer.java Fri Mar 15 10:46:04 2013
@@ -21,6 +21,7 @@ package org.apache.mavibot.btree.seriali
import java.io.IOException;
+import java.nio.ByteBuffer;
import java.util.Comparator;
import org.apache.mavibot.btree.comparator.IntComparator;
@@ -93,6 +94,15 @@ public class IntSerializer implements El
/**
* {@inheritDoc}
*/
+ public Integer deserialize( ByteBuffer buffer ) throws IOException
+ {
+ return buffer.getInt();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
public Integer deserialize( BufferHandler bufferHandler ) throws IOException
{
byte[] in = bufferHandler.read( 4 );
Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/LongArraySerializer.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/LongArraySerializer.java?rev=1456879&r1=1456878&r2=1456879&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/LongArraySerializer.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/LongArraySerializer.java Fri Mar 15 10:46:04 2013
@@ -21,6 +21,7 @@ package org.apache.mavibot.btree.seriali
import java.io.IOException;
+import java.nio.ByteBuffer;
import java.util.Comparator;
import org.apache.mavibot.btree.comparator.LongArrayComparator;
@@ -153,6 +154,35 @@ public class LongArraySerializer impleme
/**
* {@inheritDoc}
*/
+ public long[] deserialize( ByteBuffer buffer ) throws IOException
+ {
+ int len = buffer.getInt();
+
+ switch ( len )
+ {
+ case 0:
+ return new long[]
+ {};
+
+ case -1:
+ return null;
+
+ default:
+ long[] longs = new long[len];
+
+ for ( int i = 0; i < len; i++ )
+ {
+ longs[i] = buffer.getLong();
+ }
+
+ return longs;
+ }
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
@Override
public int compare( long[] type1, long[] type2 )
{
Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/LongSerializer.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/LongSerializer.java?rev=1456879&r1=1456878&r2=1456879&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/LongSerializer.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/LongSerializer.java Fri Mar 15 10:46:04 2013
@@ -21,6 +21,7 @@ package org.apache.mavibot.btree.seriali
import java.io.IOException;
+import java.nio.ByteBuffer;
import java.util.Comparator;
import org.apache.mavibot.btree.comparator.LongComparator;
@@ -116,6 +117,15 @@ public class LongSerializer implements E
/**
* {@inheritDoc}
*/
+ public Long deserialize( ByteBuffer buffer ) throws IOException
+ {
+ return buffer.getLong();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
@Override
public int compare( Long type1, Long type2 )
{
Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ShortSerializer.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ShortSerializer.java?rev=1456879&r1=1456878&r2=1456879&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ShortSerializer.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/ShortSerializer.java Fri Mar 15 10:46:04 2013
@@ -21,6 +21,7 @@ package org.apache.mavibot.btree.seriali
import java.io.IOException;
+import java.nio.ByteBuffer;
import java.util.Comparator;
import org.apache.mavibot.btree.comparator.ShortComparator;
@@ -80,6 +81,15 @@ public class ShortSerializer implements
/**
* {@inheritDoc}
*/
+ public Short deserialize( ByteBuffer buffer ) throws IOException
+ {
+ return buffer.getShort();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
public Short deserialize( BufferHandler bufferHandler ) throws IOException
{
byte[] in = bufferHandler.read( 2 );
Modified: labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/StringSerializer.java
URL: http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/StringSerializer.java?rev=1456879&r1=1456878&r2=1456879&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/StringSerializer.java (original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/serializer/StringSerializer.java Fri Mar 15 10:46:04 2013
@@ -22,9 +22,11 @@ package org.apache.mavibot.btree.seriali
import java.io.IOException;
import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
import java.util.Comparator;
import org.apache.mavibot.btree.comparator.StringComparator;
+import org.apache.mavinot.btree.utils.Strings;
/**
@@ -110,6 +112,7 @@ public class StringSerializer implements
/**
* {@inheritDoc}
+ * @throws IOException
*/
public String deserialize( BufferHandler bufferHandler ) throws IOException
{
@@ -126,17 +129,31 @@ public class StringSerializer implements
return null;
default:
- try
- {
- in = bufferHandler.read( len );
+ in = bufferHandler.read( len );
- return new String( in, 0, len, "UTF-8" );
- }
- catch ( UnsupportedEncodingException uee )
- {
- // if this happens something is really strange
- throw new RuntimeException( uee );
- }
+ return Strings.utf8ToString( in );
+ }
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public String deserialize( ByteBuffer buffer ) throws IOException
+ {
+ int len = buffer.getInt();
+
+ switch ( len )
+ {
+ case 0:
+ return "";
+
+ default:
+ byte[] bytes = new byte[len];
+
+ buffer.get( bytes );
+
+ return Strings.utf8ToString( bytes );
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org