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

