Author: noctarius Date: Fri Nov 2 19:50:53 2012 New Revision: 1405129 URL: http://svn.apache.org/viewvc?rev=1405129&view=rev Log: Implemented Source / Target interfaces for ByteBuffer and Input- / OutputStream
Modified: directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/BytecodeMarshallerGenerator.java directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/GeneratorConstants.java directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/io/ByteOrderUtils.java directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/util/UnicodeUtil.java directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/ByteBufferSource.java directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/ByteBufferTarget.java directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/InputStreamSource.java directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/OutputStreamTarget.java Modified: directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/BytecodeMarshallerGenerator.java URL: http://svn.apache.org/viewvc/directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/BytecodeMarshallerGenerator.java?rev=1405129&r1=1405128&r2=1405129&view=diff ============================================================================== --- directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/BytecodeMarshallerGenerator.java (original) +++ directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/BytecodeMarshallerGenerator.java Fri Nov 2 19:50:53 2012 @@ -443,7 +443,7 @@ public class BytecodeMarshallerGenerator mv.visitVarInsn( ALOAD, 3 ); mv.visitVarInsn( ALOAD, 6 ); mv.visitInsn( ARRAYLENGTH ); - mv.visitMethodInsn( INVOKEINTERFACE, DATAOUTPUT_CLASS_INTERNAL_TYPE, "writeInt", "(I)V" ); + mv.visitMethodInsn( INVOKEINTERFACE, TARGET_CLASS_INTERNAL_TYPE, "writeInt", "(I)V" ); // Loop over every element in array Label forLoopEnd = new Label(); @@ -602,7 +602,7 @@ public class BytecodeMarshallerGenerator // Read size mv.visitVarInsn( ALOAD, 3 ); - mv.visitMethodInsn( INVOKEINTERFACE, DATAINPUT_CLASS_INTERNAL_TYPE, "readInt", "()I" ); + mv.visitMethodInsn( INVOKEINTERFACE, SOURCE_CLASS_INTERNAL_TYPE, "readInt", "()I" ); mv.visitInsn( DUP ); mv.visitVarInsn( ISTORE, 5 ); Modified: directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/GeneratorConstants.java URL: http://svn.apache.org/viewvc/directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/GeneratorConstants.java?rev=1405129&r1=1405128&r2=1405129&view=diff ============================================================================== --- directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/GeneratorConstants.java (original) +++ directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/generator/GeneratorConstants.java Fri Nov 2 19:50:53 2012 @@ -18,8 +18,6 @@ */ package org.apache.directmemory.lightning.internal.generator; -import java.io.DataInput; -import java.io.DataOutput; import java.io.IOException; import java.util.List; import java.util.Map; @@ -29,6 +27,8 @@ import org.apache.directmemory.lightning import org.apache.directmemory.lightning.MarshallerContext; import org.apache.directmemory.lightning.MarshallerStrategy; import org.apache.directmemory.lightning.SerializationContext; +import org.apache.directmemory.lightning.Source; +import org.apache.directmemory.lightning.Target; import org.apache.directmemory.lightning.instantiator.ObjectInstantiatorFactory; import org.apache.directmemory.lightning.internal.CheatPropertyDescriptor; import org.apache.directmemory.lightning.internal.ClassDescriptorAwareSerializer; @@ -44,16 +44,16 @@ public interface GeneratorConstants static String MARSHALLER_MARSHALL_SIGNATURE = Type.getMethodDescriptor( Type.VOID_TYPE, new Type[] { Type.getType( Object.class ), Type.getType( PropertyDescriptor.class ), - Type.getType( DataOutput.class ), Type.getType( SerializationContext.class ) } ); + Type.getType( Target.class ), Type.getType( SerializationContext.class ) } ); static String MARSHALLER_BASE_UNMARSHALL_SIGNATURE = Type.getMethodDescriptor( Type.getType( Object.class ), new Type[] { Type.getType( PropertyDescriptor.class ), - Type.getType( DataInput.class ), Type.getType( SerializationContext.class ) } ); + Type.getType( Source.class ), Type.getType( SerializationContext.class ) } ); static String MARSHALLER_UNMARSHALL_SIGNATURE = Type.getMethodDescriptor( Type.getType( Object.class ), new Type[] { Type.getType( Object.class ), Type.getType( PropertyDescriptor.class ), - Type.getType( DataInput.class ), Type.getType( SerializationContext.class ) } ); + Type.getType( Source.class ), Type.getType( SerializationContext.class ) } ); static String MARSHALLER_FIND_MARSHALLER_SIGNATURE = Type.getMethodDescriptor( Type.getType( Marshaller.class ), @@ -65,7 +65,7 @@ public interface GeneratorConstants static String MARSHALLER_IS_ALREADY_MARSHALLED_SIGNATURE = Type.getMethodDescriptor( Type.BOOLEAN_TYPE, new Type[] { Type.getType( Object.class ), Type.getType( Class.class ), - Type.getType( DataOutput.class ), Type.getType( SerializationContext.class ) } ); + Type.getType( Target.class ), Type.getType( SerializationContext.class ) } ); static String MARSHALLER_CONSTRUCTOR_SIGNATURE = Type.getMethodDescriptor( Type.VOID_TYPE, @@ -122,9 +122,9 @@ public interface GeneratorConstants static String CLASS_CLASS_INTERNAL_TYPE = Type.getType( Class.class ).getInternalName(); - static String DATAOUTPUT_CLASS_INTERNAL_TYPE = Type.getType( DataOutput.class ).getInternalName(); + static String TARGET_CLASS_INTERNAL_TYPE = Type.getType( Target.class ).getInternalName(); - static String DATAINPUT_CLASS_INTERNAL_TYPE = Type.getType( DataInput.class ).getInternalName(); + static String SOURCE_CLASS_INTERNAL_TYPE = Type.getType( Source.class ).getInternalName(); static String MARSHALLERSTRATEGY_CLASS_INTERNAL_TYPE = Type.getType( MarshallerStrategy.class ).getInternalName(); Modified: directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/io/ByteOrderUtils.java URL: http://svn.apache.org/viewvc/directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/io/ByteOrderUtils.java?rev=1405129&r1=1405128&r2=1405129&view=diff ============================================================================== --- directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/io/ByteOrderUtils.java (original) +++ directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/io/ByteOrderUtils.java Fri Nov 2 19:50:53 2012 @@ -166,8 +166,8 @@ public class ByteOrderUtils private static long buildLong( byte b7, byte b6, byte b5, byte b4, byte b3, byte b2, byte b1, byte b0 ) { - return ( ( ( ( b7 & 0xFF ) << 56 ) | ( ( b6 & 0xFF ) << 48 ) | ( ( b5 & 0xFF ) << 40 ) | ( ( b4 & 0xFF ) << 32 ) - | ( ( b3 & 0xFF ) << 24 ) | ( ( b2 & 0xFF ) << 16 ) | ( ( b1 & 0xFF ) << 8 ) | ( ( b0 & 0xFF ) << 0 ) ) ); + return ( ( ( ( b7 & 0xFFL ) << 56 ) | ( ( b6 & 0xFFL ) << 48 ) | ( ( b5 & 0xFFL ) << 40 ) + | ( ( b4 & 0xFFL ) << 32 ) | ( ( b3 & 0xFFL ) << 24 ) | ( ( b2 & 0xFFL ) << 16 ) | ( ( b1 & 0xFFL ) << 8 ) | ( ( b0 & 0xFFL ) << 0 ) ) ); } } Modified: directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/util/UnicodeUtil.java URL: http://svn.apache.org/viewvc/directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/util/UnicodeUtil.java?rev=1405129&r1=1405128&r2=1405129&view=diff ============================================================================== --- directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/util/UnicodeUtil.java (original) +++ directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/internal/util/UnicodeUtil.java Fri Nov 2 19:50:53 2012 @@ -167,7 +167,7 @@ public final class UnicodeUtil while ( i < end ) { - final int code = (int) characters[i++]; + final int code = characters[i++]; if ( code < 0x80 ) { @@ -193,7 +193,7 @@ public final class UnicodeUtil // confirm valid high surrogate if ( code < 0xDC00 && i < end ) { - int utf32 = (int) characters[i]; + int utf32 = characters[i]; // confirm valid low surrogate and write pair if ( utf32 >= 0xDC00 && utf32 <= 0xDFFF ) { @@ -287,14 +287,14 @@ public final class UnicodeUtil * * @throws IOException */ - public static String UTF8toUTF16( Source source, int length ) + public static String UTF8toUTF16( Source source ) throws IOException { int charLength = source.readInt(); int offset = 0; final char[] out = new char[charLength]; - while ( offset < length ) + while ( offset < charLength ) { int b = source.readByte() & 0xff; if ( b < 0xc0 ) Modified: directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/ByteBufferSource.java URL: http://svn.apache.org/viewvc/directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/ByteBufferSource.java?rev=1405129&r1=1405128&r2=1405129&view=diff ============================================================================== --- directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/ByteBufferSource.java (original) +++ directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/ByteBufferSource.java Fri Nov 2 19:50:53 2012 @@ -56,8 +56,7 @@ public class ByteBufferSource public String readString() throws IOException { - int length = readInt(); - return UnicodeUtil.UTF8toUTF16( this, length ); + return UnicodeUtil.UTF8toUTF16( this ); } @Override Modified: directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/ByteBufferTarget.java URL: http://svn.apache.org/viewvc/directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/ByteBufferTarget.java?rev=1405129&r1=1405128&r2=1405129&view=diff ============================================================================== --- directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/ByteBufferTarget.java (original) +++ directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/ByteBufferTarget.java Fri Nov 2 19:50:53 2012 @@ -5,6 +5,7 @@ import java.nio.ByteBuffer; import java.nio.ByteOrder; import org.apache.directmemory.lightning.Target; +import org.apache.directmemory.lightning.internal.util.UnicodeUtil; public class ByteBufferTarget implements Target @@ -54,7 +55,7 @@ public class ByteBufferTarget public void writeString( String value ) throws IOException { - // TODO: implementation of writeString is missing + UnicodeUtil.UTF16toUTF8( value, this ); } @Override Modified: directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/InputStreamSource.java URL: http://svn.apache.org/viewvc/directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/InputStreamSource.java?rev=1405129&r1=1405128&r2=1405129&view=diff ============================================================================== --- directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/InputStreamSource.java (original) +++ directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/InputStreamSource.java Fri Nov 2 19:50:53 2012 @@ -89,8 +89,7 @@ public class InputStreamSource public String readString() throws IOException { - int length = readInt(); - return UnicodeUtil.UTF8toUTF16( this, length ); + return UnicodeUtil.UTF8toUTF16( this ); } @Override Modified: directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/OutputStreamTarget.java URL: http://svn.apache.org/viewvc/directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/OutputStreamTarget.java?rev=1405129&r1=1405128&r2=1405129&view=diff ============================================================================== --- directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/OutputStreamTarget.java (original) +++ directmemory/lightning/trunk/lightning-core/src/main/java/org/apache/directmemory/lightning/io/OutputStreamTarget.java Fri Nov 2 19:50:53 2012 @@ -6,6 +6,7 @@ import java.nio.ByteOrder; import org.apache.directmemory.lightning.Target; import org.apache.directmemory.lightning.internal.io.ByteOrderUtils; +import org.apache.directmemory.lightning.internal.util.UnicodeUtil; public class OutputStreamTarget implements Target @@ -66,7 +67,7 @@ public class OutputStreamTarget public void writeString( String value ) throws IOException { - // TODO: implementation of writeString is missing + UnicodeUtil.UTF16toUTF8( value, this ); } @Override