private void addColumnsToCF ( List < ? > row , ColumnFamily cfamily ) { CFMetaData cfm = cfamily . metadata ( ) ; assert cfm != null ; for ( Object c : row ) { JsonColumn col = new JsonColumn < List > ( ( List ) c , cfm ) ; if ( col . isRangeTombstone ( ) ) { Composite start = cfm . comparator . fromByteBuffer ( col . getName ( ) ) ; Composite end = cfm . comparator . fromByteBuffer ( col . getValue ( ) ) ; cfamily . addAtom ( new RangeTombstone ( start , end , col . timestamp , col . localExpirationTime ) ) ; continue ; } assert cfm . isCQL3Table ( ) || col . getName ( ) . hasRemaining ( ) : "Cell name should not be empty" ; CellName cname = col . getName ( ) . hasRemaining ( ) ? cfm . comparator . cellFromByteBuffer ( col . getName ( ) ) : cfm . comparator . rowMarker ( Composites . EMPTY ) ; if ( col . isExpiring ( ) ) { cfamily . addColumn ( new BufferExpiringCell ( cname , col . getValue ( ) , col . timestamp , col . ttl , col . localExpirationTime ) ) ; } else if ( col . isCounter ( ) ) { cfamily . addColumn ( new BufferCounterCell ( cname , col . getValue ( ) , col . timestamp , col . timestampOfLastDelete ) ) ; } else if ( col . isDeleted ( ) ) { cfamily . addTombstone ( cname , col . getValue ( ) , col . timestamp ) ; } else if ( col . isRangeTombstone ( ) ) { CellName end = cfm . comparator . cellFromByteBuffer ( col . getValue ( ) ) ; cfamily . addAtom ( new RangeTombstone ( cname , end , col . timestamp , col . localExpirationTime ) ) ; } // cql3 row marker, see CASSANDRA-5852 else if ( cname . isEmpty ( ) ) { cfamily . addColumn ( cfm . comparator . rowMarker ( Composites . EMPTY ) , col . getValue ( ) , col . timestamp ) ; } else { cfamily . addColumn ( cname , col . getValue ( ) , col . timestamp ) ; } } }
Add columns to a column family .