private byte[] GetBytes(CassandraType[] components)
        {
            using (var bytes = new MemoryStream())
            {
                foreach (var c in components)
                {
                    var b = (byte[])c;
                    var length = (ushort)b.Length;

                    // comparator part
                    bytes.WriteByte((byte)1);
                    bytes.WriteByte((byte)_aliases.FirstOrDefault(x => x.Value == c.GetType()).Key);

                    // value length
                    bytes.Write(BitConverter.GetBytes(length), 0, 2);

                    // value
                    bytes.Write(b, 0, length);

                    // end of component
                    bytes.WriteByte((byte)0);
                }

                return bytes.ToArray();
            }
        }
Exemplo n.º 2
0
        public static CassandraObject GetCassandraObjectFromObject(object obj, CassandraType cassandraType = null)
        {
            if (cassandraType == null)
            {
                var sourceType = obj.GetType();
                cassandraType = CassandraType.GetCassandraType(sourceType);
            }

            if (obj == null)
            {
                return(null);
            }

            if (obj is CassandraObject)
            {
                return(((CassandraObject)obj).GetValue(cassandraType));
            }

            var type = cassandraType.CreateInstance();

            if (type == null)
            {
                return(null);
            }

            type.SetValue(obj);
            return(type);
        }
Exemplo n.º 3
0
        public static CassandraObject GetCassandraObjectFromObject(object obj)
        {
            var sourceType    = obj.GetType();
            var cassandraType = CassandraType.GetCassandraType(sourceType);

            return(GetCassandraObjectFromObject(obj, cassandraType));
        }
 public RangeSlicePredicate(CassandraType start, CassandraType finish, bool reversed = false, int count = 100)
 {
     Start = start;
     Finish = finish;
     Reversed = reversed;
     Count = count;
 }
Exemplo n.º 5
0
        public void Parse_CompositeType_UnknownInnerType()
        {
            // arranage
            string cassandraString = "org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.TimeUUIDType,org.apache.cassandra.db.marshal.UnkownTypeForTesting)";

            // act
            Type actual = new CassandraType(cassandraString).FluentType;
        }
Exemplo n.º 6
0
        public void Parse_UnknownType()
        {
            // arranage
            string cassandraString = "org.apache.cassandra.db.marshal.UnkownTypeForTesting";

            // act
            Type actual = new CassandraType(cassandraString).FluentType;
        }
Exemplo n.º 7
0
        public override bool Equals(object obj)
        {
            if (obj is IntegerType)
            {
                return(_value == ((IntegerType)obj)._value);
            }

            return(_value == CassandraType.GetValue <BigInteger>(obj, Converter));
        }
Exemplo n.º 8
0
        public void Parse_UnknownTypeWithParams()
        {
            // arranage
            Type expected = typeof(UTF8Type);
            string cassandraString = "org.apache.cassandra.db.marshal.UnkownTypeForTesting(org.apache.cassandra.db.marshal.TimeUUIDType,org.apache.cassandra.db.marshal.UTF8Type)";

            // act
            Type actual = new CassandraType(cassandraString).FluentType;
        }
Exemplo n.º 9
0
        public override bool Equals(object obj)
        {
            if (obj is UTF8Type)
            {
                return(_value == ((UTF8Type)obj)._value);
            }

            return(_value == CassandraType.GetValue <string>(obj, Converter));
        }
Exemplo n.º 10
0
        public object GetValue(Type type)
        {
            if (type.BaseType == typeof(CassandraObject))
            {
                return(GetValue(CassandraType.GetCassandraType(type)));
            }

            return(GetValueInternal(type));
        }
Exemplo n.º 11
0
        public override bool Equals(object obj)
        {
            if (obj is BytesType)
            {
                return(_value.SequenceEqual(((BytesType)obj)._value));
            }

            return(_value.SequenceEqual(CassandraType.GetValue <byte[]>(obj, Converter)));
        }
Exemplo n.º 12
0
        private static T Convert <T>(CassandraType type)
        {
            if (type == null)
            {
                return(default(T));
            }

            return(type.GetValue <T>());
        }
