@Override protected EitherSerializer createOuterSerializerWithNestedSerializers(TypeSerializer<?>[] nestedSerializers) { return new EitherSerializer<>(nestedSerializers[0], nestedSerializers[1]); }
@Override protected TypeSerializer<Either<String, Integer>> createSerializer() { return new EitherSerializer<>(StringSerializer.INSTANCE, IntSerializer.INSTANCE); }
@Override public TypeSerializer<Either<L, R>> duplicate() { TypeSerializer<L> duplicateLeft = leftSerializer.duplicate(); TypeSerializer<R> duplicateRight = rightSerializer.duplicate(); if ((leftSerializer != duplicateLeft) || (rightSerializer != duplicateRight)) { // stateful return new EitherSerializer<L, R>(duplicateLeft, duplicateRight); } else { return this; } }
@Override @PublicEvolving public TypeSerializer<Either<L, R>> createSerializer(ExecutionConfig config) { return new EitherSerializer<L, R>(leftType.createSerializer(config), rightType.createSerializer(config)); }
@Override public EitherSerializer<L, R> restoreSerializer() { checkState(nestedSnapshot != null); return new EitherSerializer<>( nestedSnapshot.getRestoredNestedSerializer(0), nestedSnapshot.getRestoredNestedSerializer(1)); }
@SuppressWarnings("unchecked") @Parameterized.Parameters(name = "Test Specification = {0}") public static Collection<TestSpecification<?>> testSpecifications() { final TestSpecifications testSpecifications = new TestSpecifications(MigrationVersion.v1_6, MigrationVersion.v1_7); testSpecifications.add( "either-serializer", EitherSerializer.class, JavaEitherSerializerSnapshot.class, () -> new EitherSerializer<>(StringSerializer.INSTANCE, IntSerializer.INSTANCE)); testSpecifications.add( "generic-array-serializer", GenericArraySerializer.class, GenericArraySerializerSnapshot.class, () -> new GenericArraySerializer<>(String.class, StringSerializer.INSTANCE)); return testSpecifications.get(); } }
@Override public TypeSerializer<Either<L, R>> duplicate() { TypeSerializer<L> duplicateLeft = leftSerializer.duplicate(); TypeSerializer<R> duplicateRight = rightSerializer.duplicate(); if ((leftSerializer != duplicateLeft) || (rightSerializer != duplicateRight)) { // stateful return new EitherSerializer<L, R>(duplicateLeft, duplicateRight); } else { return this; } }
@Override public TypeSerializer<Either<L, R>> duplicate() { TypeSerializer<L> duplicateLeft = leftSerializer.duplicate(); TypeSerializer<R> duplicateRight = rightSerializer.duplicate(); if ((leftSerializer != duplicateLeft) || (rightSerializer != duplicateRight)) { // stateful return new EitherSerializer<L, R>(duplicateLeft, duplicateRight); } else { return this; } }
@Override @PublicEvolving public TypeSerializer<Either<L, R>> createSerializer(ExecutionConfig config) { return new EitherSerializer<L, R>(leftType.createSerializer(config), rightType.createSerializer(config)); }
@Override @PublicEvolving public TypeSerializer<Either<L, R>> createSerializer(ExecutionConfig config) { return new EitherSerializer<L, R>(leftType.createSerializer(config), rightType.createSerializer(config)); }
@Override public TypeSerializer<Either<L, R>> restoreSerializer() { checkState(nestedSnapshot != null); return new EitherSerializer<>( nestedSnapshot.getRestoreSerializer(0), nestedSnapshot.getRestoreSerializer(1)); }
if (leftCompatResult.getConvertDeserializer() != null && rightCompatResult.getConvertDeserializer() != null) { return CompatibilityResult.requiresMigration( new EitherSerializer<>( new TypeDeserializerAdapter<>(leftCompatResult.getConvertDeserializer()), new TypeDeserializerAdapter<>(rightCompatResult.getConvertDeserializer())));