private <K, V> void serialize(Map<K, V> map, byte[] stream, int offset, OBinarySerializer<K> keySerializer, OBinarySerializer<V> valueSerializer) { OIntegerSerializer.INSTANCE.serializeLiteral(map.size(), stream, offset); offset += OIntegerSerializer.INT_SIZE; for (Map.Entry<K, V> entry : map.entrySet()) { keySerializer.serialize(entry.getKey(), stream, offset); offset += keySerializer.getObjectSize(entry.getKey()); valueSerializer.serialize(entry.getValue(), stream, offset); offset += valueSerializer.getObjectSize(entry.getValue()); } } }
private <K, V> void serialize(Map<K, V> map, byte[] stream, int offset, OBinarySerializer<K> keySerializer, OBinarySerializer<V> valueSerializer) { OIntegerSerializer.INSTANCE.serialize(map.size(), stream, offset); offset += OIntegerSerializer.INT_SIZE; for (Map.Entry<K, V> entry : map.entrySet()) { keySerializer.serialize(entry.getKey(), stream, offset); offset += keySerializer.getObjectSize(entry.getKey()); valueSerializer.serialize(entry.getValue(), stream, offset); offset += valueSerializer.getObjectSize(entry.getValue()); } }
public void serialize(T key, byte[] stream, int startPosition, Object... hints) { init(key, hints); stream[startPosition] = binarySerializer.getId(); startPosition += OBinarySerializerFactory.TYPE_IDENTIFIER_SIZE; binarySerializer.serialize(key, stream, startPosition); }
public <K extends OIdentifiable> void serializeChanges(Map<K, Change> changes, OBinarySerializer<K> keySerializer, byte[] stream, int offset) { OIntegerSerializer.INSTANCE.serializeLiteral(changes.size(), stream, offset); offset += OIntegerSerializer.INT_SIZE; for (Map.Entry<K, Change> entry : changes.entrySet()) { K key = entry.getKey(); if (key.getIdentity().isTemporary()) //noinspection unchecked key = key.getRecord(); keySerializer.serialize(key, stream, offset); offset += keySerializer.getObjectSize(key); offset += entry.getValue().serialize(stream, offset); } }
public void serialize(OCompositeKey compositeKey, byte[] stream, int startPosition, Object... hints) { final OType[] types = getKeyTypes(hints); final List<Object> keys = compositeKey.getKeys(); final int keysSize = keys.size(); final int oldStartPosition = startPosition; startPosition += OIntegerSerializer.INT_SIZE; OIntegerSerializer.INSTANCE.serializeLiteral(keysSize, stream, startPosition); startPosition += OIntegerSerializer.INT_SIZE; final OBinarySerializerFactory factory = OBinarySerializerFactory.getInstance(); for (int i = 0; i < keys.size(); i++) { final Object key = keys.get(i); OBinarySerializer<Object> binarySerializer; if (key != null) { final OType type; if (types.length > i) type = types[i]; else type = OType.getTypeByClass(key.getClass()); binarySerializer = factory.getObjectSerializer(type); } else binarySerializer = ONullSerializer.INSTANCE; stream[startPosition] = binarySerializer.getId(); startPosition += OBinarySerializerFactory.TYPE_IDENTIFIER_SIZE; binarySerializer.serialize(key, stream, startPosition); startPosition += binarySerializer.getObjectSize(key); } OIntegerSerializer.INSTANCE.serializeLiteral((startPosition - oldStartPosition), stream, oldStartPosition); }
binarySerializer.serialize(indexEntry.field("key"), binaryContent, 0);