X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Forg%2Fmxchange%2Faddressbook%2Fvalidator%2Faddressbook%2FAddressbookIdValidator.java;h=a3edc657a153fdb134c33898ba8dee24923bca37;hb=70706a1baaec83f83f6657fc9650d26707b1157e;hp=e57ace42a13d93f821dab000d80edbdcde243d86;hpb=28683f43ce4b162d31331c14f854fb1489b60944;p=jbonuscard-lib.git diff --git a/src/org/mxchange/addressbook/validator/addressbook/AddressbookIdValidator.java b/src/org/mxchange/addressbook/validator/addressbook/AddressbookIdValidator.java index e57ace4..a3edc65 100644 --- a/src/org/mxchange/addressbook/validator/addressbook/AddressbookIdValidator.java +++ b/src/org/mxchange/addressbook/validator/addressbook/AddressbookIdValidator.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 Roland Haeder + * 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 @@ -20,19 +20,24 @@ import java.text.MessageFormat; import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; +import javax.faces.validator.FacesValidator; import javax.faces.validator.ValidatorException; -import javax.faces.view.facelets.FaceletException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; +import org.mxchange.addressbook.exceptions.AddressbookNotFoundException; +import org.mxchange.addressbook.model.addressbook.Addressbook; import org.mxchange.addressbook.model.addressbook.AddressbookSessionBeanRemote; import org.mxchange.jcoreee.validator.number.BaseLongValidator; +import org.mxchange.jcoreeelogger.beans.local.logger.Log; +import org.mxchange.jcoreeelogger.beans.local.logger.LoggerBeanLocal; /** * A validator for address book id verification *

- * @author Roland Haeder + * @author Roland Haeder */ +@FacesValidator (value = "AddressbookIdValidator") public class AddressbookIdValidator extends BaseLongValidator { /** @@ -46,26 +51,35 @@ public class AddressbookIdValidator extends BaseLongValidator { private AddressbookSessionBeanRemote addressbookBean; /** - * Default constructor + * Logger instance + */ + @Log + private LoggerBeanLocal loggerBeanLocal; + + /** + * Public consutructor */ public AddressbookIdValidator () { - // Try it + // Try to get it try { - // Get context + // Get initial context Context context = new InitialContext(); - // Try to to lookup the bean - this.addressbookBean = (AddressbookSessionBeanRemote) context.lookup("ejb/stateless-addressbook"); + // Lookup logger + this.loggerBeanLocal = (LoggerBeanLocal) context.lookup("java:global/jcore-logger-ejb/logger!org.mxchange.jcoreeelogger.beans.local.logger.LoggerBeanLocal"); //NOI18N + + // ... and user controller + this.addressbookBean = (AddressbookSessionBeanRemote) context.lookup("java:global/addressbook-ejb/addressbook!org.mxchange.addressbook.model.addressbook.AddressbookSessionBeanRemote"); //NOI18N } catch (final NamingException ex) { - // Throw again - throw new FaceletException(ex); + // Continue to throw it + throw new RuntimeException("context.lookup() failed.", ex); //NOI18N } } @Override public void validate (final FacesContext context, final UIComponent component, final Object value) throws ValidatorException { // Trace message - //this.getLogger().logTrace(MessageFormat.format("validate: context={0},component={1},value={2} - CALLED!", context, component, value)); //NOI18N + this.loggerBeanLocal.logTrace(MessageFormat.format("validate: context={0},component={1},value={2} - CALLED!", context, component, value)); //NOI18N // All accepted, required fields String[] requiredFileds = {"addressbookId"}; //NOI18N @@ -73,13 +87,34 @@ public class AddressbookIdValidator extends BaseLongValidator { // Pre-validation (example: not null, not a string, empty string ...) super.preValidate(context, component, value, requiredFileds, false); + // Cast to long + Long addressbookId = (Long) value; + // Is the address book id valid? - if (!this.addressbookBean.isAddressbookIdUsed((Long) value)) { + if (!this.addressbookBean.isAddressbookIdUsed(addressbookId)) { // Is not valid - throw new ValidatorException(new FacesMessage(MessageFormat.format("No address book found with id {0}. Please check your link.", value))); + throw new ValidatorException(new FacesMessage(MessageFormat.format("No address book found with id {0}. Please check your link.", addressbookId))); //NOI18N + } + + // Init variable + Addressbook addressbook; + + // Try it + try { + // Get full data + addressbook = this.addressbookBean.getAddressbookById(addressbookId); + + // Is it set? + if (addressbook == null) { + // Is null?! + throw new NullPointerException(MessageFormat.format("addressbook for id={0} is null", addressbookId)); //NOI18N + } + } catch (final AddressbookNotFoundException ex) { + // Continue to throw + throw new ValidatorException(new FacesMessage(MessageFormat.format("Cannot find address book with id {0}", addressbookId)), ex); //NOI18N } // Trace message - //this.getLogger().logTrace("validate: EXIT!"); //NOI18N + this.loggerBeanLocal.logTrace("validate: EXIT!"); //NOI18N } }