@Override protected TimerSerializer<K, N> createOuterSerializerWithNestedSerializers(TypeSerializer<?>[] nestedSerializers) { @SuppressWarnings("unchecked") final TypeSerializer<K> keySerializer = (TypeSerializer<K>) nestedSerializers[0]; @SuppressWarnings("unchecked") final TypeSerializer<N> namespaceSerializer = (TypeSerializer<N>) nestedSerializers[1]; return new TimerSerializer<K, N>(keySerializer, namespaceSerializer); }
TimerSerializer( @Nonnull TypeSerializer<K> keySerializer, @Nonnull TypeSerializer<N> namespaceSerializer) { this( keySerializer, namespaceSerializer, computeTotalByteLength(keySerializer, namespaceSerializer), keySerializer.isImmutableType() && namespaceSerializer.isImmutableType()); }
@Override public TimerHeapInternalTimer<K, N> copy(TimerHeapInternalTimer<K, N> from, TimerHeapInternalTimer<K, N> reuse) { return copy(from); }
@Override protected TypeSerializer<?>[] getNestedSerializers(TimerSerializer<K, N> outerSerializer) { return new TypeSerializer<?>[] { outerSerializer.getKeySerializer(), outerSerializer.getNamespaceSerializer() }; }
@Override public TimerHeapInternalTimer<K, N> deserialize( TimerHeapInternalTimer<K, N> reuse, DataInputView source) throws IOException { return deserialize(source); }
@Override public TimerHeapInternalTimer<K, N> copy(TimerHeapInternalTimer<K, N> from) { K keyDuplicate; N namespaceDuplicate; if (isImmutableType()) { keyDuplicate = from.getKey(); namespaceDuplicate = from.getNamespace(); } else { keyDuplicate = keySerializer.copy(from.getKey()); namespaceDuplicate = namespaceSerializer.copy(from.getNamespace()); } return new TimerHeapInternalTimer<>(from.getTimestamp(), keyDuplicate, namespaceDuplicate); }
@SuppressWarnings("unchecked") public <N> InternalTimerService<N> getInternalTimerService( String name, TimerSerializer<K, N> timerSerializer, Triggerable<K, N> triggerable) { InternalTimerServiceImpl<K, N> timerService = registerOrGetTimerService(name, timerSerializer); timerService.startTimerService( timerSerializer.getKeySerializer(), timerSerializer.getNamespaceSerializer(), triggerable); return timerService; }
@Override public TimerHeapInternalTimer<K, N> deserialize( TimerHeapInternalTimer<K, N> reuse, DataInputView source) throws IOException { return deserialize(source); }
@Override public TimerHeapInternalTimer<K, N> copy(TimerHeapInternalTimer<K, N> from) { K keyDuplicate; N namespaceDuplicate; if (isImmutableType()) { keyDuplicate = from.getKey(); namespaceDuplicate = from.getNamespace(); } else { keyDuplicate = keySerializer.copy(from.getKey()); namespaceDuplicate = namespaceSerializer.copy(from.getNamespace()); } return new TimerHeapInternalTimer<>(from.getTimestamp(), keyDuplicate, namespaceDuplicate); }
@Override protected TypeSerializer<TimerHeapInternalTimer<Long, TimeWindow>> createSerializer() { return new TimerSerializer<>(KEY_SERIALIZER, NAMESPACE_SERIALIZER); }
@SuppressWarnings("unchecked") public <N> InternalTimerService<N> getInternalTimerService( String name, TimerSerializer<K, N> timerSerializer, Triggerable<K, N> triggerable) { InternalTimerServiceImpl<K, N> timerService = registerOrGetTimerService(name, timerSerializer); timerService.startTimerService( timerSerializer.getKeySerializer(), timerSerializer.getNamespaceSerializer(), triggerable); return timerService; }
@Override public TimerHeapInternalTimer<K, N> copy(TimerHeapInternalTimer<K, N> from, TimerHeapInternalTimer<K, N> reuse) { return copy(from); }
TimerSerializer( @Nonnull TypeSerializer<K> keySerializer, @Nonnull TypeSerializer<N> namespaceSerializer) { this( keySerializer, namespaceSerializer, computeTotalByteLength(keySerializer, namespaceSerializer), keySerializer.isImmutableType() && namespaceSerializer.isImmutableType()); }
@Override public TimerHeapInternalTimer<K, N> deserialize( TimerHeapInternalTimer<K, N> reuse, DataInputView source) throws IOException { return deserialize(source); }
@Override public TimerHeapInternalTimer<K, N> copy(TimerHeapInternalTimer<K, N> from) { K keyDuplicate; N namespaceDuplicate; if (isImmutableType()) { keyDuplicate = from.getKey(); namespaceDuplicate = from.getNamespace(); } else { keyDuplicate = keySerializer.copy(from.getKey()); namespaceDuplicate = namespaceSerializer.copy(from.getNamespace()); } return new TimerHeapInternalTimer<>(from.getTimestamp(), keyDuplicate, namespaceDuplicate); }
private static TypeSerializer<TimerHeapInternalTimer<String, Integer>> stringIntTimerSerializerSupplier() { return new TimerSerializer<>(StringSerializer.INSTANCE, IntSerializer.INSTANCE); } }
@SuppressWarnings("unchecked") public <N> InternalTimerService<N> getInternalTimerService( String name, TimerSerializer<K, N> timerSerializer, Triggerable<K, N> triggerable) { InternalTimerServiceImpl<K, N> timerService = registerOrGetTimerService(name, timerSerializer); timerService.startTimerService( timerSerializer.getKeySerializer(), timerSerializer.getNamespaceSerializer(), triggerable); return timerService; }
@Override public TimerHeapInternalTimer<K, N> copy(TimerHeapInternalTimer<K, N> from, TimerHeapInternalTimer<K, N> reuse) { return copy(from); }
TimerSerializer( @Nonnull TypeSerializer<K> keySerializer, @Nonnull TypeSerializer<N> namespaceSerializer) { this( keySerializer, namespaceSerializer, computeTotalByteLength(keySerializer, namespaceSerializer), keySerializer.isImmutableType() && namespaceSerializer.isImmutableType()); }
@Override public TimerSerializer<K, N> duplicate() { final TypeSerializer<K> keySerializerDuplicate = keySerializer.duplicate(); final TypeSerializer<N> namespaceSerializerDuplicate = namespaceSerializer.duplicate(); if (keySerializerDuplicate == keySerializer && namespaceSerializerDuplicate == namespaceSerializer) { // all delegate serializers seem stateless, so this is also stateless. return this; } else { // at least one delegate serializer seems to be stateful, so we return a new instance. return new TimerSerializer<>( keySerializerDuplicate, namespaceSerializerDuplicate, length, immutableType); } }