Example usage for org.apache.cassandra.db.marshal UTF8Type instance

List of usage examples for org.apache.cassandra.db.marshal UTF8Type instance

Introduction

In this page you can find the example usage for org.apache.cassandra.db.marshal UTF8Type instance.

Prototype

UTF8Type instance

To view the source code for org.apache.cassandra.db.marshal UTF8Type instance.

Click Source Link

Usage

From source file:clojurewerkz.cassaforte.Codec.java

License:Apache License

private static AbstractType getCodecInternal(DataType type) {
    switch (type.getName()) {
    case ASCII:/*w w w .j  a  v  a2s . c  o m*/
        return AsciiType.instance;
    case BIGINT:
        return LongType.instance;
    case BLOB:
        return BytesType.instance;
    case BOOLEAN:
        return BooleanType.instance;
    case COUNTER:
        return CounterColumnType.instance;
    case DECIMAL:
        return DecimalType.instance;
    case DOUBLE:
        return DoubleType.instance;
    case FLOAT:
        return FloatType.instance;
    case INET:
        return InetAddressType.instance;
    case INT:
        return Int32Type.instance;
    case TEXT:
        return UTF8Type.instance;
    case TIMESTAMP:
        return DateType.instance;
    case UUID:
        return UUIDType.instance;
    case VARCHAR:
        return UTF8Type.instance;
    case VARINT:
        return IntegerType.instance;
    case TIMEUUID:
        return TimeUUIDType.instance;
    case LIST:
        return ListType.getInstance(getCodec(type.getTypeArguments().get(0)));
    case SET:
        return SetType.getInstance(getCodec(type.getTypeArguments().get(0)));
    case MAP:
        return MapType.getInstance(getCodec(type.getTypeArguments().get(0)),
                getCodec(type.getTypeArguments().get(1)));
    default:
        throw new RuntimeException("Unknown type");
    }
}

From source file:com.datastax.driver.core.ArrayBackedRow.java

License:Apache License

public String getString(int i) {
    DataType.Name type = metadata.checkType(i, DataType.Name.VARCHAR, DataType.Name.TEXT, DataType.Name.ASCII);

    ByteBuffer value = data.get(i);
    if (value == null)
        return null;

    return type == DataType.Name.ASCII ? AsciiType.instance.compose(value) : UTF8Type.instance.compose(value);
}

From source file:com.datastax.driver.core.BoundStatement.java

License:Apache License

/**
 * Sets the {@code i}th value to the provided string.
 *
 * @param i the index of the variable to set.
 * @param v the value to set.//from  ww  w  . j a va 2s  .  c o  m
 * @return this BoundStatement.
 *
 * @throws IndexOutOfBoundsException if {@code i < 0 || i >= this.preparedStatement().variables().size()}.
 * @throws InvalidTypeException if column {@code i} is of neither of the
 * following types: VARCHAR, TEXT or ASCII.
 */
public BoundStatement setString(int i, String v) {
    DataType.Name type = metadata().checkType(i, DataType.Name.VARCHAR, DataType.Name.TEXT,
            DataType.Name.ASCII);
    switch (type) {
    case ASCII:
        return setValue(i, v == null ? null : AsciiType.instance.decompose(v));
    case TEXT:
    case VARCHAR:
        return setValue(i, v == null ? null : UTF8Type.instance.decompose(v));
    default:
        throw new AssertionError();
    }
}

From source file:com.datastax.driver.core.Codec.java

License:Apache License

