@Override public Object convertCassTypeToObjType(PropertyMappingDefinition md, byte[] value) { Serializer<?> s = HectorObjectMapper.determineSerializer(md.getPropDesc().getPropertyType()); return s.fromBytes(value); }
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 Object getInstance(byte[] bytes) { return idSerializer.fromBytes(bytes); }
@Override public K getKey(final V value) throws DataAccessLayerException { RangeSlicesQuery<K, byte[], V> rq = HFactory.createRangeSlicesQuery( _keyspace, _serializer_k, BYTE_SERIALIZER, _serializer_v); rq.addEqualsExpression(COLUMN_NAME, value).setReturnKeysOnly() .setColumnFamily(_cf_name) .setColumnNames(COLUMN_NAME).setRowCount(1); final List<Row<K, byte[], V>> rows = rq.execute().get().getList(); return rows.isEmpty() ? null : _serializer_k.fromBytes((byte[])rows.get(0).getKey()); }
@Override public K getKey(final V value) throws DataAccessLayerException { RangeSlicesQuery<K, byte[], V> rq = HFactory.createRangeSlicesQuery( _keyspace, _serializer_k, BYTE_SERIALIZER, _serializer_v); rq.addEqualsExpression(COLUMN_NAME, value).setReturnKeysOnly() .setColumnFamily(_cf_name) .setColumnNames(COLUMN_NAME).setRowCount(1); final List<Row<K, byte[], V>> rows = rq.execute().get().getList(); return rows.isEmpty() ? null : _serializer_k.fromBytes((byte[])rows.get(0).getKey()); }