Apache.NMS.Util.PrimitiveMap.MarshalPrimitive C# (CSharp) Method

MarshalPrimitive() public static method

public static MarshalPrimitive ( BinaryWriter dataOut, Object value ) : void
dataOut System.IO.BinaryWriter
value Object
return void
        public static void MarshalPrimitive(BinaryWriter dataOut, Object value)
        {
            if(value == null)
            {
                dataOut.Write(NULL);
            }
            else if(value is bool)
            {
                dataOut.Write(BOOLEAN_TYPE);
                dataOut.Write((bool) value);
            }
            else if(value is byte)
            {
                dataOut.Write(BYTE_TYPE);
                dataOut.Write(((byte) value));
            }
            else if(value is char)
            {
                dataOut.Write(CHAR_TYPE);
                dataOut.Write((char) value);
            }
            else if(value is short)
            {
                dataOut.Write(SHORT_TYPE);
                dataOut.Write((short) value);
            }
            else if(value is int)
            {
                dataOut.Write(INTEGER_TYPE);
                dataOut.Write((int) value);
            }
            else if(value is long)
            {
                dataOut.Write(LONG_TYPE);
                dataOut.Write((long) value);
            }
            else if(value is float)
            {
                dataOut.Write(FLOAT_TYPE);
                dataOut.Write((float) value);
            }
            else if(value is double)
            {
                dataOut.Write(DOUBLE_TYPE);
                dataOut.Write((double) value);
            }
            else if(value is byte[])
            {
                byte[] data = (byte[]) value;
                dataOut.Write(BYTE_ARRAY_TYPE);
                dataOut.Write(data.Length);
                dataOut.Write(data);
            }
            else if(value is string)
            {
                string s = (string) value;
                // is the string big??
                if(s.Length > 8191)
                {
                    dataOut.Write(BIG_STRING_TYPE);
                    ((EndianBinaryWriter) dataOut).WriteString32(s);
                }
                else
                {
                    dataOut.Write(STRING_TYPE);
                    ((EndianBinaryWriter) dataOut).WriteString16(s);
                }
            }
            else if(value is IDictionary)
            {
                dataOut.Write(MAP_TYPE);
                MarshalPrimitiveMap((IDictionary) value, dataOut);
            }
            else if(value is IList)
            {
                dataOut.Write(LIST_TYPE);
                MarshalPrimitiveList((IList) value, dataOut);
            }
            else
            {
                throw new IOException("Object is not a primitive: " + value);
            }
        }