private static AbstractType<?> getCodecInternal(DataType type) {
    switch (type.getName()) {
    case ASCII:/* www  .  ja  v  a2s.co m*/
        return AsciiType.instance;
    case BIGINT:
        return LongType.instance;
    case BLOB:
        return BytesType.instance;
    case BOOLEAN:
        return BooleanType.instance;
    case COUNTER:
        return CounterColumnType.instance;
    case DECIMAL:
        return DecimalType.instance;
    case DOUBLE:
        return DoubleType.instance;
    case FLOAT:
        return FloatType.instance;
    case INET:
        return InetAddressType.instance;
    case INT:
        return Int32Type.instance;
    case TEXT:
        return UTF8Type.instance;
    case TIMESTAMP:
        return DateType.instance;
    case UUID:
        return UUIDType.instance;
    case VARCHAR:
        return UTF8Type.instance;
    case VARINT:
        return IntegerType.instance;
    case TIMEUUID:
        return TimeUUIDType.instance;
    case LIST:
        return ListType.getInstance(getCodec(type.getTypeArguments().get(0)));
    case SET:
        return SetType.getInstance(getCodec(type.getTypeArguments().get(0)));
    case MAP:
        return MapType.getInstance(getCodec(type.getTypeArguments().get(0)),
                getCodec(type.getTypeArguments().get(1)));
    // We don't interpret custom values in any way
    case CUSTOM:
        return BytesType.instance;
    default:
        throw new RuntimeException("Unknown type");
    }
}

From source file:com.datastax.driver.core.Row.java

License:Apache License

/**
 * Returns the {@code i}th value of this row as a string.
 *
 * @param i the index ({@code 0 <= i < size()}) of the column to retrieve.
 * @return the value of the {@code i}th column in this row as a string. If the
 * value is NULL, {@code null} is returned.
 *
 * @throws IndexOutOfBoundsException if {@code i < 0 || i >= this.columns().size()}.
 * @throws InvalidTypeException if column {@code i} type is none of:
 * VARCHAR, TEXT or ASCII./* w ww.  ja  v a 2s. c o m*/
 */
public String getString(int i) {
    DataType.Name type = metadata.checkType(i, DataType.Name.VARCHAR, DataType.Name.TEXT, DataType.Name.ASCII);

    ByteBuffer value = data.get(i);
    if (value == null)
        return null;

    return type == DataType.Name.ASCII ? AsciiType.instance.compose(value) : UTF8Type.instance.compose(value);
}

From source file:com.impetus.client.cassandra.common.CassandraUtilities.java

License:Apache License

/**
 * @param value/* w w  w  .j  a  va  2  s  . co m*/
 * @param f
 * @return
 */
public static ByteBuffer toBytes(Object value, Class<?> clazz) {
    if (clazz.isAssignableFrom(String.class)) {
        return UTF8Type.instance.decompose((String) value);
    } else if (clazz.equals(int.class) || clazz.isAssignableFrom(Integer.class)) {
        return Int32Type.instance.decompose(Integer.parseInt(value.toString()));
    } else if (clazz.equals(long.class) || clazz.isAssignableFrom(Long.class)) {
        return LongType.instance.decompose(Long.parseLong(value.toString()));
    } else if (clazz.equals(boolean.class) || clazz.isAssignableFrom(Boolean.class)) {
        return BooleanType.instance.decompose(Boolean.valueOf(value.toString()));
    } else if (clazz.equals(double.class) || clazz.isAssignableFrom(Double.class)) {
        return DoubleType.instance.decompose(Double.valueOf(value.toString()));
    } else if (clazz.isAssignableFrom(java.util.UUID.class)) {
        return UUIDType.instance.decompose(UUID.fromString(value.toString()));
    } else if (clazz.equals(float.class) || clazz.isAssignableFrom(Float.class)) {
        return FloatType.instance.decompose(Float.valueOf(value.toString()));
    } else if (clazz.isAssignableFrom(Date.class)) {
        DateAccessor dateAccessor = new DateAccessor();
        return DateType.instance.decompose((Date) value);
    } else {
        if (value.getClass().isAssignableFrom(String.class)) {
            value = PropertyAccessorFactory.getPropertyAccessor(clazz).fromString(clazz, value.toString());
        }
        return BytesType.instance
                .decompose(ByteBuffer.wrap(PropertyAccessorFactory.getPropertyAccessor(clazz).toBytes(value)));
    }
}

From source file:com.impetus.client.cassandra.index.InvertedIndexHandlerBase.java

License:Apache License

/**
 * Searches into inverted index based on <code>expression</code> and adds
 * search result to <code>searchResults</code>
 *///from   w  w  w  .  ja v a 2  s  .c  o  m
