@Override public Optional<StateSnapshotTransformer<byte[]>> createForSerializedState() { return snapshotTransformFactory.createForDeserializedState() .map(est -> new RocksDBListState.StateSnapshotTransformerWrapper<>(est, elementSerializer.duplicate())); } }
@SuppressWarnings("unchecked") private <SV, SEV> StateSnapshotTransformer<SV> getStateSnapshotTransformer( StateDescriptor<?, SV> stateDesc, StateSnapshotTransformFactory<SEV> snapshotTransformFactory) { Optional<StateSnapshotTransformer<SEV>> original = snapshotTransformFactory.createForDeserializedState(); if (original.isPresent()) { if (stateDesc instanceof ListStateDescriptor) { return (StateSnapshotTransformer<SV>) new StateSnapshotTransformer .ListStateSnapshotTransformer<>(original.get()); } else if (stateDesc instanceof MapStateDescriptor) { return (StateSnapshotTransformer<SV>) new StateSnapshotTransformer .MapStateSnapshotTransformer<>(original.get()); } else { return (StateSnapshotTransformer<SV>) original.get(); } } else { return null; } }
@SuppressWarnings("unchecked") private <SV, SEV> StateSnapshotTransformer<SV> getStateSnapshotTransformer( StateDescriptor<?, SV> stateDesc, StateSnapshotTransformFactory<SEV> snapshotTransformFactory) { if (stateDesc instanceof ListStateDescriptor) { Optional<StateSnapshotTransformer<SEV>> original = snapshotTransformFactory.createForDeserializedState(); return original.map(est -> createRocksDBListStateTransformer(stateDesc, est)).orElse(null); } else if (stateDesc instanceof MapStateDescriptor) { Optional<StateSnapshotTransformer<byte[]>> original = snapshotTransformFactory.createForSerializedState(); return (StateSnapshotTransformer<SV>) original .map(RocksDBMapState.StateSnapshotTransformerWrapper::new).orElse(null); } else { Optional<StateSnapshotTransformer<byte[]>> original = snapshotTransformFactory.createForSerializedState(); return (StateSnapshotTransformer<SV>) original.orElse(null); } }
@SuppressWarnings("unchecked") private <SV, SEV> StateSnapshotTransformer<SV> getStateSnapshotTransformer( StateDescriptor<?, SV> stateDesc, StateSnapshotTransformFactory<SEV> snapshotTransformFactory) { Optional<StateSnapshotTransformer<SEV>> original = snapshotTransformFactory.createForDeserializedState(); if (original.isPresent()) { if (stateDesc instanceof ListStateDescriptor) { return (StateSnapshotTransformer<SV>) new StateSnapshotTransformer .ListStateSnapshotTransformer<>(original.get()); } else if (stateDesc instanceof MapStateDescriptor) { return (StateSnapshotTransformer<SV>) new StateSnapshotTransformer .MapStateSnapshotTransformer<>(original.get()); } else { return (StateSnapshotTransformer<SV>) original.get(); } } else { return null; } }
@SuppressWarnings("unchecked") private <SV, SEV> StateSnapshotTransformer<SV> getStateSnapshotTransformer( StateDescriptor<?, SV> stateDesc, StateSnapshotTransformFactory<SEV> snapshotTransformFactory) { if (stateDesc instanceof ListStateDescriptor) { Optional<StateSnapshotTransformer<SEV>> original = snapshotTransformFactory.createForDeserializedState(); return original.map(est -> createRocksDBListStateTransformer(stateDesc, est)).orElse(null); } else if (stateDesc instanceof MapStateDescriptor) { Optional<StateSnapshotTransformer<byte[]>> original = snapshotTransformFactory.createForSerializedState(); return (StateSnapshotTransformer<SV>) original .map(RocksDBMapState.StateSnapshotTransformerWrapper::new).orElse(null); } else { Optional<StateSnapshotTransformer<byte[]>> original = snapshotTransformFactory.createForSerializedState(); return (StateSnapshotTransformer<SV>) original.orElse(null); } }