Example usage for org.apache.cassandra.db ColumnFamilyStore getComparator

List of usage examples for org.apache.cassandra.db ColumnFamilyStore getComparator

Introduction

In this page you can find the example usage for org.apache.cassandra.db ColumnFamilyStore getComparator.

Prototype

public ClusteringComparator getComparator() 

Source Link

Usage

From source file:com.stratio.cassandra.lucene.IndexService.java

License:Apache License

/**
 * Returns a new index service for the specified indexed table and index metadata.
 *
 * @param table the indexed table/*  w ww  . j a va  2 s .  c o  m*/
 * @param indexMetadata the index metadata
 * @return the index service
 */
public static IndexService build(ColumnFamilyStore table, IndexMetadata indexMetadata) {
    return table.getComparator().subtypes().isEmpty() ? new IndexServiceSkinny(table, indexMetadata)
            : new IndexServiceWide(table, indexMetadata);
}

From source file:com.tuplejump.stargate.cassandra.CustomColumnFactory.java

License:Apache License

public Row getRowWithMetaColumn(ColumnFamilyStore table, RowIndex currentIndex, ByteBuffer metaColumnValue) {
    ByteBuffer partitionKey = partitionKey(table);
    ColumnFamily cleanColumnFamily = TreeMapBackedSortedColumns.factory.create(table.metadata);
    CompositeType baseComparator = (CompositeType) table.getComparator();
    int prefixSize = baseComparator.types.size() - (table.metadata.getCfDef().hasCollections ? 2 : 1);
    addKeyColumnsWithDefaultValues(table, baseComparator, prefixSize, cleanColumnFamily);
    if (currentIndex.isMetaColumn()) {
        String indexColumnName = currentIndex.getPrimaryColumnName();
        Iterable<ColumnDefinition> cols = table.metadata.regularAndStaticColumns();
        for (ColumnDefinition columnDef : cols) {
            addDefaultColumn(table, columnDef, cleanColumnFamily, prefixSize, baseComparator);
        }/*from ww w . j  a v a2  s.  c  om*/
        addMetaColumnValue(table, indexColumnName, metaColumnValue, cleanColumnFamily);
        DecoratedKey dk = table.partitioner.decorateKey(partitionKey);
        return new Row(dk, cleanColumnFamily);
    } else {
        return null;
    }
}

From source file:com.tuplejump.stargate.cassandra.CustomColumnFactory.java

License:Apache License

private void addMetaColumnValue(ColumnFamilyStore table, String colName, ByteBuffer metaColumnValue,
        ColumnFamily cleanColumnFamily) {
    CompositeType baseComparator = (CompositeType) table.getComparator();
    int prefixSize = baseComparator.types.size() - (table.metadata.getCfDef().hasCollections ? 2 : 1);
    CompositeType.Builder builder = baseComparator.builder();
    for (int i = 0; i < prefixSize; i++)
        builder.add(Fields.defaultValue(baseComparator.types.get(i)));
    builder.add(UTF8Type.instance.decompose(colName));
    ByteBuffer finalColumnName = builder.build();
    Column scoreColumn = new Column(finalColumnName, metaColumnValue);
    cleanColumnFamily.addColumn(scoreColumn);
}

From source file:com.tuplejump.stargate.cassandra.ErrorReporter.java

License:Apache License

public Row getErrorRow(ColumnFamilyStore table, RowIndex currentIndex, Exception e) {
    CompositeType baseComparator = (CompositeType) table.getComparator();
    int prefixSize = baseComparator.types.size() - (table.metadata.getCfDef().hasCollections ? 2 : 1);
    ColumnFamily cleanColumnFamily = TreeMapBackedSortedColumns.factory.create(table.metadata);
    ByteBuffer partitionKey;/*from w ww  .j a  va  2s  . co m*/
    AbstractType keyType = table.metadata.getKeyValidator();
    if (keyType instanceof CompositeType) {
        CompositeType compositeType = ((CompositeType) keyType);
        CompositeType.Builder builder = compositeType.builder();
        compositeType.getComponents();
        for (AbstractType component : compositeType.getComponents()) {
            builder.add(Fields.defaultValue(component));
        }
        partitionKey = builder.build();
    } else {
        partitionKey = Fields.defaultValue(keyType);
    }

    List<ColumnDefinition> pkCols = table.metadata.partitionKeyColumns();
    for (ColumnDefinition columnDef : pkCols) {
        addDefaultColumn(table, columnDef, cleanColumnFamily, prefixSize, baseComparator);
    }
    List<ColumnDefinition> ckCols = table.metadata.clusteringKeyColumns();
    for (ColumnDefinition columnDef : ckCols) {
        addDefaultColumn(table, columnDef, cleanColumnFamily, prefixSize, baseComparator);
    }

    if (currentIndex.isMetaColumn()) {
        String indexColumnName = currentIndex.getPrimaryColumnName();
        Iterable<ColumnDefinition> cols = table.metadata.regularAndStaticColumns();
        for (ColumnDefinition columnDef : cols) {
            addDefaultColumn(table, columnDef, cleanColumnFamily, prefixSize, baseComparator);
        }
        addErrorColumn(table, indexColumnName, e.getMessage(), cleanColumnFamily);
        DecoratedKey dk = table.partitioner.decorateKey(partitionKey);
        return new Row(dk, cleanColumnFamily);
    } else {
        return null;
    }
}

