From b07dffd4d01df6660d4c87759d8e85537acca9be Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Fri, 20 May 2016 17:27:15 +0200 Subject: [PATCH] added birthday validator (unfinished) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- .../AddressbookBirthdayValidator.java | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 src/org/mxchange/addressbook/validator/birthday/AddressbookBirthdayValidator.java diff --git a/src/org/mxchange/addressbook/validator/birthday/AddressbookBirthdayValidator.java b/src/org/mxchange/addressbook/validator/birthday/AddressbookBirthdayValidator.java new file mode 100644 index 0000000..8754a6e --- /dev/null +++ b/src/org/mxchange/addressbook/validator/birthday/AddressbookBirthdayValidator.java @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2016 Roland Haeder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.mxchange.addressbook.validator.birthday; + +import java.text.MessageFormat; +import java.util.Date; +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.validator.FacesValidator; +import javax.faces.validator.Validator; +import javax.faces.validator.ValidatorException; +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.naming.NamingException; +import org.mxchange.jcoreee.validator.date.BaseDateValidator; +import org.mxchange.jcoreeelogger.beans.local.logger.Log; +import org.mxchange.jcoreeelogger.beans.local.logger.LoggerBeanLocal; + +/** + * A birthday validator + *

+ * @author Roland Haeder + */ +@FacesValidator("BirthdayValidator") +public class AddressbookBirthdayValidator extends BaseDateValidator implements Validator { + + /** + * Serial number + */ + private static final long serialVersionUID = 28_735_756_819_460L; + + /** + * Logger bean + */ + @Log + private LoggerBeanLocal loggerBeanLocal; + + /** + * Default constructor + */ + public AddressbookBirthdayValidator () { + // Try to get it + try { + // Get initial context + Context context = new InitialContext(); + + // Lookup logger + this.loggerBeanLocal = (LoggerBeanLocal) context.lookup("java:global/jcore-logger-ejb/logger!org.mxchange.jcoreeelogger.beans.local.logger.LoggerBeanLocal"); //NOI18N + } catch (final NamingException ex) { + // Continue to throw it + throw new RuntimeException(MessageFormat.format("context.lookup() failed: {0}", ex.getMessage()), ex); //NOI18N + } + } + + @Override + public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException { + // Trace message + this.loggerBeanLocal.logTrace(MessageFormat.format("validate: context={0},component={1},value={2} - CALLED!", context, component, value)); //NOI18N + + // All accepted, required fields + String[] requiredFields = {"birthday", "contactBirthday"}; //NOI18N + + // Pre-validation (example: not null, not a string, empty string ...) + super.preValidate(context, component, value, requiredFields, false); + + // Cast value + Date birthday = (Date) value; + + // @TODO Finish this, e.g. load maximum,minimum birthday from properties file + + // Trace message + this.loggerBeanLocal.logTrace("validate: EXIT!"); //NOI18N + } + +} -- 2.39.5