/** * ============================================================================= * * ORCID (R) Open Source * http://orcid.org * * Copyright (c) 2012-2014 ORCID, Inc. * Licensed under an MIT-Style License (MIT) * http://orcid.org/open-source-license * * This copyright and license information (including a link to the full license) * shall be included in its entirety in all copies or substantial portion of * the software. * * ============================================================================= */ package org.orcid.frontend.web.forms.validate; import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.lang.StringUtils; public class FirstIntegerNotHigherThanSecondIntegerValidator implements ConstraintValidator<IntegerCompare, Object> { private String firstFieldName; private String secondFieldName; @Override public void initialize(final IntegerCompare constraintAnnotation) { firstFieldName = constraintAnnotation.firstNumber(); secondFieldName = constraintAnnotation.secondNumber(); } @Override public boolean isValid(final Object value, final ConstraintValidatorContext context) { try { String firstNumberField = BeanUtils.getProperty(value, firstFieldName); String secondNumberField = BeanUtils.getProperty(value, secondFieldName); if (!StringUtils.isNumeric(firstNumberField) || !StringUtils.isNumeric(secondNumberField)) { return true; } Integer firstNumValue = Integer.valueOf(firstNumberField); Integer secondNumValue = Integer.valueOf(secondNumberField); return secondNumValue.compareTo(firstNumValue) >= 0; } catch (final Exception ignore) { ignore.printStackTrace(); } return false; } }