]> git.mxchange.org Git - addressbook-ejb.git/commitdiff
Please cherry-pick/rename:
authorRoland Häder <roland@mxchange.org>
Tue, 13 Mar 2018 22:05:44 +0000 (23:05 +0100)
committerRoland Häder <roland@mxchange.org>
Sat, 1 Feb 2020 03:30:25 +0000 (04:30 +0100)
- Headquarter is enough for bean name (please rename)
- removed some no longer recommended business methods
- removed no longer used private methods
- made some local variables final which helps the Java compiler in optimization
  of resulting byte-code
- added session EJB for user activity
- other improvements (?)
- changed copyright to Free Software Foundation

Signed-off-by: Roland Häder <roland@mxchange.org>
18 files changed:
src/java/org/mxchange/jcontacts/model/contact/AddressbookContactSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/basicdata/AddressbookAdminBusinessDataSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/branchoffice/AddressbookAdminBranchOfficeSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/department/AddressbookAdminDepartmentSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/department/AddressbookDepartmentSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/employee/AddressbookAdminEmployeeSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/employee/AddressbookEmployeeSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/headquarter/AddressbookAdminHeadquartersSessionBean.java [new file with mode: 0644]
src/java/org/mxchange/jcontactsbusiness/model/headquarter/AddressbookHeadquartersSessionBean.java [new file with mode: 0644]
src/java/org/mxchange/jcontactsbusiness/model/headquarters/AddressbookAdminHeadquartersSessionBean.java [deleted file]
src/java/org/mxchange/jcontactsbusiness/model/headquarters/AddressbookHeadquartersSessionBean.java [deleted file]
src/java/org/mxchange/jcontactsbusiness/model/opening_time/AddressbookAdminOpeningTimesSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/opening_time/AddressbookOpeningTimesSessionBean.java
src/java/org/mxchange/jcountry/model/data/AddressbookAdminCountrySingletonBean.java
src/java/org/mxchange/jusercore/model/user/AddressbookAdminUserSessionBean.java
src/java/org/mxchange/jusercore/model/user/AddressbookUserSessionBean.java
src/java/org/mxchange/jusercore/model/user/activity/AddressbookUserActivitySessionBean.java
src/java/org/mxchange/juserlogincore/model/user/login/AddressbookUserLoginSessionBean.java

index 6c3eccfbf837ad78e783d06a432ae359c67ed2ff..cdf4b3cad25c32c9f8c397a19c735c31a66b932d 100644 (file)
@@ -66,62 +66,6 @@ public class AddressbookContactSessionBean extends BaseAddressbookDatabaseBean i
                return contacts;
        }
 
