]> git.mxchange.org Git - jjobs-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>
Fri, 19 Jul 2019 22:02:24 +0000 (00:02 +0200)
- 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>
32 files changed:
src/java/log4j2.xml
src/java/org/mxchange/jcontacts/model/contact/JobsAdminContactSessionBean.java
src/java/org/mxchange/jcontacts/model/contact/JobsContactSessionBean.java
src/java/org/mxchange/jcontacts/model/phone/JobsAdminContactPhoneSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/basicdata/JobsAdminBusinessDataSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/basicdata/JobsBusinessDataSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/branchoffice/JobsAdminBranchOfficeSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/branchoffice/JobsBranchOfficeSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/department/JobsAdminDepartmentSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/department/JobsDepartmentSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/employee/JobsAdminCompanyEmployeeSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/employee/JobsCompanyEmployeeSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/headquarter/JobsAdminHeadquartersSessionBean.java [new file with mode: 0644]
src/java/org/mxchange/jcontactsbusiness/model/headquarter/JobsHeadquartersSessionBean.java [new file with mode: 0644]
src/java/org/mxchange/jcontactsbusiness/model/headquarters/JobsAdminHeadquartersSessionBean.java [deleted file]
src/java/org/mxchange/jcontactsbusiness/model/headquarters/JobsHeadquartersSessionBean.java [deleted file]
src/java/org/mxchange/jcontactsbusiness/model/opening_time/JobsAdminOpeningTimesSessionBean.java
src/java/org/mxchange/jcontactsbusiness/model/opening_time/JobsOpeningTimesSessionBean.java
src/java/org/mxchange/jcountry/model/data/JobsAdminCountrySingletonBean.java
src/java/org/mxchange/jcountry/model/data/JobsCountrySingletonBean.java
src/java/org/mxchange/jphone/model/phonenumbers/mobileprovider/JobsAdminMobileProviderSessionBean.java
src/java/org/mxchange/jphone/model/phonenumbers/mobileprovider/JobsMobileProviderSingletonBean.java
src/java/org/mxchange/jphone/model/phonenumbers/phone/JobsAdminPhoneSessionBean.java
src/java/org/mxchange/jphone/model/phonenumbers/phone/JobsPhoneSessionBean.java
src/java/org/mxchange/jusercore/model/user/JobsAdminUserSessionBean.java
src/java/org/mxchange/jusercore/model/user/JobsUserSessionBean.java
src/java/org/mxchange/jusercore/model/user/activity/JobsUserActivityLogMessageBean.java
src/java/org/mxchange/jusercore/model/user/email_address/JobsUserEmailChangeSessionBean.java
src/java/org/mxchange/jusercore/model/user/password_history/JobsUserPasswordHistorySessionBean.java
src/java/org/mxchange/juserlogincore/model/user/login/JobsUserLoginSessionBean.java
src/java/org/mxchange/juserlogincore/model/user/register/JobsUserRegistrationSessionBean.java
src/java/org/mxchange/juserlogincore/model/user/resendlink/JobsResendLinkSessionBean.java

index 98e9a65f642174f1e53f38823251423cf6e9f0d3..90439ed601d6c2526267e601e8531774159f6c0b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-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 41057be81fb39e95475d9100a58c73d3e45c98aa..a77eae0c6d3a5aace0f9ac662b41b791f02b806e 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 4fec75f0fde6cf7f3cef578d671aae3673cf1455..a6d97d682f779e4a26b8f557ac5373e0b3683554 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
@@ -66,62 +66,6 @@ public class JobsContactSessionBean extends BaseJobsDatabaseBean implements Cont
                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 JobsContactSessionBean extends BaseJobsDatabaseBean implements Cont
                // 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 JobsContactSessionBean extends BaseJobsDatabaseBean implements Cont
                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 JobsContactSessionBean extends BaseJobsDatabaseBean implements Cont
                }
 
                // 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 JobsContactSessionBean extends BaseJobsDatabaseBean implements Cont
                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 6657f5f43e8fa4d660f2522d378a340f57818e6f..9f9ada312e0baa1cb26196963a8f65cdee8d2b3e 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 13d752e87cc318786625ef67dd3965e96a78019a..0d5635e82feec04ec9029559a4fa5b73cf0d0b01 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
