Hi,

On Wed, Apr 26, 2017 at 10:40 AM, Gunnar Morling <gunnar@hibernate.org> wrote:
> * Should there be a common superinterface for
> Path$[BeanNode|PropertyNode|ContainerElementNode], all of which define
> the same methods?

I've been wondering the same, but come to think that it doesn't give you much.

You (as a user) are going to work with specific node types (as
narrowed down via getKind() + as()), so I would not expect you to deal
with that super-type in your code. It'd put the declaration of those
methods into one place, which is nice, though I kinda like the
simplicity of the current Node hierarchy, with one specific sub-type
per kind.

What do others think?

I had the exact same reasoning when I did it.

> * Should Positive/Negative#strict() default true be provided as
> #orZero() default false, for commonality with
> [Past|Future]#orPresent() ?

Hum, yes, good point. I think I'd prefer that.

@Emmanuel, I vaguely remember we discussed this. Did you see a good
reason for the current default?

@All, what do you think?

Matt, do you just want to change the name or also to change the default?

Currently, it's:
boolean strict() default false;
and you are supposing the default is true in your question.

Currently, we have:
- Positive/Negative: strict() default false;
- DecimalMin/DecimalMax: inclusive() default true;
- Past/Present: orPresent() default false;

I thought about proposing orZero() at the time but I didn't suggest it because "strictly positive" makes sense.

Being strict by default would probably make more sense.

As for the name, I'm torn.

--
Guillaume