From 5e6b302f9f8605e85350f8d723a434b3acc3598a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Tue, 23 Aug 2016 12:54:52 +0200 Subject: [PATCH] Please cherry-pick: - added more controller (managed bean) methods for deleting/updating fax/land-line numbers MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- .../phone/JobsAdminPhoneWebRequestBean.java | 263 +++++++++++++++++- .../JobsAdminPhoneWebRequestController.java | 36 +++ .../fax/JobsFaxNumberConverter.java} | 10 +- .../JobsLandLineNumberConverter.java} | 10 +- .../debug/JobsDebugLifeCycleListener.java} | 8 +- 5 files changed, 312 insertions(+), 15 deletions(-) rename src/java/{de/chotime/landingpage/converter/fax/LandingFaxNumberConverter.java => org/mxchange/jjobs/converter/fax/JobsFaxNumberConverter.java} (95%) rename src/java/{de/chotime/landingpage/converter/landline/LandingLandLineNumberConverter.java => org/mxchange/jjobs/converter/landline/JobsLandLineNumberConverter.java} (94%) rename src/java/{de/chotime/landingpage/debug/LandingDebugLifeCycleListener.java => org/mxchange/jjobs/debug/JobsDebugLifeCycleListener.java} (86%) diff --git a/src/java/org/mxchange/jjobs/beans/phone/JobsAdminPhoneWebRequestBean.java b/src/java/org/mxchange/jjobs/beans/phone/JobsAdminPhoneWebRequestBean.java index 596d0a3e..10397cf5 100644 --- a/src/java/org/mxchange/jjobs/beans/phone/JobsAdminPhoneWebRequestBean.java +++ b/src/java/org/mxchange/jjobs/beans/phone/JobsAdminPhoneWebRequestBean.java @@ -31,10 +31,18 @@ import javax.naming.NamingException; import org.mxchange.jcountry.data.Country; import org.mxchange.jjobs.beans.BaseJobsController; import org.mxchange.jjobs.beans.helper.JobsWebViewController; +import org.mxchange.jphone.events.fax.deleted.AdminDeletedFaxNumberEvent; +import org.mxchange.jphone.events.fax.deleted.AdminFaxNumberDeletedEvent; import org.mxchange.jphone.events.fax.removed.AdminFaxNumberRemovedFromListEvent; import org.mxchange.jphone.events.fax.removed.AdminRemoveFaxNumberFromListEvent; +import org.mxchange.jphone.events.fax.updated.AdminFaxNumberUpdatedEvent; +import org.mxchange.jphone.events.fax.updated.AdminUpdatedFaxNumberEvent; +import org.mxchange.jphone.events.landline.deleted.AdminDeletedLandLineNumberEvent; +import org.mxchange.jphone.events.landline.deleted.AdminLandLineNumberDeletedEvent; import org.mxchange.jphone.events.landline.removed.AdminLandLineNumberRemovedFromListEvent; import org.mxchange.jphone.events.landline.removed.AdminRemoveLandLineNumberFromListEvent; +import org.mxchange.jphone.events.landline.updated.AdminLandLineNumberUpdatedEvent; +import org.mxchange.jphone.events.landline.updated.AdminUpdatedLandLineNumberEvent; import org.mxchange.jphone.events.mobile.deleted.AdminDeletedMobileNumberEvent; import org.mxchange.jphone.events.mobile.deleted.AdminMobileNumberDeletedEvent; import org.mxchange.jphone.events.mobile.remove.AdminMobileNumberRemovedFromListEvent; @@ -92,6 +100,33 @@ public class JobsAdminPhoneWebRequestBean extends BaseJobsController implements */ private DialableMobileNumber choosenMobileNumber; + /** + * Event being fired when an administrator has deleted fax number + */ + @Inject + @Any + private Event faxNumberDeletedEvent; + + + /** + * Event being fired when an administrator has updated fax number + */ + @Inject + @Any + private Event faxNumberUpdatedEvent; + /** + * Event being fired when an administrator has deleted land-line number + */ + @Inject + @Any + private Event landLineNumberDeletedEvent; + + /** + * Event being fired when an administrator has updated fax number + */ + @Inject + @Any + private Event landLineNumberUpdatedEvent; /** * Event being fired when an administrator has deleted mobile number */ @@ -100,7 +135,7 @@ public class JobsAdminPhoneWebRequestBean extends BaseJobsController implements private Event mobileNumberDeletedEvent; /** - * Event being fired when an administrator has updated mobile number + * Event being fired when an administrator has updated land-line number */ @Inject @Any @@ -211,6 +246,102 @@ public class JobsAdminPhoneWebRequestBean extends BaseJobsController implements return list; } + @Override + public String deleteFaxData (final DialableFaxNumber faxNumber) { + // Log message + System.out.println(MessageFormat.format("{0}.deleteFaxData: faxNumber={1} - CALLED!", this.getClass().getSimpleName(), faxNumber)); //NOI18N + + // Is all data set + if (faxNumber == null) { + // Not set, throw NPE + throw new NullPointerException("faxNumber is null"); //NOI18N + } else if (faxNumber.getPhoneId() == null) { + // Throw NPE again + throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N + } else if (faxNumber.getPhoneId() < 1) { + // Invalid number + throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", faxNumber.getPhoneId())); //NOI18N + } else if (faxNumber.getPhoneCountry() == null) { + // Throw NPE + throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N + } else if (faxNumber.getPhoneCountry().getCountryId() == null) { + // Throw NPE + throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N + } else if (faxNumber.getPhoneCountry().getCountryId() < 1) { + // Throw NPE + throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", faxNumber.getPhoneCountry().getCountryId())); //NOI18N + } else if (faxNumber.getPhoneAreaCode() == null) { + // ... throw again + throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N + } else if (faxNumber.getPhoneAreaCode() < 1) { + // Id not valid + throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", faxNumber.getPhoneAreaCode())); //NOI18N + } else if (faxNumber.getPhoneNumber() == null) { + // Throw NPE again + throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N + } else if (faxNumber.getPhoneNumber() < 1) { + // Throw NPE again + throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", faxNumber.getPhoneNumber())); //NOI18N + } + + // Call EJB + this.adminPhoneBean.deleteFaxData(faxNumber); + + // Fire event + this.faxNumberDeletedEvent.fire(new AdminFaxNumberDeletedEvent(faxNumber)); + + // All fine, redirect + return "admin_list_fax"; //NOI18N + } + + @Override + public String deleteLandLineData (final DialableLandLineNumber landLineNumber) { + // Log message + System.out.println(MessageFormat.format("{0}.deleteLandLineData: landLineNumber={1} - CALLED!", this.getClass().getSimpleName(), landLineNumber)); //NOI18N + + // Is all data set + if (landLineNumber == null) { + // Not set, throw NPE + throw new NullPointerException("landLineNumber is null"); //NOI18N + } else if (landLineNumber.getPhoneId() == null) { + // Throw NPE again + throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N + } else if (landLineNumber.getPhoneId() < 1) { + // Invalid number + throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", landLineNumber.getPhoneId())); //NOI18N + } else if (landLineNumber.getPhoneCountry() == null) { + // Throw NPE + throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N + } else if (landLineNumber.getPhoneCountry().getCountryId() == null) { + // Throw NPE + throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N + } else if (landLineNumber.getPhoneCountry().getCountryId() < 1) { + // Throw NPE + throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", landLineNumber.getPhoneCountry().getCountryId())); //NOI18N + } else if (landLineNumber.getPhoneAreaCode() == null) { + // ... throw again + throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N + } else if (landLineNumber.getPhoneAreaCode() < 1) { + // Id not valid + throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", landLineNumber.getPhoneAreaCode())); //NOI18N + } else if (landLineNumber.getPhoneNumber() == null) { + // Throw NPE again + throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N + } else if (landLineNumber.getPhoneNumber() < 1) { + // Throw NPE again + throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", landLineNumber.getPhoneNumber())); //NOI18N + } + + // Call EJB + this.adminPhoneBean.deleteLandLineData(landLineNumber); + + // Fire event + this.landLineNumberDeletedEvent.fire(new AdminLandLineNumberDeletedEvent(landLineNumber)); + + // All fine, redirect + return "admin_list_landline"; //NOI18N + } + @Override public String deleteMobileData (final DialableMobileNumber mobileNumber) { // Log message @@ -253,6 +384,136 @@ public class JobsAdminPhoneWebRequestBean extends BaseJobsController implements return "admin_list_mobile"; //NOI18N } + @Override + public String editFaxData (final DialableFaxNumber faxNumber) { + // Log message + System.out.println(MessageFormat.format("{0}.deleteFaxData: faxNumber={1} - CALLED!", this.getClass().getSimpleName(), faxNumber)); //NOI18N + + // Is all data set + if (faxNumber == null) { + // Not set, throw NPE + throw new NullPointerException("faxNumber is null"); //NOI18N + } else if (faxNumber.getPhoneId() == null) { + // Throw NPE again + throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N + } else if (faxNumber.getPhoneId() < 1) { + // Invalid number + throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", faxNumber.getPhoneId())); //NOI18N + } else if (faxNumber.getPhoneCountry() == null) { + // Throw NPE + throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N + } else if (faxNumber.getPhoneCountry().getCountryId() == null) { + // Throw NPE + throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N + } else if (faxNumber.getPhoneCountry().getCountryId() < 1) { + // Throw NPE + throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", faxNumber.getPhoneCountry().getCountryId())); //NOI18N + } else if (faxNumber.getPhoneAreaCode() == null) { + // ... throw again + throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N + } else if (faxNumber.getPhoneAreaCode() < 1) { + // Id not valid + throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", faxNumber.getPhoneAreaCode())); //NOI18N + } else if (faxNumber.getPhoneNumber() == null) { + // Throw NPE again + throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N + } else if (faxNumber.getPhoneNumber() < 1) { + // Throw NPE again + throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", faxNumber.getPhoneNumber())); //NOI18N + } + + // Is the mobile provider and number the same? + if ((Objects.equals(this.getPhoneCountry(), faxNumber.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), faxNumber.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), faxNumber.getPhoneNumber()))) { + // Log message + System.out.println(MessageFormat.format("{0}.editFaxData: No difference - EXIT!", this.getClass().getSimpleName())); //NOI18N + + // Show message + this.showFacesMessage("form_edit_fax:faxNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N + + // No difference in both together, no need to edit + return ""; //NOI18N + } + + // Set all data + faxNumber.setPhoneCountry(this.getPhoneCountry()); + faxNumber.setPhoneAreaCode(this.getPhoneAreaCode()); + faxNumber.setPhoneNumber(this.getPhoneNumber()); + + // Send to bean + DialableFaxNumber updatedNumber = this.adminPhoneBean.updateFaxData(faxNumber); + + // Fire event + this.faxNumberUpdatedEvent.fire(new AdminFaxNumberUpdatedEvent(updatedNumber)); + + // All fine, redirect + return "admin_show_fax"; //NOI18N + } + + @Override + public String editLandLineData (final DialableLandLineNumber landLineNumber) { + // Log message + System.out.println(MessageFormat.format("{0}.deleteLandLineData: landLineNumber={1} - CALLED!", this.getClass().getSimpleName(), landLineNumber)); //NOI18N + + // Is all data set + if (landLineNumber == null) { + // Not set, throw NPE + throw new NullPointerException("landLineNumber is null"); //NOI18N + } else if (landLineNumber.getPhoneId() == null) { + // Throw NPE again + throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N + } else if (landLineNumber.getPhoneId() < 1) { + // Invalid number + throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", landLineNumber.getPhoneId())); //NOI18N + } else if (landLineNumber.getPhoneCountry() == null) { + // Throw NPE + throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N + } else if (landLineNumber.getPhoneCountry().getCountryId() == null) { + // Throw NPE + throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N + } else if (landLineNumber.getPhoneCountry().getCountryId() < 1) { + // Throw NPE + throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", landLineNumber.getPhoneCountry().getCountryId())); //NOI18N + } else if (landLineNumber.getPhoneAreaCode() == null) { + // ... throw again + throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N + } else if (landLineNumber.getPhoneAreaCode() < 1) { + // Id not valid + throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", landLineNumber.getPhoneAreaCode())); //NOI18N + } else if (landLineNumber.getPhoneNumber() == null) { + // Throw NPE again + throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N + } else if (landLineNumber.getPhoneNumber() < 1) { + // Throw NPE again + throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", landLineNumber.getPhoneNumber())); //NOI18N + } + + // Is the mobile provider and number the same? + if ((Objects.equals(this.getPhoneCountry(), landLineNumber.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), landLineNumber.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), landLineNumber.getPhoneNumber()))) { + // Log message + System.out.println(MessageFormat.format("{0}.editLandLineData: No difference - EXIT!", this.getClass().getSimpleName())); //NOI18N + + // Show message + this.showFacesMessage("form_edit_landline:landLineNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED"); //NOI18N + + // No difference in both together, no need to edit + return ""; //NOI18N + } + + // Set all data + landLineNumber.setPhoneCountry(this.getPhoneCountry()); + landLineNumber.setPhoneAreaCode(this.getPhoneAreaCode()); + landLineNumber.setPhoneNumber(this.getPhoneNumber()); + + // Send to bean + DialableLandLineNumber updatedNumber = this.adminPhoneBean.updateLandLineData(landLineNumber); + + // Fire event + this.landLineNumberUpdatedEvent.fire(new AdminLandLineNumberUpdatedEvent(updatedNumber)); + + // All fine, redirect + return "admin_show_landline"; //NOI18N + } + @Override public String editMobileData (final DialableMobileNumber mobileNumber) { // Log message diff --git a/src/java/org/mxchange/jjobs/beans/phone/JobsAdminPhoneWebRequestController.java b/src/java/org/mxchange/jjobs/beans/phone/JobsAdminPhoneWebRequestController.java index 436a48d1..5f068c4a 100644 --- a/src/java/org/mxchange/jjobs/beans/phone/JobsAdminPhoneWebRequestController.java +++ b/src/java/org/mxchange/jjobs/beans/phone/JobsAdminPhoneWebRequestController.java @@ -55,6 +55,42 @@ public interface JobsAdminPhoneWebRequestController extends Serializable { */ List allNonLinkedLandLineNumbers (); + /** + * Deletes given fax entry data + *

+ * @param faxNumber Fax number to delete + *

+ * @return Redirect outcome + */ + String deleteFaxData (final DialableFaxNumber faxNumber); + + /** + * Changes fax entry data + *

+ * @param faxNumber Fax number to change data + *

+ * @return Redirect outcome + */ + String editFaxData (final DialableFaxNumber faxNumber); + + /** + * Deletes given land-line entry data + *

+ * @param landLineNumber Land-line number to delete + *

+ * @return Redirect outcome + */ + String deleteLandLineData (final DialableLandLineNumber landLineNumber); + + /** + * Changes land-line entry data + *

+ * @param landLineNumber Land-line number to change data + *

+ * @return Redirect outcome + */ + String editLandLineData (final DialableLandLineNumber landLineNumber); + /** * Deletes given mobile entry data *

diff --git a/src/java/de/chotime/landingpage/converter/fax/LandingFaxNumberConverter.java b/src/java/org/mxchange/jjobs/converter/fax/JobsFaxNumberConverter.java similarity index 95% rename from src/java/de/chotime/landingpage/converter/fax/LandingFaxNumberConverter.java rename to src/java/org/mxchange/jjobs/converter/fax/JobsFaxNumberConverter.java index 7bd5fd33..5548d4d1 100644 --- a/src/java/de/chotime/landingpage/converter/fax/LandingFaxNumberConverter.java +++ b/src/java/org/mxchange/jjobs/converter/fax/JobsFaxNumberConverter.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 Cho-Time GmbH + * Copyright (C) 2016 Roland Haeder * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -package de.chotime.landingpage.converter.fax; +package org.mxchange.jjobs.converter.fax; import java.text.MessageFormat; import javax.faces.component.UIComponent; @@ -35,10 +35,10 @@ import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote; /** * Converter for fax id <-> valid fax number instance *

- * @author Roland Haeder + * @author Roland Haeder */ @FacesConverter (value = "FaxNumberConverter") -public class LandingFaxNumberConverter implements Converter { +public class JobsFaxNumberConverter implements Converter { /** * Logger instance @@ -54,7 +54,7 @@ public class LandingFaxNumberConverter implements Converter { /** * Initialization of this converter */ - public LandingFaxNumberConverter () { + public JobsFaxNumberConverter () { // Try to get it try { // Get initial context diff --git a/src/java/de/chotime/landingpage/converter/landline/LandingLandLineNumberConverter.java b/src/java/org/mxchange/jjobs/converter/landline/JobsLandLineNumberConverter.java similarity index 94% rename from src/java/de/chotime/landingpage/converter/landline/LandingLandLineNumberConverter.java rename to src/java/org/mxchange/jjobs/converter/landline/JobsLandLineNumberConverter.java index 2630663b..8cff9bb1 100644 --- a/src/java/de/chotime/landingpage/converter/landline/LandingLandLineNumberConverter.java +++ b/src/java/org/mxchange/jjobs/converter/landline/JobsLandLineNumberConverter.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 Cho-Time GmbH + * Copyright (C) 2016 Roland Haeder * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -package de.chotime.landingpage.converter.landline; +package org.mxchange.jjobs.converter.landline; import java.text.MessageFormat; import javax.faces.component.UIComponent; @@ -35,10 +35,10 @@ import org.mxchange.jphone.phonenumbers.phone.PhoneSessionBeanRemote; /** * Converter for land-line id <-> valid land-line number instance *

- * @author Roland Haeder + * @author Roland Haeder */ @FacesConverter (value = "LandLineNumberConverter") -public class LandingLandLineNumberConverter implements Converter { +public class JobsLandLineNumberConverter implements Converter { /** * Logger instance @@ -54,7 +54,7 @@ public class LandingLandLineNumberConverter implements Converter { /** * Initialization of this converter */ - public LandingLandLineNumberConverter () { + public JobsLandLineNumberConverter () { // Try to get it try { // Get initial context diff --git a/src/java/de/chotime/landingpage/debug/LandingDebugLifeCycleListener.java b/src/java/org/mxchange/jjobs/debug/JobsDebugLifeCycleListener.java similarity index 86% rename from src/java/de/chotime/landingpage/debug/LandingDebugLifeCycleListener.java rename to src/java/org/mxchange/jjobs/debug/JobsDebugLifeCycleListener.java index 2a1c24a4..b3ce4ffa 100644 --- a/src/java/de/chotime/landingpage/debug/LandingDebugLifeCycleListener.java +++ b/src/java/org/mxchange/jjobs/debug/JobsDebugLifeCycleListener.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 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 Affero General Public License as @@ -14,7 +14,7 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -package de.chotime.landingpage.debug; +package org.mxchange.jjobs.debug; import java.text.MessageFormat; import javax.faces.event.PhaseEvent; @@ -24,9 +24,9 @@ import javax.faces.event.PhaseListener; /** * A listener for debugging JSF lifecycle phases *

- * @author Roland Haeder + * @author Roland Haeder */ -public class LandingDebugLifeCycleListener implements PhaseListener { +public class JobsDebugLifeCycleListener implements PhaseListener { /** * Serial number -- 2.39.5