]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/src/org/simantics/databoard/serialization/impl/FloatArraySerializer.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / src / org / simantics / databoard / serialization / impl / FloatArraySerializer.java
index b995366f61ca8c9c213181335d2266dc1ff5a279..4ae65d127f99d40a66a70ffd8fc84a2d9f33be0b 100644 (file)
-package org.simantics.databoard.serialization.impl;\r
-\r
-import java.io.DataInput;\r
-import java.io.DataOutput;\r
-import java.io.IOException;\r
-import java.util.List;\r
-\r
-import org.simantics.databoard.binding.ArrayBinding;\r
-import org.simantics.databoard.serialization.SerializationException;\r
-import org.simantics.databoard.serialization.Serializer.NonRecursiveSerializer;\r
-import org.simantics.databoard.type.ArrayType;\r
-import org.simantics.databoard.util.Range;\r
-\r
-public class FloatArraySerializer extends NonRecursiveSerializer {\r
-\r
-       Range length;\r
-       Integer fixedLength, fixedSize;\r
-       \r
-       public FloatArraySerializer(ArrayBinding binding)\r
-       {                       \r
-               ArrayType arrayType = (ArrayType) binding.type();\r
-               this.length = arrayType.getLength();\r
-               \r
-               if (length!=null && length.getLower().equals(length.getUpper()) && length.getLower().getValue()!=null)\r
-               {\r
-                       fixedLength = length.getLower().getValue().intValue();\r
-                       fixedSize = fixedLength * 4;\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public Object deserialize(DataInput in)\r
-       throws IOException {\r
-               int length = fixedLength != null ? fixedLength : in.readInt();\r
-               if (length<0) throw new SerializationException("Cannot use negative array length");\r
-               assertRemainingBytes(in, length*4L);                                    \r
-               \r
-               float[] array = new float[length];\r
-               for(int i=0;i<array.length;++i)\r
-                       array[i] = in.readFloat();\r
-               return array;\r
-       }\r
-       \r
-       public Object deserializeToTry(DataInput in, List<Object> identities, Object obj) throws IOException\r
-       {\r
-               int length = fixedLength != null ? fixedLength : in.readInt();\r
-               float[] array = (float[]) obj;\r
-               if (length!=array.length) array = new float[ length ];\r
-               assertRemainingBytes(in, length*4L);                                    \r
-               \r
-               for (int i=0; i<array.length;i++)\r
-                       array[i] = in.readFloat();\r
-               \r
-               return array;\r
-       }\r
-       \r
-       @Override\r
-       public void deserializeTo(DataInput in, Object obj) throws IOException {\r
-               int length = fixedLength != null ? fixedLength : in.readInt();\r
-               float[] array = (float[]) obj;\r
-               if (length!=array.length) throw new SerializationException("primitive array is size immutable");\r
-               assertRemainingBytes(in, length*4L);                                    \r
-               for (int i=0; i<array.length;i++)\r
-                       array[i] = in.readFloat();\r
-       }\r
-\r
-       @Override\r
-       public void skip(DataInput in)\r
-       throws IOException {\r
-               int length = fixedSize != null ? fixedLength : in.readInt();                    \r
-               in.skipBytes( length * 4 );\r
-       }\r
-       \r
-       @Override\r
-       public void serialize(DataOutput out, Object obj)\r
-               throws IOException {\r
-               float[] array = (float[])obj;\r
-               if (fixedSize==null) \r
-                       out.writeInt(array.length);\r
-               for(float f : array)\r
-                       out.writeFloat(f);\r
-       }\r
-\r
-       @Override\r
-       public Integer getConstantSize() {\r
-               return fixedSize;\r
-       }\r
-\r
-       @Override\r
-       public int getSize(Object obj) {\r
-               if (fixedSize!=null) return fixedSize;\r
-               float[] array = (float[])obj;                   \r
-               return 4 + 4 * array.length;\r
-       }\r
-       \r
-       /**\r
-        * Get the number of bytes it takes to output length field of value <code>length</code>.\r
-        *  \r
-        * @param length length value\r
-        * @return bytes required\r
-        */\r
-       public static int getSizeOfPutLength(int length)\r
-       {\r
-               if(length < 0x80) return 1;             \r
-               if(length < 0x4080) return 2;\r
-               if(length < 0x204000) return 3;\r
-               if(length < 0x10200000) return 4;\r
-               return 5;\r
-       }\r
-       \r
-       @Override\r
-       public int getMinSize() {\r
-               return fixedSize != null ? fixedSize : 4;\r
-       }\r
-               \r
+package org.simantics.databoard.serialization.impl;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.List;
+
+import org.simantics.databoard.binding.ArrayBinding;
+import org.simantics.databoard.serialization.SerializationException;
+import org.simantics.databoard.serialization.Serializer.NonRecursiveSerializer;
+import org.simantics.databoard.type.ArrayType;
+import org.simantics.databoard.util.Range;
+
+public class FloatArraySerializer extends NonRecursiveSerializer {
+
+       Range length;
+       Integer fixedLength, fixedSize;
+       
+       public FloatArraySerializer(ArrayBinding binding)
+       {                       
+               ArrayType arrayType = (ArrayType) binding.type();
+               this.length = arrayType.getLength();
+               
+               if (length!=null && length.getLower().equals(length.getUpper()) && length.getLower().getValue()!=null)
+               {
+                       fixedLength = length.getLower().getValue().intValue();
+                       fixedSize = fixedLength * 4;
+               }
+       }
+       
+       @Override
+       public Object deserialize(DataInput in)
+       throws IOException {
+               int length = fixedLength != null ? fixedLength : in.readInt();
+               if (length<0) throw new SerializationException("Cannot use negative array length");
+               assertRemainingBytes(in, length*4L);                                    
+               
+               float[] array = new float[length];
+               for(int i=0;i<array.length;++i)
+                       array[i] = in.readFloat();
+               return array;
+       }
+       
+       public Object deserializeToTry(DataInput in, List<Object> identities, Object obj) throws IOException
+       {
+               int length = fixedLength != null ? fixedLength : in.readInt();
+               float[] array = (float[]) obj;
+               if (length!=array.length) array = new float[ length ];
+               assertRemainingBytes(in, length*4L);                                    
+               
+               for (int i=0; i<array.length;i++)
+                       array[i] = in.readFloat();
+               
+               return array;
+       }
+       
+       @Override
+       public void deserializeTo(DataInput in, Object obj) throws IOException {
+               int length = fixedLength != null ? fixedLength : in.readInt();
+               float[] array = (float[]) obj;
+               if (length!=array.length) throw new SerializationException("primitive array is size immutable");
+               assertRemainingBytes(in, length*4L);                                    
+               for (int i=0; i<array.length;i++)
+                       array[i] = in.readFloat();
+       }
+
+       @Override
+       public void skip(DataInput in)
+       throws IOException {
+               int length = fixedSize != null ? fixedLength : in.readInt();                    
+               in.skipBytes( length * 4 );
+       }
+       
+       @Override
+       public void serialize(DataOutput out, Object obj)
+               throws IOException {
+               float[] array = (float[])obj;
+               if (fixedSize==null) 
+                       out.writeInt(array.length);
+               for(float f : array)
+                       out.writeFloat(f);
+       }
+
+       @Override
+       public Integer getConstantSize() {
+               return fixedSize;
+       }
+
+       @Override
+       public int getSize(Object obj) {
+               if (fixedSize!=null) return fixedSize;
+               float[] array = (float[])obj;                   
+               return 4 + 4 * array.length;
+       }
+       
+       /**
+        * Get the number of bytes it takes to output length field of value <code>length</code>.
+        *  
+        * @param length length value
+        * @return bytes required
+        */
+       public static int getSizeOfPutLength(int length)
+       {
+               if(length < 0x80) return 1;             
+               if(length < 0x4080) return 2;
+               if(length < 0x204000) return 3;
+               if(length < 0x10200000) return 4;
+               return 5;
+       }
+       
+       @Override
+       public int getMinSize() {
+               return fixedSize != null ? fixedSize : 4;
+       }
+               
 }
\ No newline at end of file