001/* Copyright (C) 2014 konik.io 002 * 003 * This file is part of the Konik library. 004 * 005 * The Konik library is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * The Konik library is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with the Konik library. If not, see <http://www.gnu.org/licenses/>. 017 */ 018package io.konik.validator; 019 020import static io.konik.util.Strings.isNotEmpty; 021import io.konik.validator.annotation.ValidFinancialAccount; 022import io.konik.zugferd.entity.FinancialAccount; 023 024import javax.validation.ConstraintValidator; 025import javax.validation.ConstraintValidatorContext; 026 027/** 028 * 029 * The Valid Financial Account Validator will check if a Financial Account 030 * has a not empty {@link FinancialAccount#getIban()} or {@link FinancialAccount#getProprietaryId()}. 031 */ 032public class ValidFinancialAccountValidator implements ConstraintValidator<ValidFinancialAccount, FinancialAccount> { 033 034 /** 035 * Initialize. 036 * 037 * @param constraintAnnotation the constraint annotation 038 */ 039 @Override 040 public void initialize(ValidFinancialAccount constraintAnnotation) { 041 } 042 043 /** 044 * Checks if is valid. 045 * 046 * @param contact the contact 047 * @param context the context 048 * @return true, if is valid 049 */ 050 @Override 051 public boolean isValid(FinancialAccount account, ConstraintValidatorContext context) { 052 if (account != null) { 053 return isNotEmpty(account.getProprietaryId()) || isNotEmpty(account.getIban()); 054 } 055 return true; 056 } 057}