private final Integer fBeerRating;
private final BigDecimal fOverallRating;
private int fHashCode;
private void validateState() throws ModelCtorException {
ModelCtorException ex = new ModelCtorException();
Validator[] ratingsChecks = {Check.min(0), Check.max(10)};
if ( FAILS == Check.required(fId, Check.range(1,50)) ) {
ex.add("Id is required, 1..50 chars.");
}
if ( FAILS == Check.optional(fName, Check.range(2,50)) ) {
ex.add("Name is optional, 2..50 chars.");
}
if ( FAILS == Check.required(fFishRating, ratingsChecks) ) {
ex.add("Fish Rating is required, 0..10.");
}
if ( FAILS == Check.required(fChipsRating, ratingsChecks) ) {
ex.add("Chips Rating is required, 0..10.");
}
if ( FAILS == Check.required(fPriceRating, ratingsChecks) ) {
ex.add("Price Rating is required, 0..10.");
}
if ( FAILS == Check.required(fLocationRating, ratingsChecks) ) {
ex.add("Location Rating is required, 0..10.");
}
if ( FAILS == Check.required(fServiceRating, ratingsChecks) ) {
ex.add("Service Rating is required, 0..10.");
}
if ( FAILS == Check.required(fBeerRating, ratingsChecks) ) {
ex.add("Beer Rating is required, 0..10.");
}
BigDecimal ZERO = new BigDecimal("0.00");
BigDecimal TEN = new BigDecimal("10.00");
if ( FAILS == Check.optional(fOverallRating, Check.range(ZERO, TEN)) ) {
ex.add("Overall Rating is optional, 0.00..10.00.");
}
if ( ! ex.isEmpty() ) throw ex;
}