/** * Constructed for {@link CqlResultType#ROWS} * @param thriftRet * @param nameSerializer * @param valueSerializer * @param resultType */ public CqlRows(LinkedHashMap<K, List<Column>> thriftRet, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { super(thriftRet, nameSerializer, valueSerializer); this.resultType = CqlResultType.ROWS; // test for a count object. eeewww. if ( getCount() == 1 ) { Row row = iterator().next(); if ( row.getColumnSlice().getColumnByName("count") != null ) { count = LongSerializer.get().fromByteBuffer(row.getColumnSlice().getColumnByName("count").getValueBytes()).intValue(); } } }
/** * Loads a mapped entity * * @param column the column object * @return the mapped entity */ protected Object loadMappedEntity(HColumn<String, Object> column) throws Exception { Object value = convertRead(String.class, column.getValueBytes()); return loadMappedEntity(value.toString()); }
public static <T> String getAsStringValue( ColumnSlice<String, T> columnSlice, String columnName ) { StringSerializer ss = StringSerializer.get(); if ( StringUtils.isEmpty( columnName ) ) { return null; } HColumn<String, T> hColumn = columnSlice.getColumnByName( columnName ); return hColumn == null ? null : ss.fromByteBuffer( hColumn.getValueBytes() ); }
public static Long getAsLongValue( ColumnSlice<String, String> columnSlice, String columnName ) { LongSerializer ls = LongSerializer.get(); if ( StringUtils.isEmpty( columnName ) ) { return null; } HColumn<String, String> hColumn = columnSlice.getColumnByName( columnName ); return hColumn == null ? null : ls.fromByteBuffer( hColumn.getValueBytes() ); }
Object value = convertRead(String.class, column.getValueBytes()); Object retVal = null; String[] tokens = value.toString().split(COLLECTION_VALUE_SEPARATOR);
public static Number getOrDefault(final DynamicDelegatedSerializer delegatedSerializer, final HColumn<?, ?> col, final Serializer<?> serializer) { delegatedSerializer.setDelegate(serializer); if (col == null || col.getValue() == null) { if ( DoubleSerializer.get() == serializer) { return Double.NaN; } return 0; } if ( LongSerializer.get() == serializer) { return Number.class.cast( serializer.fromByteBuffer( col.getValueBytes() ) ); } if ( IntegerSerializer.get() == serializer) { return Number.class.cast( serializer.fromByteBuffer( col.getValueBytes() ) ); } Object value = col.getValue(); if (Number.class.isInstance(value)) { return Number.class.cast(value); } throw new IllegalArgumentException("not a number " + value); } }
public static Number getOrDefault(final DynamicDelegatedSerializer delegatedSerializer, final HColumn<?, ?> col, final Serializer<?> serializer) { delegatedSerializer.setDelegate(serializer); if (col == null || col.getValue() == null) { if ( DoubleSerializer.get() == serializer) { return Double.NaN; } return 0; } if ( LongSerializer.get() == serializer) { return Number.class.cast( serializer.fromByteBuffer( col.getValueBytes() ) ); } if ( IntegerSerializer.get() == serializer) { return Number.class.cast( serializer.fromByteBuffer( col.getValueBytes() ) ); } Object value = col.getValue(); if (Number.class.isInstance(value)) { return Number.class.cast(value); } throw new IllegalArgumentException("not a number " + value); } }
/** * Read the field from the query result into the opject within the state * manager. * * @param stateManager * @param result * @return True if the field was loaded. False otherwise */ public boolean readField(OpenJPAStateManager stateManager, QueryResult<ColumnSlice<String, ByteBuffer>> result) { HColumn<String, ByteBuffer> bigIntCol = result.get().getColumnByName(name); HColumn<String, ByteBuffer> scaleCol = result.get().getColumnByName( scaleColumnName); if (bigIntCol == null || scaleCol == null) { stateManager.store(fieldId, null); return false; } BigInteger unscaled = BIGINT_SER.fromByteBuffer(bigIntCol.getValueBytes()); int scale = INT_SER.fromByteBuffer(scaleCol.getValueBytes()); stateManager.store(fieldId, new BigDecimal(unscaled, scale)); return true; }
/** * Constructed for {@link CqlResultType#ROWS} * @param thriftRet * @param nameSerializer * @param valueSerializer * @param resultType */ public CqlRows(LinkedHashMap<K, List<Column>> thriftRet, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { super(thriftRet, nameSerializer, valueSerializer); this.resultType = CqlResultType.ROWS; // test for a count object. eeewww. if ( getCount() == 1 ) { Row row = iterator().next(); if ( row.getColumnSlice().getColumnByName("count") != null ) { count = LongSerializer.get().fromByteBuffer(row.getColumnSlice().getColumnByName("count").getValueBytes()).intValue(); } } }
/** * Constructed for {@link CqlResultType#ROWS} * @param thriftRet * @param nameSerializer * @param valueSerializer * @param resultType */ public CqlRows(LinkedHashMap<K, List<Column>> thriftRet, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { super(thriftRet, nameSerializer, valueSerializer); this.resultType = CqlResultType.ROWS; // test for a count object. eeewww. if ( getCount() == 1 ) { Row row = iterator().next(); if ( row.getColumnSlice().getColumnByName("count") != null ) { count = LongSerializer.get().fromByteBuffer(row.getColumnSlice().getColumnByName("count").getValueBytes()).intValue(); } } }
private PathTrackingEntry map( ColumnSlice<String, ?> columnSlice ) { final DynamicDelegatedSerializer<Object> serializer = new DynamicDelegatedSerializer<Object>(); String trackingId = StringSerializer.get().fromByteBuffer( columnSlice.getColumnByName( "trackingId" ).getValueBytes() ); String nodeId = StringSerializer.get().fromByteBuffer( columnSlice.getColumnByName( "nodeId" ).getValueBytes() ); String className = StringSerializer.get().fromByteBuffer( columnSlice.getColumnByName( "className" ).getValueBytes() ); String methodName = StringSerializer.get().fromByteBuffer( columnSlice.getColumnByName( "methodName" ).getValueBytes() ); long startTime = getOrDefault( serializer, // columnSlice.getColumnByName( "startTime" ), // LongSerializer.get() ).longValue(); long executionTime = getOrDefault( serializer, // columnSlice.getColumnByName( "executionTime" ), // LongSerializer.get() ).longValue(); int level = getOrDefault( serializer, // columnSlice.getColumnByName( "level" ), // LongSerializer.get() ).intValue(); return new PathTrackingEntry( trackingId, // nodeId, // className, // methodName, // startTime, // executionTime, // level ); }
private PathTrackingEntry map( ColumnSlice<String, ?> columnSlice ) { final DynamicDelegatedSerializer<Object> serializer = new DynamicDelegatedSerializer<Object>(); String trackingId = StringSerializer.get().fromByteBuffer( columnSlice.getColumnByName( "trackingId" ).getValueBytes() ); String nodeId = StringSerializer.get().fromByteBuffer( columnSlice.getColumnByName( "nodeId" ).getValueBytes() ); String className = StringSerializer.get().fromByteBuffer( columnSlice.getColumnByName( "className" ).getValueBytes() ); String methodName = StringSerializer.get().fromByteBuffer( columnSlice.getColumnByName( "methodName" ).getValueBytes() ); long startTime = getOrDefault( serializer, // columnSlice.getColumnByName( "startTime" ), // LongSerializer.get() ).longValue(); long executionTime = getOrDefault( serializer, // columnSlice.getColumnByName( "executionTime" ), // LongSerializer.get() ).longValue(); int level = getOrDefault( serializer, // columnSlice.getColumnByName( "level" ), // LongSerializer.get() ).intValue(); return new PathTrackingEntry( trackingId, // nodeId, // className, // methodName, // startTime, // executionTime, // level ); }
/** * Loads a simple, mapped or collection entity property * * @param metadata the entity property * @param name the property name * @param column the column object * @return the property value */ protected Object loadProperty(ClassMetadata<?> metadata, String name, HColumn<String, Object> column) throws Exception { Object value; if (metadata.isMappedContainer(name)) { value = loadMappedEntity(column); } else if (metadata.isMappedCollection(name)) { value = loadMappedCollection(column); } else { value = convertRead(metadata.getColumnClass(name), column.getValueBytes()); } return value; }
/** * Fetch a map of columns and their values * * @param query a cql query * @return the resulting columns and their values */ protected Map<String, ByteBuffer> getColumns(String query) { Map<String, ByteBuffer> resultMap = new LinkedHashMap<String, ByteBuffer>(); CqlQuery<String, String, Object> cqlQuery = new CqlQuery<String, String, Object>(getDefaultKeyspace(), StringSerializer.get(), StringSerializer.get(), new TypeConverterSerializer<Object>()); cqlQuery.setQuery(query); cqlQuery.setSuppressKeyInColumns(true); QueryResult<CqlRows<String, String, Object>> results = cqlQuery.execute(); CqlRows<String, String, Object> rows = results.get(); for (Row<String, String, Object> row : rows) { ColumnSlice<String, Object> slice = row.getColumnSlice(); for (HColumn<String, Object> column : slice.getColumns()) { resultMap.put(column.getName(), column.getValueBytes()); } } return resultMap; }