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); }
public static CassandraObject GetCassandraObjectFromDatabaseByteArray(byte[] value, CassandraType cassandraType) { var type = cassandraType.CreateInstance(); if (type == null) { return(null); } type.SetValueFromBigEndian(value); return(type); }
protected override object GetValueInternal(Type type) { //If we're converting to a List<> type if (type.IsList()) { var listType = type.GetPrimaryGenericType(); //Check to see if this list's data type can be converted to the requested type if (ComponentType.CreateInstance().CanConvertTo(listType)) { return(TypeHelper.PopulateGenericList(_value.Select(o => (CassandraObject)o).ToList(), listType)); } } return(Converter.ConvertTo(_value, type)); }
protected override object GetValueInternal(Type type) { //If we're converting to a Dictionary<> type if (type.IsDictionary()) { var dictionaryTypes = type.GetAllGenericTypes(); //Check to see if this list's data type can be converted to the requested type if (KeyType.CreateInstance().CanConvertTo(dictionaryTypes[0]) && ValueType.CreateInstance().CanConvertTo(dictionaryTypes[1])) { return (TypeHelper.PopulateGenericDictionary( _value.ToDictionary(k => (CassandraObject)k.Key, v => (CassandraObject)v.Value), dictionaryTypes[0], dictionaryTypes[1])); } } return(Converter.ConvertTo(_value, type)); }
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"); }
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"); } }