class ProtoCoder extends AtomicCoder<T> {

  public static <T extends Message> ProtoCoder<T> of(Class<T> protoMessageClass) {
    return new ProtoCoder<>(protoMessageClass, ImmutableSet.<Class<?>>of());
  }

  private  ProtoCoder(Class<T> protoMessageClass, Set<Class<?>> extensionHostClasses);

}