@Test(expected = DuplicateConversion.class) public void shouldThrowWhenDuplicate() { converter.register(Path.class, Paths::get); }
public <T> void register(@Nonnull final Class<T> type, @Nonnull final Conversion<T, ?> factory) throws DuplicateConversion { register(TypeToken.of(type), factory); }
Converter { public <T> void register(@Nonnull final Class<T> type, @Nonnull final Conversion<T, ?> factory) throws DuplicateConversion { register(TypeToken.of(type), factory); } }
Converter { public <T> void register(@Nonnull final Class<T> type, @Nonnull final Conversion<T, ?> factory) throws DuplicateConversion { register(TypeToken.of(type), factory); }  }
Converter { public <T> void register(@Nonnull final Class<T> type, @Nonnull final Conversion<T, ?> factory) throws DuplicateConversion { register(TypeToken.of(type), factory); }  void register(@Nonnull final Class<T> type, @Nonnull final Conversion<T, ?> factory); void register(@Nonnull final TypeToken<T> type,
            @Nonnull final Conversion<T, ?> factory); void registerDate(@Nonnull final String pattern); @Nonnull T convert(@Nonnull final Class<T> type, @Nonnull final String value); @SuppressWarnings("unchecked") @Nonnull T convert(@Nonnull final TypeToken<T> type, @Nonnull final String value); @Nonnull Set<TypeToken<?>> registered(); }
Converter { public <T> void register(@Nonnull final Class<T> type, @Nonnull final Conversion<T, ?> factory) throws DuplicateConversion { register(TypeToken.of(type), factory); }  void register(@Nonnull final Class<T> type, @Nonnull final Conversion<T, ?> factory); void register(@Nonnull final TypeToken<T> type,
            @Nonnull final Conversion<T, ?> factory); void registerDate(@Nonnull final String pattern); @Nonnull T convert(@Nonnull final Class<T> type, @Nonnull final String value); @SuppressWarnings("unchecked") @Nonnull T convert(@Nonnull final TypeToken<T> type, @Nonnull final String value); @Nonnull Set<TypeToken<?>> registered();  }