We can add an internal class until then (it's pretty trivial) since the request classes are internal.
Ismael On Wed, Mar 30, 2016 at 7:00 PM, Gwen Shapira <g...@confluent.io> wrote: > I like it, but we are not on Java8 yet, and I don't think we want to block > on that :) > > On Wed, Mar 30, 2016 at 10:53 AM, Ismael Juma <ism...@juma.me.uk> wrote: > > > On Wed, Mar 30, 2016 at 6:21 PM, Gwen Shapira <g...@confluent.io> wrote: > > > > > Ismael, can you detail how the Optional approach would work in the wire > > > protocol? It sounds good, but I'm unclear on what this would look like > on > > > the wire. > > > > > > > In the wire protocol, we would still use a size of -1 like we normally do > > for nullable strings and nullable bytes. So, it's still a bit magical, > but > > efficient and associated with the right field (which avoids some invalid > > states that are possible if we use two fields). In other words, each > > implementation of the protocol is responsible for figuring out an > idiomatic > > and hopefully safe way to represent the absence of a value. > > > > In Java (Scala would be similar) we would convert this to an > > Optional<List<String>> to make it clear that the value could be absent > (and > > avoid NPEs). The fact that absence of a value means "all topics" makes > > sense if one thinks about that field as a filter (absence of a value > means > > no filter). > > > > I can see pros and cons for each approach, personally. :) > > > > Ismael > > >