private void searchAndAddToResults(EntityMetadata m, String persistenceUnit, ConsistencyLevel consistencyLevel,
        String columnFamilyName, List<SearchResult> searchResults, IndexExpression expression,
        boolean isRowKeyQuery) {
    SearchResult searchResult = new SearchResult();

    byte[] superColumnName = expression.getValue();
    String superColumnNameStr = null;
    String rowKey = null;
    try {
        rowKey = ByteBufferUtil.string(ByteBuffer.wrap(expression.getColumn_name()),
                Charset.forName(Constants.CHARSET_UTF8));
        superColumnNameStr = new String(expression.getValue(), Charset.forName(Constants.CHARSET_UTF8));
    } catch (CharacterCodingException e) {
        log.error("Error while retrieving records {}, Caused by:", e);
        throw new PersistenceException(e);
    }
    Object pk = PropertyAccessorHelper.getObject(m.getIdAttribute().getJavaType(), superColumnName);
    IndexOperator condition = expression.getOp();

    if (log.isInfoEnabled()) {
        log.info("RowKey: {} ; Super column Name: {} on condition.", rowKey, superColumnNameStr, condition);
    }

    // TODO: Second check unnecessary but unavoidable as filter clause
    // property is incorrectly passed as column name

    // Search based on Primary key
    if (isRowKeyQuery && (rowKey.equals(m.getIdAttribute().getName())
            || rowKey.equals(((DefaultSingularAttribute) m.getIdAttribute()).getJPAColumnName()))) {
        if (searchResults.isEmpty()) {
            searchResult.setPrimaryKey(pk);
            searchResults.add(searchResult);
        } else {
            SearchResult existing = searchResults.get(0);
            if (existing.getPrimaryKey() != null && existing.getPrimaryKey().equals(superColumnNameStr)) {
                searchResults.add(searchResult);
            } else {
                searchResults.remove(0);
            }
        }
    } else {
        // Search results in the form of thrift super columns
        List<SuperColumn> thriftSuperColumns = new ArrayList<SuperColumn>();

        switch (condition) {
        // EQUAL Operator
        case EQ:
            SuperColumn thriftSuperColumn = getSuperColumnForRow(consistencyLevel, columnFamilyName, rowKey,
                    superColumnName, persistenceUnit);

            if (thriftSuperColumn != null)
                thriftSuperColumns.add(thriftSuperColumn);
            break;

        // LIKE operation not available
        // Greater than operator
        case GT:
            searchSuperColumnsInRange(columnFamilyName, consistencyLevel, persistenceUnit, rowKey,
                    superColumnName, thriftSuperColumns, superColumnName, new byte[0]);
            break;
        // Less than Operator
        case LT:
            searchSuperColumnsInRange(columnFamilyName, consistencyLevel, persistenceUnit, rowKey,
                    superColumnName, thriftSuperColumns, new byte[0], superColumnName);
            break;
        // Greater than-equals to operator
        case GTE:
            searchSuperColumnsInRange(columnFamilyName, consistencyLevel, persistenceUnit, rowKey,
                    superColumnName, thriftSuperColumns, superColumnName, new byte[0]);
            break;
        // Less than equal to operator
        case LTE:
            searchSuperColumnsInRange(columnFamilyName, consistencyLevel, persistenceUnit, rowKey,
                    superColumnName, thriftSuperColumns, new byte[0], superColumnName);
            break;

        default:
            throw new QueryHandlerException(
                    condition + " comparison operator not supported currently for Cassandra Inverted Index.");
        }

        // Construct search results out of these thrift columns
        for (SuperColumn thriftSuperColumn : thriftSuperColumns) {

            for (Column column : thriftSuperColumn.getColumns()) {
                byte[] columnName = column.getName();
                searchResult.setPrimaryKey(
                        PropertyAccessorHelper.getObject(m.getIdAttribute().getJavaType(), columnName));
                byte[] columnValue = column.getValue();
                String ecValue = UTF8Type.instance.compose(ByteBuffer.wrap(columnValue));

                if (ecValue != null && !"".equals(ecValue.trim())) {
                    searchResult.setEmbeddedColumnName(
                            rowKey.substring(0, rowKey.indexOf(Constants.INDEX_TABLE_ROW_KEY_DELIMITER)));
                    searchResult.addEmbeddedColumnValue(ecValue);
                }
            }

            if (searchResults.isEmpty()) {
                searchResults.add(searchResult);
            } else {
                SearchResult existing = searchResults.get(0);
                if (existing.getPrimaryKey() != null
                        && existing.getPrimaryKey().equals(searchResult.getPrimaryKey())) {
                    searchResults.add(searchResult);
                } else {
                    searchResults.remove(0);
                }
            }

        }
    }
}