-       @Override
-       @SuppressWarnings ("unchecked")
-       public List<String> allEmailAddresses () {
-               // Log trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getEmailAddressList - CALLED!", this.getClass().getSimpleName())); //NOI18N
-
-               // Create query instance
-               final Query query = this.getEntityManager().createNamedQuery("AllContactEmailAddresses"); //NOI18N
-
-               // Get list
-               final List<String> emailAddresses = query.getResultList();
-
-               // Log trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getEmailAddressList: emailAddresses.size()={1} - EXIT!", this.getClass().getSimpleName(), emailAddresses.size())); //NOI18N
-
-               // Return it
-               return emailAddresses;
-       }
-
-       @Override
-       public boolean isEmailAddressRegistered (final String emailAddress) {
-               // Log trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.isEmailAddressRegistered: emailAddress={1} - CALLED!", this.getClass().getSimpleName(), emailAddress)); //NOI18N
-
-               // The email address should be valid
-               if (null == emailAddress) {
-                       // Is null
-                       throw new NullPointerException("emailAddress is null"); //NOI18N
-               } else if (emailAddress.isEmpty()) {
-                       // Is empty
-                       throw new IllegalArgumentException("emailAddress is empty"); //NOI18N
-               }
-
-               // Default is not found
-               boolean isFound = false;
-
-               try {
-                       // Ask other method for contact instance
-                       final Contact contact = this.findContactByEmailAddress(emailAddress);
-
-                       // Log debug message
-                       this.getLoggerBeanLocal().logDebug(MessageFormat.format("{0}.isEmailAddressRegistered: Found contact={1} for emailAddress={2}", this.getClass().getSimpleName(), contact, emailAddress)); //NOI18N
-
-                       // It is found ...
-                       isFound = true;
-               } catch (final ContactNotFoundException ex) {
-                       // @TODO Was not found, log exception for spam check?
-               }
-
-               // Log trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.isEmailAddressRegistered: isFound={1} - EXIT!", this.getClass().getSimpleName(), isFound)); //NOI18N
-
-               // Return status
-               return isFound;
-       }
-
        @Override
        public Contact lookupContact (final Contact contact) {
                // Log trace message
@@ -160,7 +104,7 @@ public class AddressbookContactSessionBean extends BaseAddressbookDatabaseBean i
                // Loop through all
                while (iterator.hasNext()) {
                        // Get contact
-                       Contact next = iterator.next();
+                       final Contact next = iterator.next();
 
                        // Is same contact?
                        if ((Objects.equals(contact, next)) || (ContactUtils.isSameContact(contact, next))) {
@@ -201,7 +145,7 @@ public class AddressbookContactSessionBean extends BaseAddressbookDatabaseBean i
                this.setAllContactPhoneEntriesUpdated(contact, isCellphoneUnlinked, isLandlineUnlinked, isFaxUnlinked);
 
                // Merge mobile, land-line and fix
-               Contact detachedContact = this.mergeContactData(contact);
+               final Contact detachedContact = this.mergeContactData(contact);
 
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateContactData: detachedContact={1} - EXIT!", this.getClass().getSimpleName(), detachedContact)); //NOI18N
@@ -228,12 +172,12 @@ public class AddressbookContactSessionBean extends BaseAddressbookDatabaseBean i
                }
 
                // Is cell phone/land-line/fax number unlinked?
-               boolean isCellphoneUnlinked = (contact.getContactMobileNumber() == null);
-               boolean isLandLineUnlinked = (contact.getContactLandLineNumber() == null);
-               boolean isFaxUnlinked = (contact.getContactFaxNumber() == null);
+               final boolean isCellphoneUnlinked = (contact.getContactMobileNumber() == null);
+               final boolean isLandLineUnlinked = (contact.getContactLandLineNumber() == null);
+               final boolean isFaxUnlinked = (contact.getContactFaxNumber() == null);
 
                // Call other Method
-               Contact detachedContact = this.updateContactData(contact, isCellphoneUnlinked, isLandLineUnlinked, isFaxUnlinked);
+               final Contact detachedContact = this.updateContactData(contact, isCellphoneUnlinked, isLandLineUnlinked, isFaxUnlinked);
 
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateContactData: detachedContact={1} - EXIT!", this.getClass().getSimpleName(), detachedContact)); //NOI18N
@@ -242,57 +186,6 @@ public class AddressbookContactSessionBean extends BaseAddressbookDatabaseBean i
                return detachedContact;
        }
 
-       /**
-        * Returns a contact instance which has the given email address.
-        * <p>
-        * @param emailAddress Email address
-        * <p>
-        * @return Contact instance
-        * <p>
-        * @throws ContactNotFoundException If the contact was not found
-        */
-       private Contact findContactByEmailAddress (final String emailAddress) throws ContactNotFoundException {
-               // Log trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findContactByEmailAddress: emailAddress={1} - CALLED!", this.getClass().getSimpleName(), emailAddress)); //NOI18N
-
-               // The parameter must be valid
-               if (null == emailAddress) {
-                       // Throw NPE
-                       throw new NullPointerException("emailAddress is null"); //NOI18N
-               } else if (emailAddress.isEmpty()) {
-                       // Not valid
-                       throw new IllegalArgumentException("emailAddress is empty"); //NOI18N
-               }
-
-               // Get query instance
-               final Query query = this.getEntityManager().createNamedQuery("SearchContactByEmailAddress", UserContact.class); //NOI18N
-
-               // Set parameter and limit
-               query.setParameter("emailAddress", emailAddress); //NOI18N
-               query.setMaxResults(1);
-
-               // Init contact instance
-               final Contact contact;
-
-               // Try to find a result
-               try {
-                       // Find a single result
-                       contact = (Contact) query.getSingleResult();
-
-                       // Log trace message
-                       this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findContactByEmailAddress: Found contact={1}", this.getClass().getSimpleName(), contact)); //NOI18N
-               } catch (final NoResultException ex) {
-                       // No result found
-                       throw new ContactNotFoundException(emailAddress, ex);
-               }
-
-               // Log trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findContactByEmailAddress: contact={1} - EXIT!", this.getClass().getSimpleName(), contact)); //NOI18N
-
-               // Return found instance
-               return contact;
-       }
-
        /**
         * Returns a contact instance which has the given id number.
         * <p>
index 4e2d5e261f5eaaadb92305b51256d942acaabbe0..6f25bcf38edcf2ed9642ba8b925bea81aba7e534 100644 (file)
@@ -24,8 +24,9 @@ import javax.ejb.EJB;
 import javax.ejb.Stateless;
 import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
 import org.mxchange.jcontactsbusiness.exceptions.basicdata.BasicDataAlreadyAddedException;
-import org.mxchange.jusercore.model.user.User;
 import org.mxchange.jcontactsbusiness.model.employee.Employable;
+import org.mxchange.jcontactsbusiness.model.headquarter.Headquarter;
+import org.mxchange.jusercore.model.user.User;
 
 /**
  * An administrative stateless session bean for business data
@@ -101,6 +102,15 @@ public class AddressbookAdminBusinessDataSessionBean extends BaseAddressbookData
                        basicData.setCompanyContactEmployee(managedEmployee);
                }
 
+               // Is a headquarter set?
+               if (basicData.getCompanyHeadquarterData()instanceof Headquarter) {
+                       // Get managed instance
+                       final Headquarter managedHeadquarter = this.createManaged(basicData.getCompanyHeadquarterData());
+
+                       // Set it back
+                       basicData.setCompanyHeadquarterData(managedHeadquarter);
+               }
+
                // Set created timestamps for any assigned numbers
                this.setAllPhoneEntriesCreated(basicData);
 
index 2a6c8c19fcf2bd2731596ca63f52a8218c45f12b..5597caf12149c8ef57490cf09daaaa1d0ce72214 100644 (file)
@@ -23,10 +23,10 @@ import javax.ejb.EJB;
 import javax.ejb.Stateless;
 import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
 import org.mxchange.jcontactsbusiness.exceptions.branchoffice.BranchOfficeAlreadyAddedException;
+import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
 import org.mxchange.jcontactsbusiness.model.opening_time.OpeningTime;
 import org.mxchange.jcountry.model.data.Country;
 import org.mxchange.jusercore.model.user.User;
-import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
 
 /**
  * A stateless session bean for administrative branch office purposes
index 9d96fdd826961da9a0da24d57824b0ce3bc8b43d..b95556dcfe4368e9e307c105d70c2760f7cdeb93 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
@@ -22,12 +22,12 @@ import java.util.List;
 import javax.ejb.EJB;
 import javax.ejb.Stateless;
 import org.mxchange.jcontactsbusiness.exceptions.department.DepartmentAlreadyAddedException;
+import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
 import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice;
 import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
-import org.mxchange.jusercore.model.user.User;
 import org.mxchange.jcontactsbusiness.model.employee.Employable;
-import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
-import org.mxchange.jcontactsbusiness.model.headquarters.Headquarter;
+import org.mxchange.jcontactsbusiness.model.headquarter.Headquarter;
+import org.mxchange.jusercore.model.user.User;
 
 /**
  * A stateless session bean for administrative department purposes
@@ -106,13 +106,13 @@ public class AddressbookAdminDepartmentSessionBean extends BaseAddressbookDataba
                        department.setDepartmentBranchOffice(managedBranchOffice);
                }
 
-               // Is headquarters set?
-               if (department.getDepartmentHeadquarters() instanceof Headquarter) {
-                       // Get managed headquarters
-                       final Headquarter managedHeadquarters = this.createManaged(department.getDepartmentHeadquarters());
+               // Is headquarter set?
+               if (department.getDepartmentHeadquarter() instanceof Headquarter) {
+                       // Get managed headquarter
+                       final Headquarter managedHeadquarter = this.createManaged(department.getDepartmentHeadquarter());
 
                        // Set it back
-                       department.setDepartmentHeadquarters(managedHeadquarters);
+                       department.setDepartmentHeadquarter(managedHeadquarter);
                }
 
                // Is lead employee set?
index 24c3f1bc616822814f49537a9c6fe5ddccf30e9e..e8dea68477ebbed22823acccbcbe75bc7eb29746 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 4aa191e58378cf47a25bbeae00eb25cdcd16e591..00361667a8545388a5924d40340488747c4fe2a1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
  */
 package org.mxchange.jcontactsbusiness.model.employee;
 
+import java.text.MessageFormat;
+import java.util.Date;
+import javax.ejb.EJB;
 import javax.ejb.Stateless;
 import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
+import org.mxchange.jcontacts.model.contact.Contact;
+import org.mxchange.jcontactsbusiness.exceptions.employee.EmployeeAlreadyAddedException;
+import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice;
+import org.mxchange.jcontactsbusiness.model.department.Department;
+import org.mxchange.jcontactsbusiness.model.headquarter.Headquarter;
+import org.mxchange.jcontactsbusiness.model.jobposition.JobPosition;
+import org.mxchange.jphone.model.phonenumbers.mobile.DialableMobileNumber;
+import org.mxchange.jphone.model.phonenumbers.mobileprovider.MobileProvider;
+import org.mxchange.jusercore.model.user.User;
 
 /**
  * A stateless bean for administrative purposes for company employees.
@@ -32,6 +44,12 @@ public class AddressbookAdminEmployeeSessionBean extends BaseAddressbookDatabase
         */
        private static final long serialVersionUID = 26_458_796_703_761L;
 
+       /**
+        * EJB for general company employee purposes
+        */
+       @EJB (lookup = "java:global/addressbook-ejb/employee!org.mxchange.jcontactsbusiness.model.employee.EmployeeSessionBeanRemote")
+       private EmployeeSessionBeanRemote employeeBean;
+
        /**
         * Default constructor
         */
@@ -39,4 +57,191 @@ public class AddressbookAdminEmployeeSessionBean extends BaseAddressbookDatabase
                super();
        }
 