From source file:com.tuplejump.stargate.cassandra.ErrorReporter.java

License:Apache License

public void addErrorColumn(ColumnFamilyStore table, String colName, String errorMsg,
        ColumnFamily cleanColumnFamily) {
    CompositeType baseComparator = (CompositeType) table.getComparator();
    int prefixSize = baseComparator.types.size() - (table.metadata.getCfDef().hasCollections ? 2 : 1);
    CompositeType.Builder builder = baseComparator.builder();
    for (int i = 0; i < prefixSize; i++)
        builder.add(Fields.defaultValue(baseComparator.types.get(i)));
    builder.add(UTF8Type.instance.decompose(colName));
    ByteBuffer finalColumnName = builder.build();
    Column scoreColumn = new Column(finalColumnName, UTF8Type.instance
            .decompose("{\"error\":\"" + StringEscapeUtils.escapeEcmaScript(errorMsg) + "\"}"));
    cleanColumnFamily.addColumn(scoreColumn);
}

From source file:com.tuplejump.stargate.cassandra.RowScanner.java

License:Apache License

public static ByteBuffer[] getCompositePKComponents(ColumnFamilyStore baseCfs, ByteBuffer pk) {
    CompositeType baseComparator = (CompositeType) baseCfs.getComparator();
    return baseComparator.split(pk);
}

From source file:com.tuplejump.stargate.cassandra.TableMapper.java

License:Apache License

public TableMapper(ColumnFamilyStore table, boolean isMetaColumn, ColumnDefinition primaryColumnDefinition) {
    this.table = table;
    this.cfMetaData = table.metadata;
    this.clusteringCType = table.getComparator();
    this.primaryKeyAbstractType = table.metadata.getKeyValidator();
    this.clusteringKeyType = table.getComparator().asAbstractType();
    this.primaryKeyType = CompositeType.getInstance(primaryKeyAbstractType, clusteringKeyType);
    this.defaultPartitionKey = defaultPartitionKey();
    this.isMetaColumn = isMetaColumn;
    this.primaryColumnDefinition = primaryColumnDefinition;
}

From source file:com.tuplejump.stargate.cassandra.TableMapper.java

License:Apache License

private static void addColumn(ColumnFamilyStore table, ColumnFamily cleanColumnFamily,
        ColumnDefinition columnDefinition, Composite prefix, ByteBuffer metaColumnValue) {
    if (!columnDefinition.type.asCQL3Type().isCollection()) {
        CellNameType cellNameType = table.getComparator();
        CellName cellName = cellNameType.create(prefix, columnDefinition);
        Cell scoreColumn = new BufferCell(cellName, metaColumnValue);
        cleanColumnFamily.addColumn(scoreColumn);
    }/*from w  w  w.j  ava2 s . co m*/
}

From source file:com.tuplejump.stargate.lucene.query.function.AggregateFunction.java

License:Apache License

public void load(Tuple tuple, Row row, ColumnFamilyStore table) {
    CompositeType baseComparator = (CompositeType) table.getComparator();
    ColumnFamily cf = row.cf;/*w w w.  j  ava 2s  . co m*/
    CFDefinition cfDef = table.metadata.getCfDef();
    ByteBuffer rowKey = row.key.key;
    AbstractType<?> keyValidator = table.metadata.getKeyValidator();
    Collection<Column> cols = cf.getSortedColumns();
    boolean keyColumnsAdded = false;
    for (Column column : cols) {
        if (!keyColumnsAdded) {
            ByteBuffer[] keyComponents = cfDef.hasCompositeKey
                    ? ((CompositeType) table.metadata.getKeyValidator()).split(rowKey)
                    : new ByteBuffer[] { rowKey };
            List<AbstractType<?>> keyValidators = keyValidator.getComponents();
            for (Map.Entry<Integer, Pair<String, ByteBuffer>> entry : options.partitionKeysIndexed.entrySet()) {
                ByteBuffer value = keyComponents[entry.getKey()];
                AbstractType<?> validator = keyValidators.get(entry.getKey());
                String actualColumnName = entry.getValue().left;
                for (String field : positions.keySet()) {
                    if (actualColumnName.equalsIgnoreCase(field)) {
                        tuple.tuple[this.positions.get(field)] = validator.compose(value);
                    }
                }
            }
            keyColumnsAdded = true;
        }
        String actualColumnName = CassandraUtils.getColumnNameStr(baseComparator, column.name());
        ByteBuffer colValue = column.value();
        AbstractType<?> valueValidator = table.metadata.getValueValidatorFromColumnName(column.name());
        if (valueValidator.isCollection()) {
            CollectionType validator = (CollectionType) valueValidator;
            AbstractType keyType = validator.nameComparator();
            AbstractType valueType = validator.valueComparator();
            ByteBuffer[] components = baseComparator.split(column.name());
            ByteBuffer keyBuf = components[components.length - 1];
            if (valueValidator instanceof MapType) {
                actualColumnName = actualColumnName + "." + keyType.compose(keyBuf);
                valueValidator = valueType;
            } else if (valueValidator instanceof SetType) {
                colValue = keyBuf;
                valueValidator = keyType;
            } else {
                valueValidator = valueType;
            }
        }
        for (String field : positions.keySet()) {
            if (actualColumnName.equalsIgnoreCase(field)) {
                tuple.tuple[this.positions.get(field)] = valueValidator.compose(colValue);
            }
        }
    }
}