]> git.mxchange.org Git - jjobs-war.git/blob - src/java/org/mxchange/jjobs/beans/phone/JobsAdminPhoneWebRequestBean.java
removed double //NOI18N (please cherry-pick)
[jjobs-war.git] / src / java / org / mxchange / jjobs / beans / phone / JobsAdminPhoneWebRequestBean.java
1 /*
2  * Copyright (C) 2016 Roland Haeder
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Affero General Public License as
6  * published by the Free Software Foundation, either version 3 of the
7  * License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU Affero General Public License for more details.
13  *
14  * You should have received a copy of the GNU Affero General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17 package org.mxchange.jjobs.beans.phone;
18
19 import java.text.MessageFormat;
20 import java.util.Objects;
21 import javax.enterprise.context.RequestScoped;
22 import javax.enterprise.event.Event;
23 import javax.enterprise.inject.Any;
24 import javax.faces.view.facelets.FaceletException;
25 import javax.inject.Inject;
26 import javax.inject.Named;
27 import javax.naming.Context;
28 import javax.naming.InitialContext;
29 import javax.naming.NamingException;
30 import org.mxchange.jjobs.beans.BaseJobsController;
31 import org.mxchange.jjobs.beans.helper.JobsWebRequestController;
32 import org.mxchange.jphone.phonenumbers.cellphone.DialableCellphoneNumber;
33 import org.mxchange.jphone.phonenumbers.mobileprovider.MobileProvider;
34 import org.mxchange.jphone.phonenumbers.phone.AdminPhoneSessionBeanRemote;
35
36 /**
37  * Administrative controller (bean) for phone numbers
38  * <p>
39  * @author Roland Haeder<roland@mxchange.org>
40  */
41 @Named ("adminPhoneController")
42 @RequestScoped
43 public class JobsAdminPhoneWebRequestBean extends BaseJobsController implements JobsAdminPhoneWebRequestController {
44
45         /**
46          * Serial number
47          */
48         private static final long serialVersionUID = 184_598_175_371_269_016L;
49
50         /**
51          * Remote EJB for phone number (administrative)
52          */
53         private AdminPhoneSessionBeanRemote adminPhoneBean;
54
55         /**
56          * Admin helper instance
57          */
58         @Inject
59         private JobsWebRequestController beanHelper;
60
61         /**
62          * Event being fired when an administrator has deleted cell phone number
63          */
64         @Inject
65         @Any
66         private Event<AdminDeletedCellphoneNumberEvent> cellPhoneNumberDeletedEvent;
67
68         /**
69          * Event being fired when an administrator has updated cell phone number
70          */
71         @Inject
72         @Any
73         private Event<AdminUpdatedCellphoneNumberEvent> cellPhoneNumberUpdatedEvent;
74
75         /**
76          * Cell phone provider
77          */
78         private MobileProvider cellphoneProvider;
79
80         /**
81          * Phone number
82          */
83         private Long phoneNumber;
84
85         /**
86          * Default constructor
87          */
88         public JobsAdminPhoneWebRequestBean () {
89                 // Try it
90                 try {
91                         // Get initial context
92                         Context context = new InitialContext();
93
94                         // Try to lookup the beans
95                         this.adminPhoneBean = (AdminPhoneSessionBeanRemote) context.lookup("java:global/jjobs-ejb/admincontactphone!org.mxchange.jcontacts.phone.AdminContactsPhoneSessionBeanRemote"); //NOI18N
96                 } catch (final NamingException e) {
97                         // Throw it again
98                         throw new FaceletException(e);
99                 }
100         }
101
102         @Override
103         public String deleteCellphoneData () {
104                 // Is all data set
105                 if (this.beanHelper.getCellPhoneNumber() == null) {
106                         // Not set, throw NPE
107                         throw new NullPointerException("this.beanHelper.cellphoneNumber is null"); //NOI18N
108                 } else if (this.beanHelper.getCellPhoneNumber().getPhoneId() == null) {
109                         // Throw NPE again
110                         throw new NullPointerException("this.beanHelper.cellphoneNumber.phoneId is null"); //NOI18N
111                 } else if (this.beanHelper.getCellPhoneNumber().getPhoneId() < 1) {
112                         // Invalid number
113                         throw new IllegalArgumentException(MessageFormat.format("this.beanHelper.cellphoneNumber.phoneId={0} is not valid", this.beanHelper.getCellPhoneNumber().getPhoneId())); //NOI18N
114                 } else if (this.beanHelper.getCellPhoneNumber().getCellphoneProvider() == null) {
115                         // Throw NPE
116                         throw new NullPointerException("this.beanHelper.cellphoneNumber.cellphoneProvider is null"); //NOI18N
117                 } else if (this.beanHelper.getCellPhoneNumber().getCellphoneProvider().getProviderId() == null) {
118                         // ... throw again
119                         throw new NullPointerException("this.beanHelper.cellphoneNumber.cellphoneProvider.providerId is null"); //NOI18N
120                 } else if (this.beanHelper.getCellPhoneNumber().getCellphoneProvider().getProviderId() < 1) {
121                         // Id not valid
122                         throw new IllegalArgumentException(MessageFormat.format("this.beanHelper.cellphoneNumber.cellphoneProvider.providerId={0} is not valid.", this.beanHelper.getCellPhoneNumber().getCellphoneProvider().getProviderId())); //NOI18N
123                 } else if (this.beanHelper.getCellPhoneNumber().getPhoneNumber() == null) {
124                         // Throw NPE again
125                         throw new NullPointerException("this.beanHelper.cellphoneNumber.phoneNumber is null"); //NOI18N
126                 } else if (this.beanHelper.getCellPhoneNumber().getPhoneNumber() < 1) {
127                         // Throw NPE again
128                         throw new NullPointerException(MessageFormat.format("this.beanHelper.cellphoneNumber.phoneNumber={0} is not valid.", this.beanHelper.getCellPhoneNumber().getPhoneNumber())); //NOI18N
129                 }
130
131                 // Call EJB
132                 this.adminPhoneBean.deleteCellphoneData(this.beanHelper.getCellPhoneNumber());
133
134                 // Fire event
135                 this.cellPhoneNumberDeletedEvent.fire(new AdminCellphoneNumberDeletedEvent(this.beanHelper.getCellPhoneNumber()));
136
137                 // All fine, redirect
138                 return "admin_list_cellphone?faces-redirect=true&includeViewParams=true"; //NOI18N
139         }
140
141         @Override
142         public String editCellphoneData () {
143                 // Is all data set
144                 if (this.beanHelper.getCellPhoneNumber() == null) {
145                         // Not set, throw NPE
146                         throw new NullPointerException("this.beanHelper.cellphoneNumber is null"); //NOI18N
147                 } else if (this.beanHelper.getCellPhoneNumber().getPhoneId() == null) {
148                         // Throw NPE again
149                         throw new NullPointerException("this.beanHelper.cellphoneNumber.phoneId is null"); //NOI18N
150                 } else if (this.beanHelper.getCellPhoneNumber().getPhoneId() < 1) {
151                         // Invalid number
152                         throw new IllegalArgumentException(MessageFormat.format("this.beanHelper.cellphoneNumber.phoneId={0} is not valid", this.beanHelper.getCellPhoneNumber().getPhoneId())); //NOI18N
153                 } else if (this.beanHelper.getCellPhoneNumber().getCellphoneProvider() == null) {
154                         // Throw NPE
155                         throw new NullPointerException("this.beanHelper.cellphoneNumber.cellphoneProvider is null"); //NOI18N
156                 } else if (this.beanHelper.getCellPhoneNumber().getCellphoneProvider().getProviderId() == null) {
157                         // ... throw again
158                         throw new NullPointerException("this.beanHelper.cellphoneNumber.cellphoneProvider.providerId is null"); //NOI18N
159                 } else if (this.beanHelper.getCellPhoneNumber().getCellphoneProvider().getProviderId() < 1) {
160                         // Id not valid
161                         throw new IllegalArgumentException(MessageFormat.format("this.beanHelper.cellphoneNumber.cellphoneProvider.providerId={0} is not valid.", this.beanHelper.getCellPhoneNumber().getCellphoneProvider().getProviderId())); //NOI18N
162                 } else if (this.beanHelper.getCellPhoneNumber().getPhoneNumber() == null) {
163                         // Throw NPE again
164                         throw new NullPointerException("this.beanHelper.cellphoneNumber.phoneNumber is null"); //NOI18N
165                 } else if (this.beanHelper.getCellPhoneNumber().getPhoneNumber() < 1) {
166                         // Throw NPE again
167                         throw new NullPointerException(MessageFormat.format("this.beanHelper.cellphoneNumber.phoneNumber={0} is not valid.", this.beanHelper.getCellPhoneNumber().getPhoneNumber())); //NOI18N
168                 } else if (this.getCellphoneProvider() == null) {
169                         // Not provided
170                         this.showFacesMessage("form_edit_cellphone:cellphoneProvider", "ERROR_ADMIN_NO_MOBILE_PROVIDER_SELECTED"); //NOI18N
171                         return ""; //NOI18N
172                 } else if (this.getCellphoneProvider().getProviderId() == null) {
173                         // Throw NPE again ...
174                         throw new NullPointerException("this.cellphoneProvider.providerId is null"); //NOI18N
175                 } else if (this.getCellphoneProvider().getProviderId() < 0) {
176                         // Invalid id number
177                         throw new IllegalArgumentException(MessageFormat.format("this.cellphoneProvider.providerId={0} is not valid.", this.getCellphoneProvider().getProviderId())); //NOI18N
178                 } else if (this.getPhoneNumber() == null) {
179                         // Not provided
180                         this.showFacesMessage("form_edit_cellphone:cellphoneNumber", "ERROR_ADMIN_EMPTY_MOBILE_NUMBER"); //NOI18N
181                         return ""; //NOI18N
182                 }
183
184                 // Is the mobile provider and number the same?
185                 if ((Objects.equals(this.getCellphoneProvider(), this.beanHelper.getCellPhoneNumber().getCellphoneProvider())) && (Objects.equals(this.getPhoneNumber(), this.beanHelper.getCellPhoneNumber().getPhoneNumber()))) {
186                         // No difference in both together, no need to edit
187                         return ""; //NOI18N
188                 }
189
190                 // Set all data
191                 this.beanHelper.getCellPhoneNumber().setCellphoneProvider(this.getCellphoneProvider());
192                 this.beanHelper.getCellPhoneNumber().setPhoneNumber(this.getPhoneNumber());
193
194                 // Send to bean
195                 DialableCellphoneNumber updatedNumber = this.adminPhoneBean.updateCellphoneData(this.beanHelper.getCellPhoneNumber());
196
197                 // Fire event
198                 this.cellPhoneNumberUpdatedEvent.fire(new AdminCellphoneNumberUpdatedEvent(updatedNumber));
199
200                 // All fine, redirect
201                 return "admin_edit_cellphone?faces-redirect=true&includeViewParams=true"; //NOI18N
202         }
203
204         @Override
205         public MobileProvider getCellphoneProvider () {
206                 return this.cellphoneProvider;
207         }
208
209         @Override
210         public void setCellphoneProvider (final MobileProvider cellphoneProvider) {
211                 this.cellphoneProvider = cellphoneProvider;
212         }
213
214         @Override
215         public Long getPhoneNumber () {
216                 return this.phoneNumber;
217         }
218
219         @Override
220         public void setPhoneNumber (final Long phoneNumber) {
221                 this.phoneNumber = phoneNumber;
222         }
223
224 }