From source file:com.impetus.client.cassandra.thrift.ThriftClient.java

License:Apache License

/**
 * Retrieves IDs for a given column./*from ww  w .ja  v a 2 s .c o  m*/
 * 
 * @param schemaName
 *            the schema name
 * @param tableName
 *            the table name
 * @param pKeyName
 *            the key name
 * @param columnName
 *            the column name
 * @param columnValue
 *            the column value
 * @param entityClazz
 *            the entity clazz
 * @return the object[]
 */
@Override
public Object[] findIdsByColumn(String schemaName, String tableName, String pKeyName, String columnName,
        Object columnValue, Class entityClazz) {
    List<Object> rowKeys = new ArrayList<Object>();

    if (getCqlVersion().equalsIgnoreCase(CassandraConstants.CQL_VERSION_3_0)) {
        rowKeys = findIdsByColumnUsingCql(schemaName, tableName, pKeyName, columnName, columnValue,
                entityClazz);
    } else {
        EntityMetadata metadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClazz);
        SlicePredicate slicePredicate = new SlicePredicate();

        slicePredicate.setSlice_range(new SliceRange(ByteBufferUtil.EMPTY_BYTE_BUFFER,
                ByteBufferUtil.EMPTY_BYTE_BUFFER, false, Integer.MAX_VALUE));

        String childIdStr = PropertyAccessorHelper.getString(columnValue);
        IndexExpression ie = new IndexExpression(
                UTF8Type.instance.decompose(columnName + Constants.JOIN_COLUMN_NAME_SEPARATOR + childIdStr),
                IndexOperator.EQ, UTF8Type.instance.decompose(childIdStr));

        List<IndexExpression> expressions = new ArrayList<IndexExpression>();
        expressions.add(ie);

        IndexClause ix = new IndexClause();
        ix.setStart_key(ByteBufferUtil.EMPTY_BYTE_BUFFER);
        ix.setCount(Integer.MAX_VALUE);
        ix.setExpressions(expressions);

        ColumnParent columnParent = new ColumnParent(tableName);
        Connection conn = null;
        try {
            conn = getConnection();
            List<KeySlice> keySlices = conn.getClient().get_indexed_slices(columnParent, ix, slicePredicate,
                    getConsistencyLevel());

            rowKeys = ThriftDataResultHelper.getRowKeys(keySlices, metadata);
        } catch (InvalidRequestException e) {
            log.error("Error while fetching key slices of column family {} for column name {} , Caused by: .",
                    tableName, columnName, e);
            throw new KunderaException(e);
        } catch (UnavailableException e) {
            log.error("Error while fetching key slices of column family {} for column name {} , Caused by: .",
                    tableName, columnName, e);
            throw new KunderaException(e);
        } catch (TimedOutException e) {
            log.error("Error while fetching key slices of column family {} for column name {} , Caused by: .",
                    tableName, columnName, e);
            throw new KunderaException(e);
        } catch (TException e) {
            log.error("Error while fetching key slices of column family {} for column name {} , Caused by: .",
                    tableName, columnName, e);
            throw new KunderaException(e);
        } finally {
            releaseConnection(conn);
        }
    }
    if (rowKeys != null && !rowKeys.isEmpty()) {
        return rowKeys.toArray(new Object[0]);
    }

    if (log.isInfoEnabled()) {
        log.info("No record found!, returning null.");
    }
    return null;
}

From source file:com.impetus.client.cassandra.thrift.ThriftClient.java

License:Apache License

