예제 #1
0
		public static CassandraSlicePredicate SetSchemaForSlicePredicate(CassandraSlicePredicate predicate, CassandraColumnFamilySchema schema, bool forSuperColumn = false)
		{
			CassandraType columnType = forSuperColumn ? schema.SuperColumnNameType : schema.ColumnNameType;

			if (predicate is CassandraRangeSlicePredicate)
			{
				var x = (CassandraRangeSlicePredicate)predicate;
				var start = CassandraObject.GetCassandraObjectFromObject(x.Start, columnType);
				var finish = CassandraObject.GetCassandraObjectFromObject(x.Finish, columnType);

				return new CassandraRangeSlicePredicate(start, finish, x.Reversed, x.Count);
			}
			else if (predicate is CassandraColumnSlicePredicate)
			{
				var x = (CassandraColumnSlicePredicate)predicate;
				var cols = x.Columns.ToList();

				for (int i = 0; i < cols.Count; i++)
					cols[i] = CassandraObject.GetCassandraObjectFromObject(cols[i], columnType);

				return new CassandraColumnSlicePredicate(cols);
			}

			return null;
		}
예제 #2
0
        public static FluentCounterColumn ConvertColumnToFluentCounterColumn(CounterColumn col, CassandraColumnFamilySchema schema)
        {
            var colSchema = new CassandraColumnSchema();

            if (schema != null)
            {
                var name = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, schema.ColumnNameType);
                colSchema = schema.Columns.Where(x => x.Name == name).FirstOrDefault();

                if (colSchema == null)
                {
                    colSchema = new CassandraColumnSchema();
                    colSchema.NameType = schema.ColumnNameType;
                    colSchema.Name = name;
                    colSchema.ValueType = schema.DefaultColumnValueType;
                }
            }

            var fcol = new FluentCounterColumn(colSchema) {
                ColumnName = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, colSchema.NameType),
                ColumnValue = col.Value
            };

            return fcol;
        }
예제 #3
0
        public static FluentColumn ConvertColumnToFluentColumn(Column col, CassandraColumnFamilySchema schema = null)
        {
            var colSchema = new CassandraColumnSchema();

            if (schema != null)
            {
                var name = CassandraObject.GetTypeFromDatabaseValue(col.Name, schema.ColumnNameType);
                colSchema = schema.Columns.Where(x => x.Name == name).FirstOrDefault();

                if (colSchema == null)
                {
                    colSchema = new CassandraColumnSchema();
                    colSchema.NameType = schema.ColumnNameType;
                    colSchema.Name = name;
                    colSchema.ValueType = schema.DefaultColumnValueType;
                }
            }

            var fcol = new FluentColumn(colSchema) {
                ColumnName = CassandraObject.GetTypeFromDatabaseValue(col.Name, colSchema.NameType),
                ColumnValue = CassandraObject.GetTypeFromDatabaseValue(col.Value, colSchema.ValueType),
                ColumnTimestamp = UnixStart.AddMilliseconds(col.Timestamp),
            };

            if (col.__isset.ttl)
                fcol.ColumnSecondsUntilDeleted = col.Ttl;

            return fcol;
        }
예제 #4
0
        public static FluentColumn ConvertColumnToFluentColumn(Column col, CassandraColumnFamilySchema schema)
        {
            var colSchema = new CassandraColumnSchema();

            if (schema != null)
            {
                var name = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, schema.ColumnNameType);
                colSchema = schema.Columns.Where(x => x.Name == name).FirstOrDefault();

                if (colSchema == null)
                {
                    colSchema           = new CassandraColumnSchema();
                    colSchema.NameType  = schema.ColumnNameType;
                    colSchema.Name      = name;
                    colSchema.ValueType = schema.DefaultColumnValueType;
                }
            }

            return(ConvertColumnToFluentColumn(col, colSchema));
        }
예제 #5
0
        public static FluentSuperColumn ConvertSuperColumnToFluentCounterSuperColumn(CounterSuperColumn col, CassandraColumnFamilySchema schema = null)
        {
            var superColSchema = new CassandraColumnSchema {
                Name = col.Name
            };

            if (schema != null)
                superColSchema = new CassandraColumnSchema {
                    NameType = schema.SuperColumnNameType,
                    Name = CassandraObject.GetTypeFromDatabaseValue(col.Name, schema.SuperColumnNameType),
                    ValueType = schema.ColumnNameType
                };

            var superCol = new FluentSuperColumn(superColSchema) {
                ColumnName = CassandraObject.GetTypeFromDatabaseValue(col.Name, superColSchema.NameType)
            };

            foreach (var xcol in col.Columns)
                superCol.Columns.Add(ConvertColumnToFluentCounterColumn(xcol, schema));

            return superCol;
        }
		private void AddTable(ICassandraColumnFamilyInfo provider)
		{
			_columnFamily = provider.FamilyName;
			_schema = provider.GetSchema();
		}
