List of usage examples for org.apache.cassandra.db.marshal CompositeType split
@Override
public ByteBuffer[] split(ByteBuffer name)
From source file:com.stratio.cassandra.index.util.ByteBufferUtils.java
License:Apache License
/** * Returns a {@code String} representation of {@code byteBuffer} validated by {@code type}. * * @param byteBuffer the {@link java.nio.ByteBuffer} to be converted to {@code String}. * @param type {@link AbstractType} of {@code byteBuffer}. * @return a {@code String} representation of {@code byteBuffer} validated by {@code type}. */// w ww. j av a 2 s . c om public static String toString(ByteBuffer byteBuffer, AbstractType<?> type) { if (type instanceof CompositeType) { CompositeType composite = (CompositeType) type; List<AbstractType<?>> types = composite.types; ByteBuffer[] components = composite.split(byteBuffer); StringBuilder sb = new StringBuilder(); for (int i = 0; i < components.length; i++) { AbstractType<?> componentType = types.get(i); ByteBuffer component = components[i]; sb.append(componentType.compose(component)); if (i < types.size() - 1) { sb.append(':'); } } return sb.toString(); } else { return type.compose(byteBuffer).toString(); } }
From source file:com.tuplejump.stargate.cassandra.RowIndexSupport.java
License:Apache License
public Pair<Pair<CompositeType.Builder, StringBuilder>, String> primaryKeyAndActualColumnName( boolean withPkBuilder, ByteBuffer rowKey, Column column) { AbstractType<?> rowKeyComparator = table.metadata.getKeyValidator(); CompositeType baseComparator = (CompositeType) table.getComparator(); CFDefinition cfDef = table.metadata.getCfDef(); int prefixSize = baseComparator.types.size() - (cfDef.hasCollections ? 2 : 1); List<AbstractType<?>> types = baseComparator.types; int idx = types.get(types.size() - 1) instanceof ColumnToCollectionType ? types.size() - 2 : types.size() - 1;/*from w w w. j av a 2 s . co m*/ ByteBuffer[] components = baseComparator.split(column.name()); String colName = CFDefinition.definitionType.getString(components[idx]); if (withPkBuilder) { Pair<CompositeType.Builder, StringBuilder> builder = pkBuilder(rowKeyComparator, rowKey, baseComparator, prefixSize, components); return Pair.create(builder, colName); } else { return Pair.create(null, colName); } }
From source file:com.tuplejump.stargate.cassandra.RowIndexSupport.java
License:Apache License
protected List<Field> collectionFields(CollectionType validator, String colName, Column column) { CompositeType baseComparator = (CompositeType) table.getComparator(); ByteBuffer[] components = baseComparator.split(column.name()); List<Field> fields = new ArrayList<>(); FieldType[] fieldTypesArr = options.collectionFieldTypes.get(colName); FieldType docValueType = options.collectionFieldDocValueTypes.get(colName); AbstractType keyType = validator.nameComparator(); AbstractType valueType = validator.valueComparator(); if (validator instanceof MapType) { ByteBuffer keyBuf = components[components.length - 1]; if (fieldTypesArr != null) { fields.add(Fields.field(colName + "._key", keyType, keyBuf, fieldTypesArr[0])); fields.add(Fields.field(colName + "._value", valueType, column.value(), fieldTypesArr[1])); fields.add(Fields.field((colName + "." + keyType.getString(keyBuf)).toLowerCase(), valueType, column.value(), fieldTypesArr[1])); }//from ww w . jav a 2s . co m if (docValueType != null) fields.add(Fields.field((colName + "." + keyType.getString(keyBuf)).toLowerCase(), valueType, column.value(), docValueType)); } else if (validator instanceof SetType) { if (fieldTypesArr != null) fields.add(Fields.field(colName, keyType, components[components.length - 1], fieldTypesArr[0])); if (docValueType != null) fields.add(Fields.field(colName, keyType, components[components.length - 1], docValueType)); } else if (validator instanceof ListType) { if (fieldTypesArr != null) fields.add(Fields.field(colName, valueType, column.value(), fieldTypesArr[0])); if (docValueType != null) fields.add(Fields.field(colName, valueType, column.value(), docValueType)); } else throw new UnsupportedOperationException("Unsupported collection type " + validator); return fields; }
From source file:com.tuplejump.stargate.cassandra.RowScanner.java
License:Apache License
protected Column getMetaColumn(Column firstColumn, String colName, Float score) { CompositeType baseComparator = (CompositeType) table.getComparator(); ByteBuffer[] components = baseComparator.split(firstColumn.name()); 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(components[i]);/*from ww w. ja va 2 s . c o m*/ builder.add(UTF8Type.instance.decompose(colName)); ByteBuffer finalColumnName = builder.build(); return new Column(finalColumnName, UTF8Type.instance.decompose("{\"score\":" + score.toString() + "}")); }
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.Fields.java
License:Apache License
public static String toString(ByteBuffer byteBuffer, AbstractType<?> type) { if (type instanceof CompositeType) { CompositeType composite = (CompositeType) type; List<AbstractType<?>> types = composite.types; ByteBuffer[] components = composite.split(byteBuffer); StringBuilder sb = new StringBuilder(); for (int i = 0; i < components.length; i++) { AbstractType<?> componentType = types.get(i); ByteBuffer component = components[i]; sb.append(componentType.compose(component)); if (i < types.size() - 1) { sb.append(':'); }//from w ww . ja v a 2 s.c om } return sb.toString(); } else { return type.compose(byteBuffer).toString(); } }
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;/*from w w w.j a v a2 s . com*/ 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); } } } }