@Override public String toString() { return "ORuntimeKeyIndexDefinition{" + "serializer=" + serializer.getId() + '}'; }
public void registerSerializer(final OBinarySerializer<?> iInstance, final OType iType) { if (serializerIdMap.containsKey(iInstance.getId())) throw new IllegalArgumentException("Binary serializer with id " + iInstance.getId() + " has been already registered."); serializerIdMap.put(iInstance.getId(), iInstance); if (iType != null) serializerTypeMap.put(iType, iInstance); }
/** * {@inheritDoc} * * @param indexName * @param indexType */ public String toCreateIndexDDL(final String indexName, final String indexType, String engine) { final StringBuilder ddl = new StringBuilder("create index `"); ddl.append(indexName).append("` ").append(indexType).append(' '); ddl.append("runtime ").append(serializer.getId()); return ddl.toString(); }
@Override public int hashCode() { int result = super.hashCode(); result = 31 * result + serializer.getId(); return result; }
/** * {@inheritDoc} */ @Override public void serializeInByteBufferObject(T object, ByteBuffer buffer, Object... hints) { init(object, hints); buffer.put(binarySerializer.getId()); binarySerializer.serializeInByteBufferObject(object, buffer); }
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 void serializeNativeObject(T key, byte[] stream, int startPosition, Object... hints) { init(key, hints); stream[startPosition] = binarySerializer.getId(); startPosition += OBinarySerializerFactory.TYPE_IDENTIFIER_SIZE; binarySerializer.serializeNativeObject(key, stream, startPosition); }
binarySerializer = ONullSerializer.INSTANCE; buffer.put(binarySerializer.getId()); binarySerializer.serializeInByteBufferObject(key, buffer);
@SuppressFBWarnings("EI_EXPOSE_REP2") public OSBTreeBucket(OCacheEntry cacheEntry, boolean isLeaf, OBinarySerializer<K> keySerializer, OType[] keyTypes, OBinarySerializer<V> valueSerializer, OEncryption encryption) throws IOException { super(cacheEntry); this.isLeaf = isLeaf; this.keySerializer = keySerializer; this.keyTypes = keyTypes; this.valueSerializer = valueSerializer; this.encryption = encryption; setIntValue(FREE_POINTER_OFFSET, MAX_PAGE_SIZE_BYTES); setIntValue(SIZE_OFFSET, 0); setByteValue(IS_LEAF_OFFSET, (byte) (isLeaf ? 1 : 0)); setLongValue(LEFT_SIBLING_OFFSET, -1); setLongValue(RIGHT_SIBLING_OFFSET, -1); setLongValue(TREE_SIZE_OFFSET, 0); setLongValue(FREE_VALUES_LIST_OFFSET, -1); setByteValue(KEY_SERIALIZER_OFFSET, this.keySerializer.getId()); setByteValue(VALUE_SERIALIZER_OFFSET, this.valueSerializer.getId()); }
public OSBTreeBonsaiBucket(OCacheEntry cacheEntry, int pageOffset, boolean isLeaf, OBinarySerializer<K> keySerializer, OBinarySerializer<V> valueSerializer, OSBTreeBonsaiLocal<K, V> tree) throws IOException { super(cacheEntry); this.offset = pageOffset; this.isLeaf = isLeaf; this.keySerializer = keySerializer; this.valueSerializer = valueSerializer; setIntValue(offset + FREE_POINTER_OFFSET, MAX_BUCKET_SIZE_BYTES); setIntValue(offset + SIZE_OFFSET, 0); //THIS REMOVE ALSO THE EVENTUAL DELETED FLAG setByteValue(offset + FLAGS_OFFSET, (byte) (isLeaf ? LEAF : 0)); setLongValue(offset + LEFT_SIBLING_OFFSET, -1); setLongValue(offset + RIGHT_SIBLING_OFFSET, -1); setLongValue(offset + TREE_SIZE_OFFSET, 0); setByteValue(offset + KEY_SERIALIZER_OFFSET, keySerializer.getId()); setByteValue(offset + VALUE_SERIALIZER_OFFSET, valueSerializer.getId()); this.tree = tree; }
public void serializeNativeObject(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.serializeNative(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.serializeNativeObject(key, stream, startPosition); startPosition += binarySerializer.getObjectSize(key); } OIntegerSerializer.INSTANCE.serializeNative((startPosition - oldStartPosition), stream, oldStartPosition); }
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); }
@Override protected void serializeToStream() { super.serializeToStream(); document.field("keySerializerId", serializer.getId()); document.field("collate", collate.getName()); document.field("nullValuesIgnored", isNullValuesIgnored()); }
@Override public void setKeySerializer(final OBinarySerializer<K> keySerializer) throws IOException { boolean rollback = false; final OAtomicOperation atomicOperation = startAtomicOperation(true); try { acquireExclusiveLock(); try { this.keySerializer = keySerializer; final OCacheEntry hashStateEntry = loadPageForWrite(atomicOperation, fileStateId, hashStateEntryIndex, true); try { final OHashIndexFileLevelMetadataPage metadataPage = new OHashIndexFileLevelMetadataPage(hashStateEntry, false); metadataPage.setKeySerializerId(keySerializer.getId()); } finally { releasePageFromWrite(atomicOperation, hashStateEntry); } } finally { releaseExclusiveLock(); } } catch (final Exception e) { rollback = true; throw e; } finally { endAtomicOperation(rollback); } }
@Override public void setValueSerializer(final OBinarySerializer<V> valueSerializer) throws IOException { boolean rollback = false; final OAtomicOperation atomicOperation = startAtomicOperation(true); try { acquireExclusiveLock(); try { this.valueSerializer = valueSerializer; final OCacheEntry hashStateEntry = loadPageForWrite(atomicOperation, fileStateId, hashStateEntryIndex, true); try { final OHashIndexFileLevelMetadataPage metadataPage = new OHashIndexFileLevelMetadataPage(hashStateEntry, false); metadataPage.setValueSerializerId(valueSerializer.getId()); } finally { releasePageFromWrite(atomicOperation, hashStateEntry); } } finally { releaseExclusiveLock(); } } catch (final Exception e) { rollback = true; throw e; } finally { endAtomicOperation(rollback); } }
setByteValue(KEY_SERIALIZER_OFFSET, keySerializer.getId()); setIntValue(KEY_SIZE_OFFSET, keySize); setLongValue(TREE_SIZE_OFFSET, 0);
setByteValue(KEY_SERIALIZER_OFFSET, keySerializer.getId()); setIntValue(KEY_SIZE_OFFSET, keySize); setLongValue(TREE_SIZE_OFFSET, 0);