List<byte[]> getColumns() { if (columns != null && columns.length > 0) { // byte[] fields = new byte[columns.length][1]; List<byte[]> fields = new ArrayList<byte[]>(columns.length); for (int i = 0; i < columns.length; i++) { if (columns[i] != null /* && columns[i].indexOf(".") >= 0 */) { byte[] f = PropertyAccessorHelper.getBytes(columns[i]); fields.add(f); } } return fields.isEmpty() ? null : fields; } return null; }
/** * On discriminator column. * * @param tr * the tr * @param timestamp * the timestamp * @param entityType * the entity type */ private void onDiscriminatorColumn(ThriftRow tr, long timestamp, EntityType entityType) { String discrColumn = ((AbstractManagedType) entityType).getDiscriminatorColumn(); String discrValue = ((AbstractManagedType) entityType).getDiscriminatorValue(); // No need to check for empty or blank, as considering it as valid name // for nosql! if (discrColumn != null && discrValue != null) { Column column = prepareColumn(PropertyAccessorHelper.getBytes(discrValue), PropertyAccessorHelper.getBytes(discrColumn), timestamp, 0); tr.addColumn(column); } }
@Override public void writeRelations(HTableInterface htable, Object rowKey, boolean containsEmbeddedObjectsOnly, List<RelationHolder> relations, String columnFamilyName) throws IOException { Put p = new Put(HBaseUtils.getBytes(rowKey)); boolean isPresent = false; for (RelationHolder r : relations) { if (r != null) { if (containsEmbeddedObjectsOnly) { p.add(Bytes.toBytes(r.getRelationName()), Bytes.toBytes(r.getRelationName()), PropertyAccessorHelper.getBytes(r.getRelationValue())); isPresent = true; } else { p.add(columnFamilyName.getBytes(), Bytes.toBytes(r.getRelationName()), System.currentTimeMillis(), PropertyAccessorHelper.getBytes(r.getRelationValue())); isPresent = true; } } } if (isPresent) { htable.put(p); } }
@Override public void index(Class entityClazz, EntityMetadata m, Map<String, Object> values, Object entityId, final Class parentClazz) { String idColumnName = ((AbstractAttribute) m.getIdAttribute()).getJPAColumnName(); Object id = values.get(idColumnName); for (String column : values.keySet()) { Object valueObject = values.get(column); List<String> majorKeyComponents = new ArrayList<String>(); majorKeyComponents.add(getIndexTableName(m)); majorKeyComponents.add(column); majorKeyComponents.add(PropertyAccessorHelper.getString(valueObject)); String minorKey = PropertyAccessorHelper.getString(id); Key key = Key.createKey(majorKeyComponents, minorKey); byte[] valueByteArray = PropertyAccessorHelper.getBytes(id); kvStore.put(key, Value.createValue(valueByteArray)); } }
@Override public <E> List<E> getColumnsById(String schemaName, String joinTableName, String joinColumnName, String inverseJoinColumnName, Object parentId, Class columnJavaType) { List<Object> foreignKeys = new ArrayList<Object>(); if (getCqlVersion().equalsIgnoreCase(CassandraConstants.CQL_VERSION_3_0)) { foreignKeys = getColumnsByIdUsingCql(schemaName, joinTableName, joinColumnName, inverseJoinColumnName, parentId, columnJavaType); } else { Selector selector = clientFactory.getSelector(pool); List<Column> columns = selector.getColumnsFromRow(joinTableName, Bytes.fromByteArray(PropertyAccessorHelper.getBytes(parentId)), Selector.newColumnsPredicateAll(true, 10), getConsistencyLevel()); foreignKeys = dataHandler.getForeignKeysFromJoinTable(inverseJoinColumnName, columns, columnJavaType); if (log.isInfoEnabled()) { log.info("Returning number of keys from join table", foreignKeys != null ? foreignKeys.size() : null); } } return (List<E>) foreignKeys; }
/** * Process discriminator columns. * * @param row * kv row object. * @param entityType * metamodel attribute. * @param schemaTable * the schema table */ private void addDiscriminatorColumn(Row row, EntityType entityType, Table schemaTable) { String discrColumn = ((AbstractManagedType) entityType).getDiscriminatorColumn(); String discrValue = ((AbstractManagedType) entityType).getDiscriminatorValue(); // No need to check for empty or blank, as considering it as valid name // for nosql! if (discrColumn != null && discrValue != null) { // Key // Key key = Key.createKey(majorKeyComponent, discrColumn); byte[] valueInBytes = PropertyAccessorHelper.getBytes(discrValue); NoSqlDBUtils.add(schemaTable.getField(discrColumn), row, discrValue, discrColumn); } }
row.put(fieldName, PropertyAccessorHelper.getBytes(value)); break;
Bytes.fromByteArray(PropertyAccessorHelper.getBytes(columnValue))));
/** * Populates foreign key as column. * * @param rlName * relation name * @param rlValue * relation value * @param timestamp * the timestamp * @return the column * @throws PropertyAccessException * the property access exception */ protected Column populateFkey(String rlName, Object rlValue, long timestamp) throws PropertyAccessException { Column col = new Column(); col.setName(PropertyAccessorFactory.STRING.toBytes(rlName)); col.setValue(PropertyAccessorHelper.getBytes(rlValue)); col.setTimestamp(timestamp); return col; }
column.setName(PropertyAccessorFactory.STRING.toBytes(invJoinColumnName + Constants.JOIN_COLUMN_NAME_SEPARATOR + value.toString())); column.setValue(PropertyAccessorHelper.getBytes(value)); column.setTimestamp(generator.getTimestamp()); columnType = value.getClass(); mutator.writeColumns(joinTableName, Bytes.fromByteArray(PropertyAccessorHelper.getBytes(key)), Arrays.asList(columns.toArray(new Column[0])));
column.setName(PropertyAccessorFactory.STRING.toBytes(invJoinColumnName + Constants.JOIN_COLUMN_NAME_SEPARATOR + value)); column.setValue(PropertyAccessorHelper.getBytes(value));
10000, Selector.newIndexExpression(colName, IndexOperator.EQ, Bytes.fromByteArray(PropertyAccessorHelper.getBytes(colValue)))); Map<Bytes, List<Column>> qResults; try
ByteBuffer.wrap(PropertyAccessorHelper.getBytes(colValue))); List<IndexExpression> expressions = new ArrayList<IndexExpression>(); expressions.add(ie);
List<byte[]> getColumns() { if (columns != null && columns.length > 0) { // byte[] fields = new byte[columns.length][1]; List<byte[]> fields = new ArrayList<byte[]>(columns.length); for (int i = 0; i < columns.length; i++) { if (columns[i] != null /* && columns[i].indexOf(".") >= 0 */) { byte[] f = PropertyAccessorHelper.getBytes(columns[i]); fields.add(f); } } return fields.isEmpty() ? null : fields; } return null; }
private void onDiscriminatorColumn(ThriftRow tr, long timestamp, EntityType entityType) { String discrColumn = ((AbstractManagedType) entityType).getDiscriminatorColumn(); String discrValue = ((AbstractManagedType) entityType).getDiscriminatorValue(); // No need to check for empty or blank, as considering it as valid name // for nosql! if (discrColumn != null && discrValue != null) { Column column = prepareColumn(PropertyAccessorHelper.getBytes(discrValue), PropertyAccessorHelper.getBytes(discrColumn), timestamp, 0); tr.addColumn(column); } }
@Override public void writeRelations(HTableInterface htable, Object rowKey, boolean containsEmbeddedObjectsOnly, List<RelationHolder> relations, String columnFamilyName) throws IOException { Put p = new Put(HBaseUtils.getBytes(rowKey)); boolean isPresent = false; for (RelationHolder r : relations) { if (r != null) { if (containsEmbeddedObjectsOnly) { p.add(Bytes.toBytes(r.getRelationName()), Bytes.toBytes(r.getRelationName()), PropertyAccessorHelper.getBytes(r.getRelationValue())); isPresent = true; } else { p.add(columnFamilyName.getBytes(), Bytes.toBytes(r.getRelationName()), System.currentTimeMillis(), PropertyAccessorHelper.getBytes(r.getRelationValue())); isPresent = true; } } } if (isPresent) { htable.put(p); } }
@Override public <E> List<E> getColumnsById(String schemaName, String joinTableName, String joinColumnName, String inverseJoinColumnName, Object parentId, Class columnJavaType) { Selector selector = clientFactory.getSelector(pool); List<Column> columns = selector.getColumnsFromRow(joinTableName, Bytes.fromByteArray(PropertyAccessorHelper.getBytes(parentId)), Selector.newColumnsPredicateAll(true, 10), getConsistencyLevel()); List<Object> foreignKeys = dataHandler.getForeignKeysFromJoinTable(inverseJoinColumnName, columns, columnJavaType); if (log.isInfoEnabled()) { log.info("Returning number of keys from join table", foreignKeys != null ? foreignKeys.size() : null); } return (List<E>) foreignKeys; }
byte[] valueInBytes = PropertyAccessorHelper.getBytes(value); byte[] nameInBytes = getEncodedBytes(name); String valueAsStr = PropertyAccessorHelper.getString(value); byte[] valueInBytes = PropertyAccessorHelper.getBytes(discrValue); byte[] nameInBytes = getEncodedBytes(discrColumn); wrapper.addColumn(nameInBytes, valueInBytes);
@Override public <E> List<E> getColumnsById(String schemaName, String joinTableName, String joinColumnName, String inverseJoinColumnName, Object parentId, Class columnJavaType) { List<Object> foreignKeys = new ArrayList<Object>(); if (getCqlVersion().equalsIgnoreCase(CassandraConstants.CQL_VERSION_3_0)) { foreignKeys = getColumnsByIdUsingCql(schemaName, joinTableName, joinColumnName, inverseJoinColumnName, parentId, columnJavaType); } else { Selector selector = clientFactory.getSelector(pool); List<Column> columns = selector.getColumnsFromRow(joinTableName, Bytes.fromByteArray(PropertyAccessorHelper.getBytes(parentId)), Selector.newColumnsPredicateAll(true, 10), getConsistencyLevel()); foreignKeys = dataHandler.getForeignKeysFromJoinTable(inverseJoinColumnName, columns, columnJavaType); if (log.isInfoEnabled()) { log.info("Returning number of keys from join table", foreignKeys != null ? foreignKeys.size() : null); } } return (List<E>) foreignKeys; }
/** * Populates foreign key as column. * * @param rlName * relation name * @param rlValue * relation value * @param timestamp * the timestamp * @return the column * @throws PropertyAccessException * the property access exception */ protected Column populateFkey(String rlName, Object rlValue, long timestamp) throws PropertyAccessException { Column col = new Column(); col.setName(PropertyAccessorFactory.STRING.toBytes(rlName)); col.setValue(PropertyAccessorHelper.getBytes(rlValue)); col.setTimestamp(timestamp); return col; }