2008/11/5 Rickard Öberg <[EMAIL PROTECTED]>

> Hey,
>
> I have now implemented @Optional. This means that by default all method
> parameters are mandatory, and any that can be null have to be marked
> with @Optional. This is in contrast to before, where no assumptions were
> made, and it was possible to use a @NotNull constraint to mark a
> parameter as being mandatory. Since @NotNull should be the normal case
> that led to a whole lot of @NotNulls, but even worse, in many cases
> where it *should* be it wasn't.
>
> With the default being that a parameter is mandatory, this immediately
> made all our API's a whole lot more strict, and a bunch of tests started
> failing (fixing this was actually the bulk of the work). This was GREAT!
> A lot of things were API bugs were found through this change, which is a
> Good Thing!
>
> I also implemented this for Property, which was even more revealing. All
> of a sudden ALL Properties became mandatory, with the consequence that a
> whole lot of cases where Entities had been created with newEntity and
> then immediately populated stopped working. This is GOOD! This avoids
> the situation that the Entity is maybe not properly initiated by
> accident. In a ton of places I fixed so that EntityBuilders were used,
> and the state was populated to the builder rather than the entity. Much
> better!
>
> All in all, I think this change will drastically improve the quality of
> code that uses Qi4j.
>

+1  yep, it's a great feeling when everything snaps into place like that


> /Rickard
>
> _______________________________________________
> qi4j-dev mailing list
> [email protected]
> http://lists.ops4j.org/mailman/listinfo/qi4j-dev
>



-- 
Cheers, Stuart
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to