]> git.mxchange.org Git - jfinancials-war.git/blob - src/java/org/mxchange/jfinancials/beans/phone/FinancialsAdminPhoneWebRequestBean.java
Updated copyright year
[jfinancials-war.git] / src / java / org / mxchange / jfinancials / beans / phone / FinancialsAdminPhoneWebRequestBean.java
1 /*
2  * Copyright (C) 2016 - 2022 Free Software Foundation
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.jfinancials.beans.phone;
18
19 import java.text.MessageFormat;
20 import java.util.Date;
21 import java.util.List;
22 import java.util.Objects;
23 import javax.ejb.EJB;
24 import javax.enterprise.context.RequestScoped;
25 import javax.enterprise.event.Event;
26 import javax.enterprise.event.Observes;
27 import javax.enterprise.inject.Any;
28 import javax.faces.application.FacesMessage;
29 import javax.inject.Inject;
30 import javax.inject.Named;
31 import org.mxchange.jcountry.model.data.Country;
32 import org.mxchange.jfinancials.beans.BaseFinancialsBean;
33 import org.mxchange.jfinancials.beans.phone.list.FinancialsPhoneListWebViewController;
34 import org.mxchange.jphone.events.fax.created.ObservableCreatedFaxNumberEvent;
35 import org.mxchange.jphone.events.fax.deleted.AdminDeletedFaxNumberEvent;
36 import org.mxchange.jphone.events.fax.deleted.AdminFaxNumberDeletedEvent;
37 import org.mxchange.jphone.events.fax.removed.AdminFaxNumberRemovedFromListEvent;
38 import org.mxchange.jphone.events.fax.removed.AdminRemoveFaxNumberFromListEvent;
39 import org.mxchange.jphone.events.fax.updated.AdminFaxNumberUpdatedEvent;
40 import org.mxchange.jphone.events.fax.updated.AdminUpdatedFaxNumberEvent;
41 import org.mxchange.jphone.events.landline.created.ObservableCreatedLandLineNumberEvent;
42 import org.mxchange.jphone.events.landline.deleted.AdminDeletedLandLineNumberEvent;
43 import org.mxchange.jphone.events.landline.deleted.AdminLandLineNumberDeletedEvent;
44 import org.mxchange.jphone.events.landline.removed.AdminLandLineNumberRemovedFromListEvent;
45 import org.mxchange.jphone.events.landline.removed.AdminRemoveLandLineNumberFromListEvent;
46 import org.mxchange.jphone.events.landline.updated.AdminLandLineNumberUpdatedEvent;
47 import org.mxchange.jphone.events.landline.updated.AdminUpdatedLandLineNumberEvent;
48 import org.mxchange.jphone.events.mobile.remove.AdminRemoveMobileNumberFromListEvent;
49 import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber;
50 import org.mxchange.jphone.model.phonenumbers.fax.FaxNumber;
51 import org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber;
52 import org.mxchange.jphone.model.phonenumbers.landline.LandLineNumber;
53 import org.mxchange.jphone.model.phonenumbers.phone.AdminPhoneSessionBeanRemote;
54
55 /**
56  * Administrative bean (controller) for phone numbers
57  * <p>
58  * @author Roland Häder<roland@mxchange.org>
59  */
60 @Named ("adminPhoneController")
61 @RequestScoped
62 public class FinancialsAdminPhoneWebRequestBean extends BaseFinancialsBean implements FinancialsAdminPhoneWebRequestController {
63
64         /**
65          * Serial number
66          */
67         private static final long serialVersionUID = 184_598_175_371_269_016L;
68
69         /**
70          * Remote EJB for phone number (administrative)
71          */
72         @EJB (lookup = "java:global/jfinancials-ejb/adminPhone!org.mxchange.jphone.model.phonenumbers.phone.AdminPhoneSessionBeanRemote")
73         private AdminPhoneSessionBeanRemote adminPhoneBean;
74
75         /**
76          * fax number
77          */
78         private DialableFaxNumber faxNumber;
79
80         /**
81          * Event being fired when an administrator has deleted fax number
82          */
83         @Inject
84         @Any
85         private Event<AdminDeletedFaxNumberEvent> faxNumberDeletedEvent;
86
87         /**
88          * Event being fired when an administrator has updated fax number
89          */
90         @Inject
91         @Any
92         private Event<AdminUpdatedFaxNumberEvent> faxNumberUpdatedEvent;
93
94         /**
95          * land-line number
96          */
97         private DialableLandLineNumber landLineNumber;
98
99         /**
100          * Event being fired when an administrator has deleted land-line number
101          */
102         @Inject
103         @Any
104         private Event<AdminDeletedLandLineNumberEvent> landLineNumberDeletedEvent;
105
106         /**
107          * Event being fired when an administrator has updated fax number
108          */
109         @Inject
110         @Any
111         private Event<AdminUpdatedLandLineNumberEvent> landLineNumberUpdatedEvent;
112
113         /**
114          * Area code (city dial prefix)
115          */
116         private Integer phoneAreaCode;
117
118         /**
119          * Country (for dial prefix)
120          */
121         private Country phoneCountry;
122
123         /**
124          * When the phone entry has been created (persisted)
125          */
126         private Date phoneEntryCreated;
127
128         /**
129          * When the phone entry has been updated
130          */
131         private Date phoneEntryUpdated;
132
133         /**
134          * Phone id (aka primary key)
135          */
136         private Long phoneId;
137
138         /**
139          * Generic hone controller
140          */
141         @Inject
142         private FinancialsPhoneListWebViewController phoneListController;
143
144         /**
145          * Phone number
146          */
147         private Long phoneNumber;
148
149         /**
150          * Event being fired when a list of all unsed fax numbers is being created.
151          */
152         @Inject
153         @Any
154         private Event<AdminRemoveFaxNumberFromListEvent> removeLinkedFaxNumbersEvent;
155
156         /**
157          * Event being fired when a list of all unsed land-line numbers is being
158          * created.
159          */
160         @Inject
161         @Any
162         private Event<AdminRemoveLandLineNumberFromListEvent> removeLinkedLandLineNumbersEvent;
163
164         /**
165          * Event being fired when a list of all unsed mobile numbers is being
166          * created.
167          */
168         @Inject
169         @Any
170         private Event<AdminRemoveMobileNumberFromListEvent> removeLinkedMobileNumbersEvent;
171
172         /**
173          * Default constructor
174          */
175         public FinancialsAdminPhoneWebRequestBean () {
176                 // Call super constructor
177                 super();
178         }
179
180         /**
181          * Observes events being fired when a bean helper has successfully created a
182          * land-line number instance.
183          * <p>
184          * @param event Event being fired
185          */
186         public void afterCreatedFaxNumberEvent (@Observes final ObservableCreatedFaxNumberEvent event) {
187                 // The event instance must be valid
188                 if (null == event) {
189                         // Throw NPE
190                         throw new NullPointerException("event is null"); //NOI18N
191                 } else if (event.getFaxNumber() == null) {
192                         // Throw NPE again
193                         throw new NullPointerException("event.landLineNumber is null"); //NOI18N
194                 } else if (event.getFaxNumber().getPhoneId() == null) {
195                         // Throw NPE yet again
196                         throw new NullPointerException("event.landLineNumber.phoneId is null"); //NOI18N
197                 } else if (event.getFaxNumber().getPhoneId() < 1) {
198                         // Throw NPE yet again
199                         throw new NullPointerException(MessageFormat.format("event.landLineNumber.phoneId={0} is invalid", event.getFaxNumber().getPhoneId())); //NOI18N
200                 }
201
202                 // Get fax number from event
203                 final DialableFaxNumber number = event.getFaxNumber();
204
205                 // Copy all data to this bean
206                 this.setPhoneId(number.getPhoneId());
207                 this.setPhoneCountry(number.getPhoneCountry());
208                 this.setPhoneAreaCode(number.getPhoneAreaCode());
209                 this.setPhoneNumber(number.getPhoneNumber());
210                 this.setPhoneEntryCreated(number.getPhoneEntryCreated());
211                 this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
212         }
213
214         /**
215          * Observes events being fired when a bean helper has successfully created a
216          * land-line number instance.
217          * <p>
218          * @param event Event being fired
219          */
220         public void afterCreatedLandLineNumberEvent (@Observes final ObservableCreatedLandLineNumberEvent event) {
221                 // The event instance must be valid
222                 if (null == event) {
223                         // Throw NPE
224                         throw new NullPointerException("event is null"); //NOI18N
225                 } else if (event.getLandLineNumber() == null) {
226                         // Throw NPE again
227                         throw new NullPointerException("event.landLineNumber is null"); //NOI18N
228                 } else if (event.getLandLineNumber().getPhoneId() == null) {
229                         // Throw NPE yet again
230                         throw new NullPointerException("event.landLineNumber.phoneId is null"); //NOI18N
231                 } else if (event.getLandLineNumber().getPhoneId() < 1) {
232                         // Throw NPE yet again
233                         throw new NullPointerException(MessageFormat.format("event.landLineNumber.phoneId={0} is invalid", event.getLandLineNumber().getPhoneId())); //NOI18N
234                 }
235
236                 // Get fax number from event
237                 final DialableLandLineNumber number = event.getLandLineNumber();
238
239                 // Copy all data to this bean
240                 this.setPhoneId(number.getPhoneId());
241                 this.setPhoneCountry(number.getPhoneCountry());
242                 this.setPhoneAreaCode(number.getPhoneAreaCode());
243                 this.setPhoneNumber(number.getPhoneNumber());
244                 this.setPhoneEntryCreated(number.getPhoneEntryCreated());
245                 this.setPhoneEntryUpdated(number.getPhoneEntryUpdated());
246         }
247
248         /**
249          * Returns a list of all unused ("non-linked") land-line numbers
250          * <p>
251          * @return List with all unused land-line numbers
252          */
253         public List<DialableFaxNumber> allNonLinkedFaxNumbers () {
254                 // Get list of all mobile numbers
255                 final List<DialableFaxNumber> numbers = this.phoneListController.getAllFaxNumbers();
256
257                 // Visit all controllers to reduce the list
258                 this.removeLinkedFaxNumbersEvent.fire(new AdminFaxNumberRemovedFromListEvent(numbers));
259
260                 // Return it
261                 return numbers;
262         }
263
264         /**
265          * Returns a list of all unused ("non-linked") land-line numbers
266          * <p>
267          * @return List with all unused land-line numbers
268          */
269         public List<DialableLandLineNumber> allNonLinkedLandLineNumbers () {
270                 // Get list of all mobile numbers
271                 final List<DialableLandLineNumber> numbers = this.phoneListController.getAllLandLineNumbers();
272
273                 // Visit all controllers to reduce the list
274                 this.removeLinkedLandLineNumbersEvent.fire(new AdminLandLineNumberRemovedFromListEvent(numbers));
275
276                 // Return it
277                 return numbers;
278         }
279
280         /**
281          * Deletes given fax entry data
282          * <p>
283          */
284         public void deleteFaxData () {
285                 // Get fax number from bean helper
286                 final DialableFaxNumber number = this.createFaxNumber();
287
288                 // Is all data set
289                 if (number == null) {
290                         // Not set, throw NPE
291                         throw new NullPointerException("faxNumber is null"); //NOI18N
292                 } else if (number.getPhoneId() == null) {
293                         // Throw NPE again
294                         throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
295                 } else if (number.getPhoneId() < 1) {
296                         // Invalid number
297                         throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
298                 } else if (number.getPhoneCountry() == null) {
299                         // Throw NPE
300                         throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
301                 } else if (number.getPhoneCountry().getCountryId() == null) {
302                         // Throw NPE
303                         throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
304                 } else if (number.getPhoneCountry().getCountryId() < 1) {
305                         // Throw NPE
306                         throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
307                 } else if (number.getPhoneAreaCode() == null) {
308                         // ... throw again
309                         throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
310                 } else if (number.getPhoneAreaCode() < 1) {
311                         // Id not valid
312                         throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
313                 } else if (number.getPhoneNumber() == null) {
314                         // Throw NPE again
315                         throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
316                 } else if (number.getPhoneNumber() < 1) {
317                         // Throw NPE again
318                         throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
319                 }
320
321                 // Call EJB
322                 this.adminPhoneBean.deleteFaxData(number);
323
324                 // Fire event
325                 this.faxNumberDeletedEvent.fire(new AdminFaxNumberDeletedEvent(number));
326         }
327
328         /**
329          * Deletes given land-line entry data
330          */
331         public void deleteLandLineData () {
332                 // Get land-line number from helper
333                 final DialableLandLineNumber number = this.createLandLineNumber();
334
335                 // Is all data set
336                 if (number == null) {
337                         // Not set, throw NPE
338                         throw new NullPointerException("landLineNumber is null"); //NOI18N
339                 } else if (number.getPhoneId() == null) {
340                         // Throw NPE again
341                         throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
342                 } else if (number.getPhoneId() < 1) {
343                         // Invalid number
344                         throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
345                 } else if (number.getPhoneCountry() == null) {
346                         // Throw NPE
347                         throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
348                 } else if (number.getPhoneCountry().getCountryId() == null) {
349                         // Throw NPE
350                         throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
351                 } else if (number.getPhoneCountry().getCountryId() < 1) {
352                         // Throw NPE
353                         throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
354                 } else if (number.getPhoneAreaCode() == null) {
355                         // ... throw again
356                         throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
357                 } else if (number.getPhoneAreaCode() < 1) {
358                         // Id not valid
359                         throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
360                 } else if (number.getPhoneNumber() == null) {
361                         // Throw NPE again
362                         throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
363                 } else if (number.getPhoneNumber() < 1) {
364                         // Throw NPE again
365                         throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
366                 }
367
368                 // Call EJB
369                 this.adminPhoneBean.deleteLandLineData(number);
370
371                 // Fire event
372                 this.landLineNumberDeletedEvent.fire(new AdminLandLineNumberDeletedEvent(number));
373         }
374
375         /**
376          * Changes fax entry data
377          * <p>
378          * @return Redirect outcome
379          */
380         public String doChangeFaxNumber () {
381                 // Get fax number from bean helper
382                 final DialableFaxNumber number = this.createFaxNumber();
383
384                 // Is all data set
385                 if (number == null) {
386                         // Not set, throw NPE
387                         throw new NullPointerException("faxNumber is null"); //NOI18N
388                 } else if (number.getPhoneId() == null) {
389                         // Throw NPE again
390                         throw new NullPointerException("faxNumber.phoneId is null"); //NOI18N
391                 } else if (number.getPhoneId() < 1) {
392                         // Invalid number
393                         throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
394                 } else if (number.getPhoneCountry() == null) {
395                         // Throw NPE
396                         throw new NullPointerException("faxNumber.phoneCountry is null"); //NOI18N
397                 } else if (number.getPhoneCountry().getCountryId() == null) {
398                         // Throw NPE
399                         throw new NullPointerException("faxNumber.phoneCountry.countryId is null"); //NOI18N
400                 } else if (number.getPhoneCountry().getCountryId() < 1) {
401                         // Throw NPE
402                         throw new NullPointerException(MessageFormat.format("faxNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
403                 } else if (number.getPhoneAreaCode() == null) {
404                         // ... throw again
405                         throw new NullPointerException("faxNumber.phoneAreaCode is null"); //NOI18N
406                 } else if (number.getPhoneAreaCode() < 1) {
407                         // Id not valid
408                         throw new IllegalArgumentException(MessageFormat.format("faxNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
409                 } else if (number.getPhoneNumber() == null) {
410                         // Throw NPE again
411                         throw new NullPointerException("faxNumber.phoneNumber is null"); //NOI18N
412                 } else if (number.getPhoneNumber() < 1) {
413                         // Throw NPE again
414                         throw new NullPointerException(MessageFormat.format("faxNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
415                 }
416
417                 // Is the mobile provider and number the same?
418                 if ((Objects.equals(this.getPhoneCountry(), number.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), number.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
419                         // Show message
420                         this.showFacesMessage("form_edit_fax:faxNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED", FacesMessage.SEVERITY_WARN); //NOI18N
421
422                         // No difference in both together, no need to edit
423                         return ""; //NOI18N
424                 }
425
426                 // Set all data
427                 number.setPhoneCountry(this.getPhoneCountry());
428                 number.setPhoneAreaCode(this.getPhoneAreaCode());
429                 number.setPhoneNumber(this.getPhoneNumber());
430
431                 // Send to bean
432                 final DialableFaxNumber updatedNumber = this.adminPhoneBean.updateFaxData(number);
433
434                 // Fire event
435                 this.faxNumberUpdatedEvent.fire(new AdminFaxNumberUpdatedEvent(updatedNumber));
436
437                 // All fine, redirect
438                 return "admin_show_fax"; //NOI18N
439         }
440
441         /**
442          * Changes land-line entry data
443          * <p>
444          * @return Redirect outcome
445          */
446         public String doChangeLandLineNumber () {
447                 // Get land-line number from helper
448                 final DialableLandLineNumber number = this.createLandLineNumber();
449
450                 // Is all data set
451                 if (number == null) {
452                         // Not set, throw NPE
453                         throw new NullPointerException("landLineNumber is null"); //NOI18N
454                 } else if (number.getPhoneId() == null) {
455                         // Throw NPE again
456                         throw new NullPointerException("landLineNumber.phoneId is null"); //NOI18N
457                 } else if (number.getPhoneId() < 1) {
458                         // Invalid number
459                         throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneId={0} is not valid", number.getPhoneId())); //NOI18N
460                 } else if (number.getPhoneCountry() == null) {
461                         // Throw NPE
462                         throw new NullPointerException("landLineNumber.phoneCountry is null"); //NOI18N
463                 } else if (number.getPhoneCountry().getCountryId() == null) {
464                         // Throw NPE
465                         throw new NullPointerException("landLineNumber.phoneCountry.countryId is null"); //NOI18N
466                 } else if (number.getPhoneCountry().getCountryId() < 1) {
467                         // Throw NPE
468                         throw new NullPointerException(MessageFormat.format("landLineNumber.phoneCountry.countryId={0} is not valid", number.getPhoneCountry().getCountryId())); //NOI18N
469                 } else if (number.getPhoneAreaCode() == null) {
470                         // ... throw again
471                         throw new NullPointerException("landLineNumber.phoneAreaCode is null"); //NOI18N
472                 } else if (number.getPhoneAreaCode() < 1) {
473                         // Id not valid
474                         throw new IllegalArgumentException(MessageFormat.format("landLineNumber.phoneAreaCode={0} is not valid.", number.getPhoneAreaCode())); //NOI18N
475                 } else if (number.getPhoneNumber() == null) {
476                         // Throw NPE again
477                         throw new NullPointerException("landLineNumber.phoneNumber is null"); //NOI18N
478                 } else if (number.getPhoneNumber() < 1) {
479                         // Throw NPE again
480                         throw new NullPointerException(MessageFormat.format("landLineNumber.phoneNumber={0} is not valid.", number.getPhoneNumber())); //NOI18N
481                 }
482
483                 // Is the mobile provider and number the same?
484                 if ((Objects.equals(this.getPhoneCountry(), number.getPhoneCountry())) && (Objects.equals(this.getPhoneAreaCode(), number.getPhoneAreaCode())) && (Objects.equals(this.getPhoneNumber(), number.getPhoneNumber()))) {
485                         // Show message
486                         this.showFacesMessage("form_edit_landline:landLineNumber", "ERROR_ADMIN_NO_CHANGE_ENTERED", FacesMessage.SEVERITY_WARN); //NOI18N
487
488                         // No difference in both together, no need to edit
489                         return ""; //NOI18N
490                 }
491
492                 // Set all data
493                 number.setPhoneCountry(this.getPhoneCountry());
494                 number.setPhoneAreaCode(this.getPhoneAreaCode());
495                 number.setPhoneNumber(this.getPhoneNumber());
496
497                 // Send to bean
498                 final DialableLandLineNumber updatedNumber = this.adminPhoneBean.updateLandLineData(number);
499
500                 // Fire event
501                 this.landLineNumberUpdatedEvent.fire(new AdminLandLineNumberUpdatedEvent(updatedNumber));
502
503                 // All fine, redirect
504                 return "admin_show_landline"; //NOI18N
505         }
506
507         /**
508          * Getter for chosen fax number
509          * <p>
510          * @return fax number
511          */
512         public DialableFaxNumber getFaxNumber () {
513                 return this.faxNumber;
514         }
515
516         /**
517          * Setter for chosen fax number
518          * <p>
519          * @param faxNumber fax number
520          */
521         public void setFaxNumber (final DialableFaxNumber faxNumber) {
522                 this.faxNumber = faxNumber;
523         }
524
525         /**
526          * Getter for chosen land-line number
527          * <p>
528          * @return land-line number
529          */
530         public DialableLandLineNumber getLandLineNumber () {
531                 return this.landLineNumber;
532         }
533
534         /**
535          * Setter for chosen land-line number
536          * <p>
537          * @param landLineNumber land-line number
538          */
539         public void setLandLineNumber (final DialableLandLineNumber landLineNumber) {
540                 this.landLineNumber = landLineNumber;
541         }
542
543         /**
544          * Getter for phone area code
545          * <p>
546          * @return Phone area code
547          */
548         public Integer getPhoneAreaCode () {
549                 return this.phoneAreaCode;
550         }
551
552         /**
553          * Setter for phone area code
554          * <p>
555          * @param phoneAreaCode Phone area code
556          */
557         public void setPhoneAreaCode (final Integer phoneAreaCode) {
558                 this.phoneAreaCode = phoneAreaCode;
559         }
560
561         /**
562          * Getter for phone country (for dial prefix)
563          * <p>
564          * @return Phone country
565          */
566         public Country getPhoneCountry () {
567                 return this.phoneCountry;
568         }
569
570         /**
571          * Setter for phone country (for dial prefix)
572          * <p>
573          * @param phoneCountry Phone country
574          */
575         public void setPhoneCountry (final Country phoneCountry) {
576                 this.phoneCountry = phoneCountry;
577         }
578
579         /**
580          * Getter for phone entry created timestamp
581          * <p>
582          * @return Phone entry created timestamp
583          */
584         @SuppressWarnings ("ReturnOfDateField")
585         public Date getPhoneEntryCreated () {
586                 return this.phoneEntryCreated;
587         }
588
589         /**
590          * Setter for phone entry created timestamp
591          * <p>
592          * @param phoneEntryCreated Phone entry created timestamp
593          */
594         @SuppressWarnings ("AssignmentToDateFieldFromParameter")
595         public void setPhoneEntryCreated (final Date phoneEntryCreated) {
596                 this.phoneEntryCreated = phoneEntryCreated;
597         }
598
599         /**
600          * Getter for phone entry updated timestamp
601          * <p>
602          * @return Phone entry updated timestamp
603          */
604         @SuppressWarnings ("ReturnOfDateField")
605         public Date getPhoneEntryUpdated () {
606                 return this.phoneEntryUpdated;
607         }
608
609         /**
610          * Setter for phone entry updated timestamp
611          * <p>
612          * @param phoneEntryUpdated Phone entry updated timestamp
613          */
614         @SuppressWarnings ("AssignmentToDateFieldFromParameter")
615         public void setPhoneEntryUpdated (final Date phoneEntryUpdated) {
616                 this.phoneEntryUpdated = phoneEntryUpdated;
617         }
618
619         /**
620          * Getter for phone id
621          * <p>
622          * @return Phone id
623          */
624         public Long getPhoneId () {
625                 return this.phoneId;
626         }
627
628         /**
629          * Setter for phone id
630          * <p>
631          * @param phoneId Phone id
632          */
633         public void setPhoneId (final Long phoneId) {
634                 this.phoneId = phoneId;
635         }
636
637         /**
638          * Getter for dial number without prefix
639          * <p>
640          * @return Dial number without prefix
641          */
642         public Long getPhoneNumber () {
643                 return this.phoneNumber;
644         }
645
646         /**
647          * Setter for dial number without prefix
648          * <p>
649          * @param phoneNumber Dial number without prefix
650          */
651         public void setPhoneNumber (final Long phoneNumber) {
652                 this.phoneNumber = phoneNumber;
653         }
654
655         /**
656          * Returns an instance of a DialableFaxNumber from all fields stored in this
657          * bean.
658          * <p>
659          * @return An instance of a DialableFaxNumber class
660          */
661         private DialableFaxNumber createFaxNumber () {
662                 // Initialize it
663                 final DialableFaxNumber number = new FaxNumber(
664                                                                 this.getPhoneCountry(),
665                                                                 this.getPhoneAreaCode(),
666                                                                 this.getPhoneNumber()
667                                                 );
668
669                 // Add all other data
670                 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
671                 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
672
673                 // Is id number set?
674                 if (this.getPhoneId() instanceof Long) {
675                         // Set it
676                         number.setPhoneId(this.getPhoneId());
677                 }
678
679                 // Return it
680                 return number;
681         }
682
683         /**
684          * Returns an instance of a DialableLandLineNumber from all fields stored in
685          * this bean.
686          * <p>
687          * @return An instance of a DialableLandLineNumber class
688          */
689         private DialableLandLineNumber createLandLineNumber () {
690                 // Initialize it
691                 final DialableLandLineNumber number = new LandLineNumber(
692                                                                          this.getPhoneCountry(),
693                                                                          this.getPhoneAreaCode(),
694                                                                          this.getPhoneNumber()
695                                                          );
696
697                 // Add all other data
698                 number.setPhoneEntryCreated(this.getPhoneEntryCreated());
699                 number.setPhoneEntryUpdated(this.getPhoneEntryUpdated());
700
701                 // Is id number set?
702                 if (this.getPhoneId() instanceof Long) {
703                         // Set it
704                         number.setPhoneId(this.getPhoneId());
705                 }
706
707                 // Return it
708                 return number;
709         }
710
711 }