@Override protected TypeSerializer<?>[] getNestedSerializers(MapSerializer outerSerializer) { return new TypeSerializer<?>[] { outerSerializer.getKeySerializer(), outerSerializer.getValueSerializer() }; } }
/** * Gets the serializer for the keys in the state. * * @return The serializer for the keys in the state. */ public TypeSerializer<UK> getKeySerializer() { final TypeSerializer<Map<UK, UV>> rawSerializer = getSerializer(); if (!(rawSerializer instanceof MapSerializer)) { throw new IllegalStateException("Unexpected serializer type."); } return ((MapSerializer<UK, UV>) rawSerializer).getKeySerializer(); }
@Override public boolean equals(Object obj) { return obj == this || (obj != null && obj.getClass() == getClass() && keySerializer.equals(((MapSerializer<?, ?>) obj).getKeySerializer()) && valueSerializer.equals(((MapSerializer<?, ?>) obj).getValueSerializer())); }
RocksDBMapIterator( final RocksDB db, final byte[] keyPrefixBytes, final TypeSerializer<UK> keySerializer, final TypeSerializer<UV> valueSerializer, DataInputDeserializer dataInputView) { this.db = db; this.keyPrefixBytes = keyPrefixBytes; this.keySerializer = keySerializer; this.valueSerializer = valueSerializer; this.dataInputView = dataInputView; }
final TypeSerializer<UK> dupUserKeySerializer = serializer.getKeySerializer(); final TypeSerializer<UV> dupUserValueSerializer = serializer.getValueSerializer(); final DataInputDeserializer inputView = new DataInputDeserializer();
/** * Returns the serializer for the map keys in the state. * * @return The serializer for the map keys in the state. */ public TypeSerializer<MK> getMapKeySerializer() { return getValueSerializer().getKeySerializer(); }
/** * Gets the serializer for the keys in the state. * * @return The serializer for the keys in the state. */ public TypeSerializer<UK> getKeySerializer() { final TypeSerializer<Map<UK, UV>> rawSerializer = getSerializer(); if (!(rawSerializer instanceof MapSerializer)) { throw new IllegalStateException("Unexpected serializer type."); } return ((MapSerializer<UK, UV>) rawSerializer).getKeySerializer(); }
/** * Gets the serializer for the keys in the state. * * @return The serializer for the keys in the state. */ public TypeSerializer<UK> getKeySerializer() { final TypeSerializer<Map<UK, UV>> rawSerializer = getSerializer(); if (!(rawSerializer instanceof MapSerializer)) { throw new IllegalStateException("Unexpected serializer type."); } return ((MapSerializer<UK, UV>) rawSerializer).getKeySerializer(); }
/** * Returns the serializer for the map keys in the state. * * @return The serializer for the map keys in the state. */ public TypeSerializer<MK> getMapKeySerializer() { return getValueSerializer().getKeySerializer(); }
@SuppressWarnings("unchecked") public void configure(int maxParallelism, TypeSerializer<?> keySerializer, TypeSerializer<?> valueSerializer) throws Exception { if (valueSerializer instanceof MapSerializer) { MapSerializer<?, ?> mapSerializer = (MapSerializer<?, ?>) valueSerializer; if (mapKeytype == null && mapKeySerializer == null) { mapKeySerializer = (TypeSerializer<Object>) mapSerializer.getKeySerializer(); } super.configure(maxParallelism, keySerializer, mapSerializer.getValueSerializer()); } else { throw new RuntimeException("Doesnt seem like a map state"); } }
@Override public boolean equals(Object obj) { return obj == this || (obj != null && obj.getClass() == getClass() && keySerializer.equals(((MapSerializer<?, ?>) obj).getKeySerializer()) && valueSerializer.equals(((MapSerializer<?, ?>) obj).getValueSerializer())); }
@Override public boolean equals(Object obj) { return obj == this || (obj != null && obj.getClass() == getClass() && keySerializer.equals(((MapSerializer<?, ?>) obj).getKeySerializer()) && valueSerializer.equals(((MapSerializer<?, ?>) obj).getValueSerializer())); }
RocksDBMapIterator( final RocksDB db, final byte[] keyPrefixBytes, final TypeSerializer<UK> keySerializer, final TypeSerializer<UV> valueSerializer, DataInputDeserializer dataInputView) { this.db = db; this.keyPrefixBytes = keyPrefixBytes; this.keySerializer = keySerializer; this.valueSerializer = valueSerializer; this.dataInputView = dataInputView; }
RocksDBMapIterator( final RocksDB db, final byte[] keyPrefixBytes, final TypeSerializer<UK> keySerializer, final TypeSerializer<UV> valueSerializer, DataInputDeserializer dataInputView) { this.db = db; this.keyPrefixBytes = keyPrefixBytes; this.keySerializer = keySerializer; this.valueSerializer = valueSerializer; this.dataInputView = dataInputView; }
@Override public TypeSerializerSchemaCompatibility<Map<K, V>> resolveSchemaCompatibility(TypeSerializer<Map<K, V>> newSerializer) { if (newSerializer instanceof MapSerializer) { // redirect the compatibility check to the new MapSerializerConfigSnapshot MapSerializer<K, V> mapSerializer = (MapSerializer<K, V>) newSerializer; MapSerializerSnapshot<K, V> mapSerializerSnapshot = new MapSerializerSnapshot<>(mapSerializer.getKeySerializer(), mapSerializer.getValueSerializer()); return mapSerializerSnapshot.resolveSchemaCompatibility(newSerializer); } else { return super.resolveSchemaCompatibility(newSerializer); } }
@Override public TypeSerializerSchemaCompatibility<Map<K, V>> resolveSchemaCompatibility(TypeSerializer<Map<K, V>> newSerializer) { checkState(nestedKeyValueSerializerSnapshot != null); if (newSerializer instanceof MapSerializer) { MapSerializer<K, V> serializer = (MapSerializer<K, V>) newSerializer; return nestedKeyValueSerializerSnapshot.resolveCompatibilityWithNested( TypeSerializerSchemaCompatibility.compatibleAsIs(), serializer.getKeySerializer(), serializer.getValueSerializer()); } else { return TypeSerializerSchemaCompatibility.incompatible(); } }
@Override public <K, N, UK, UV> SubKeyedMapState<K, N, UK, UV> getSubKeyedMapState( MapStateDescriptor<UK, UV> descriptor ) throws Exception { if (namespaceSerializer == null) { throw new RuntimeException("The namespace serializer has not been initialized."); } descriptor.initializeSerializerUnlessSet(operator.getExecutionConfig()); MapSerializer<UK, UV> mapSerializer = (MapSerializer<UK, UV>) descriptor.getSerializer(); return operator.getSubKeyedState(new SubKeyedMapStateDescriptor<>( descriptor.getName(), (TypeSerializer<K>) operator.getKeySerializer(), (TypeSerializer<N>) namespaceSerializer, mapSerializer.getKeySerializer(), mapSerializer.getValueSerializer())); }
@Override public byte[] getSerializedValue( final byte[] serializedKeyAndNamespace, final TypeSerializer<K> safeKeySerializer, final TypeSerializer<N> safeNamespaceSerializer, final TypeSerializer<Map<UK, UV>> safeValueSerializer) throws Exception { Preconditions.checkNotNull(serializedKeyAndNamespace); Preconditions.checkNotNull(safeKeySerializer); Preconditions.checkNotNull(safeNamespaceSerializer); Preconditions.checkNotNull(safeValueSerializer); Tuple2<K, N> keyAndNamespace = KvStateSerializer.deserializeKeyAndNamespace( serializedKeyAndNamespace, safeKeySerializer, safeNamespaceSerializer); Map<UK, UV> result = stateTable.get(keyAndNamespace.f0, keyAndNamespace.f1); if (result == null) { return null; } final MapSerializer<UK, UV> serializer = (MapSerializer<UK, UV>) safeValueSerializer; final TypeSerializer<UK> dupUserKeySerializer = serializer.getKeySerializer(); final TypeSerializer<UV> dupUserValueSerializer = serializer.getValueSerializer(); return KvStateSerializer.serializeMap(result.entrySet(), dupUserKeySerializer, dupUserValueSerializer); } }
@Override public byte[] getSerializedValue( final byte[] serializedKeyAndNamespace, final TypeSerializer<K> safeKeySerializer, final TypeSerializer<N> safeNamespaceSerializer, final TypeSerializer<Map<UK, UV>> safeValueSerializer) throws Exception { Preconditions.checkNotNull(serializedKeyAndNamespace); Preconditions.checkNotNull(safeKeySerializer); Preconditions.checkNotNull(safeNamespaceSerializer); Preconditions.checkNotNull(safeValueSerializer); Tuple2<K, N> keyAndNamespace = KvStateSerializer.deserializeKeyAndNamespace( serializedKeyAndNamespace, safeKeySerializer, safeNamespaceSerializer); Map<UK, UV> result = stateTable.get(keyAndNamespace.f0, keyAndNamespace.f1); if (result == null) { return null; } final MapSerializer<UK, UV> serializer = (MapSerializer<UK, UV>) safeValueSerializer; final TypeSerializer<UK> dupUserKeySerializer = serializer.getKeySerializer(); final TypeSerializer<UV> dupUserValueSerializer = serializer.getValueSerializer(); return KvStateSerializer.serializeMap(result.entrySet(), dupUserKeySerializer, dupUserValueSerializer); }
@Override public byte[] getSerializedValue( final byte[] serializedKeyAndNamespace, final TypeSerializer<K> safeKeySerializer, final TypeSerializer<N> safeNamespaceSerializer, final TypeSerializer<Map<UK, UV>> safeValueSerializer) throws Exception { Preconditions.checkNotNull(serializedKeyAndNamespace); Preconditions.checkNotNull(safeKeySerializer); Preconditions.checkNotNull(safeNamespaceSerializer); Preconditions.checkNotNull(safeValueSerializer); Tuple2<K, N> keyAndNamespace = KvStateSerializer.deserializeKeyAndNamespace( serializedKeyAndNamespace, safeKeySerializer, safeNamespaceSerializer); Map<UK, UV> result = stateTable.get(keyAndNamespace.f0, keyAndNamespace.f1); if (result == null) { return null; } final MapSerializer<UK, UV> serializer = (MapSerializer<UK, UV>) safeValueSerializer; final TypeSerializer<UK> dupUserKeySerializer = serializer.getKeySerializer(); final TypeSerializer<UV> dupUserValueSerializer = serializer.getValueSerializer(); return KvStateSerializer.serializeMap(result.entrySet(), dupUserKeySerializer, dupUserValueSerializer); }