From: Roland Häder Date: Sat, 9 Sep 2017 20:23:54 +0000 (+0200) Subject: Please repeat: X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=441e508dbd59fc37cf51cbe2f804d399d2c675b6;p=addressbook-war.git Please repeat: - renamed to project's prefix - copied cache-based code from jfinancials Signed-off-by: Roland Häder --- diff --git a/src/java/org/mxchange/addressbook/beans/business/branchoffice/AddressbookAdminBranchOfficeWebRequestBean.java b/src/java/org/mxchange/addressbook/beans/business/branchoffice/AddressbookAdminBranchOfficeWebRequestBean.java new file mode 100644 index 00000000..4645d763 --- /dev/null +++ b/src/java/org/mxchange/addressbook/beans/business/branchoffice/AddressbookAdminBranchOfficeWebRequestBean.java @@ -0,0 +1,611 @@ +/* + * Copyright (C) 2017 Roland Häder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package org.mxchange.addressbook.beans.business.branchoffice; + +import java.util.List; +import javax.ejb.EJB; +import javax.enterprise.context.RequestScoped; +import javax.enterprise.event.Event; +import javax.enterprise.inject.Any; +import javax.inject.Inject; +import javax.inject.Named; +import org.mxchange.addressbook.beans.BaseAddressbookController; +import org.mxchange.jcontactsbusiness.events.branchoffice.added.BranchOfficeAddedEvent; +import org.mxchange.jcontactsbusiness.events.branchoffice.added.ObservableBranchOfficeAddedEvent; +import org.mxchange.jcontactsbusiness.exceptions.branchoffice.BranchOfficeAlreadyAddedException; +import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData; +import org.mxchange.jcontactsbusiness.model.branchoffice.AdminBranchOfficeSessionBeanRemote; +import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice; +import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffices; +import org.mxchange.jcontactsbusiness.model.branchoffice.CompanyBranchOffice; +import org.mxchange.jcontactsbusiness.model.employee.Employee; +import org.mxchange.jcountry.model.data.Country; +import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber; +import org.mxchange.jphone.model.phonenumbers.fax.FaxNumber; +import org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber; +import org.mxchange.jphone.model.phonenumbers.landline.LandLineNumber; +import org.mxchange.jusercore.model.user.User; + +/** + * An administrative bean for branch offices + *