+       @Override
+       public Employable addEmployee (final Employable employee) throws EmployeeAlreadyAddedException {
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addEmployee(): employee={1} - CALLED!", this.getClass().getSimpleName(), employee)); //NOI18N
+
+               // Validate parameter
+               if (null == employee) {
+                       // Throw NPE
+                       throw new NullPointerException("employee is null"); //NOI18N
+               } else if (employee.getEmployeeId() != null) {
+                       // Throw IAE
+                       throw new IllegalArgumentException(MessageFormat.format("employee.employeeId={0} is unexpected.", employee.getEmployeeId())); //NOI18N
+               } else if (employee.getEmployeeCompany() == null) {
+                       // Throw NPE
+                       throw new NullPointerException("employee.employeeCompany is null"); //NOI18N
+               } else if (employee.getEmployeeCompany().getBasicDataId() == null) {
+                       // Throw it again
+                       throw new NullPointerException("employee.employeeCompany.basicDataId is null"); //NOI18N
+               } else if (employee.getEmployeeCompany().getBasicDataId() < 1) {
+                       // Throw IAE
+                       throw new IllegalArgumentException(MessageFormat.format("employee.employeeCompany.basicDataId={0} is invalid.", employee.getEmployeeCompany().getBasicDataId())); //NOI18N
+               } else if (employee.getEmployeeBranchOffice() == null && employee.getEmployeeDepartment() == null && employee.getEmployeeHeadquarter() == null) {
+                       // At least one must be set
+                       throw new NullPointerException("employee.employeeBranchOffice, employee.employeeDepartment and employee.employeeHeadquarter is null"); //NOI18N
+               } else if (employee.getEmployeeBranchOffice() != null && employee.getEmployeeBranchOffice().getBranchId() == null) {
+                       // Throw NPE
+                       throw new NullPointerException("employee.employeeBranchOffice.branchId is null"); //NOI18N
+               } else if (employee.getEmployeeBranchOffice() != null && employee.getEmployeeBranchOffice().getBranchId() < 1) {
+                       // Throw IAE
+                       throw new IllegalArgumentException(MessageFormat.format("employee.employeeBranchOffice.branchId={0} is invalid.", employee.getEmployeeBranchOffice().getBranchId())); //NOI18N
+               } else if (employee.getEmployeeDepartment() != null && employee.getEmployeeDepartment().getDepartmentId() == null) {
+                       // Throw NPE
+                       throw new NullPointerException("employee.employeeDepartment.departmentId is null"); //NOI18N
+               } else if (employee.getEmployeeDepartment() != null && employee.getEmployeeDepartment().getDepartmentId() < 1) {
+                       // Throw IAE
+                       throw new IllegalArgumentException(MessageFormat.format("employee.employeeDepartment.departmentId={0} is invalid.", employee.getEmployeeDepartment().getDepartmentId())); //NOI18N
+               } else if (employee.getEmployeeHeadquarter() != null && employee.getEmployeeHeadquarter().getHeadquarterId() == null) {
+                       // Throw NPE
+                       throw new NullPointerException("employee.employeeHeadquarter.headquarterId is null"); //NOI18N
+               } else if (employee.getEmployeeHeadquarter() != null && employee.getEmployeeHeadquarter().getHeadquarterId() < 1) {
+                       // Throw IAE
+                       throw new IllegalArgumentException(MessageFormat.format("employee.employeeHeadquarter.headquarterId={0} is invalid.", employee.getEmployeeHeadquarter().getHeadquarterId())); //NOI18N
+               } else if ((employee.getEmployeePersonalData() == null) && (employee.getEmployeeNumber() == null)) {
+                       // Both are null
+                       throw new NullPointerException("employee.employeePersonalData and employee.employeeNumber are null"); //NOI18N
+               } else if ((employee.getEmployeePersonalData() != null) && (employee.getEmployeePersonalData().getContactId() == null)) {
+                       // Throw NPE
+                       throw new NullPointerException("employee.employeePersonalData.contactId is null"); //NOI18N
+               } else if ((employee.getEmployeePersonalData() != null) && (employee.getEmployeePersonalData().getContactId() < 1)) {
+                       // Throw IAE
+                       throw new IllegalArgumentException(MessageFormat.format("employee.employeePersonalData.contactId={0} is invalid.", employee.getEmployeePersonalData().getContactId())); //NOI18N
+               } else if ((employee.getEmployeeNumber() != null) && (employee.getEmployeeNumber().isEmpty())) {
+                       // Throw it again
+                       throw new IllegalArgumentException("employee.employeeNumber is empty"); //NOI18N
+               } else if ((employee.getEmployeeMobileNumber() != null) && (employee.getEmployeeMobileNumber().getPhoneId() != null)) {
+                       // Throw once more
+                       throw new IllegalArgumentException(MessageFormat.format("employee.employeeMobileNumber.phoneId={0} is unexpected.", employee.getEmployeeMobileNumber().getPhoneId())); //NOI18N
+               } else if ((employee.getEmployeePersonalData() != null) && (employee.getEmployeePersonalData().getContactId() == null)) {
+                       // Throw NPE
+                       throw new NullPointerException("employee.employeePersonalData.contactId is null"); //NOI18N
+               } else if ((employee.getEmployeePersonalData() != null) && (employee.getEmployeePersonalData().getContactId() < 1)) {
+                       // Throw IAE
+                       throw new IllegalArgumentException(MessageFormat.format("employee.employeePersonalData.contactId={0} is unexpected.", employee.getEmployeePersonalData().getContactId())); //NOI18N
+               } else if ((employee.getEmployeePosition() != null) && (employee.getEmployeePosition().getJobPositionId() == null)) {
+                       // Throw NPE
+                       throw new NullPointerException("employee.employeePosition.jobPositionId is null"); //NOI18N
+               } else if ((employee.getEmployeePosition() != null) && (employee.getEmployeePosition().getJobPositionId() < 1)) {
+                       // Throw IAE
+                       throw new IllegalArgumentException(MessageFormat.format("employee.employeePosition.jobPositionId={0} is unexpected.", employee.getEmployeePosition().getJobPositionId())); //NOI18N
+               } else if ((employee.getEmployeeUserOwner() != null) && (employee.getEmployeeUserOwner().getUserId() == null)) {
+                       // Throw NPE
+                       throw new NullPointerException("employee.employeeUserOwner.userId is null"); //NOI18N
+               } else if ((employee.getEmployeeUserOwner() != null) && (employee.getEmployeeUserOwner().getUserId() < 1)) {
+                       // Throw IAE
+                       throw new IllegalArgumentException(MessageFormat.format("employee.employeeUserOwner.userId={0} is unexpected.", employee.getEmployeeUserOwner().getUserId())); //NOI18N
+               } else if (this.isEmployeeAdded(employee)) {
+                       // Throw exception
+                       throw new EmployeeAlreadyAddedException();
+               }
+
+               // Make company (basic data) managed
+               employee.setEmployeeCompany(this.createManaged(employee.getEmployeeCompany()));
+
+               // Is branch office set?
+               if (employee.getEmployeeBranchOffice() instanceof BranchOffice) {
+                       // Then make it managed
+                       final BranchOffice branchOffice = this.createManaged(employee.getEmployeeBranchOffice());
+
+                       // Set it back
+                       employee.setEmployeeBranchOffice(branchOffice);
+               }
+
+               // Is department set?
+               if (employee.getEmployeeDepartment() instanceof Department) {
+                       // Then make it managed
+                       final Department department = this.createManaged(employee.getEmployeeDepartment());
+
+                       // Set it back
+                       employee.setEmployeeDepartment(department);
+               }
+
+               // Is headquarter set?
+               if (employee.getEmployeeHeadquarter() instanceof Headquarter) {
+                       // Then make it managed
+                       final Headquarter headquarter = this.createManaged(employee.getEmployeeHeadquarter());
+
+                       // Set it back
+                       employee.setEmployeeHeadquarter(headquarter);
+               }
+
+               // Is personal data set?
+               if (employee.getEmployeePersonalData() instanceof Contact) {
+                       // Then make it managed
+                       final Contact contact = this.createManaged(employee.getEmployeePersonalData());
+
+                       // Set it back
+                       employee.setEmployeePersonalData(contact);
+               }
+
+               // Is headquarter set?
+               if (employee.getEmployeePosition() instanceof JobPosition) {
+                       // Then make it managed
+                       final JobPosition jobPosition = this.createManaged(employee.getEmployeePosition());
+
+                       // Set it back
+                       employee.setEmployeePosition(jobPosition);
+               }
+
+               // Is headquarter set?
+               if (employee.getEmployeeUserOwner() instanceof User) {
+                       // Then make it managed
+                       final User user = this.createManaged(employee.getEmployeeUserOwner());
+
+                       // Set it back
+                       employee.setEmployeeUserOwner(user);
+               }
+
+               // Is mobile number set?
+               if (employee.getEmployeeMobileNumber() instanceof DialableMobileNumber) {
+                       // Yes, then set created there as well
+                       employee.getEmployeeMobileNumber().setPhoneEntryCreated(new Date());
+
+                       // Make mobile provider managed
+                       final MobileProvider mobileProvider = this.createManaged(employee.getEmployeeMobileNumber().getMobileProvider());
+
+                       // Set it back
+                       employee.getEmployeeMobileNumber().setMobileProvider(mobileProvider);
+               }
+
+               // Set created timestamp
+               employee.setEmployeeCreated(new Date());
+
+               // Persist it
+               this.getEntityManager().persist(employee);
+
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addEmployee(): employee.employeeId={1} - EXIT!", this.getClass().getSimpleName(), employee.getEmployeeId())); //NOI18N
+
+               // Return it
+               return employee;
+       }
+
+       /**
+        * Checks whether employee is already added
+        * <p>
+        * @param employee Employee to be checked
+        * <p>
+        * @return Whether employee is already added
+        */
+       private boolean isEmployeeAdded (final Employable employee) {
+               // Default is not added
+               boolean isFound = false;
+
+               // Check all entries
+               for (final Employable otherEmployee : this.employeeBean.allEmployees()) {
+                       // Is same found?
+                       if (Employees.isSameEmployeeFound(employee, otherEmployee)) {
+                               // Found it
+                               isFound = true;
+                               break;
+                       }
+               }
+
+               // Return flag
+               return isFound;
+       }
+
 }
