示例#1
0
        public static ColumnOrSuperColumn CreateColumnOrSuperColumn(IFluentBaseColumn column)
        {
            if (column is FluentColumn)
            {
                return(new ColumnOrSuperColumn {
                    Column = CreateColumn((FluentColumn)column)
                });
            }
            else if (column is FluentSuperColumn)
            {
                var colY        = (FluentSuperColumn)column;
                var superColumn = new SuperColumn {
                    Name    = colY.ColumnName.TryToBigEndian(),
                    Columns = new List <Column>()
                };

                foreach (var col in colY.Columns.OfType <FluentColumn>())
                {
                    superColumn.Columns.Add(CreateColumn(col));
                }

                return(new ColumnOrSuperColumn {
                    Super_column = superColumn
                });
            }
            else
            {
                return(null);
            }
        }
示例#2
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);
        }
 public void AddSuperColumn()
 {
     var bm = new BatchMutation();
     var sc = new SuperColumn("sc_name", new List<Column>
     {
         new Column("c_name1", "c_val1"),
         new Column("c_name2", "c_val2"),
     });
     bm.AddSuperColumn("key1", cfs, sc);
     Assert.Equal(1, bm["key1"].Count);
     var sc2 = new SuperColumn("sc_name2", new List<Column>
     {
         new Column("c_name1", "c_val1")
     });
     bm.AddSuperColumn("key1", cfs, sc2);
     Assert.Equal(2, bm["key1"]["Standard1"].Count);
 }
示例#4
0
        public void AddSuperColumn()
        {
            var bm = new BatchMutation();
            var sc = new SuperColumn("sc_name", new List <Column>
            {
                new Column("c_name1", "c_val1"),
                new Column("c_name2", "c_val2"),
            });

            bm.AddSuperColumn("key1", cfs, sc);
            Assert.Equal(1, bm["key1"].Count);
            var sc2 = new SuperColumn("sc_name2", new List <Column>
            {
                new Column("c_name1", "c_val1")
            });

            bm.AddSuperColumn("key1", cfs, sc2);
            Assert.Equal(2, bm["key1"]["Standard1"].Count);
        }
示例#5
0
        public static Mutation CreateInsertedOrChangedMutation(FluentMutation mutation)
        {
            switch (mutation.Type)
            {
            case MutationType.Added:
            case MutationType.Changed:
                var column = mutation.Column;

                if (column is FluentColumn)
                {
                    return(new Mutation {
                        Column_or_supercolumn = new ColumnOrSuperColumn {
                            Column = CreateColumn((FluentColumn)column)
                        }
                    });
                }
                else if (column is FluentSuperColumn)
                {
                    var colY        = (FluentSuperColumn)column;
                    var superColumn = new SuperColumn {
                        Name    = colY.ColumnName.TryToBigEndian(),
                        Columns = new List <Column>()
                    };

                    foreach (var col in colY.MutationTracker.GetMutations().Select(x => x.Column).OfType <FluentColumn>())
                    {
                        superColumn.Columns.Add(CreateColumn(col));
                    }

                    return(new Mutation {
                        Column_or_supercolumn = new ColumnOrSuperColumn {
                            Super_column = superColumn
                        }
                    });
                }
                break;
            }

            return(null);
        }
示例#6
0
        public static FluentSuperColumn <CompareWith, CompareSubcolumnWith> ConvertSuperColumnToFluentSuperColumn <CompareWith, CompareSubcolumnWith>(SuperColumn col)
            where CompareWith : CassandraType
            where CompareSubcolumnWith : CassandraType
        {
            var superCol = new FluentSuperColumn <CompareWith, CompareSubcolumnWith> {
                ColumnName = CassandraType.GetType <CompareWith>(col.Name)
            };

            foreach (var xcol in col.Columns)
            {
                superCol.Columns.Add(ConvertColumnToFluentColumn <CompareSubcolumnWith>(xcol));
            }

            return(superCol);
        }
 public ColumnOrSuperColumn(SuperColumn superColumn)
     : this(null, superColumn)
 {
 }
 public ColumnOrSuperColumn(Column column, SuperColumn superColumn)
 {
     Column = column;
     SuperColumn = superColumn;
 }