/** * Registers the provided {@link Coder} for the given type. * * <p>Note that this is equivalent to {@code registerCoderProvider(CoderProviders.forCoder(type, * coder))}. See {@link #registerCoderProvider} and {@link CoderProviders#forCoder} for further * details. */ public void registerCoderForType(TypeDescriptor<?> type, Coder<?> coder) { registerCoderProvider(CoderProviders.forCoder(type, coder)); }
private CommonTypes() { ImmutableMap.Builder<Class<?>, CoderProvider> builder = ImmutableMap.builder(); builder.put( Boolean.class, CoderProviders.fromStaticMethods(Boolean.class, BooleanCoder.class)); builder.put(Byte.class, CoderProviders.fromStaticMethods(Byte.class, ByteCoder.class)); builder.put(BitSet.class, CoderProviders.fromStaticMethods(BitSet.class, BitSetCoder.class)); builder.put( FloatCoder.class, CoderProviders.fromStaticMethods(Float.class, FloatCoder.class)); builder.put(Double.class, CoderProviders.fromStaticMethods(Double.class, DoubleCoder.class)); builder.put( Instant.class, CoderProviders.fromStaticMethods(Instant.class, InstantCoder.class)); builder.put( Integer.class, CoderProviders.fromStaticMethods(Integer.class, VarIntCoder.class)); builder.put( Iterable.class, CoderProviders.fromStaticMethods(Iterable.class, IterableCoder.class)); builder.put(KV.class, CoderProviders.fromStaticMethods(KV.class, KvCoder.class)); builder.put(List.class, CoderProviders.fromStaticMethods(List.class, ListCoder.class)); builder.put(Long.class, CoderProviders.fromStaticMethods(Long.class, VarLongCoder.class)); builder.put(Map.class, CoderProviders.fromStaticMethods(Map.class, MapCoder.class)); builder.put( Metadata.class, CoderProviders.fromStaticMethods(Metadata.class, MetadataCoder.class)); builder.put( ResourceId.class, CoderProviders.fromStaticMethods(ResourceId.class, ResourceIdCoder.class)); builder.put( FileIO.ReadableFile.class, CoderProviders.fromStaticMethods(FileIO.ReadableFile.class, ReadableFileCoder.class)); builder.put(Set.class, CoderProviders.fromStaticMethods(Set.class, SetCoder.class)); builder.put( String.class, CoderProviders.fromStaticMethods(String.class, StringUtf8Coder.class));
@Test public void testCoderProvidersFromStaticMethodsForParameterlessTypes() throws Exception { CoderProvider factory = CoderProviders.fromStaticMethods(String.class, StringUtf8Coder.class); assertEquals( StringUtf8Coder.of(), factory.coderFor(TypeDescriptors.strings(), Collections.emptyList())); factory = CoderProviders.fromStaticMethods(Double.class, DoubleCoder.class); assertEquals( DoubleCoder.of(), factory.coderFor(TypeDescriptors.doubles(), Collections.emptyList())); factory = CoderProviders.fromStaticMethods(byte[].class, ByteArrayCoder.class); assertEquals( ByteArrayCoder.of(), factory.coderFor(TypeDescriptor.of(byte[].class), Collections.emptyList())); }
p.getCoderRegistry().registerCoderProvider(CoderProviders.fromStaticMethods(int[].class, IntArrayCoder.class)); p.getCoderRegistry().registerCoderProvider(CoderProviders.fromStaticMethods(float[].class, FloatArrayCoder.class));
@Override public List<CoderProvider> getCoderProviders() { return ImmutableList.of( CoderProviders.forCoder( TypeDescriptor.of(PubsubMessage.class), PubsubMessageWithAttributesCoder.of())); } }
p.getCoderRegistry().registerCoderProvider(CoderProviders.fromStaticMethods(int[].class, IntArrayCoder.class)); p.getCoderRegistry().registerCoderProvider(CoderProviders.fromStaticMethods(float[].class, FloatArrayCoder.class));
@Override public List<CoderProvider> getCoderProviders() { return Arrays.asList( CoderProviders.forCoder( TypeDescriptor.of(SolrDocument.class), JavaBinCodecCoder.of(SolrDocument.class)), CoderProviders.forCoder( TypeDescriptor.of(SolrInputDocument.class), JavaBinCodecCoder.of(SolrInputDocument.class))); } }
/** * Checks that {#link CoderProviders.fromStaticMethods} successfully builds a working {@link * CoderProvider} from {@link ListCoder ListCoder.class}. */ @Test public void testListCoderProvider() throws Exception { TypeDescriptor<List<Double>> type = TypeDescriptors.lists(TypeDescriptors.doubles()); CoderProvider listCoderProvider = CoderProviders.fromStaticMethods(List.class, ListCoder.class); assertEquals( ListCoder.of(DoubleCoder.of()), listCoderProvider.coderFor(type, Arrays.asList(DoubleCoder.of()))); }
/** * Checks that {#link CoderProviders.fromStaticMethods} successfully builds a working {@link * CoderProvider} from {@link IterableCoder IterableCoder.class}. */ @Test public void testIterableCoderProvider() throws Exception { TypeDescriptor<Iterable<Double>> type = TypeDescriptors.iterables(TypeDescriptors.doubles()); CoderProvider iterableCoderProvider = CoderProviders.fromStaticMethods(Iterable.class, IterableCoder.class); assertEquals( IterableCoder.of(DoubleCoder.of()), iterableCoderProvider.coderFor(type, Arrays.asList(DoubleCoder.of()))); } }
@Override public List<CoderProvider> getCoderProviders() { return ImmutableList.of( CoderProviders.forCoder(TypeDescriptor.of(Message.class), AmqpMessageCoder.of())); } }
/** * Checks that {#link CoderProviders.fromStaticMethods} successfully builds a working {@link * CoderProvider} from {@link KvCoder KvCoder.class}. */ @Test public void testKvCoderProvider() throws Exception { TypeDescriptor<KV<Double, Double>> type = TypeDescriptors.kvs(TypeDescriptors.doubles(), TypeDescriptors.doubles()); CoderProvider kvCoderProvider = CoderProviders.fromStaticMethods(KV.class, KvCoder.class); assertEquals( KvCoder.of(DoubleCoder.of(), DoubleCoder.of()), kvCoderProvider.coderFor(type, Arrays.asList(DoubleCoder.of(), DoubleCoder.of()))); }
@Override public List<CoderProvider> getCoderProviders() { return ImmutableList.of( CoderProviders.forCoder(TypeDescriptor.of(PublishResult.class), PublishResultCoder.of())); } }
CoderProviders.fromStaticMethods( RestrictionWithDefaultTracker.class, CoderForDefaultTracker.class)); assertThat(
@Test public void testParameterizedDefaultListCoder() throws Exception { CoderRegistry registry = CoderRegistry.createDefault(); TypeDescriptor<List<Integer>> listToken = new TypeDescriptor<List<Integer>>() {}; assertEquals(ListCoder.of(VarIntCoder.of()), registry.getCoder(listToken)); registry.registerCoderProvider( CoderProviders.fromStaticMethods(MyValue.class, MyValueCoder.class)); TypeDescriptor<KV<String, List<MyValue>>> kvToken = new TypeDescriptor<KV<String, List<MyValue>>>() {}; assertEquals( KvCoder.of(StringUtf8Coder.of(), ListCoder.of(MyValueCoder.of())), registry.getCoder(kvToken)); }
@Override public List<CoderProvider> getCoderProviders() { return ImmutableList.of( CoderProviders.forCoder(TypeDescriptor.of(ByteString.class), ByteStringCoder.of()), ProtoCoder.getCoderProvider()); } }
CoderProviders.fromStaticMethods(BadEqualityKey.class, DeterministicKeyCoder.class));
@Override public List<CoderProvider> getCoderProviders() { return ImmutableList.of( CoderProviders.forCoder(TypeDescriptor.of(MyValueB.class), MyValueBCoder.INSTANCE)); } }
@Override public List<CoderProvider> getCoderProviders() { return ImmutableList.of( CoderProviders.forCoder( TypeDescriptor.of(AutoRegistrationClass.class), AutoRegistrationClassCoder.INSTANCE)); } }