index 503b7750448eae380ac05b5e96e7a2aba2acb4c6..56b25f1c4dde373c2088f5e3b3a486e72cff9279 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
@@ -33,7 +33,7 @@ public class AddressbookEmployeeSessionBean extends BaseAddressbookDatabaseBean
        /**
         * Serial number
         */
-       private static final long serialVersionUID = 26_458_796_703_761L;
+       private static final long serialVersionUID = 26_458_796_703_762L;
 
        /**
         * Default constructor
diff --git a/src/java/org/mxchange/jcontactsbusiness/model/headquarter/AddressbookAdminHeadquartersSessionBean.java b/src/java/org/mxchange/jcontactsbusiness/model/headquarter/AddressbookAdminHeadquartersSessionBean.java
new file mode 100644 (file)
index 0000000..a90afda
--- /dev/null
@@ -0,0 +1,153 @@
+/*
+ * Copyright (C) 2017, 2018 Free Software Foundation
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jcontactsbusiness.model.headquarter;
+
+import java.text.MessageFormat;
+import java.util.Date;
+import java.util.List;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+import org.mxchange.jcontactsbusiness.exceptions.headquarter.HeadquarterAlreadyAddedException;
+import org.mxchange.jcontactsbusiness.model.opening_time.OpeningTime;
+import org.mxchange.jcountry.model.data.Country;
+import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ * A stateless session bean for administrative branch office purposes
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@Stateless (name = "adminHeadquarter", description = "An administrative statless bean for handling branch office data (all)")
+public class AddressbookAdminHeadquarterSessionBean extends BaseAddressbookDatabaseBean implements AdminHeadquarterSessionBeanRemote {
+
+       /**
+        * Serial number
+        */
+       private static final long serialVersionUID = 58_467_386_571_701L;
+
+       /**
+        * General branch office bean
+        */
+       @EJB (lookup = "java:global/addressbook-ejb/headquarter!org.mxchange.jcontactsbusiness.model.headquarter.HeadquarterSessionBeanRemote")
+       private HeadquarterSessionBeanRemote headquarterBean;
+
+       /**
+        * Default constructor
+        */
+       public AddressbookAdminHeadquarterSessionBean () {
+               // Call super constructor
+               super();
+       }
+
+       @Override
+       public Headquarter addHeadquarter (final Headquarter headquarter) throws HeadquarterAlreadyAddedException {
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addHeadquarter(): headquarter={1} - CALLED!", this.getClass().getSimpleName(), headquarter)); //NOI18N
+
+               // Validate parameter
+               if (null == headquarter) {
+                       // Throw NPE
+                       throw new NullPointerException("headquarter is null"); //NOI18N
+               } else if (headquarter.getHeadquarterId() instanceof Long) {
+                       // Should not happen
+                       throw new IllegalArgumentException("headquarter.branchId should not be set."); //NOI18N
+               } else if (this.isHeadquarterFound(headquarter)) {
+                       // Already added, abort here
+                       throw new HeadquarterAlreadyAddedException(headquarter);
+               }
+
+               // Add created timestamp
+               headquarter.setHeadquarterCreated(new Date());
+
+               // Is user instance set?
+               if (headquarter.getHeadquarterUserOwner() instanceof User) {
+                       // Get managed instance back
+                       final User managedUser = this.createManaged(headquarter.getHeadquarterUserOwner());
+
+                       // Set it back in branch office
+                       headquarter.setHeadquarterUserOwner(managedUser);
+               }
+
+               // Is user instance set?
+               if (headquarter.getHeadquarterCountry() instanceof Country) {
+                       // Get managed instance back
+                       final Country managedCountry = this.createManaged(headquarter.getHeadquarterCountry());
+
+                       // Set it back in branch office
+                       headquarter.setHeadquarterCountry(managedCountry);
+               }
+
+               // Set "created" timestamp on any number assigned
+               this.setAllPhoneEntriesCreated(headquarter);
+
+               // Get opening times
+               final List<OpeningTime> openingTimes = headquarter.getHeadquarterOpeningTimes();
+
+               // Debugging:
+               this.getLoggerBeanLocal().logDebug(MessageFormat.format("{0}.addHeadquarter(): headquarter.headquarterOpeningTimes={1}", this.getClass().getSimpleName(), openingTimes));
+
+               // Is opening times set and not empty?
+               if ((openingTimes instanceof List) && (!openingTimes.isEmpty())) {
+                       // Add created timestamp for all times
+                       this.setAllOpeningTimesCreated(openingTimes);
+               } else {
+                       // Set all to null
+                       headquarter.setHeadquarterOpeningTimes(null);
+               }
+
+               // Persist it
+               this.getEntityManager().persist(headquarter);
+
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addHeadquarter(): headquarter.branchId={1} - EXIT!", this.getClass().getSimpleName(), headquarter.getHeadquarterId())); //NOI18N
+
+               // Return updated instance
+               return headquarter;
+       }
+
+       /**
+        * Checks if given branch office's address is already persisted. The whole
+        * (persisted) list is being loaded and each address is being matched
+        * against the given branch office's address.
+        * <p>
+        * @param headquarter Headquarter office being checked
+        * <p>
+        * @return Whether it has been found
+        */
+       private boolean isHeadquarterFound (final Headquarter headquarter) {
+               // Get whole list
+               final List<Headquarter> headquarters = this.headquarterBean.allHeadquarters();
+
+               // Default is not found
+               boolean isFound = false;
+
+               // Check all single addresses
+               for (final Headquarter hq : headquarters) {
+                       // Is the same address found?
+                       if (Headquarters.isSameAddress(hq, headquarter)) {
+                               // Found one
+                               isFound = true;
+                               break;
+                       }
+               }
+
+               // Return flag
+               return isFound;
+       }
+
+}
diff --git a/src/java/org/mxchange/jcontactsbusiness/model/headquarter/AddressbookHeadquartersSessionBean.java b/src/java/org/mxchange/jcontactsbusiness/model/headquarter/AddressbookHeadquartersSessionBean.java
new file mode 100644 (file)
index 0000000..2565557
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2017, 2018 Free Software Foundation
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jcontactsbusiness.model.headquarter;
+
+import org.mxchange.jcontactsbusiness.model.headquarter.Headquarter;
+import java.text.MessageFormat;
+import java.util.List;
+import javax.ejb.Stateless;
+import javax.persistence.Query;
+import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
+import org.mxchange.jcontactsbusiness.model.headquarter.HeadquarterSessionBeanRemote;
+
+/**
+ * A stateless session bean for general headquarter purposes
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@Stateless (name = "headquarter", description = "A general statless bean for handling headquarter data (all)")
+public class AddressbookHeadquarterSessionBean extends BaseAddressbookDatabaseBean implements HeadquarterSessionBeanRemote {
+
+       /**
+        * Serial number
+        */
+       private static final long serialVersionUID = 58_467_386_571_701L;
+
+       @Override
+       @SuppressWarnings ("unchecked")
+       public List<Headquarter> allHeadquarters () {
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allHeadquarters: CALLED!", this.getClass().getSimpleName())); //NOI18N
+
+               // Get query
+               final Query query = this.getEntityManager().createNamedQuery("AllHeadquarters"); //NOI18N
+
+               // Get list from it
+               final List<Headquarter> list = query.getResultList();
+
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allHeadquarters: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
+
+               // Return it
+               return list;
+       }
+
+}
diff --git a/src/java/org/mxchange/jcontactsbusiness/model/headquarters/AddressbookAdminHeadquartersSessionBean.java b/src/java/org/mxchange/jcontactsbusiness/model/headquarters/AddressbookAdminHeadquartersSessionBean.java
deleted file mode 100644 (file)
index b2e0d8f..0000000
+++ /dev/null
@@ -1,153 +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 <http://www.gnu.org/licenses/>.
- */
-package org.mxchange.jcontactsbusiness.model.headquarters;
-
-import java.text.MessageFormat;
-import java.util.Date;
-import java.util.List;
-import javax.ejb.EJB;
-import javax.ejb.Stateless;
-import org.mxchange.jcontactsbusiness.exceptions.headquarters.HeadquartersAlreadyAddedException;
-import org.mxchange.jcontactsbusiness.model.opening_time.OpeningTime;
-import org.mxchange.jcountry.model.data.Country;
-import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
-import org.mxchange.jusercore.model.user.User;
-
-/**
- * A stateless session bean for administrative branch office purposes
- * <p>
- * @author Roland Häder<roland@mxchange.org>
- */
-@Stateless (name = "adminHeadquarter", description = "An administrative statless bean for handling branch office data (all)")
-public class AddressbookAdminHeadquartersSessionBean extends BaseAddressbookDatabaseBean implements AdminHeadquartersSessionBeanRemote {
-
-       /**
-        * Serial number
-        */
-       private static final long serialVersionUID = 58_467_386_571_701L;
-
-       /**
-        * General branch office bean
-        */
-       @EJB (lookup = "java:global/addressbook-ejb/headquarters!org.mxchange.jcontactsbusiness.model.headquarters.HeadquarterSessionBeanRemote")
-       private HeadquartersSessionBeanRemote headquartersBean;
-
-       /**
-        * Default constructor
-        */
-       public AddressbookAdminHeadquartersSessionBean () {
-               // Call super constructor
-               super();
-       }
-
-       @Override
-       public Headquarter addHeadquarters (final Headquarter headquarter) throws HeadquartersAlreadyAddedException {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addHeadquarters(): headquarter={1} - CALLED!", this.getClass().getSimpleName(), headquarter)); //NOI18N
-
-               // Validate parameter
-               if (null == headquarter) {
-                       // Throw NPE
-                       throw new NullPointerException("headquarter is null"); //NOI18N
-               } else if (headquarter.getHeadquartersId() instanceof Long) {
-                       // Should not happen
-                       throw new IllegalArgumentException("headquarter.branchId should not be set."); //NOI18N
-               } else if (this.isHeadquarterFound(headquarter)) {
-                       // Already added, abort here
-                       throw new HeadquartersAlreadyAddedException(headquarter);
-               }
-
-               // Add created timestamp
-               headquarter.setHeadquartersCreated(new Date());
-
-               // Is user instance set?
-               if (headquarter.getHeadquartersUserOwner() instanceof User) {
-                       // Get managed instance back
-                       final User managedUser = this.createManaged(headquarter.getHeadquartersUserOwner());
-
-                       // Set it back in branch office
-                       headquarter.setHeadquartersUserOwner(managedUser);
-               }
-
-               // Is user instance set?
-               if (headquarter.getHeadquartersCountry() instanceof Country) {
-                       // Get managed instance back
-                       final Country managedCountry = this.createManaged(headquarter.getHeadquartersCountry());
-
-                       // Set it back in branch office
-                       headquarter.setHeadquartersCountry(managedCountry);
-               }
-
-               // Set "created" timestamp on any number assigned
-               this.setAllPhoneEntriesCreated(headquarter);
-
-               // Get opening times
-               final List<OpeningTime> openingTimes = headquarter.getHeadquartersOpeningTimes();
-
-               // Debugging:
-               this.getLoggerBeanLocal().logDebug(MessageFormat.format("{0}.addHeadquarters(): headquarter.headquarterOpeningTimes={1}", this.getClass().getSimpleName(), openingTimes));
-
-               // Is opening times set and not empty?
-               if ((openingTimes instanceof List) && (!openingTimes.isEmpty())) {
-                       // Add created timestamp for all times
-                       this.setAllOpeningTimesCreated(openingTimes);
-               } else {
-                       // Set all to null
-                       headquarter.setHeadquartersOpeningTimes(null);
-               }
-
-               // Persist it
-               this.getEntityManager().persist(headquarter);
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addHeadquarters(): headquarter.branchId={1} - EXIT!", this.getClass().getSimpleName(), headquarter.getHeadquartersId())); //NOI18N
-
-               // Return updated instance
-               return headquarter;
-       }
-
-       /**
-        * Checks if given branch office's address is already persisted. The whole
-        * (persisted) list is being loaded and each address is being matched
-        * against the given branch office's address.
-        * <p>
-        * @param headquarter Headquarters office being checked
-        * <p>
-        * @return Whether it has been found
-        */
-       private boolean isHeadquarterFound (final Headquarter headquarter) {
-               // Get whole list
-               final List<Headquarter> headquarters = this.headquartersBean.allHeadquarters();
-
-               // Default is not found
-               boolean isFound = false;
-
-               // Check all single addresses
-               for (final Headquarter hq : headquarters) {
-                       // Is the same address found?
-                       if (Headquarters.isSameAddress(hq, headquarter)) {
-                               // Found one
-                               isFound = true;
-                               break;
-                       }
-               }
-
-               // Return flag
-               return isFound;
-       }
-
-}
diff --git a/src/java/org/mxchange/jcontactsbusiness/model/headquarters/AddressbookHeadquartersSessionBean.java b/src/java/org/mxchange/jcontactsbusiness/model/headquarters/AddressbookHeadquartersSessionBean.java
deleted file mode 100644 (file)
index 967a722..0000000
+++ /dev/null
@@ -1,57 +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 <http://www.gnu.org/licenses/>.
- */
-package org.mxchange.jcontactsbusiness.model.headquarters;
-
-import java.text.MessageFormat;
-import java.util.List;
-import javax.ejb.Stateless;
-import javax.persistence.Query;
-import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
-
-/**
- * A stateless session bean for general headquarters purposes
- * <p>
- * @author Roland Häder<roland@mxchange.org>
- */
-@Stateless (name = "headquarters", description = "A general statless bean for handling headquarters data (all)")
-public class AddressbookHeadquartersSessionBean extends BaseAddressbookDatabaseBean implements HeadquartersSessionBeanRemote {
-
-       /**
-        * Serial number
-        */
-       private static final long serialVersionUID = 58_467_386_571_701L;
-
-       @Override
-       @SuppressWarnings ("unchecked")
-       public List<Headquarter> allHeadquarters () {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allHeadquarters: CALLED!", this.getClass().getSimpleName())); //NOI18N
-
-               // Get query
-               final Query query = this.getEntityManager().createNamedQuery("AllHeadquarters"); //NOI18N
-
-               // Get list from it
-               final List<Headquarter> list = query.getResultList();
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allHeadquarters: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
-
-               // Return it
-               return list;
-       }
-
-}
index 70b22f0e4204bc74dda8b7bf2b5d57bccd9afcb6..0935f56ff2bc3043b7709b7a0054428689605e54 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 3cae36d1012e29d5f09f531b57a775468ae9395c..5546004526fbb14149632814fd42b701dc3b2c16 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2017 Roland Häder
+ * Copyright (C) 2017, 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index ed21d59afac47598fb6b37f12b39b2eee79cf88b..ab5be18452dbfe0d689f821ce9e8b69233e123a9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * Copyright (C) 2016 - 2018 Free Software Foundation
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
index 368d1d2bef7f3ad799d2f073242c093239ce9378..dc1d482978bb7893250949dcc11b1b6e8bfc866c 100644 (file)
@@ -69,7 +69,7 @@ public class AddressbookAdminUserSessionBean extends BaseAddressbookDatabaseBean
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addUser: user={1} - CALLED!", this.getClass().getSimpleName(), user)); //NOI18N
 