Exemplo n.º 13
0
        public override bool Equals(object obj)
        {
            if (obj is LexicalUUIDType)
            {
                return(_value == ((LexicalUUIDType)obj)._value);
            }

            return(_value == CassandraType.GetValue <Guid>(obj, Converter));
        }
Exemplo n.º 14
0
        public void Parse_UnknownType()
        {
            // arrange
            string cassandraString = "org.apache.cassandra.db.marshal.UnkownTypeForTesting";

            // act
            Assert.Throws(typeof(CassandraException), delegate {
                Type actual = new CassandraType(cassandraString).FluentType;
            });
        }
Exemplo n.º 15
0
        public void Parse_UnknownTypeWithParams()
        {
            // arranage
            string cassandraString = "org.apache.cassandra.db.marshal.UnkownTypeForTesting(org.apache.cassandra.db.marshal.TimeUUIDType,org.apache.cassandra.db.marshal.UTF8Type)";

            // act
            Assert.Throws(typeof(CassandraException), delegate {
                Type actual = new CassandraType(cassandraString).FluentType;
            });
        }
Exemplo n.º 16
0
        public void Parse_CompositeType_UnknownInnerType()
        {
            // arranage
            string cassandraString = "org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.TimeUUIDType,org.apache.cassandra.db.marshal.UnkownTypeForTesting)";

            // act
            Assert.Throws(typeof(CassandraException), delegate {
                Type actual = new CassandraType(cassandraString).FluentType;
            });
        }
		public void Parse_UnknownType()
		{
			// arrange
			string cassandraString = "org.apache.cassandra.db.marshal.UnkownTypeForTesting";

			// act
			Assert.Throws(typeof(CassandraException), delegate {
				Type actual = new CassandraType(cassandraString).FluentType;
			});
		}
Exemplo n.º 18
0
        public void ReversedTypeHelper()
        {
            // arrange
            var expected = "org.apache.cassandra.db.marshal.ReversedType(org.apache.cassandra.db.marshal.UTF8Type)";

            // act
            var actual = CassandraType.ReversedType(CassandraType.UTF8Type).DatabaseType;

            // assert
            Assert.Equal(expected, actual);
        }
Exemplo n.º 19
0
        public static CassandraType ReversedType(CassandraType baseType)
        {
            var sb = new StringBuilder();

            sb.Append(_ReversedType);
            sb.Append("(");
            sb.Append(baseType.DatabaseType);
            sb.Append(")");

            return(new CassandraType(sb.ToString()));
        }
Exemplo n.º 20
0
        public void Parse_Reversed_Type()
        {
            // arrange
            Type   expected        = typeof(LongType);
            string cassandraString = "org.apache.cassandra.db.marshal.ReversedType(LongType)";

            // act
            Type actual = new CassandraType(cassandraString).FluentType;

            // assert
            Assert.Equal(expected, actual);
        }
Exemplo n.º 21
0
        public void Parse_Reversed_Type_With_Complex_Value()
        {
            // arrange
            Type   expected        = typeof(CompositeType);
            string cassandraString = "org.apache.cassandra.db.marshal.ReversedType(org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.LongType,org.apache.cassandra.db.marshal.AsciiType))";

            // act
            Type actual = new CassandraType(cassandraString).FluentType;

            // assert
            Assert.Equal(expected, actual);
        }
        public void CassandraType_Cast()
        {
            // arranage
            Guid            expected   = guid;
            LexicalUUIDType actualType = expected;

            // act
            CassandraType actual = actualType;

            // assert
            Assert.AreEqual(expected, (Guid)actual);
        }
		public void Parse_Reversed_Type()
		{
			// arrange
			Type expected = typeof(LongType);
			string cassandraString = "org.apache.cassandra.db.marshal.ReversedType(LongType)";

			// act
			Type actual = new CassandraType(cassandraString).FluentType;

			// assert
			Assert.Equal(expected, actual);
		}
        public void JavaBytes_To_CompositeType()
        {
            // arrange
            var expected = new CassandraType[] { (BytesType)compositeType[0].GetValue<string>(), (BytesType)compositeType[1].GetValue<long>() };

            // act
            var actual = new CompositeType();
            actual.SetValueFromBigEndian(javaByteOrder);

            // assert
            Assert.True(expected.SequenceEqual((CassandraType[])actual));
        }
