SetCoder extends IterableLikeCoder<T, Set<T>> { @Override public TypeDescriptor<Set<T>> getEncodedTypeDescriptor() { return new TypeDescriptor<Set<T>>() {}.where( new TypeParameter<T>() {}, getElemCoder().getEncodedTypeDescriptor()); } protected  SetCoder(Coder<T> elemCoder); static SetCoder<T> of(Coder<T> elementCoder); @Override void verifyDeterministic(); @Override TypeDescriptor<Set<T>> getEncodedTypeDescriptor();  }
@Test public void testEncodedTypeDescriptor() throws Exception { TypeDescriptor<Set<Integer>> typeDescriptor = new TypeDescriptor<Set<Integer>>() {}; assertThat(TEST_CODER.getEncodedTypeDescriptor(), equalTo(typeDescriptor)); }