List of usage examples for org.apache.cassandra.db.marshal UTF8Type instance
UTF8Type instance
To view the source code for org.apache.cassandra.db.marshal UTF8Type instance.
Click Source Link
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; }