Doug,

I don't get it. You can set and unset flags on your own EnumSet.  Why isn't
that sufficient?


    Josh

On Thu, Mar 28, 2013 at 11:45 AM, Doug Lea <d...@cs.oswego.edu> wrote:

> On 03/28/13 13:18, Tim Peierls wrote:
>
>> I can't find a discussion of why Spliterator flags are ints rather than
>> enum.
>>
>
> We started out with enums on (my) initial Spliterator side vs
> control flags internal to streams. The we had to somehow
> mesh these to work together. On the stream side, you need
> to set and unset various bits across stages. Clearly
> you can't do that to someone's EnumSet -- they will not expect
> you to modify it, but enforcing this makes it both unwieldy and
> sleaze-inducing (we'd have to grab underlying representation from
> EnumSet).
>
> Another way of saying this is that we needed an efficient
> propagate-by-value small-N bit set mechanism, and the only candidate
> was the traditional one. This amounts to the same reason
> that nio "interest" flags are done the same way.
>
> -Doug
>
>
>
>
>
>

Reply via email to