Exemplo n.º 25
0
        public void Parse_CompositeType()
        {
            // arrange
            Type expected = typeof(CompositeType<TimeUUIDType, UTF8Type>);
            string cassandraString = "org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.TimeUUIDType,org.apache.cassandra.db.marshal.UTF8Type)";

            // act
            Type actual = new CassandraType(cassandraString).FluentType;

            // assert
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 26
0
        public void CassandraType_Cast()
        {
            // arranage
            BigInteger  expected   = 100;
            IntegerType actualType = expected;

            // act
            CassandraType actual = actualType;

            // assert
            Assert.AreEqual(expected, (BigInteger)actual);
        }
Exemplo n.º 27
0
		public void Parse_Reversed_Type_With_Complex_Value()
		{
			// arrange
			Type expected = typeof(CompositeType);
			string cassandraString = "org.apache.cassandra.db.marshal.ReversedType(org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.LongType,org.apache.cassandra.db.marshal.AsciiType))";

			// act
			Type actual = new CassandraType(cassandraString).FluentType;

			// assert
			Assert.Equal(expected, actual);
		}
        public void CassandraType_Cast()
        {
            // arranage
            var expected = new CassandraType[] { (AsciiType)"string1", (LongType)300L };

            // act
            DynamicCompositeType actualType = expected;
            CassandraType actual = actualType;

            // assert
            Assert.IsTrue(expected.SequenceEqual((CassandraType[])actual));
        }
Exemplo n.º 29
0
        public void CassandraType_Cast()
        {
            // arranage
            string   expected   = "The quick brown fox jumps over the lazy dog.";
            UTF8Type actualType = expected;

            // act
            CassandraType actual = actualType;

            // assert
            Assert.AreEqual(expected, (string)actual);
        }
        public void Implicit_ByteArray_Cast()
        {
            // arrange
            var expected = new CassandraType[] { (AsciiType)"string1", (LongType)300 };
            byte[] bytes = GetBytes(expected);

            // act
            DynamicCompositeType actual = bytes;

            // assert
            Assert.IsTrue(expected.SequenceEqual(actual));
        }
Exemplo n.º 31
0
        public void CassandraType_Cast()
        {
            // arranage
            long        expected   = 100L;
            IntegerType actualType = expected;

            // act
            CassandraType actual = actualType;

            // assert
            Assert.AreEqual(expected, (long)actual);
        }
Exemplo n.º 32
0
        public void Parse_Type()
        {
            // arrange
            Type expected = typeof(UTF8Type);
            string cassandraString = "org.apache.cassandra.db.marshal.UTF8Type";

            // act
            Type actual = new CassandraType(cassandraString).FluentType;

            // assert
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 33
0
        public CassandraObject GetValue(CassandraType type)
        {
            if (type.FluentType == GetType())
            {
                return(this);
            }

            if (GetType() == typeof(BytesType))
            {
                return(GetCassandraObjectFromDatabaseByteArray((byte[])GetRawValue(), type));
            }

            return(GetCassandraObjectFromObject(GetRawValue(), type));
        }
Exemplo n.º 34
0
        public void CassandraType_Cast()
        {
            // arranage
            byte[]    expected   = new byte[] { 0, 32, 0, 16, 0, 0, 64, 128 };
            BytesType actualType = expected;

            // act
            CassandraType actualCassandraType = actualType;

            byte[] actual = actualCassandraType;

            // assert
            Assert.IsTrue(expected.SequenceEqual(actual));
        }
		public void Parse_CompositeType()
		{
			// arrange
			Type expected = typeof(CompositeType);
			var expectedInternals = new[] { typeof(TimeUUIDType), typeof(UTF8Type) };

			string cassandraString = "org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.TimeUUIDType,org.apache.cassandra.db.marshal.UTF8Type)";

			// act
			var cassandraType = new CassandraType(cassandraString);
			var instance = cassandraType.CreateInstance() as CompositeType;
			Type actual = cassandraType.FluentType;

			// assert
			Assert.Equal(expected, actual);
			Assert.Equal(2, instance.ComponentTypeHints.Count);

			foreach (var e in expectedInternals)
				Assert.True(instance.ComponentTypeHints.Any(x => x.FluentType == e), e.Name + " couldn't be found");
		}
Exemplo n.º 36
0
        public void Parse_CompositeType()
        {
            // arrange
            Type expected          = typeof(CompositeType);
            var  expectedInternals = new[] { typeof(TimeUUIDType), typeof(UTF8Type) };

            string cassandraString = "org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.TimeUUIDType,org.apache.cassandra.db.marshal.UTF8Type)";

            // act
            var  cassandraType = new CassandraType(cassandraString);
            var  instance      = cassandraType.CreateInstance() as CompositeType;
            Type actual        = cassandraType.FluentType;

            // assert
            Assert.Equal(expected, actual);
            Assert.Equal(2, instance.ComponentTypeHints.Count);

            foreach (var e in expectedInternals)
            {
                Assert.True(instance.ComponentTypeHints.Any(x => x.FluentType == e), e.Name + " couldn't be found");
            }
        }
Exemplo n.º 37
0
        public static CassandraObject GetCassandraObjectFromObject(object obj, string type)
        {
            var cassandraType = CassandraType.GetCassandraType(type);

            return(GetCassandraObjectFromObject(obj, cassandraType));
        }
Exemplo n.º 38
0
        public static CassandraObject GetCassandraObjectFromDatabaseByteArray(byte[] value, string type)
        {
            var cassandraType = CassandraType.GetCassandraType(type);

            return(GetCassandraObjectFromDatabaseByteArray(value, cassandraType));
        }
Exemplo n.º 39
0
		public CassandraColumnSchema(ColumnDef def, CassandraType columnNameType)
		{
			NameType = columnNameType;
			Name = CassandraObject.GetCassandraObjectFromDatabaseByteArray(def.Name, columnNameType);
			ValueType = CassandraType.GetCassandraType(def.Validation_class);
		}
Exemplo n.º 40
0
 public CassandraColumnSchema(ColumnDef def, CassandraType columnNameType)
 {
     NameType = columnNameType;
     Name = CassandraObject.GetTypeFromDatabaseValue(def.Name, columnNameType);
     ValueType = CassandraObject.ParseType(def.Validation_class);
 }
Exemplo n.º 41
0
        public static CassandraObject GetCassandraObjectFromDatabaseByteArray(byte[] value, CassandraType cassandraType)
        {
            var type = cassandraType.CreateInstance();

            if (type == null)
            {
                return(null);
            }

            type.SetValueFromBigEndian(value);
            return(type);
        }
Exemplo n.º 42
0
		public static Type GetSystemType(CassandraType baseType)
		{
			return GetSystemType(baseType.DatabaseType);
		}
Exemplo n.º 43
0
 public CassandraType GetCassandraType()
 {
     return(CassandraType.GetCassandraType(this));
 }
Exemplo n.º 44
0
        public static CassandraType ReversedType(CassandraType baseType)
        {
            var sb = new StringBuilder();
            sb.Append(_ReversedType);
            sb.Append("(");
            sb.Append(baseType.DatabaseType);
            sb.Append(")");

            return new CassandraType(sb.ToString());
        }
        private byte[] GetBytes(CassandraType[] components)
        {
            using (var bytes = new MemoryStream())
            {
                foreach (var c in components)
                {
                    var b = (byte[])c;
                    var length = (ushort)b.Length;

                    // value length
                    bytes.Write(BitConverter.GetBytes(length), 0, 2);

                    // value
                    bytes.Write(b, 0, length);

                    // end of component
                    bytes.WriteByte((byte)0);
                }

                return bytes.ToArray();
            }
        }
Exemplo n.º 46
0
 public static Type GetSystemType(CassandraType baseType)
 {
     return(GetSystemType(baseType.DatabaseType));
 }