예제 #7
0
 public static IFluentBaseColumn ConvertToFluentBaseColumn(ColumnOrSuperColumn col, CassandraColumnFamilySchema schema)
 {
     if (col.Super_column != null)
         return ConvertSuperColumnToFluentSuperColumn(col.Super_column, schema);
     else if (col.Column != null)
         return ConvertColumnToFluentColumn(col.Column, schema);
     else if (col.Counter_super_column != null)
         return ConvertColumnToFluentCounterColumn(col.Counter_column, schema);
     else if (col.Counter_column != null)
         return ConvertSuperColumnToFluentCounterSuperColumn(col.Counter_super_column, schema);
     else
         return null;
 }
예제 #8
0
        public static FluentSuperColumn ConvertSuperColumnToFluentSuperColumn(SuperColumn col, CassandraColumnFamilySchema schema)
        {
            var superColSchema = new CassandraColumnSchema {
                Name = col.Name
            };

            if (schema != null)
                superColSchema = new CassandraColumnSchema {
                    NameType = schema.SuperColumnNameType,
                    Name = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, schema.SuperColumnNameType),
                    ValueType = schema.ColumnNameType
                };

            var superCol = new FluentSuperColumn(superColSchema) {
                ColumnName = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, superColSchema.NameType)
            };

            ((ILoadable)superCol).BeginLoad();
            foreach (var xcol in col.Columns)
                superCol.Columns.Add(ConvertColumnToFluentColumn(xcol, schema));
            ((ILoadable)superCol).EndLoad();

            return superCol;
        }
 private void AddTable(ICassandraColumnFamilyInfo provider)
 {
     _columnFamily = provider.FamilyName;
     _schema       = provider.GetSchema();
 }
예제 #10
0
        public static CassandraSlicePredicate SetSchemaForSlicePredicate(CassandraSlicePredicate predicate, CassandraColumnFamilySchema schema, bool forSuperColumn = false)
        {
            CassandraType columnType = forSuperColumn ? schema.SuperColumnNameType : schema.ColumnNameType;

            if (predicate is CassandraRangeSlicePredicate)
            {
                var x      = (CassandraRangeSlicePredicate)predicate;
                var start  = CassandraObject.GetCassandraObjectFromObject(x.Start, columnType);
                var finish = CassandraObject.GetCassandraObjectFromObject(x.Finish, columnType);

                return(new CassandraRangeSlicePredicate(start, finish, x.Reversed, x.Count));
            }
            else if (predicate is CassandraColumnSlicePredicate)
            {
                var x    = (CassandraColumnSlicePredicate)predicate;
                var cols = x.Columns.ToList();

                for (int i = 0; i < cols.Count; i++)
                {
                    cols[i] = CassandraObject.GetCassandraObjectFromObject(cols[i], columnType);
                }

                return(new CassandraColumnSlicePredicate(cols));
            }

            return(null);
        }
예제 #11
0
        public static FluentSuperColumn ConvertSuperColumnToFluentSuperColumn(SuperColumn col, CassandraColumnFamilySchema schema)
        {
            var superColSchema = new CassandraColumnSchema {
                Name = col.Name
            };

            if (schema != null)
            {
                superColSchema = new CassandraColumnSchema {
                    NameType  = schema.SuperColumnNameType,
                    Name      = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, schema.SuperColumnNameType),
                    ValueType = schema.ColumnNameType
                }
            }
            ;

            var superCol = new FluentSuperColumn(superColSchema)
            {
                ColumnName = CassandraObject.GetCassandraObjectFromDatabaseByteArray(col.Name, superColSchema.NameType)
            };

            ((ILoadable)superCol).BeginLoad();
            foreach (var xcol in col.Columns)
            {
                superCol.Columns.Add(ConvertColumnToFluentColumn(xcol, schema));
            }
            ((ILoadable)superCol).EndLoad();

            return(superCol);
        }
예제 #12
0
 public static IFluentBaseColumn ConvertToFluentBaseColumn(ColumnOrSuperColumn col, CassandraColumnFamilySchema schema)
 {
     if (col.Super_column != null)
     {
         return(ConvertSuperColumnToFluentSuperColumn(col.Super_column, schema));
     }
     else if (col.Column != null)
     {
         return(ConvertColumnToFluentColumn(col.Column, schema));
     }
     else if (col.Counter_super_column != null)
     {
         return(ConvertColumnToFluentCounterColumn(col.Counter_column, schema));
     }
     else if (col.Counter_column != null)
     {
         return(ConvertSuperColumnToFluentCounterSuperColumn(col.Counter_super_column, schema));
     }
     else
     {
         return(null);
     }
 }