-               // user should not be null
+               // Validate parameter
                if (null == user) {
                        // Abort here
                        throw new NullPointerException("user is null"); //NOI18N
@@ -109,7 +109,7 @@ public class AddressbookAdminUserSessionBean extends BaseAddressbookDatabaseBean
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.deleteUser: user={1} - CALLED!", this.getClass().getSimpleName(), user)); //NOI18N
 
-               // user should not be null
+               // Validate parameters
                if (null == user) {
                        // Abort here
                        throw new NullPointerException("user is null"); //NOI18N
index 6ba30ee60e46f88286ac6d75af776e622cc75a98..c9d2558055e260cfa761901be2fe415a140fc378 100644 (file)
@@ -40,7 +40,6 @@ import org.mxchange.jusercore.exceptions.UserStatusLockedException;
 import org.mxchange.jusercore.exceptions.UserStatusUnconfirmedException;
 import org.mxchange.jusercore.model.user.password_history.PasswordHistory;
 import org.mxchange.jusercore.model.user.password_history.UserPasswordHistory;
-import org.mxchange.jusercore.model.user.profilemodes.ProfileMode;
 import org.mxchange.jusercore.model.user.status.UserAccountStatus;
 import org.mxchange.juserlogincore.model.user.register.UserRegistrationSessionBeanRemote;
 
@@ -73,53 +72,7 @@ public class AddressbookUserSessionBean extends BaseAddressbookDatabaseBean impl
 
        @Override
        @SuppressWarnings ("unchecked")
-       public List<User> allMemberPublicVisibleUsers () {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allMemberPublicVisibleUsers: CALLED!", this.getClass().getSimpleName())); //NOI18N
-
-               // Get named query
-               final Query query = this.getEntityManager().createNamedQuery("AllMemberPublicUsers", LoginUser.class); //NOI18N
-
-               // Set parameters
-               query.setParameter("status", UserAccountStatus.CONFIRMED); //NOI18N
-               query.setParameter("members", ProfileMode.MEMBERS); //NOI18N
-               query.setParameter("public", ProfileMode.PUBLIC); //NOI18N
-
-               // Get result
-               final List<User> users = query.getResultList();
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allMemberPublicVisibleUsers: users.size()={1} - EXIT!", this.getClass().getSimpleName(), users.size())); //NOI18N
-
-               // Return full list
-               return users;
-       }
-
-       @Override
-       @SuppressWarnings ("unchecked")
-       public List<User> allPublicUsers () {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allPublicUsers: CALLED!", this.getClass().getSimpleName())); //NOI18N
-
-               // Get named query
-               final Query query = this.getEntityManager().createNamedQuery("AllPublicUsers", LoginUser.class); //NOI18N
-
-               // Set parameters
-               query.setParameter("status", UserAccountStatus.CONFIRMED); //NOI18N
-               query.setParameter("mode", ProfileMode.PUBLIC); //NOI18N
-
-               // Get result
-               final List<User> users = query.getResultList();
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allPublicUsers: users.size()={1} - EXIT!", this.getClass().getSimpleName(), users.size())); //NOI18N
-
-               // Return full list
-               return users;
-       }
-
-       @Override
-       @SuppressWarnings ("unchecked")
+       @Deprecated
        public List<String> allUserNames () {
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getUserNameList: CALLED!", this.getClass().getSimpleName())); //NOI18N
@@ -201,6 +154,7 @@ public class AddressbookUserSessionBean extends BaseAddressbookDatabaseBean impl
        }
 
        @Override
+       @Deprecated
        public User fillUserData (final User user) throws UserNotFoundException {
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fillUserData: user={1} - CALLED!", this.getClass().getSimpleName(), user)); //NOI18N
@@ -247,6 +201,7 @@ public class AddressbookUserSessionBean extends BaseAddressbookDatabaseBean impl
        }
 
        @Override
+       @Deprecated
        public String generateRandomUserName () {
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.generateRandomUserName - CALLED!", this.getClass().getSimpleName())); //NOI18N
@@ -271,25 +226,7 @@ public class AddressbookUserSessionBean extends BaseAddressbookDatabaseBean impl
        }
 
        @Override
-       @SuppressWarnings ("unchecked")
-       public List<String> getEmailAddressList () {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getEmailAddressList: CALLED!", this.getClass().getSimpleName())); //NOI18N
-
-               // Get query
-               final Query query = this.getEntityManager().createNamedQuery("AllEmailAddresses", String.class); //NOI18N
-
-               // Get result list
-               final List<String> emailAddressList = query.getResultList();
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getEmailAddressList: emailAddressList.size()={1} - EXIT!", this.getClass().getSimpleName(), emailAddressList.size())); //NOI18N
-
-               // Return it
-               return emailAddressList;
-       }
-
-       @Override
+       @Deprecated
        public boolean ifUserExists (final User user) {
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.ifUserExists: user={1} - CALLED!", this.getClass().getSimpleName(), user)); //NOI18N
index 2245c34da7836e440811de10993ed75dcbda187d..da8074b6f7089d296b1bda3d69fee2674d431b96 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016 - 2020 Free Software Foundation
+ * Copyright (C) 2017 Roland Haeder<roland@mxchange.org>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
 package org.mxchange.jusercore.model.user.activity;
 
 import java.text.MessageFormat;
-import java.util.Arrays;
 import java.util.List;
 import javax.ejb.EJBException;
 import javax.ejb.Stateless;
 import javax.jms.JMSException;
 import javax.jms.ObjectMessage;
 import javax.persistence.Query;
-import org.mxchange.jcoreee.database.BaseDatabaseBean;
+import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
 import org.mxchange.jusercore.model.user.User;
 
 /**
- * An EJB for user activity log. This class extends BaseDatabaseBean and not
- * project-specific "base class". The simple reason is that this class requires
- * no email queue as no emails are ever being sent from this class.
+ * A stateless, session-scoped EJB for user-activity
  * <p>
  * @author Roland Häder<roland@mxchange.org>
  */
-@Stateless (name = "userActivity", description = "A bean handling the user data")
-public class AddressbookUserActivitySessionBean extends BaseDatabaseBean implements UserActivityLogSessionBeanRemote {
+@Stateless (name = "userActivity", description = "A stateless, session-scored user-activity bean.")
+public class AddressbookUserActivitySessionBean extends BaseAddressbookDatabaseBean implements UserActivityLogSessionBeanRemote {
 
        /**
         * Serial number
         */
-       private static final long serialVersionUID = 219_568_677_671_054L;
+       private static final long serialVersionUID = 1_268_376_401_659L;
 
        /**
         * Default constructor
         */
        public AddressbookUserActivitySessionBean () {
-               // Call super constructor
-               super("jms/jjobs-queue-factory", "jms/jjobs-user-activity-log"); //NOI18N
+               // Invoke super constructor
+               super("jms/addressbook-queue-factory", "jms/addressbook-user-activity-log"); //NOI18N
        }
 
        @Override
        public void addUserActivityLog (final LogableUserActivity userActivity) {
                // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addUserActivityLog: userActivity={1} CALLED!", this.getClass().getSimpleName(), userActivity)); //NOI18N
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addUserActivityLog: userActivity={1} CALLED!", this.getClass().getSimpleName(), userActivity)); //NOI18N
 
-               // Should be valid
+               // Validate parameter
                if (null == userActivity) {
                        // Throw NPE
                        throw new NullPointerException("userActivity is null"); //NOI18N
-               } else if (userActivity.getActivityId() instanceof Long) {
-                       // Id number should not be set
-                       throw new IllegalArgumentException(MessageFormat.format("userActivity.activityId={0} should be null", userActivity.getActivityId())); //NOI18N
-               } else if (userActivity.getActivityUser() == null) {
-                       // Throw NPE again
-                       throw new NullPointerException("userActivity.activityUser is null"); //NOI18N
+               } else if (userActivity.getActivityContactFamilyName() == null) {
+                       // Throw it again
+                       throw new NullPointerException("userActivity.activityContactFamilyName is null"); //NOI18N
+               } else if (userActivity.getActivityContactFamilyName().isEmpty()) {
+                       // Throw IAE
+                       throw new IllegalArgumentException("userActivity.activityContactFamilyName is empty"); //NOI18N
+               } else if (userActivity.getActivityContactFirstName() == null) {
+                       // Throw NPE
+                       throw new NullPointerException("userActivity.activityContactFirstName is null"); //NOI18N
+               } else if (userActivity.getActivityContactFirstName().isEmpty()) {
+                       // Throw IAE
+                       throw new IllegalArgumentException("userActivity.activityContactFirstName is empty"); //NOI18N
+               } else if (userActivity.getActivityContactPersonalTitle() == null) {
+                       // Throw NPE
+                       throw new NullPointerException("userActivity.activityContactPersonalTitle is null"); //NOI18N
+               } else if ((userActivity.getActivityMessage() != null) && (userActivity.getActivityMessage().isEmpty())) {
+                       // Throw IAE
+                       throw new IllegalArgumentException("userActivity.activityMessage is empty"); //NOI18N
                } else if (userActivity.getActivityType() == null) {
-                       // Throw again ...
+                       // Throw NPE
                        throw new NullPointerException("userActivity.activityType is null"); //NOI18N
                } else if (userActivity.getActivityType().isEmpty()) {
-                       // Empty type
-                       throw new NullPointerException("userActivity.activityType is empty"); //NOI18N
-               } else if ((userActivity.getActivityMessage() instanceof String) && (userActivity.getActivityMessage().isEmpty())) {
-                       // Set but empty message
-                       throw new NullPointerException("userActivity.activityMessage is empty"); //NOI18N
-               } else if (userActivity.getActivityTimestamp() == null) {
-                       // Throw NPE again
-                       throw new NullPointerException("userActivity.activityTimestamp is null"); //NOI18N
+                       // Throw IAE
+                       throw new IllegalArgumentException("userActivity.activityType is empty"); //NOI18N
+               } else if (userActivity.getActivityUserName() == null) {
+                       // Throw NPE
+                       throw new NullPointerException("userActivity.activityUserName is null"); //NOI18N
+               } else if (userActivity.getActivityUserName().isEmpty()) {
+                       // Throw IAE
+                       throw new IllegalArgumentException("userActivity.activityUserName is empty"); //NOI18N
+               } else if (userActivity.getActivityId() != null) {
+                       // Throw it again
+                       throw new IllegalArgumentException("userActivity.activityId should never be set."); //NOI18N
                }
 
                try {
                        // Send out email change
-                       ObjectMessage message = this.getSession().createObjectMessage();
+                       final ObjectMessage message = this.getSession().createObjectMessage();
                        message.setObject(userActivity);
 
                        // Send message
@@ -90,6 +102,9 @@ public class AddressbookUserActivitySessionBean extends BaseDatabaseBean impleme
                        // Throw again
                        throw new EJBException(ex);
                }
+
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addUserActivityLog: EXIT!", this.getClass().getSimpleName())); //NOI18N
        }
 
        @Override
@@ -98,10 +113,10 @@ public class AddressbookUserActivitySessionBean extends BaseDatabaseBean impleme
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUserActivityLog: CALLED!", this.getClass().getSimpleName())); //NOI18N
 
-               // Search for user's activity
-               Query query = this.getEntityManager().createNamedQuery("AllUserActivityLog", UserActivityLog.class); //NOI18N
+               // Get named query
+               final Query query = this.getEntityManager().createNamedQuery("AllUserActivityLog"); //NOI18N
 
-               // Get list
+               // Get list from it
                List<LogableUserActivity> list = query.getResultList();
 
                // Trace message
@@ -115,27 +130,27 @@ public class AddressbookUserActivitySessionBean extends BaseDatabaseBean impleme
        @SuppressWarnings ("unchecked")
        public List<LogableUserActivity> fetchAllUsersActivityLog (final User user) {
                // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUsersActivityLog: user={1} - CALLED!", this.getClass().getSimpleName(), user)); //NOI18N
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUsersActivityLog: CALLED!", this.getClass().getSimpleName())); //NOI18N
 
-               // Is user valid?
+               // Validate parameters
                if (null == user) {
-                       // Throw NPE
+                       // Abort here
                        throw new NullPointerException("user is null"); //NOI18N
                } else if (user.getUserId() == null) {
-                       // Throw again
+                       // Id is set
                        throw new NullPointerException("user.userId is null"); //NOI18N
                } else if (user.getUserId() < 1) {
-                       // Invalid id number
-                       throw new IllegalArgumentException(MessageFormat.format("user.userId{0} is not valid", user.getUserId())); //NOI18N
+                       // Not valid id number
+                       throw new IllegalArgumentException(MessageFormat.format("user.userId={0} is not valid", user.getUserId())); //NOI18N
                }
 
-               // Search for user's activity
-               Query query = this.getEntityManager().createNamedQuery("FindAllUsersActivity", UserActivityLog.class); //NOI18N
+               // Get named query
+               final Query query = this.getEntityManager().createNamedQuery("SearchAllUsersActivity"); //NOI18N
 
                // Set parameter
                query.setParameter("activityUser", user); //NOI18N
 
-               // Get list
+               // Get list from it
                List<LogableUserActivity> list = query.getResultList();
 
                // Trace message
@@ -145,86 +160,4 @@ public class AddressbookUserActivitySessionBean extends BaseDatabaseBean impleme
                return list;
        }
 
-       @Override
-       @SuppressWarnings ("unchecked")
-       public List<LogableUserActivity> fetchAllUsersActivityLogByMultipleType (final User user, final String[] activityTypes) {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUsersActivityLogByType: user={1},activityTypes={2} - CALLED!", this.getClass().getSimpleName(), user, Arrays.toString(activityTypes))); //NOI18N
-
-               // Is user valid?
-               if (null == user) {
-                       // Throw NPE
-                       throw new NullPointerException("user is null"); //NOI18N
-               } else if (user.getUserId() == null) {
-                       // Throw again
-                       throw new NullPointerException("user.userId is null"); //NOI18N
-               } else if (user.getUserId() < 1) {
-                       // Invalid id number
-                       throw new IllegalArgumentException(MessageFormat.format("user.userId{0} is not valid", user.getUserId())); //NOI18N
-               } else if (null == activityTypes) {
-                       // Throw NPE again
-                       throw new NullPointerException("activityTypes is null"); //NOI18N
-               } else if (activityTypes.length == 0) {
-                       // Should not be empty
-                       throw new IllegalArgumentException("activityTypes is empty"); //NOI18N
-               }
-
-               // Search for user's activity
-               Query query = this.getEntityManager().createNamedQuery("FindUsersActivityByMultipleTypes", UserActivityLog.class); //NOI18N
-
-               // Set parameters
-               query.setParameter("activityUser", user); //NOI18N
-               query.setParameter("activityTypes", Arrays.asList(activityTypes)); //NOI18N
-
-               // Get list
-               List<LogableUserActivity> list = query.getResultList();
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUsersActivityLogByType: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
-
-               // Return it
-               return list;
-       }
-
-       @Override
-       @SuppressWarnings ("unchecked")
-       public List<LogableUserActivity> fetchAllUsersActivityLogByType (final User user, final String activityType) {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUsersActivityLogByType: user={1},activityType={2} - CALLED!", this.getClass().getSimpleName(), user, activityType)); //NOI18N
-
-               // Is user valid?
-               if (null == user) {
-                       // Throw NPE
-                       throw new NullPointerException("user is null"); //NOI18N
-               } else if (user.getUserId() == null) {
-                       // Throw again
-                       throw new NullPointerException("user.userId is null"); //NOI18N
-               } else if (user.getUserId() < 1) {
-                       // Invalid id number
-                       throw new IllegalArgumentException(MessageFormat.format("user.userId{0} is not valid", user.getUserId())); //NOI18N
-               } else if (null == activityType) {
-                       // Throw NPE again
-                       throw new NullPointerException("activityType is null"); //NOI18N
-               } else if (activityType.isEmpty()) {
-                       // Should not be empty
-                       throw new IllegalArgumentException("activityType is empty"); //NOI18N
-               }
-
-               // Search for user's activity
-               Query query = this.getEntityManager().createNamedQuery("FindUsersActivityByType", UserActivityLog.class); //NOI18N
-
-               // Set parameters
-               query.setParameter("activityUser", user); //NOI18N
-               query.setParameter("activityType", activityType); //NOI18N
-
-               // Get list
-               List<LogableUserActivity> list = query.getResultList();
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUsersActivityLogByType: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
-
-               // Return it
-               return list;
-       }
-
 }
index 12fa84060dfdbe13737bb2fe1da6c2325c151710..8db7dcdb54ae38bcef427e98c42bcfdf23fd99a1 100644 (file)
@@ -95,6 +95,7 @@ public class AddressbookUserLoginSessionBean extends BaseAddressbookDatabaseBean
                }
 
                // Get user instance from persistance
+               // @TODO Rewrite this to use JCache instead
                final User updatedUser = this.userBean.fillUserData(container.getUser());
 
                // Debug message