@Override
public List<Object> findByRelation(String colName, Object colValue, Class entityClazz) {
    EntityMetadata m = KunderaMetadataManager.getEntityMetadata(kunderaMetadata, entityClazz);
    List<Object> entities = null;

    if (isCql3Enabled(m)) {
        entities = new ArrayList<Object>();

        MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata()
                .getMetamodel(m.getPersistenceUnit());

        EntityType entityType = metaModel.entity(m.getEntityClazz());

        List<AbstractManagedType> subManagedType = ((AbstractManagedType) entityType).getSubManagedType();

        if (subManagedType.isEmpty()) {
            entities.addAll(findByRelationQuery(m, colName, colValue, entityClazz, dataHandler));
        } else {//from w  w  w .  ja  va 2 s .co m
            for (AbstractManagedType subEntity : subManagedType) {
                EntityMetadata subEntityMetadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata,
                        subEntity.getJavaType());

                entities.addAll(findByRelationQuery(subEntityMetadata, colName, colValue,
                        subEntityMetadata.getEntityClazz(), dataHandler));
                // TODOO:: if(entities != null)
            }
        }

    } else {
        SlicePredicate slicePredicate = new SlicePredicate();
        slicePredicate.setSlice_range(new SliceRange(ByteBufferUtil.EMPTY_BYTE_BUFFER,
                ByteBufferUtil.EMPTY_BYTE_BUFFER, false, Integer.MAX_VALUE));

        IndexExpression ie = new IndexExpression(UTF8Type.instance.decompose(colName), IndexOperator.EQ,
                ByteBuffer.wrap(PropertyAccessorHelper.getBytes(colValue)));
        List<IndexExpression> expressions = new ArrayList<IndexExpression>();
        expressions.add(ie);

        IndexClause ix = new IndexClause();
        ix.setStart_key(ByteBufferUtil.EMPTY_BYTE_BUFFER);
        ix.setCount(Integer.MAX_VALUE);
        ix.setExpressions(expressions);
        ColumnParent columnParent = new ColumnParent(m.getTableName());

        List<KeySlice> keySlices = null;
        Connection conn = null;

        try {
            conn = getConnection();
            if (!m.getType().equals(Type.SUPER_COLUMN_FAMILY)) {
                keySlices = conn.getClient().get_indexed_slices(columnParent, ix, slicePredicate,
                        getConsistencyLevel());
            }
        } catch (InvalidRequestException e) {
            if (e.why != null && e.why.contains("No indexed columns")) {
                return entities;
            } else {
                log.error("Error while finding relations for column family {} , Caused by: .", m.getTableName(),
                        e);
                throw new KunderaException(e);
            }
        } catch (UnavailableException e) {
            log.error("Error while finding relations for column family {} , Caused by: .", m.getTableName(), e);
            throw new KunderaException(e);
        } catch (TimedOutException e) {
            log.error("Error while finding relations for column family {} , Caused by: .", m.getTableName(), e);
            throw new KunderaException(e);
        } catch (TException e) {
            log.error("Error while finding relations for column family {} , Caused by: .", m.getTableName(), e);
            throw new KunderaException(e);
        } finally {
            releaseConnection(conn);
        }

        if (keySlices != null) {
            entities = new ArrayList<Object>(keySlices.size());

            MetamodelImpl metaModel = (MetamodelImpl) kunderaMetadata.getApplicationMetadata()
                    .getMetamodel(m.getPersistenceUnit());

            EntityType entityType = metaModel.entity(m.getEntityClazz());

            List<AbstractManagedType> subManagedType = ((AbstractManagedType) entityType).getSubManagedType();

            if (subManagedType.isEmpty()) {
                entities = populateData(m, keySlices, entities, m.getRelationNames() != null,
                        m.getRelationNames());
            } else {
                for (AbstractManagedType subEntity : subManagedType) {
                    EntityMetadata subEntityMetadata = KunderaMetadataManager.getEntityMetadata(kunderaMetadata,
                            subEntity.getJavaType());
                    entities = populateData(subEntityMetadata, keySlices, entities,
                            subEntityMetadata.getRelationNames() != null, subEntityMetadata.getRelationNames());
                    // TODOO:: if(entities != null)

                }
            }
        }
    }
    return entities;
}

