@Override public K getKey() { return keySerializer.fromByteBuffer(entry.getKey().duplicate()); }
@Override public K getKey() { return keySerializer.fromByteBuffer(entry.getKey().duplicate()); }
@SuppressWarnings("unchecked") public <A> A getValue(Serializer<A> s) { if (s == null) { s = (Serializer<A>) serializer; } if ((value == null) && (bytes != null) && (s != null)) { ByteBuffer cb = bytes.duplicate(); return s.fromByteBuffer(cb); } if (value instanceof ByteBuffer) { return (A) ((ByteBuffer) value).duplicate(); } return (A) value; }
@Override public N getName() { if ( column.isSetName() ) { if ( null == cachedName) { cachedName = nameSerializer.fromByteBuffer(column.name.duplicate()); } return cachedName; } else { return null; } }
private <V> V extractType(SN sColumnName, N columnName, Serializer<V> valueSerializer) { Map<N, HColumn<N, ByteBuffer>> map = columns.get(sColumnName); if ( map != null && map.get(columnName) != null ) return valueSerializer.fromByteBuffer(map.get(columnName).getValue()); return null; }
@Override public V getValue() { if ( column.isSetValue() ) { if ( null == cachedValue) { cachedValue = valueSerializer.fromByteBuffer(column.value.duplicate()); } return cachedValue; } else { return null; } }
@Override public N getName() { return counterColumn.isSetName() ? nameSerializer.fromByteBuffer(counterColumn.name.duplicate()) : null; }
private void applyToRow(List<ColumnOrSuperColumn> cosclist) { superColumns = new ArrayList<SN>(cosclist.size()); for (Iterator<ColumnOrSuperColumn> iterator = cosclist.iterator(); iterator.hasNext();) { ColumnOrSuperColumn cosc = iterator.next(); SN sColName = sNameSerializer.fromByteBuffer(cosc.super_column.name.duplicate()); log.debug("cosc {}", cosc.super_column); superColumns.add(sColName); Iterator<Column> tcolumns = cosc.getSuper_column().getColumnsIterator(); Map<N,HColumn<N,ByteBuffer>> subColMap = new LinkedHashMap<N, HColumn<N,ByteBuffer>>(); while ( tcolumns.hasNext() ) { Column col = tcolumns.next(); subColMap.put(columnNameSerializer.fromByteBuffer(col.name.duplicate()), new HColumnImpl<N, ByteBuffer>(col, columnNameSerializer, ByteBufferSerializer.get())); } columns.put(sColName, subColMap); } }
@Override public S fromByteBuffer(ByteBuffer bytes) { if ((bytes == null) || !bytes.hasArray()) { return null; } bytes = bytes.duplicate(); bytes.rewind(); if (bytes.limit() < prefixBytes.remaining()) { log.error("Unprefixed value received, throwing exception..."); throw new HectorSerializationException("Unexpected prefix value"); } if (compareByteArrays(prefixBytes.array(), prefixBytes.arrayOffset() + prefixBytes.position(), prefixBytes.remaining(), bytes.array(), bytes.arrayOffset() + bytes.position(), prefixBytes.remaining()) != 0) { return null; // incorrect prefix, return nothing } bytes.position(prefixBytes.remaining()); S s = suffixSerializer.fromByteBuffer(bytes); return s; }
private void applyStandard(Column cosc) { N colName = columnNameSerializer.fromByteBuffer(cosc.name.duplicate()); HColumn<N, ByteBuffer> column = columns.get(colName); if ( column == null ) { column = new HColumnImpl<N, ByteBuffer>(cosc, columnNameSerializer, ByteBufferSerializer.get()); } else { ((HColumnImpl<N, ByteBuffer>)column).apply(cosc); } columns.put(colName, column); }
private <V> V extractColumnValue(N columnName, Serializer<V> valueSerializer) { maybeExecuteSlice(columnName); return columns.get(columnName) != null && columns.get(columnName).getValue() != null ? valueSerializer.fromByteBuffer(columns.get(columnName).getValue()) : null; }
private void applyToRow(K key, List<ColumnOrSuperColumn> cosclist) { HColumn<N, ByteBuffer> column; N colName; for (Iterator<ColumnOrSuperColumn> iterator = cosclist.iterator(); iterator.hasNext();) { ColumnOrSuperColumn cosc = iterator.next(); colName = columnNameSerializer.fromByteBuffer(cosc.getColumn().name.duplicate()); column = columns.get(colName); if ( column == null ) { column = new HColumnImpl<N, ByteBuffer>(cosc.getColumn(), columnNameSerializer, ByteBufferSerializer.get()); } else { ((HColumnImpl<N, ByteBuffer>)column).apply(cosc.getColumn()); } columns.put(colName, column); iterator.remove(); } }
public HSuperColumnImpl(SuperColumn thriftSuperColumn, Serializer<SN> sNameSerializer, Serializer<N> nameSerializer, Serializer<V> valueSerializer) { this(sNameSerializer, nameSerializer, valueSerializer); noneNull(thriftSuperColumn, sNameSerializer, nameSerializer); superName = sNameSerializer.fromByteBuffer(ByteBuffer.wrap(thriftSuperColumn.getName())); columns = fromThriftColumns(thriftSuperColumn.getColumns()); }
public HCounterSuperColumnImpl(CounterSuperColumn thriftCounterSuperColumn, Serializer<SN> sNameSerializer, Serializer<N> nameSerializer) { this(sNameSerializer, nameSerializer); noneNull(thriftCounterSuperColumn, sNameSerializer, nameSerializer); superName = sNameSerializer.fromByteBuffer(ByteBuffer.wrap(thriftCounterSuperColumn.getName())); counterColumns = fromThriftColumns(thriftCounterSuperColumn.getColumns()); }
public <V> HColumn<N, V> querySingleSubColumn(K key, SN columnName, N subColumnName, Serializer<V> valueSerializer) { SuperCfResult<K,SN,N> result = doExecuteSlice(key, columnName, activeSlicePredicate); if (result == null) { return null; } HColumn<N,ByteBuffer> origCol = result.getColumn(subColumnName); // TODO make this far less hacky if ( columnName == null || origCol == null ) { return null; } return new HColumnImpl<N, V>(subColumnName, valueSerializer.fromByteBuffer(origCol.getValue()), origCol.getClock(), subSerializer, valueSerializer); }
/** Validate handling of NULL. */ @Test public void testNullObjectRoundTrip() { Assert.assertNull(getSerializer().fromByteBuffer( getSerializer().toByteBuffer(null))); }
@SuppressWarnings("rawtypes") private void test(Object object) { TypeInferringSerializer<Object> ext = TypeInferringSerializer.get(); ByteBuffer bytes = ext.toByteBuffer(object); Serializer ser = SerializerTypeInferer.getSerializer(object.getClass()); Object target = ser.fromByteBuffer(bytes); assertEquals(object, target); }
/** * 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))); } }
@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); } }
private <V> V extractType(SN sColumnName, N columnName, Serializer<V> valueSerializer) { Map<N, HColumn<N, ByteBuffer>> map = columns.get(sColumnName); if ( map != null && map.get(columnName) != null ) return valueSerializer.fromByteBuffer(map.get(columnName).getValue()); return null; }