+ * @author Roland Häder + */ +@Named ("adminBranchOfficeController") +@RequestScoped +public class AddressbookAdminBranchOfficeWebRequestBean extends BaseAddressbookController implements AddressbookAdminBranchOfficeWebRequestController { + + /** + * Serial number + */ + private static final long serialVersionUID = 5_028_697_360_461L; + + /** + * EJB for administrative purposes + */ + @EJB (lookup = "java:global/jfinancials-ejb/adminBranchOffice!org.mxchange.jcontactsbusiness.branchoffice.AdminBranchOfficeSessionBeanRemote") + private AdminBranchOfficeSessionBeanRemote adminBranchOfficeBean; + + /** + * City + */ + private String branchCity; + + /** + * Assigned company for this branch office + */ + private BusinessBasicData branchCompany; + + /** + * Contact person in branch office + */ + private Employee branchContactEmployee; + + /** + * Country + */ + private Country branchCountry; + + /** + * Email address + */ + private String branchEmailAddress; + + /** + * House number + */ + private Short branchHouseNumber; + + /** + * An event being fired when a branch office has been successfully added + */ + @Inject + @Any + private Event branchOfficeAddedEvent; + + /** + * A general branch office controller (backing bean) + */ + @Inject + private AddressbookBranchOfficeWebRequestController branchOfficeController; + + /** + * Store + */ + private Short branchStore; + + /** + * Branch office street name + */ + private String branchStreet; + + /** + * Suite number + */ + private Short branchSuiteNumber; + + /** + * Owning user instance (which this branch office is assigned to) + */ + private User branchUserOwner; + + /** + * ZIP code + */ + private Integer branchZipCode; + + /** + * Area code for fax number + */ + private Integer faxAreaCode; + + /** + * Country for fax number + */ + private Country faxCountry; + + /** + * Dial number for fax number + */ + private Long faxNumber; + + /** + * Area code for land-line number + */ + private Integer landLineAreaCode; + + /** + * Country for land-line number + */ + private Country landLineCountry; + + /** + * Dial number for land-line number + */ + private Long landLineNumber; + + /** + * Default constructor + */ + public AddressbookAdminBranchOfficeWebRequestBean () { + // Call super constructor + super(); + } + + /** + * Adds branch office with all data from this backing bean. First this + * action method will validate if the branch office's address is already + * registered and if found, it will output a proper faces message. + *

+ * @return Redirect outcome + */ + public String addBranchOffice () { + // Get instance + final BranchOffice branchOffice = this.createBranchOffice(); + + // Is the branch office not created yet? + if (this.isBranchOfficeCreatedByRequiredData(branchOffice)) { + // Then show proper faces message + this.showFacesMessage("form_admin_add_branch_office:branchStreet", "ADMIN_BRANCH_OFFICE_ALREADY_CREATED"); //NOI18N + return ""; //NOI18N + } + + // Delcare updated instance + final BranchOffice updatedOffice; + + try { + // Try to call EJB + updatedOffice = this.adminBranchOfficeBean.addBranchOffice(branchOffice); + } catch (final BranchOfficeAlreadyAddedException ex) { + // Output message + this.showFacesMessage("form_admin_add_branch_office:branchStreet", "ADMIN_BRANCH_OFFICE_ALREADY_CREATED"); //NOI18N + return ""; //NOI18N + } + + // Fire event + this.branchOfficeAddedEvent.fire(new BranchOfficeAddedEvent(updatedOffice)); + + // Redirect to list + return "admin_list_branch_offices"; //NOI18N + } + + /** + * Getter for city + *

+ * @return City + */ + public String getBranchCity () { + return this.branchCity; + } + + /** + * Setter for city + *

+ * @param branchCity City + */ + public void setBranchCity (final String branchCity) { + this.branchCity = branchCity; + } + + /** + * Getter for basic company data + *

+ * @return Basic company data + */ + public BusinessBasicData getBranchCompany () { + return this.branchCompany; + } + + /** + * Setter for basic company data + *

+ * @param branchCompany Basic company data + */ + public void setBranchCompany (final BusinessBasicData branchCompany) { + this.branchCompany = branchCompany; + } + + /** + * Getter for branch office contact person + *

+ * @return Branch office contact person + */ + public Employee getBranchContactEmployee () { + return this.branchContactEmployee; + } + + /** + * Setter for branch office contact person + *

+ * @param branchContactEmployee Branch office contact person + */ + public void setBranchContactEmployee (final Employee branchContactEmployee) { + this.branchContactEmployee = branchContactEmployee; + } + + /** + * Getter for country + *

+ * @return Country + */ + public Country getBranchCountry () { + return this.branchCountry; + } + + /** + * Setter for country + *

+ * @param branchCountry Country + */ + public void setBranchCountry (final Country branchCountry) { + this.branchCountry = branchCountry; + } + + /** + * Getter for email address + *

+ * @return Email address + */ + public String getBranchEmailAddress () { + return this.branchEmailAddress; + } + + /** + * Getter for email address + *

+ * @param branchEmailAddress Email address + */ + public void setBranchEmailAddress (final String branchEmailAddress) { + this.branchEmailAddress = branchEmailAddress; + } + + /** + * Getter for house number + *

+ * @return House number + */ + public Short getBranchHouseNumber () { + return this.branchHouseNumber; + } + + /** + * Setter for house number + *

+ * @param branchHouseNumber House number + */ + public void setBranchHouseNumber (final Short branchHouseNumber) { + this.branchHouseNumber = branchHouseNumber; + } + + /** + * Getter for store + *

+ * @return Store + */ + public Short getBranchStore () { + return this.branchStore; + } + + /** + * Setter for store + *

+ * @param branchStore Store + */ + public void setBranchStore (final Short branchStore) { + this.branchStore = branchStore; + } + + /** + * Getter for street name + *

+ * @return Street name + */ + public String getBranchStreet () { + return this.branchStreet; + } + + /** + * Setter for street name + *

+ * @param branchStreet Street name + */ + public void setBranchStreet (final String branchStreet) { + this.branchStreet = branchStreet; + } + + /** + * Getter for suite number + *

+ * @return Suite number + */ + public Short getBranchSuiteNumber () { + return this.branchSuiteNumber; + } + + /** + * Setter for suite number + *

+ * @param branchSuiteNumber Suite number + */ + public void setBranchSuiteNumber (final Short branchSuiteNumber) { + this.branchSuiteNumber = branchSuiteNumber; + } + + /** + * Getter for owning user instance + *

+ * @return Owning user instance + */ + public User getBranchUserOwner () { + return this.branchUserOwner; + } + + /** + * Setter for owning user instance + *

+ * @param branchUserOwner Owning user instance + */ + public void setBranchUserOwner (final User branchUserOwner) { + this.branchUserOwner = branchUserOwner; + } + + /** + * Getter for ZIP code\ + *

+ * @return ZIP code + */ + public Integer getBranchZipCode () { + return this.branchZipCode; + } + + /** + * Setter for ZIP code\ + *

+ * @param branchZipCode ZIP code + */ + public void setBranchZipCode (final Integer branchZipCode) { + this.branchZipCode = branchZipCode; + } + + /** + * Getter for fax number's area code + *

+ * @return Fax number's area code + */ + public Integer getFaxAreaCode () { + return this.faxAreaCode; + } + + /** + * Setter for fax number's area code + *

+ * @param faxAreaCode Fax number's area code + */ + public void setFaxAreaCode (final Integer faxAreaCode) { + this.faxAreaCode = faxAreaCode; + } + + /** + * Getter for fax's country instance + *

+ * @return Fax' country instance + */ + public Country getFaxCountry () { + return this.faxCountry; + } + + /** + * Setter for fax's country instance + *

+ * @param faxCountry Fax' country instance + */ + public void setFaxCountry (final Country faxCountry) { + this.faxCountry = faxCountry; + } + + /** + * Getter for fax number + *

+ * @return Fax number + */ + public Long getFaxNumber () { + return this.faxNumber; + } + + /** + * Setter for fax number + *

+ * @param faxNumber Fax number + */ + public void setFaxNumber (final Long faxNumber) { + this.faxNumber = faxNumber; + } + + /** + * Getter for land-line number's area code + *

+ * @return Land-line number's area code + */ + public Integer getLandLineAreaCode () { + return this.landLineAreaCode; + } + + /** + * Setter for land-line number's area code + *

+ * @param landLineAreaCode Land-line number's area code + */ + public void setLandLineAreaCode (final Integer landLineAreaCode) { + this.landLineAreaCode = landLineAreaCode; + } + + /** + * Getter for land-line number's country instance + *

+ * @return Land-line number's country instance + */ + public Country getLandLineCountry () { + return this.landLineCountry; + } + + /** + * Setter for land-line number's country instance + *

+ * @param landLineCountry Land-line number's country instance + */ + public void setLandLineCountry (final Country landLineCountry) { + this.landLineCountry = landLineCountry; + } + + /** + * Getter for land-line number + *

+ * @return Land-line number + */ + public Long getLandLineNumber () { + return this.landLineNumber; + } + + /** + * Setter for land-line number + *

+ * @param landLineNumber Land-line number + */ + public void setLandLineNumber (final Long landLineNumber) { + this.landLineNumber = landLineNumber; + } + + /** + * Prepares an instance of a BranchOffice object (entity) with all data from + * this bean. If a complete fax number or land-line number was provided, it + * will be set in the instance as well. + *

+ * @return An instance of a BranchOffice class (entity) + */ + private BranchOffice createBranchOffice () { + // Create new branch office instance + final BranchOffice branchOffice = new CompanyBranchOffice(this.getBranchCity(), this.getBranchCompany(), this.getBranchCountry(), this.getBranchStreet(), this.getBranchZipCode(), this.getBranchHouseNumber()); + + // Add all other fields, too + branchOffice.setBranchContactEmployee(this.getBranchContactEmployee()); + branchOffice.setBranchEmailAddress(this.getBranchEmailAddress()); + branchOffice.setBranchStore(this.getBranchStore()); + branchOffice.setBranchSuiteNumber(this.getBranchSuiteNumber()); + branchOffice.setBranchUserOwner(this.getBranchUserOwner()); + + // Generate phone number + final DialableLandLineNumber landLine = new LandLineNumber(this.getLandLineCountry(), this.getLandLineAreaCode(), this.getLandLineNumber()); + final DialableFaxNumber fax = new FaxNumber(this.getFaxCountry(), this.getFaxAreaCode(), this.getFaxNumber()); + + // Don't set null or wrong references + if ((landLine instanceof DialableLandLineNumber) && (landLine.getPhoneCountry() instanceof Country) && (this.getLandLineAreaCode() != null) && (this.getLandLineNumber() != null) && (this.getLandLineAreaCode() > 0) && (this.getLandLineNumber() > 0)) { + // Now the number must be given + if (landLine.getPhoneAreaCode() == null) { + // Is null + throw new NullPointerException("phone.phoneAreaCode is null"); //NOI18N + } else if (landLine.getPhoneAreaCode() < 1) { + // Abort here + throw new IllegalArgumentException("phone.phoneAreaCode is zero or below."); //NOI18N + } else if (landLine.getPhoneNumber() == null) { + // Is null + throw new NullPointerException("phone.phoneNumber is null"); //NOI18N + } else if (landLine.getPhoneNumber() < 1) { + // Abort here + throw new IllegalArgumentException("phone.phoneNumber is zero or below."); //NOI18N + } + + // Set phone number + branchOffice.setBranchLandLineNumber(landLine); + } + + // Don't set null or wrong references + if ((fax instanceof DialableFaxNumber) && (fax.getPhoneCountry() instanceof Country) && (this.getFaxAreaCode() != null) && (this.getFaxNumber() != null) && (this.getFaxAreaCode() > 0) && (this.getFaxNumber() > 0)) { + // Now the number must be given + if (fax.getPhoneAreaCode() == null) { + // Is null + throw new NullPointerException("fax.phoneAreaCode is null"); //NOI18N + } else if (fax.getPhoneAreaCode() < 1) { + // Abort here + throw new IllegalArgumentException("fax.phoneAreaCode is zero or below."); //NOI18N + } else if (fax.getPhoneNumber() == null) { + // Is null + throw new NullPointerException("fax.phoneNumber is null"); //NOI18N + } else if (fax.getPhoneNumber() < 1) { + // Abort here + throw new IllegalArgumentException("fax.phoneNumber is zero or below."); //NOI18N + } + + // Set fax number + branchOffice.setBranchFaxNumber(fax); + } + + // Return fully prepared instance + return branchOffice; + } + + /** + * Checks whether the given branch office's address is already found in + * local cache. Please note that this method fully relies on the cache, so + * you must always fire proper events that add/update/delete entries in + * cache. + *

+ * @param branchOffice Branch office to check it's address + *

+ * @return Whether the address has been found + */ + private boolean isBranchOfficeCreatedByRequiredData (final BranchOffice branchOffice) { + // Get full list from other bean + final List branchOffices = this.branchOfficeController.allBranchOffices(); + + // Default is not found + boolean isFound = false; + + // Now check each entry + for (final BranchOffice bo : branchOffices) { + // Is same address? + if (BranchOffices.isSameAddress(bo, branchOffice)) { + // Found one + isFound = true; + break; + } + } + + // Return flag + return isFound; + } + +} diff --git a/src/java/org/mxchange/addressbook/beans/business/branchoffice/AddressbookAdminBranchOfficeWebRequestController.java b/src/java/org/mxchange/addressbook/beans/business/branchoffice/AddressbookAdminBranchOfficeWebRequestController.java new file mode 100644 index 00000000..3bfd195f --- /dev/null +++ b/src/java/org/mxchange/addressbook/beans/business/branchoffice/AddressbookAdminBranchOfficeWebRequestController.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2017 Roland Häder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package org.mxchange.addressbook.beans.business.branchoffice; + +import java.io.Serializable; + +/** + * An interface for administrative branch office controller + *

+ * @author Roland Häder + */ +public interface AddressbookAdminBranchOfficeWebRequestController extends Serializable { + +} diff --git a/src/java/org/mxchange/addressbook/beans/business/branchoffice/AddressbookBranchOfficeWebRequestBean.java b/src/java/org/mxchange/addressbook/beans/business/branchoffice/AddressbookBranchOfficeWebRequestBean.java new file mode 100644 index 00000000..c7a06ae5 --- /dev/null +++ b/src/java/org/mxchange/addressbook/beans/business/branchoffice/AddressbookBranchOfficeWebRequestBean.java @@ -0,0 +1,141 @@ +/* + * Copyright (C) 2017 Roland Häder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package org.mxchange.addressbook.beans.business.branchoffice; + +import fish.payara.cdi.jsr107.impl.NamedCache; +import java.text.MessageFormat; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import javax.annotation.PostConstruct; +import javax.cache.Cache; +import javax.ejb.EJB; +import javax.enterprise.context.RequestScoped; +import javax.enterprise.event.Observes; +import javax.inject.Inject; +import javax.inject.Named; +import org.mxchange.addressbook.beans.BaseAddressbookController; +import org.mxchange.jcontactsbusiness.events.branchoffice.added.ObservableBranchOfficeAddedEvent; +import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice; +import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOfficeSessionBeanRemote; + +/** + * A general bean for branch offices + *

+ * @author Roland Häder + */ +@Named ("branchOfficeController") +@RequestScoped +public class AddressbookBranchOfficeWebRequestBean extends BaseAddressbookController implements AddressbookBranchOfficeWebRequestController { + + /** + * Serial number + */ + private static final long serialVersionUID = 5_028_697_360_461L; + + /** + * EJB for administrative purposes + */ + @EJB (lookup = "java:global/jfinancials-ejb/branchOffice!org.mxchange.jcontactsbusiness.branchoffice.BranchOfficeSessionBeanRemote") + private BranchOfficeSessionBeanRemote branchOfficeBean; + + /** + * A list of all branch offices (globally) + */ + @Inject + @NamedCache (cacheName = "branchOfficeCache") + private Cache branchOfficeCache; + + /** + * Default constructor + */ + public AddressbookBranchOfficeWebRequestBean () { + // Call super constructor + super(); + } + + /** + * Observes events being fired when a branch office has been added. + *

+ * @param event Event being fired + *

+ * @throws NullPointerException If the parameter or it's carried instance is null + * @throws IllegalArgumentException If the branchId is zero or lower + */ + public void afterBranchOfficeAddedEvent (@Observes final ObservableBranchOfficeAddedEvent event) { + // Validate parameter + if (null == event) { + // Throw NPE + throw new NullPointerException("event is null"); //NOI18N + } else if (event.getBranchOffice() == null) { + // Throw NPE again + throw new NullPointerException("event.branchOffice is null"); //NOI18N + } else if (event.getBranchOffice().getBranchId() == null) { + // Throw it again + throw new NullPointerException("event.branchOffice.branchId is null"); //NOI18N + } else if (event.getBranchOffice().getBranchId() < 1) { + // Throw IAE + throw new IllegalArgumentException(MessageFormat.format("event.branchOffice.branchId={0} is not valid", event.getBranchOffice().getBranchId())); //NOI18N + } + + // Add instance to cache + this.branchOfficeCache.put(event.getBranchOffice().getBranchId(), event.getBranchOffice()); + } + + @Override + public List allBranchOffices () { + // Init list + final List list = new LinkedList<>(); + + // Get iterator + final Iterator> iterator = this.branchOfficeCache.iterator(); + + // Loop over all + while (iterator.hasNext()) { + // Get next entry + final Cache.Entry next = iterator.next(); + + // Add value to list + list.add(next.getValue()); + } + + // Return it + return list; + } + + /** + * Initializer method + */ + @PostConstruct + public void initializeList () { + // Is cache there? + if (!this.branchOfficeCache.iterator().hasNext()) { + // Get whole list + final List list = this.branchOfficeBean.allBranchOffices(); + + // Add all + for (final Iterator iterator = list.iterator(); iterator.hasNext();) { + // Get next element + final BranchOffice next = iterator.next(); + + // Add it to cache + this.branchOfficeCache.put(next.getBranchId(), next); + } + } + } + +} diff --git a/src/java/org/mxchange/addressbook/beans/business/branchoffice/AddressbookBranchOfficeWebRequestController.java b/src/java/org/mxchange/addressbook/beans/business/branchoffice/AddressbookBranchOfficeWebRequestController.java new file mode 100644 index 00000000..31922670 --- /dev/null +++ b/src/java/org/mxchange/addressbook/beans/business/branchoffice/AddressbookBranchOfficeWebRequestController.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2017 Roland Häder + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package org.mxchange.addressbook.beans.business.branchoffice; + +import java.io.Serializable; +import java.util.List; +import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice; + +/** + * An interface for general branch office controller + *

+ * @author Roland Häder + */ +public interface AddressbookBranchOfficeWebRequestController extends Serializable { + + /** + * Returns a list of all branch offices + *

+ * @return A list of all branch offices + */ + List allBranchOffices (); + +} diff --git a/src/java/org/mxchange/addressbook/beans/business/branchoffice/FinancialsAdminBranchOfficeWebRequestBean.java b/src/java/org/mxchange/addressbook/beans/business/branchoffice/FinancialsAdminBranchOfficeWebRequestBean.java deleted file mode 100644 index 6de5a4e4..00000000 --- a/src/java/org/mxchange/addressbook/beans/business/branchoffice/FinancialsAdminBranchOfficeWebRequestBean.java +++ /dev/null @@ -1,611 +0,0 @@ -/* - * Copyright (C) 2017 Roland Häder - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -package org.mxchange.addressbook.beans.business.branchoffice; - -import java.util.List; -import javax.ejb.EJB; -import javax.enterprise.context.RequestScoped; -import javax.enterprise.event.Event; -import javax.enterprise.inject.Any; -import javax.inject.Inject; -import javax.inject.Named; -import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData; -import org.mxchange.jcontactsbusiness.branchoffice.AdminBranchOfficeSessionBeanRemote; -import org.mxchange.jcontactsbusiness.branchoffice.BranchOffice; -import org.mxchange.jcontactsbusiness.branchoffice.BranchOfficeUtils; -import org.mxchange.jcontactsbusiness.branchoffice.CompanyBranchOffice; -import org.mxchange.jcontactsbusiness.employee.Employee; -import org.mxchange.jcontactsbusiness.events.branchoffice.added.BranchOfficeAddedEvent; -import org.mxchange.jcontactsbusiness.events.branchoffice.added.ObservableBranchOfficeAddedEvent; -import org.mxchange.jcontactsbusiness.exceptions.branchoffice.BranchOfficeAlreadyAddedException; -import org.mxchange.jcountry.data.Country; -import org.mxchange.jfinancials.beans.BaseFinancialsController; -import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber; -import org.mxchange.jphone.phonenumbers.fax.FaxNumber; -import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber; -import org.mxchange.jphone.phonenumbers.landline.LandLineNumber; -import org.mxchange.jusercore.model.user.User; - -/** - * An administrative bean for branch offices - *

- * @author Roland Häder - */ -@Named ("adminBranchOfficeController") -@RequestScoped -public class FinancialsAdminBranchOfficeWebRequestBean extends BaseFinancialsController implements FinancialsAdminBranchOfficeWebRequestController { - - /** - * Serial number - */ - private static final long serialVersionUID = 5_028_697_360_461L; - - /** - * EJB for administrative purposes - */ - @EJB (lookup = "java:global/jfinancials-ejb/adminBranchOffice!org.mxchange.jcontactsbusiness.branchoffice.AdminBranchOfficeSessionBeanRemote") - private AdminBranchOfficeSessionBeanRemote adminBranchOfficeBean; - - /** - * City - */ - private String branchCity; - - /** - * Assigned company for this branch office - */ - private BusinessBasicData branchCompany; - - /** - * Contact person in branch office - */ - private Employee branchContactEmployee; - - /** - * Country - */ - private Country branchCountry; - - /** - * Email address - */ - private String branchEmailAddress; - - /** - * House number - */ - private Short branchHouseNumber; - - /** - * An event being fired when a branch office has been successfully added - */ - @Inject - @Any - private Event branchOfficeAddedEvent; - - /** - * A general branch office controller (backing bean) - */ - @Inject - private FinancialsBranchOfficeWebRequestController branchOfficeController; - - /** - * Store - */ - private Short branchStore; - - /** - * Branch office street name - */ - private String branchStreet; - - /** - * Suite number - */ - private Short branchSuiteNumber; - - /** - * Owning user instance (which this branch office is assigned to) - */ - private User branchUserOwner; - - /** - * ZIP code - */ - private Integer branchZipCode; - - /** - * Area code for fax number - */ - private Integer faxAreaCode; - - /** - * Country for fax number - */ - private Country faxCountry; - - /** - * Dial number for fax number - */ - private Long faxNumber; - - /** - * Area code for land-line number - */ - private Integer landLineAreaCode; - - /** - * Country for land-line number - */ - private Country landLineCountry; - - /** - * Dial number for land-line number - */ - private Long landLineNumber; - - /** - * Default constructor - */ - public FinancialsAdminBranchOfficeWebRequestBean () { - // Call super constructor - super(); - } - - /** - * Adds branch office with all data from this backing bean. First this - * action method will validate if the branch office's address is already - * registered and if found, it will output a proper faces message. - *

- * @return Redirect outcome - */ - public String addBranchOffice () { - // Get instance - final BranchOffice branchOffice = this.createBranchOffice(); - - // Is the branch office not created yet? - if (this.isBranchOfficeCreatedByRequiredData(branchOffice)) { - // Then show proper faces message - this.showFacesMessage("form_admin_add_branch_office:branchStreet", "ADMIN_BRANCH_OFFICE_ALREADY_CREATED"); //NOI18N - return ""; //NOI18N - } - - // Delcare updated instance - final BranchOffice updatedOffice; - - try { - // Try to call EJB - updatedOffice = this.adminBranchOfficeBean.addBranchOffice(branchOffice); - } catch (final BranchOfficeAlreadyAddedException ex) { - // Output message - this.showFacesMessage("form_admin_add_branch_office:branchStreet", "ADMIN_BRANCH_OFFICE_ALREADY_CREATED"); //NOI18N - return ""; //NOI18N - } - - // Fire event - this.branchOfficeAddedEvent.fire(new BranchOfficeAddedEvent(updatedOffice)); - - // Redirect to list - return "admin_list_branch_offices"; //NOI18N - } - - /** - * Getter for city - *

- * @return City - */ - public String getBranchCity () { - return this.branchCity; - } - - /** - * Setter for city - *

- * @param branchCity City - */ - public void setBranchCity (final String branchCity) { - this.branchCity = branchCity; - } - - /** - * Getter for basic company data - *

- * @return Basic company data - */ - public BusinessBasicData getBranchCompany () { - return this.branchCompany; - } - - /** - * Setter for basic company data - *

- * @param branchCompany Basic company data - */ - public void setBranchCompany (final BusinessBasicData branchCompany) { - this.branchCompany = branchCompany; - } - - /** - * Getter for branch office contact person - *

- * @return Branch office contact person - */ - public Employee getBranchContactEmployee () { - return this.branchContactEmployee; - } - - /** - * Setter for branch office contact person - *

- * @param branchContactEmployee Branch office contact person - */ - public void setBranchContactEmployee (final Employee branchContactEmployee) { - this.branchContactEmployee = branchContactEmployee; - } - - /** - * Getter for country - *

- * @return Country - */ - public Country getBranchCountry () { - return this.branchCountry; - } - - /** - * Setter for country - *

- * @param branchCountry Country - */ - public void setBranchCountry (final Country branchCountry) { - this.branchCountry = branchCountry; - } - - /** - * Getter for email address - *

- * @return Email address - */ - public String getBranchEmailAddress () { - return this.branchEmailAddress; - } - - /** - * Getter for email address - *

- * @param branchEmailAddress Email address - */ - public void setBranchEmailAddress (final String branchEmailAddress) { - this.branchEmailAddress = branchEmailAddress; - } - - /** - * Getter for house number - *

- * @return House number - */ - public Short getBranchHouseNumber () { - return this.branchHouseNumber; - } - - /** - * Setter for house number - *

- * @param branchHouseNumber House number - */ - public void setBranchHouseNumber (final Short branchHouseNumber) { - this.branchHouseNumber = branchHouseNumber; - } - - /** - * Getter for store - *

- * @return Store - */ - public Short getBranchStore () { - return this.branchStore; - } - - /** - * Setter for store - *

- * @param branchStore Store - */ - public void setBranchStore (final Short branchStore) { - this.branchStore = branchStore; - } - - /** - * Getter for street name - *

- * @return Street name - */ - public String getBranchStreet () { - return this.branchStreet; - } - - /** - * Setter for street name - *

- * @param branchStreet Street name - */ - public void setBranchStreet (final String branchStreet) { - this.branchStreet = branchStreet; - } - - /** - * Getter for suite number - *

- * @return Suite number - */ - public Short getBranchSuiteNumber () { - return this.branchSuiteNumber; - } - - /** - * Setter for suite number - *

- * @param branchSuiteNumber Suite number - */ - public void setBranchSuiteNumber (final Short branchSuiteNumber) { - this.branchSuiteNumber = branchSuiteNumber; - } - - /** - * Getter for owning user instance - *

- * @return Owning user instance - */ - public User getBranchUserOwner () { - return this.branchUserOwner; - } - - /** - * Setter for owning user instance - *

- * @param branchUserOwner Owning user instance - */ - public void setBranchUserOwner (final User branchUserOwner) { - this.branchUserOwner = branchUserOwner; - } - - /** - * Getter for ZIP code\ - *

- * @return ZIP code - */ - public Integer getBranchZipCode () { - return this.branchZipCode; - } - - /** - * Setter for ZIP code\ - *

- * @param branchZipCode ZIP code - */ - public void setBranchZipCode (final Integer branchZipCode) { - this.branchZipCode = branchZipCode; - } - - /** - * Getter for fax number's area code - *

- * @return Fax number's area code - */ - public Integer getFaxAreaCode () { - return this.faxAreaCode; - } - - /** - * Setter for fax number's area code - *

- * @param faxAreaCode Fax number's area code - */ - public void setFaxAreaCode (final Integer faxAreaCode) { - this.faxAreaCode = faxAreaCode; - } - - /** - * Getter for fax's country instance - *

- * @return Fax' country instance - */ - public Country getFaxCountry () { - return this.faxCountry; - } - - /** - * Setter for fax's country instance - *

- * @param faxCountry Fax' country instance - */ - public void setFaxCountry (final Country faxCountry) { - this.faxCountry = faxCountry; - } - - /** - * Getter for fax number - *

- * @return Fax number - */ - public Long getFaxNumber () { - return this.faxNumber; - } - - /** - * Setter for fax number - *

- * @param faxNumber Fax number - */ - public void setFaxNumber (final Long faxNumber) { - this.faxNumber = faxNumber; - } - - /** - * Getter for land-line number's area code - *

- * @return Land-line number's area code - */ - public Integer getLandLineAreaCode () { - return this.landLineAreaCode; - } - - /** - * Setter for land-line number's area code - *

- * @param landLineAreaCode Land-line number's area code - */ - public void setLandLineAreaCode (final Integer landLineAreaCode) { - this.landLineAreaCode = landLineAreaCode; - } - - /** - * Getter for land-line number's country instance - *

- * @return Land-line number's country instance - */ - public Country getLandLineCountry () { - return this.landLineCountry; - } - - /** - * Setter for land-line number's country instance - *

- * @param landLineCountry Land-line number's country instance - */ - public void setLandLineCountry (final Country landLineCountry) { - this.landLineCountry = landLineCountry; - } - - /** - * Getter for land-line number - *

- * @return Land-line number - */ - public Long getLandLineNumber () { - return this.landLineNumber; - } - - /** - * Setter for land-line number - *

- * @param landLineNumber Land-line number - */ - public void setLandLineNumber (final Long landLineNumber) { - this.landLineNumber = landLineNumber; - } - - /** - * Prepares an instance of a BranchOffice object (entity) with all data from - * this bean. If a complete fax number or land-line number was provided, it - * will be set in the instance as well. - *

- * @return An instance of a BranchOffice class (entity) - */ - private BranchOffice createBranchOffice () { - // Create new branch office instance - final BranchOffice branchOffice = new CompanyBranchOffice(this.getBranchCity(), this.getBranchCompany(), this.getBranchCountry(), this.getBranchStreet(), this.getBranchZipCode(), this.getBranchHouseNumber()); - - // Add all other fields, too - branchOffice.setBranchContactEmployee(this.getBranchContactEmployee()); - branchOffice.setBranchEmailAddress(this.getBranchEmailAddress()); - branchOffice.setBranchStore(this.getBranchStore()); - branchOffice.setBranchSuiteNumber(this.getBranchSuiteNumber()); - branchOffice.setBranchUserOwner(this.getBranchUserOwner()); - - // Generate phone number - final DialableLandLineNumber landLine = new LandLineNumber(this.getLandLineCountry(), this.getLandLineAreaCode(), this.getLandLineNumber()); - final DialableFaxNumber fax = new FaxNumber(this.getFaxCountry(), this.getFaxAreaCode(), this.getFaxNumber()); - - // Don't set null or wrong references - if ((landLine instanceof DialableLandLineNumber) && (landLine.getPhoneCountry() instanceof Country) && (this.getLandLineAreaCode() != null) && (this.getLandLineNumber() != null) && (this.getLandLineAreaCode() > 0) && (this.getLandLineNumber() > 0)) { - // Now the number must be given - if (landLine.getPhoneAreaCode() == null) { - // Is null - throw new NullPointerException("phone.phoneAreaCode is null"); //NOI18N - } else if (landLine.getPhoneAreaCode() < 1) { - // Abort here - throw new IllegalArgumentException("phone.phoneAreaCode is zero or below."); //NOI18N - } else if (landLine.getPhoneNumber() == null) { - // Is null - throw new NullPointerException("phone.phoneNumber is null"); //NOI18N - } else if (landLine.getPhoneNumber() < 1) { - // Abort here - throw new IllegalArgumentException("phone.phoneNumber is zero or below."); //NOI18N - } - - // Set phone number - branchOffice.setBranchLandLineNumber(landLine); - } - - // Don't set null or wrong references - if ((fax instanceof DialableFaxNumber) && (fax.getPhoneCountry() instanceof Country) && (this.getFaxAreaCode() != null) && (this.getFaxNumber() != null) && (this.getFaxAreaCode() > 0) && (this.getFaxNumber() > 0)) { - // Now the number must be given - if (fax.getPhoneAreaCode() == null) { - // Is null - throw new NullPointerException("fax.phoneAreaCode is null"); //NOI18N - } else if (fax.getPhoneAreaCode() < 1) { - // Abort here - throw new IllegalArgumentException("fax.phoneAreaCode is zero or below."); //NOI18N - } else if (fax.getPhoneNumber() == null) { - // Is null - throw new NullPointerException("fax.phoneNumber is null"); //NOI18N - } else if (fax.getPhoneNumber() < 1) { - // Abort here - throw new IllegalArgumentException("fax.phoneNumber is zero or below."); //NOI18N - } - - // Set fax number - branchOffice.setBranchFaxNumber(fax); - } - - // Return fully prepared instance - return branchOffice; - } - - /** - * Checks whether the given branch office's address is already found in - * local cache. Please note that this method fully relies on the cache, so - * you must always fire proper events that add/update/delete entries in - * cache. - *

- * @param branchOffice Branch office to check it's address - *

- * @return Whether the address has been found - */ - private boolean isBranchOfficeCreatedByRequiredData (final BranchOffice branchOffice) { - // Get full list from other bean - final List branchOffices = this.branchOfficeController.allBranchOffices(); - - // Default is not found - boolean isFound = false; - - // Now check each entry - for (final BranchOffice bo : branchOffices) { - // Is same address? - if (BranchOfficeUtils.isSameAddress(bo, branchOffice)) { - // Found one - isFound = true; - break; - } - } - - // Return flag - return isFound; - } - -} diff --git a/src/java/org/mxchange/addressbook/beans/business/branchoffice/FinancialsAdminBranchOfficeWebRequestController.java b/src/java/org/mxchange/addressbook/beans/business/branchoffice/FinancialsAdminBranchOfficeWebRequestController.java deleted file mode 100644 index 79397305..00000000 --- a/src/java/org/mxchange/addressbook/beans/business/branchoffice/FinancialsAdminBranchOfficeWebRequestController.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2017 Roland Häder - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -package org.mxchange.addressbook.beans.business.branchoffice; - -import java.io.Serializable; - -/** - * An interface for administrative branch office controller - *

- * @author Roland Häder - */ -public interface FinancialsAdminBranchOfficeWebRequestController extends Serializable { - -} diff --git a/src/java/org/mxchange/addressbook/beans/business/branchoffice/FinancialsBranchOfficeWebRequestBean.java b/src/java/org/mxchange/addressbook/beans/business/branchoffice/FinancialsBranchOfficeWebRequestBean.java deleted file mode 100644 index 9c2b3f99..00000000 --- a/src/java/org/mxchange/addressbook/beans/business/branchoffice/FinancialsBranchOfficeWebRequestBean.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (C) 2017 Roland Häder - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -package org.mxchange.addressbook.beans.business.branchoffice; - -import fish.payara.cdi.jsr107.impl.NamedCache; -import java.text.MessageFormat; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import javax.annotation.PostConstruct; -import javax.cache.Cache; -import javax.ejb.EJB; -import javax.enterprise.context.RequestScoped; -import javax.enterprise.event.Observes; -import javax.inject.Inject; -import javax.inject.Named; -import org.mxchange.jcontactsbusiness.branchoffice.BranchOffice; -import org.mxchange.jcontactsbusiness.branchoffice.BranchOfficeSessionBeanRemote; -import org.mxchange.jcontactsbusiness.events.branchoffice.added.ObservableBranchOfficeAddedEvent; -import org.mxchange.jfinancials.beans.BaseFinancialsController; - -/** - * A general bean for branch offices - *

- * @author Roland Häder - */ -@Named ("branchOfficeController") -@RequestScoped -public class FinancialsBranchOfficeWebRequestBean extends BaseFinancialsController implements FinancialsBranchOfficeWebRequestController { - - /** - * Serial number - */ - private static final long serialVersionUID = 5_028_697_360_461L; - - /** - * EJB for administrative purposes - */ - @EJB (lookup = "java:global/jfinancials-ejb/branchOffice!org.mxchange.jcontactsbusiness.branchoffice.BranchOfficeSessionBeanRemote") - private BranchOfficeSessionBeanRemote branchOfficeBean; - - /** - * A list of all branch offices (globally) - */ - @Inject - @NamedCache (cacheName = "branchOfficeCache") - private Cache branchOfficeCache; - - /** - * Default constructor - */ - public FinancialsBranchOfficeWebRequestBean () { - // Call super constructor - super(); - } - - /** - * Observes events being fired when a branch office has been added. - *

- * @param event Event being fired - *

- * @throws NullPointerException If the parameter or it's carried instance is null - * @throws IllegalArgumentException If the branchId is zero or lower - */ - public void afterBranchOfficeAddedEvent (@Observes final ObservableBranchOfficeAddedEvent event) { - // Validate parameter - if (null == event) { - // Throw NPE - throw new NullPointerException("event is null"); //NOI18N - } else if (event.getBranchOffice() == null) { - // Throw NPE again - throw new NullPointerException("event.branchOffice is null"); //NOI18N - } else if (event.getBranchOffice().getBranchId() == null) { - // Throw it again - throw new NullPointerException("event.branchOffice.branchId is null"); //NOI18N - } else if (event.getBranchOffice().getBranchId() < 1) { - // Throw IAE - throw new IllegalArgumentException(MessageFormat.format("event.branchOffice.branchId={0} is not valid", event.getBranchOffice().getBranchId())); //NOI18N - } - - // Add instance to cache - this.branchOfficeCache.put(event.getBranchOffice().getBranchId(), event.getBranchOffice()); - } - - @Override - public List allBranchOffices () { - // Init list - final List list = new LinkedList<>(); - - // Get iterator - final Iterator> iterator = this.branchOfficeCache.iterator(); - - // Loop over all - while (iterator.hasNext()) { - // Get next entry - final Cache.Entry next = iterator.next(); - - // Add value to list - list.add(next.getValue()); - } - - // Return it - return list; - } - - /** - * Initializer method - */ - @PostConstruct - public void initializeList () { - // Is cache there? - if (!this.branchOfficeCache.iterator().hasNext()) { - // Get whole list - final List list = this.branchOfficeBean.allBranchOffices(); - - // Add all - for (final Iterator iterator = list.iterator(); iterator.hasNext();) { - // Get next element - final BranchOffice next = iterator.next(); - - // Add it to cache - this.branchOfficeCache.put(next.getBranchId(), next); - } - } - } - -} diff --git a/src/java/org/mxchange/addressbook/beans/business/branchoffice/FinancialsBranchOfficeWebRequestController.java b/src/java/org/mxchange/addressbook/beans/business/branchoffice/FinancialsBranchOfficeWebRequestController.java deleted file mode 100644 index afac4351..00000000 --- a/src/java/org/mxchange/addressbook/beans/business/branchoffice/FinancialsBranchOfficeWebRequestController.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2017 Roland Häder - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -package org.mxchange.addressbook.beans.business.branchoffice; - -import java.io.Serializable; -import java.util.List; -import org.mxchange.jcontactsbusiness.branchoffice.BranchOffice; - -/** - * An interface for general branch office controller - *

- * @author Roland Häder - */ -public interface FinancialsBranchOfficeWebRequestController extends Serializable { - - /** - * Returns a list of all branch offices - *

- * @return A list of all branch offices - */ - List allBranchOffices (); - -} diff --git a/src/java/org/mxchange/addressbook/beans/contact/phone/AddressbookContactPhoneWebRequestBean.java b/src/java/org/mxchange/addressbook/beans/contact/phone/AddressbookContactPhoneWebRequestBean.java index f6dfb028..df70da6d 100644 --- a/src/java/org/mxchange/addressbook/beans/contact/phone/AddressbookContactPhoneWebRequestBean.java +++ b/src/java/org/mxchange/addressbook/beans/contact/phone/AddressbookContactPhoneWebRequestBean.java @@ -168,7 +168,7 @@ public class AddressbookContactPhoneWebRequestBean extends BaseAddressbookContro } // Remove it from list - this.contacts.remove(event.getUnlinkedFaxNumber()); + this.contactsPhoneCache.remove(event.getUnlinkedFaxNumber()); // Clear all data this.clear(); @@ -196,7 +196,7 @@ public class AddressbookContactPhoneWebRequestBean extends BaseAddressbookContro } // Remove it from list - this.contacts.remove(event.getUnlinkedLandLineNumber()); + this.contactsPhoneCache.remove(event.getUnlinkedLandLineNumber()); // Clear all data this.clear(); @@ -224,7 +224,7 @@ public class AddressbookContactPhoneWebRequestBean extends BaseAddressbookContro } // Remove it from list - this.contacts.remove(event.getUnlinkedMobileNumber()); + this.contactsPhoneCache.remove(event.getUnlinkedMobileNumber()); // Clear all data this.clear(); @@ -343,9 +343,9 @@ public class AddressbookContactPhoneWebRequestBean extends BaseAddressbookContro final DialableFaxNumber number = this.getFaxNumber(); // Is cache there? - if (this.contacts.containsKey(number)) { + if (this.contactsPhoneCache.containsKey(number)) { // Return cached version - return this.contacts.get(number); + return this.contactsPhoneCache.get(number); } else { // Ask bean final List list = new LinkedList<>(); @@ -360,7 +360,7 @@ public class AddressbookContactPhoneWebRequestBean extends BaseAddressbookContro } // Store result in cache - this.contacts.put(number, list); + this.contactsPhoneCache.put(number, list); // Return now-cached list return list; @@ -377,9 +377,9 @@ public class AddressbookContactPhoneWebRequestBean extends BaseAddressbookContro final DialableLandLineNumber number = this.getLandLineNumber(); // Is cache there? - if (this.contacts.containsKey(number)) { + if (this.contactsPhoneCache.containsKey(number)) { // Return cached version - return this.contacts.get(number); + return this.contactsPhoneCache.get(number); } else { // Ask bean final List list = new LinkedList<>(); @@ -394,7 +394,7 @@ public class AddressbookContactPhoneWebRequestBean extends BaseAddressbookContro } // Store result in cache - this.contacts.put(number, list); + this.contactsPhoneCache.put(number, list); // Return now-cached list return list; @@ -411,9 +411,9 @@ public class AddressbookContactPhoneWebRequestBean extends BaseAddressbookContro final DialableMobileNumber number = this.getMobileNumber(); // Is cache there? - if (this.contacts.containsKey(number)) { + if (this.contactsPhoneCache.containsKey(number)) { // Return cached version - return this.contacts.get(number); + return this.contactsPhoneCache.get(number); } else { // Ask bean final List list = new LinkedList<>(); @@ -428,7 +428,7 @@ public class AddressbookContactPhoneWebRequestBean extends BaseAddressbookContro } // Store result in cache - this.contacts.put(number, list); + this.contactsPhoneCache.put(number, list); // Return now-cached list return list;