@JsonIgnore public ByteBuffer getKeyNameBytes() { return keySerializer.toByteBuffer( keyName ); }
@Override public K getKey() { return keySerializer.fromByteBuffer(entry.getKey().duplicate()); }
@Override public byte[] convertObjTypeToCassType(Object value) { @SuppressWarnings("unchecked") Serializer<Object> s = (Serializer<Object>) HectorObjectMapper.determineSerializer(value.getClass()); return s.toBytes(value); }
@Override public Map<K,Integer> doInKeyspace(KeyspaceService ks) throws HectorException { ColumnParent columnParent = new ColumnParent(columnFamily); columnParent.setSuper_column(superNameSerializer.toByteBuffer(superColumnName)); Map<K,Integer> counts = keySerializer.fromBytesMap( ks.multigetCount(keySerializer.toBytesList(keys), columnParent, slicePredicate.toThrift())); return counts; } }, consistency), this);
@Override public Map<K,Integer> doInKeyspace(KeyspaceService ks) throws HectorException { ColumnParent columnParent = new ColumnParent(columnFamily); Map<K,Integer> counts = keySerializer.fromBytesMap( ks.multigetCount(keySerializer.toBytesList(keys), columnParent, slicePredicate.toThrift())); return counts; } }, consistency), this);
@Override public CounterRows<K, N> doInKeyspace(KeyspaceService ks) throws HectorException { List<ByteBuffer> keysList = new ArrayList<ByteBuffer>(); for (K k : keys) { keysList.add(keySerializer.toByteBuffer(k)); } ColumnParent columnParent = new ColumnParent(columnFamilyName); Map<K, List<CounterColumn>> thriftRet = keySerializer.fromBytesMap( ks.multigetCounterSlice(keysList, columnParent, getPredicate())); return new CounterRowsImpl<K, N>(thriftRet, columnNameSerializer); } }, consistency), this);
/** Validate handling of NULL. */ @Test public void testNullObjectRoundTrip() { Assert.assertNull(getSerializer().fromByteBuffer( getSerializer().toByteBuffer(null))); }
@Test public void testByteBufferWithSharedBackingArrayIsOk() { for (T object : getTestData()) { byte[] bytes = getSerializer().toBytes(object); ByteBuffer byteBufferWithSharedBackingArray = copyIntoLargerArrayAndWrap(bytes); T deserialized = getSerializer().fromByteBuffer(byteBufferWithSharedBackingArray); Assert.assertEquals(object, deserialized); } }
@Override public OrderedRows<K, N,V > doInKeyspace(KeyspaceService ks) throws HectorException { ColumnParent columnParent = new ColumnParent(columnFamilyName); Map<K, List<Column>> thriftRet = keySerializer.fromBytesMap( ks.getRangeSlices(columnParent, getPredicate(), keyRange.toThrift())); return new OrderedRowsImpl<K,N,V>((LinkedHashMap<K, List<Column>>) thriftRet, columnNameSerializer, valueSerializer); } }, consistency), this);
@Override public Object convertCassTypeToObjType(PropertyMappingDefinition md, byte[] value) { Serializer<?> s = HectorObjectMapper.determineSerializer(md.getPropDesc().getPropertyType()); return s.fromBytes(value); }
@Override public Column execute(Cassandra.Client cassandra) throws HectorException { try { if ( queryLogger.isDebugEnabled() ) { queryLogger.debug("---------\nColumnFamily multiget: {} slicePredicate: {}", columnFamilyName, activeSlicePredicate.toString()); } rows = cassandra.multiget_slice(keySerializer.toBytesList(_keys), columnParent, activeSlicePredicate.toThrift(), ThriftConverter.consistencyLevel(consistencyLevelPolicy.get(operationType))); applyResultStatus(execTime, getCassandraHost()); if ( queryLogger.isDebugEnabled() ) { queryLogger.debug("Execution took {} microseconds on host {}\n----------", lastExecutionTime, lastHostUsed); } } catch (Exception e) { throw exceptionsTranslator.translate(e); } hasValues = true; return null; } });
@Override public Rows<K, N, V> doInKeyspace(KeyspaceService ks) throws HectorException { List<K> keysList = new ArrayList<K>(); keysList.addAll(keys); ColumnParent columnParent = new ColumnParent(columnFamilyName); columnParent.setSuper_column(sNameSerializer.toByteBuffer(superColumn)); Map<K, List<Column>> thriftRet = keySerializer.fromBytesMap(ks.multigetSlice( keySerializer.toBytesList(keysList), columnParent, getPredicate())); return new RowsImpl<K, N, V>(thriftRet, columnNameSerializer, valueSerializer); } }, consistency), this);
@Override public Rows<K, N,V> doInKeyspace(KeyspaceService ks) throws HectorException { List<ByteBuffer> keysList = new ArrayList<ByteBuffer>(); for (K k : keys) { if ( k !=null ) keysList.add(keySerializer.toByteBuffer(k)); } ColumnParent columnParent = new ColumnParent(columnFamilyName); Map<K, List<Column>> thriftRet = keySerializer.fromBytesMap( ks.multigetSlice(keysList, columnParent, getPredicate())); return new RowsImpl<K, N, V>(thriftRet, columnNameSerializer, valueSerializer); } }, consistency), this);
/** * Validate serialization roundtrip for a collection of objects (defined by * subclasses). */ @Test public void testRoundTrip() { for (T object : getTestData()) { Assert.assertEquals(object, getSerializer().fromByteBuffer( getSerializer().toByteBuffer(object))); } }
@Override public SuperRows<K, SN, N, V> doInKeyspace(KeyspaceService ks) throws HectorException { List<K> keysList = new ArrayList<K>(); keysList.addAll(keys); ColumnParent columnParent = new ColumnParent(columnFamilyName); Map<K, List<SuperColumn>> thriftRet = keySerializer.fromBytesMap(ks.multigetSuperSlice( keySerializer.toBytesList(keysList), columnParent, getPredicate())); return new SuperRowsImpl<K, SN, N, V>(thriftRet, keySerializer, columnNameSerializer, nameSerializer, valueSerializer); } }, consistency), this);
@Override public OrderedSuperRows<K, SN,N,V> doInKeyspace(KeyspaceService ks) throws HectorException { ColumnParent columnParent = new ColumnParent(columnFamilyName); Map<K, List<SuperColumn>> thriftRet = keySerializer.fromBytesMap( ks.getSuperRangeSlices(columnParent, getPredicate(), keyRange.toThrift())); return new OrderedSuperRowsImpl<K, SN, N, V>( (LinkedHashMap<K, List<SuperColumn>>) thriftRet, keySerializer, columnNameSerializer, nameSerializer, valueSerializer); } }, consistency), this);
private <T> void addToExtraIfCan(Object obj, CFMappingDef<T> cfMapDef, HColumn<String, byte[]> col) throws SecurityException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { Method meth = cfMapDef.getAnonymousPropertyAddHandler(); if (null == meth) { throw new IllegalArgumentException( "Object type, " + obj.getClass() + ", does not have a property named, " + col.getName() + ". either add a setter for this property or use @AnonymousPropertyHandler to annotate a method for handling anonymous properties"); } meth.invoke(obj, col.getName(), cfMapDef.getAnonymousValueSerializer() .fromBytes(col.getValue())); }
@Override public Map<ByteBuffer,List<ColumnOrSuperColumn>> execute(Cassandra.Client cassandra) throws HectorException { try { List<K> keyList = new ArrayList<K>(); Iterators.addAll(keyList, keys.iterator()); return cassandra.multiget_slice(keySerializer.toBytesList(keyList), columnParent, (workingSlicePredicate == null ? activeSlicePredicate.setColumnNames(columnValueSerializers.keySet()).toThrift() : workingSlicePredicate.toThrift()), ThriftConverter.consistencyLevel(consistencyLevelPolicy.get(operationType, columnFamily))); } catch (Exception e) { throw exceptionsTranslator.translate(e); } } });
@JsonIgnore public ByteBuffer getColumnNameBytes() { return columnNameSerializer.toByteBuffer( columnName ); }
@Override public K getKey() { return keySerializer.fromByteBuffer(entry.getKey().duplicate()); }