001
002 /*
003 * Copyright (C) 2011 Archie L. Cobbs. All rights reserved.
004 *
005 * $Id: SelfValidatingValidator.java 144 2011-10-13 22:31:52Z archie.cobbs $
006 */
007
008 package org.dellroad.stuff.validation;
009
010 import javax.validation.ConstraintValidatorContext;
011
012 /**
013 * Implements the validation logic for the {@link SelfValidates @SelfValidates} annotation.
014 *
015 * @see SelfValidates
016 */
017 public class SelfValidatingValidator extends AbstractValidator<SelfValidates, SelfValidating> {
018
019 @Override
020 public boolean isValid(SelfValidating value, ConstraintValidatorContext context) {
021 try {
022 value.checkValid(context);
023 return true;
024 } catch (SelfValidationException e) {
025 String message = e.getMessage();
026 if (message != null)
027 this.setViolation(context, message);
028 return false;
029 }
030 }
031 }
032