@@ -23,9 +23,10 @@ import java.util.Objects;
 import javax.ejb.EJB;
 import javax.ejb.Stateless;
 import org.mxchange.jcontactsbusiness.exceptions.basicdata.BasicDataAlreadyAddedException;
+import org.mxchange.jcontactsbusiness.model.employee.Employable;
+import org.mxchange.jcontactsbusiness.model.headquarter.Headquarter;
 import org.mxchange.jjobs.database.BaseJobsDatabaseBean;
 import org.mxchange.jusercore.model.user.User;
-import org.mxchange.jcontactsbusiness.model.employee.Employable;
 
 /**
  * An administrative stateless session bean for business data
@@ -101,6 +102,15 @@ public class JobsAdminBusinessDataSessionBean extends BaseJobsDatabaseBean imple
                        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 29b3373599171447578e2f091fa0db3d5ec435fe..9aab0df52ce29ab35e99c6b6d19ff2712185b078 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 5cc75665a26f866eebae07681d9937a29232fe95..bcefcf4db61a3b29bc3f53e5bc13cdde6fad4cda 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,11 +22,11 @@ import java.util.List;
 import javax.ejb.EJB;
 import javax.ejb.Stateless;
 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.jjobs.database.BaseJobsDatabaseBean;
 import org.mxchange.jusercore.model.user.User;
-import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
 
 /**
  * A stateless session bean for administrative branch office purposes
index d454a0bd0474898a864fbe57397d726bc74febca..48f48d014e0331ecee3c646bb2d20f83fb3d17ea 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 eacd81a05c7e9a37ac110f328bd5e0471cc5c3c1..1672662999622e1386cb4adda52b021afd0ce273 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.jcontactsbusiness.model.employee.Employable;
+import org.mxchange.jcontactsbusiness.model.headquarter.Headquarter;
 import org.mxchange.jjobs.database.BaseJobsDatabaseBean;
 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;
 
 /**
  * A stateless session bean for administrative department purposes
@@ -106,13 +106,13 @@ public class JobsAdminDepartmentSessionBean extends BaseJobsDatabaseBean impleme
                        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 57fe587801926af889e98729ed877048f8d4d049..5758c15d3283fee5c1ef5bfbb869e35ee3dc69e9 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 c5ecd6f419dba68a7b226075893069e114e2365f..b03421febe77ea62a06a5b15408e9bb97070b915 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.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.jjobs.database.BaseJobsDatabaseBean;
+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 JobsAdminCompanyEmployeeSessionBean extends BaseJobsDatabaseBean im
         */
        private static final long serialVersionUID = 26_458_796_703_761L;
 
+       /**
+        * EJB for general company employee purposes
+        */
+       @EJB (lookup = "java:global/jjobs-ejb/employee!org.mxchange.jcontactsbusiness.model.employee.EmployeeSessionBeanRemote")
+       private EmployeeSessionBeanRemote employeeBean;
+
        /**
         * Default constructor
         */
@@ -39,4 +57,191 @@ public class JobsAdminCompanyEmployeeSessionBean extends BaseJobsDatabaseBean im
                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 14242f16bbaa43f254106e705cceaf8a60ece91b..89ae0a564ec815c5ce2d168177f096e74719a237 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
