Contratos Nulos [Dúvida]

[quote=maurenginaldo][quote=pcalcado][quote=maurenginaldo]
:arrow: Outra questão: O hibernate validator seria uma implementação de “design by contract”, onde colocamos uma anotação por exemplo @Lenght(min=5,max=10) como definição da invariante. Porém a pré e pós condição é tratada por ele ao persistir o objeto.
[/quote]

Qual a questão?
[/quote]

Desculpem pelas pontuações :frowning:

Queria saber se o hibernate validator seria um exemplo de “design by contract”?[/quote]

Ele não é um exemplo por si só, mas é uma ferramenta que lhe ajuda para o design.

O pessoal do OVal tentou fazer algo assim com AOP: http://oval.sourceforge.net/userguide.html

Hummm… bem legal.
Algumas anotações lembram as do hibernate validator.
Gostei muito da anotação para checagem do contrato baseado em uma inner static class.

[code]@CheckWith(DayCheck.class)
private int day;

private static class DayCheck implements CheckWithCheck.SimpleCheck
{
public boolean isSatisfied(Object validatedObject, Object value)
{
try {
GregorianCalendar cal = new GregorianCalendar();
cal.setLenient(false);
cal.set(GregorianCalendar.YEAR, ((DayEntity) validatedObject).year);
cal.set(GregorianCalendar.MONTH, ((DayEntity) validatedObject).month - 1);
cal.set(GregorianCalendar.DATE, ((DayEntity) validatedObject).day);
cal.getTimeInMillis(); // may throw IllegalArgumentException return true;
} catch (IllegalArgumentException e) {}
return false;
}
}[/code]

Alguem está utilizando?