code: @Override
    @SuppressWarnings("unchecked")
    public D read(D reuse, Decoder in) throws IOException {    
      resolver.configure(in);
      D result = (D) read(reuse, getExpected(), resolver);
      resolver.drain();
      return result;
    }
docs: method getResolver(getSchema(), getExpected()) is final so instead we override read()