@@ -34,7 +34,7 @@ public class JobsCompanyEmployeeSessionBean extends BaseJobsDatabaseBean impleme
        /**
         * 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/JobsAdminHeadquartersSessionBean.java b/src/java/org/mxchange/jcontactsbusiness/model/headquarter/JobsAdminHeadquartersSessionBean.java
new file mode 100644 (file)
index 0000000..291a76d
--- /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.jjobs.database.BaseJobsDatabaseBean;
+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 JobsAdminHeadquarterSessionBean extends BaseJobsDatabaseBean implements AdminHeadquarterSessionBeanRemote {
+
+       /**
+        * Serial number
+        */
+       private static final long serialVersionUID = 58_467_386_571_701L;
+
+       /**
+        * General branch office bean
+        */
+       @EJB (lookup = "java:global/jjobs-ejb/headquarter!org.mxchange.jcontactsbusiness.model.headquarter.HeadquarterSessionBeanRemote")
+       private HeadquarterSessionBeanRemote headquarterBean;
+
+       /**
+        * Default constructor
+        */
+       public JobsAdminHeadquarterSessionBean () {
+               // 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/JobsHeadquartersSessionBean.java b/src/java/org/mxchange/jcontactsbusiness/model/headquarter/JobsHeadquartersSessionBean.java
new file mode 100644 (file)
index 0000000..1624b84
--- /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.jjobs.database.BaseJobsDatabaseBean;
+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 JobsHeadquarterSessionBean extends BaseJobsDatabaseBean 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/JobsAdminHeadquartersSessionBean.java b/src/java/org/mxchange/jcontactsbusiness/model/headquarters/JobsAdminHeadquartersSessionBean.java
deleted file mode 100644 (file)
index 5b64911..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.jjobs.database.BaseJobsDatabaseBean;
-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 JobsAdminHeadquartersSessionBean extends BaseJobsDatabaseBean implements AdminHeadquartersSessionBeanRemote {
-
-       /**
-        * Serial number
-        */
-       private static final long serialVersionUID = 58_467_386_571_701L;
-
-       /**
-        * General branch office bean
-        */
-       @EJB (lookup = "java:global/jjobs-ejb/headquarters!org.mxchange.jcontactsbusiness.model.headquarters.HeadquarterSessionBeanRemote")
-       private HeadquartersSessionBeanRemote headquartersBean;
-
-       /**
-        * Default constructor
-        */
-       public JobsAdminHeadquartersSessionBean () {
-               // 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/JobsHeadquartersSessionBean.java b/src/java/org/mxchange/jcontactsbusiness/model/headquarters/JobsHeadquartersSessionBean.java
deleted file mode 100644 (file)
index 10668c3..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.jjobs.database.BaseJobsDatabaseBean;
-
-/**
- * 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 JobsHeadquartersSessionBean extends BaseJobsDatabaseBean 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 0f12041bfc1f179161d666ea42b0a3d27249023f..6b57755db61699200d0cf1e3c5ec47aceff5bd0b 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 c10e0d15e4c971c29dab7caed0e8adf769ee8c83..ffdb86f422e3913e278ad956671ebbe7f7c863c8 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 a2cd6388a4bdd0273e91a31a8e39151935f4322c..24c88032154a7e71df4c879de7f91edeed3d9734 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 71a874b98af483ac3cf361c227b063e7ea093dbe..9af3476a8a82421c3b2fbe385808341c2c2afdf5 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 f53b33e8092126e14d767376dff0af88265d1ddd..9f48ec6d3d0c0ac472acda043c14733bebccbe9b 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 e881ffdfa12434f53b55ce0c63be099950bd2627..aaf852c11df9c084429f10e63cc140a5ea8a51ae 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 8607fbb9dbf99c7b1bc590b411048232e7ec7242..54b425db720d12bd74b865efbfbcac5b9115fe88 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 5684d9955d4752c838355492b1817704bf0a5276..6b53d1ec9b0c36a425ea8c4218265a6ed685852d 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
@@ -21,14 +21,12 @@ import java.util.List;
 import javax.ejb.Stateless;
 import javax.persistence.Query;
 import org.mxchange.jjobs.database.BaseJobsDatabaseBean;
-import org.mxchange.jphone.exceptions.PhoneEntityNotFoundException;
 import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber;
 import org.mxchange.jphone.model.phonenumbers.fax.FaxNumber;
 import org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber;
 import org.mxchange.jphone.model.phonenumbers.landline.LandLineNumber;
 import org.mxchange.jphone.model.phonenumbers.mobile.DialableMobileNumber;
 import org.mxchange.jphone.model.phonenumbers.mobile.MobileNumber;
-import org.mxchange.jphone.model.phonenumbers.phone.PhoneSessionBeanRemote;
 
 /**
  * A general phone EJB
@@ -53,15 +51,15 @@ public class JobsPhoneSessionBean extends BaseJobsDatabaseBean implements PhoneS
 
        @SuppressWarnings ("unchecked")
        @Override
-       public List<org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber> allFaxNumbers () {
+       public List<DialableFaxNumber> allFaxNumbers () {
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allFaxNumbers: CALLED!", this.getClass().getSimpleName())); //NOI18N
 
                // Get query
-               final Query query = this.getEntityManager().createNamedQuery("AllFaxNumbers", org.mxchange.jphone.model.phonenumbers.fax.FaxNumber.class); //NOI18N
+               final Query query = this.getEntityManager().createNamedQuery("AllFaxNumbers", FaxNumber.class); //NOI18N
 
                // Get list from it
-               final List<org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber> list = query.getResultList();
+               final List<DialableFaxNumber> list = query.getResultList();
 
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allFaxNumbers: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
@@ -72,15 +70,15 @@ public class JobsPhoneSessionBean extends BaseJobsDatabaseBean implements PhoneS
 
        @SuppressWarnings ("unchecked")
        @Override
-       public List<org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber> allLandLineNumbers () {
+       public List<DialableLandLineNumber> allLandLineNumbers () {
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allLandLineNumbers: CALLED!", this.getClass().getSimpleName())); //NOI18N
 
                // Get query
-               final Query query = this.getEntityManager().createNamedQuery("AllLandLineNumbers", org.mxchange.jphone.model.phonenumbers.landline.LandLineNumber.class); //NOI18N
+               final Query query = this.getEntityManager().createNamedQuery("AllLandLineNumbers", LandLineNumber.class); //NOI18N
 
                // Get list from it
-               final List<org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber> list = query.getResultList();
+               final List<DialableLandLineNumber> list = query.getResultList();
 
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allLandLineNumbers: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
@@ -91,15 +89,15 @@ public class JobsPhoneSessionBean extends BaseJobsDatabaseBean implements PhoneS
 
        @SuppressWarnings ("unchecked")
        @Override
-       public List<org.mxchange.jphone.model.phonenumbers.mobile.DialableMobileNumber> allMobileNumbers () {
+       public List<DialableMobileNumber> allMobileNumbers () {
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allMobileNumbers: CALLED!", this.getClass().getSimpleName())); //NOI18N
 
                // Get query
-               final Query query = this.getEntityManager().createNamedQuery("AllMobileNumbers", org.mxchange.jphone.model.phonenumbers.mobile.MobileNumber.class); //NOI18N
+               final Query query = this.getEntityManager().createNamedQuery("AllMobileNumbers", MobileNumber.class); //NOI18N
 
                // Get list from it
-               final List<org.mxchange.jphone.model.phonenumbers.mobile.DialableMobileNumber> list = query.getResultList();
+               final List<DialableMobileNumber> list = query.getResultList();
 
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.allMobileNumbers: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
@@ -108,121 +106,4 @@ public class JobsPhoneSessionBean extends BaseJobsDatabaseBean implements PhoneS
                return list;
        }
 
-       @Override
-       public org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber findFaxNumberById (final Long faxNumberId) throws PhoneEntityNotFoundException {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findFaxNumberById: mobileNumberId={1} - CALLED!", this.getClass().getSimpleName(), faxNumberId)); //NOI18N
-
-               // The id number should be valid
-               if (null == faxNumberId) {
-                       // Throw NPE
-                       throw new NullPointerException("faxNumberId is null"); //NOI18N
-               } else if (faxNumberId < 1) {
-                       // Not valid
-                       throw new IllegalArgumentException(MessageFormat.format("faxNumberId={0} is not valid.", faxNumberId)); //NOI18N
-               }
-
-               // Now find it
-               final Query query = this.getEntityManager().createNamedQuery("SearchFaxNumberId", org.mxchange.jphone.model.phonenumbers.fax.FaxNumber.class); //NOI18N
-
-               // Set parameter
-               query.setParameter("faxNumberId", faxNumberId); //NOI18N
-
-               // Init instance
-               final org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber faxNumber;
-
-               // Try to get a result
-               try {
-                       // Get a single result
-                       faxNumber = (org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber) query.getSingleResult();
-               } catch (NoResultException ex) {
-                       // The entry was not found, so throw it again
-                       throw new PhoneEntityNotFoundException(faxNumberId, ex);
-               }
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findFaxNumberById: mobile={1} - EXIT!", this.getClass().getSimpleName(), faxNumber)); //NOI18N
-
-               // Return found instance
-               return faxNumber;
-       }
-
-       @Override
-       public org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber findLandLineNumberById (final Long landLineNumberId) throws PhoneEntityNotFoundException {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findLandLineNumberById: mobileNumberId={1} - CALLED!", this.getClass().getSimpleName(), landLineNumberId)); //NOI18N
-
-               // The id number should be valid
-               if (null == landLineNumberId) {
-                       // Throw NPE
-                       throw new NullPointerException("landLineNumberId is null"); //NOI18N
-               } else if (landLineNumberId < 1) {
-                       // Not valid
-                       throw new IllegalArgumentException(MessageFormat.format("landLineNumberId={0} is not valid.", landLineNumberId)); //NOI18N
-               }
-
-               // Now find it
-               final Query query = this.getEntityManager().createNamedQuery("SearchLandLineNumberId", org.mxchange.jphone.model.phonenumbers.landline.LandLineNumber.class); //NOI18N
-
-               // Set parameter
-               query.setParameter("landLineNumberId", landLineNumberId); //NOI18N
-
-               // Init instance
-               final org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber landLineNumber;
-
-               // Try to get a result
-               try {
-                       // Get a single result
-                       landLineNumber = (org.mxchange.jphone.model.phonenumbers.landline.DialableLandLineNumber) query.getSingleResult();
-               } catch (NoResultException ex) {
-                       // The entry was not found, so throw it again
-                       throw new PhoneEntityNotFoundException(landLineNumberId, ex);
-               }
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findLandLineNumberById: mobile={1} - EXIT!", this.getClass().getSimpleName(), landLineNumber)); //NOI18N
-
-               // Return found instance
-               return landLineNumber;
-       }
-
-       @Override
-       public org.mxchange.jphone.model.phonenumbers.mobile.DialableMobileNumber findMobileNumberById (final Long mobileNumberId) throws PhoneEntityNotFoundException {
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findMobileNumberById: mobileNumberId={1} - CALLED!", this.getClass().getSimpleName(), mobileNumberId)); //NOI18N
-
-               // The id number should be valid
-               if (null == mobileNumberId) {
-                       // Throw NPE
-                       throw new NullPointerException("mobileNumberId is null"); //NOI18N
-               } else if (mobileNumberId < 1) {
-                       // Not valid
-                       throw new IllegalArgumentException(MessageFormat.format("mobileNumberId={0} is not valid.", mobileNumberId)); //NOI18N
-               }
-
-               // Now find it
-               final Query query = this.getEntityManager().createNamedQuery("SearchMobileNumberId", org.mxchange.jphone.model.phonenumbers.mobile.MobileNumber.class); //NOI18N
-
-               // Set parameter
-               query.setParameter("mobileNumberId", mobileNumberId); //NOI18N
-
-               // Init instance
-               final org.mxchange.jphone.model.phonenumbers.mobile.DialableMobileNumber mobile;
-
-               // Try to get a result
-               try {
-                       // Get a single result
-                       mobile = (org.mxchange.jphone.model.phonenumbers.mobile.DialableMobileNumber) query.getSingleResult();
-               } catch (NoResultException ex) {
-                       // The entry was not found, so throw it again
-                       throw new PhoneEntityNotFoundException(mobileNumberId, ex);
-               }
-
-               // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findMobileNumberById: mobile={1} - EXIT!", this.getClass().getSimpleName(), mobile)); //NOI18N
-
-               // Return found instance
-               return mobile;
-       }
-
 }
index df58398c7913dc9c7d8932184fa25d4272f341e0..4f804a0be1e8a4fadd74bbb0d16f92efe818fe4d 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
@@ -69,7 +69,7 @@ public class JobsAdminUserSessionBean extends BaseJobsDatabaseBean implements Ad
                // 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 JobsAdminUserSessionBean extends BaseJobsDatabaseBean implements Ad
                // 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 7888f17e51e9e720a513089061ef6924c72c485a..eda7d64d93fb8226d50671d9a78c70358b9869c0 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
@@ -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 JobsUserSessionBean extends BaseJobsDatabaseBean implements UserSes
 
        @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
@@ -207,6 +160,7 @@ public class JobsUserSessionBean extends BaseJobsDatabaseBean implements UserSes
        }
 
        @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
@@ -253,6 +207,7 @@ public class JobsUserSessionBean extends BaseJobsDatabaseBean implements UserSes
        }
 
        @Override
+       @Deprecated
        public String generateRandomUserName () {
                // Trace message
                this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.generateRandomUserName - CALLED!", this.getClass().getSimpleName())); //NOI18N
@@ -277,25 +232,7 @@ public class JobsUserSessionBean extends BaseJobsDatabaseBean implements UserSes
        }
 
        @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 192b0e7b868b0404fb911e4dde28715a702e97cc..de7c9a6e0761b04afaa86bd5ef4f45a4b331ca13 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017 Roland Häder
+ * 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.io.Serializable;
 import java.text.MessageFormat;
-import javax.ejb.ActivationConfigProperty;
-import javax.ejb.MessageDriven;
+import java.util.List;
+import javax.ejb.EJBException;
+import javax.ejb.Stateless;
 import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageListener;
 import javax.jms.ObjectMessage;
+import javax.persistence.Query;
 import org.mxchange.jjobs.database.BaseJobsDatabaseBean;
 import org.mxchange.jusercore.model.user.User;
 
 /**
- * A message-driven bean for adding user activity log
+ * A stateless, session-scoped EJB for user-activity
  * <p>
  * @author Roland Häder<roland@mxchange.org>
  */
-@MessageDriven (
-               name = "userActivityLog",
-               description = "A message-driven bean for adding user activity log",
-               activationConfig = {
-                       @ActivationConfigProperty (
-                                       propertyName = "destinationLookup",
-                                       propertyValue = "jms/jjobs-user-activity-log"
-                       ),
-                       @ActivationConfigProperty (
-                                       propertyName = "destinationType",
-                                       propertyValue = "javax.jms.Queue"
-                       )
-               }
-)
-public class JobsUserActivityLogMessageBean extends BaseJobsDatabaseBean implements MessageListener {
+@Stateless (name = "userActivity", description = "A stateless, session-scored user-activity bean.")
+public class JobsUserActivitySessionBean extends BaseJobsDatabaseBean implements UserActivityLogSessionBeanRemote {
 
        /**
         * Serial number
         */
-       private static final long serialVersionUID = 14_920_686_785_732_054L;
+       private static final long serialVersionUID = 1_268_376_401_659L;
 
        /**
         * Default constructor
         */
-       public JobsUserActivityLogMessageBean () {
-               // Call super constructor
-               super();
+       public JobsUserActivitySessionBean () {
+               // Invoke super constructor
+               super("jms/jjobs-queue-factory", "jms/jjobs-user-activity-log"); //NOI18N
        }
 
        @Override
-       public void onMessage (final Message message) {
+       public void addUserActivityLog (final LogableUserActivity userActivity) {
                // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.onMessage: message={1} - CALLED!", this.getClass().getSimpleName(), message)); //NOI18N
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addUserActivityLog: userActivity={1} - CALLED!", this.getClass().getSimpleName(), userActivity)); //NOI18N
 
-               // The parameter should be valid
-               if (null == message) {
+               // Validate parameter
+               if (null == userActivity) {
+                       // Throw NPE
+                       throw new NullPointerException("userActivity 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("message is null"); //NOI18N
-               } else if (!(message instanceof ObjectMessage)) {
-                       // Not implementing right interface
-                       throw new IllegalArgumentException(MessageFormat.format("message={0} does not implemented ObjectMessage", message)); //NOI18N
+                       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 NPE
+                       throw new NullPointerException("userActivity.activityType is null"); //NOI18N
+               } else if (userActivity.getActivityType().isEmpty()) {
+                       // 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
                }
 
-               // Securely cast it
-               final ObjectMessage objectMessage = (ObjectMessage) message;
-
-               // Init variable
-               final Serializable serializable;
-
                try {
-                       // Get object from message
-                       serializable = objectMessage.getObject();
+                       // Send out email change
+                       final ObjectMessage message = this.getSession().createObjectMessage();
+                       message.setObject(userActivity);
+
+                       // Send message
+                       this.sendMessage(message);
                } catch (final JMSException ex) {
-                       // Log it and don't continue any further
-                       this.getLoggerBeanLocal().logException(ex);
-                       return;
+                       // Throw again
+                       throw new EJBException(ex);
                }
 
-               // Debug message
-               this.getLoggerBeanLocal().logDebug(MessageFormat.format("{0}.onMessage: serializable={1}", this.getClass().getSimpleName(), serializable)); //NOI18N
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addUserActivityLog: EXIT!", this.getClass().getSimpleName())); //NOI18N
+       }
 
-               // Okay, is it the right interface?
-               if (null == serializable) {
-                       // Throw NPE
-                       throw new NullPointerException("serializable is null"); //NOI18N
-               } else if (!(serializable instanceof LogableUserActivity)) {
-                       // Not correct object send
-                       throw new IllegalArgumentException(MessageFormat.format("serializable={0} does not implement LogableUserActivity", serializable)); //NOI18N
-               }
+       @Override
+       @SuppressWarnings ("unchecked")
+       public List<LogableUserActivity> fetchAllUserActivityLog () {
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUserActivityLog: CALLED!", this.getClass().getSimpleName())); //NOI18N
 
-               // Securely cast it
-               final LogableUserActivity userActivity = (LogableUserActivity) serializable;
+               // Get named query
+               final Query query = this.getEntityManager().createNamedQuery("AllUserActivityLog"); //NOI18N
 
-               // Should be valid
-               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.getActivityUser().getUserId() == null) {
-                       // Throw NPE again
-                       throw new NullPointerException("userActivity.activityUser.userId is null"); //NOI18N
-               } else if (userActivity.getActivityUser().getUserId() < 1) {
-                       // Throw NPE again
-                       throw new IllegalArgumentException(MessageFormat.format("userActivity.activityUser.userId={0}  is not valid", userActivity.getActivityUser().getUserId())); //NOI18N
-               } else if (userActivity.getActivityType() == null) {
-                       // Throw again ...
-                       throw new NullPointerException("userActivity.activityType is null"); //NOI18N
-               } else if (userActivity.getActivityType().isEmpty()) {
-                       // Empty type
-                       throw new IllegalArgumentException("userActivity.activityType is empty"); //NOI18N
-               } else if ((userActivity.getActivityMessage() instanceof String) && (userActivity.getActivityMessage().isEmpty())) {
-                       // Set but empty message
-                       throw new IllegalArgumentException("userActivity.activityMessage is empty"); //NOI18N
-               } else if (userActivity.getActivityTimestamp() == null) {
-                       // Throw NPE again
-                       throw new NullPointerException("userActivity.activityTimestamp is null"); //NOI18N
+               // Get list from it
+               List<LogableUserActivity> list = query.getResultList();
+
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUserActivityLog: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
+
+               // Return it
+               return list;
+       }
+
+       @Override
+       @SuppressWarnings ("unchecked")
+       public List<LogableUserActivity> fetchAllUsersActivityLog (final User user) {
+               // Trace message
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUsersActivityLog: CALLED!", this.getClass().getSimpleName())); //NOI18N
+
+               // Validate parameters
+               if (null == user) {
+                       // Abort here
+                       throw new NullPointerException("user is null"); //NOI18N
+               } else if (user.getUserId() == null) {
+                       // Id is set
+                       throw new NullPointerException("user.userId is null"); //NOI18N
+               } else if (user.getUserId() < 1) {
+                       // Not valid id number
+                       throw new IllegalArgumentException(MessageFormat.format("user.userId={0} is not valid", user.getUserId())); //NOI18N
                }
 
-               // Make user instance managed
-               final User managedUser = this.createManaged(userActivity.getActivityUser());
+               // Get named query
+               final Query query = this.getEntityManager().createNamedQuery("SearchAllUsersActivity"); //NOI18N
 
-               // Set it back
-               userActivity.setActivityUser(managedUser);
+               // Set parameter
+               query.setParameter("activityUser", user); //NOI18N
 
-               // All fine, persist it
-               this.getEntityManager().persist(userActivity);
+               // Get list from it
+               List<LogableUserActivity> list = query.getResultList();
 
                // Trace message
-               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.onMessage: EXIT!", this.getClass().getSimpleName())); //NOI18N
+               this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUsersActivityLog: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
+
+               // Return it
+               return list;
        }
 
 }
index 9fc05f6cbe7fc58a42de4f2ff395bf1ff58dd072..9e5610f752647fbb5630217bdc60a6a5e8f3efa9 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 cbc9c9e1d0590bf18d9e7638202bc5a08091a764..24081d7588308746d3cabf97a46c29f494e698c5 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 65b6d1e5abb2c12a77a2013abd02cff23f0d7a84..4dfd1f2b64f5e8423393475217bbefbaf4c22d8b 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
@@ -95,6 +95,7 @@ public class JobsUserLoginSessionBean extends BaseJobsDatabaseBean implements Us
                }
 
                // Get user instance from persistance
+               // @TODO Rewrite this to use JCache instead
                final User updatedUser = this.userBean.fillUserData(container.getUser());
 
                // Debug message
index a09c73a0eee558f2f3b837446fabdabab9ef45ce..6fd5fa13b804141d898d63aa0b9c526c15f42ffb 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 31f4f5f681871b8bf3d21f30d89300852798ad8c..d252b23a0213e6b2759797447d1fb8b305ed1b87 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