From source file:com.impetus.client.cassandra.thrift.ThriftClient.java

License:Apache License

@Override
public List find(List<IndexClause> ixClause, EntityMetadata m, boolean isRelation, List<String> relations,
        int maxResult, List<String> columns) {
    List<Object> entities = new ArrayList<Object>();
    Connection conn = null;//  w  w  w  .  j  a v a 2  s  .c  o  m
    try {
        // ixClause can be 0,1 or more!
        SlicePredicate slicePredicate = new SlicePredicate();

        if (columns != null && !columns.isEmpty()) {
            List asList = new ArrayList(32);
            for (String colName : columns) {
                if (colName != null) {
                    asList.add(UTF8Type.instance.decompose(colName));
                }
            }
            slicePredicate.setColumn_names(asList);
        } else {
            SliceRange sliceRange = new SliceRange();
            sliceRange.setStart(ByteBufferUtil.EMPTY_BYTE_BUFFER);
            sliceRange.setFinish(ByteBufferUtil.EMPTY_BYTE_BUFFER);
            slicePredicate.setSlice_range(sliceRange);
        }
        conn = getConnection();

        if (ixClause.isEmpty()) {
            KeyRange keyRange = new KeyRange(maxResult);
            keyRange.setStart_key(ByteBufferUtil.EMPTY_BYTE_BUFFER);
            keyRange.setEnd_key(ByteBufferUtil.EMPTY_BYTE_BUFFER);

            if (m.isCounterColumnType()) {
                List<KeySlice> ks = conn.getClient().get_range_slices(new ColumnParent(m.getTableName()),
                        slicePredicate, keyRange, getConsistencyLevel());
                entities = onCounterColumn(m, isRelation, relations, ks);

            } else {
                List<KeySlice> keySlices = conn.getClient().get_range_slices(new ColumnParent(m.getTableName()),
                        slicePredicate, keyRange, getConsistencyLevel());

                if (m.getType().isSuperColumnFamilyMetadata()) {
                    Map<ByteBuffer, List<SuperColumn>> qResults = ThriftDataResultHelper
                            .transformThriftResult(ColumnFamilyType.SUPER_COLUMN, keySlices, null);
                    entities = new ArrayList<Object>(qResults.size());
                    computeEntityViaSuperColumns(m, isRelation, relations, entities, qResults);
                } else {
                    Map<ByteBuffer, List<Column>> qResults = ThriftDataResultHelper
                            .transformThriftResult(ColumnFamilyType.COLUMN, keySlices, null);
                    entities = new ArrayList<Object>(qResults.size());
                    computeEntityViaColumns(m, isRelation, relations, entities, qResults);
                }
            }
        } else {
            entities = new ArrayList<Object>();
            for (IndexClause ix : ixClause) {
                List<KeySlice> keySlices = conn.getClient().get_indexed_slices(
                        new ColumnParent(m.getTableName()), ix, slicePredicate, getConsistencyLevel());

                Map<ByteBuffer, List<Column>> qResults = ThriftDataResultHelper
                        .transformThriftResult(ColumnFamilyType.COLUMN, keySlices, null);
                // iterate through complete map and populate.
                entities = new ArrayList<Object>(qResults.size());

                computeEntityViaColumns(m, isRelation, relations, entities, qResults);
            }
        }
    } catch (InvalidRequestException irex) {
        log.error("Error during executing find of column family {}, Caused by: .", m.getTableName(), irex);
        throw new PersistenceException(irex);
    } catch (UnavailableException uex) {
        log.error("Error during executing find of column family {}, Caused by: .", m.getTableName(), uex);
        throw new PersistenceException(uex);
    } catch (TimedOutException tex) {
        log.error("Error during executing find of column family {}, Caused by: .", m.getTableName(), tex);
        throw new PersistenceException(tex);
    } catch (TException tex) {
        log.error("Error during executing find of column family {}, Caused by: .", m.getTableName(), tex);
        throw new PersistenceException(tex);
    } finally {

        releaseConnection(conn);
    }
    return entities;
}