<?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
/*
- * 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
/*
- * 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
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
// 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))) {
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
}
// 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
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>
/*
- * 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
/*
- * 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
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.jfinancials.database.BaseFinancialsDatabaseBean;
import org.mxchange.jusercore.model.user.User;
-import org.mxchange.jcontactsbusiness.model.employee.Employable;
/**
* An administrative stateless session bean for business data
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);
/*
- * 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
/*
- * 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
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.jfinancials.database.BaseFinancialsDatabaseBean;
import org.mxchange.jusercore.model.user.User;
-import org.mxchange.jcontactsbusiness.model.basicdata.BasicData;
/**
* A stateless session bean for administrative branch office purposes
/*
- * 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
/*
- * 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
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.jfinancials.database.BaseFinancialsDatabaseBean;
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
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?
/*
- * 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
/*
- * 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.jfinancials.database.BaseFinancialsDatabaseBean;
+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.
*/
private static final long serialVersionUID = 26_458_796_703_761L;
+ /**
+ * EJB for general company employee purposes
+ */
+ @EJB (lookup = "java:global/jfinancials-ejb/employee!org.mxchange.jcontactsbusiness.model.employee.EmployeeSessionBeanRemote")
+ private EmployeeSessionBeanRemote employeeBean;
+
/**
* Default constructor
*/
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;
+ }
+
}
/*
- * 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
/**
* Serial number
*/
- private static final long serialVersionUID = 26_458_796_703_761L;
+ private static final long serialVersionUID = 26_458_796_703_762L;
/**
* Default constructor
--- /dev/null
+/*
+ * 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.jfinancials.database.BaseFinancialsDatabaseBean;
+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 FinancialsAdminHeadquarterSessionBean extends BaseFinancialsDatabaseBean implements AdminHeadquarterSessionBeanRemote {
+
+ /**
+ * Serial number
+ */
+ private static final long serialVersionUID = 58_467_386_571_701L;
+
+ /**
+ * General branch office bean
+ */
+ @EJB (lookup = "java:global/jfinancials-ejb/headquarter!org.mxchange.jcontactsbusiness.model.headquarter.HeadquarterSessionBeanRemote")
+ private HeadquarterSessionBeanRemote headquarterBean;
+
+ /**
+ * Default constructor
+ */
+ public FinancialsAdminHeadquarterSessionBean () {
+ // 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;
+ }
+
+}
--- /dev/null
+/*
+ * 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.jfinancials.database.BaseFinancialsDatabaseBean;
+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 FinancialsHeadquarterSessionBean extends BaseFinancialsDatabaseBean 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;
+ }
+
+}
+++ /dev/null
-/*
- * 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.jfinancials.database.BaseFinancialsDatabaseBean;
-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 = "adminHeadquarters", description = "An administrative statless bean for handling branch office data (all)")
-public class FinancialsAdminHeadquartersSessionBean extends BaseFinancialsDatabaseBean implements AdminHeadquartersSessionBeanRemote {
-
- /**
- * Serial number
- */
- private static final long serialVersionUID = 58_467_386_571_701L;
-
- /**
- * General branch office bean
- */
- @EJB (lookup = "java:global/jfinancials-ejb/headquarters!org.mxchange.jcontactsbusiness.model.headquarters.HeadquarterSessionBeanRemote")
- private HeadquartersSessionBeanRemote headquartersBean;
-
- /**
- * Default constructor
- */
- public FinancialsAdminHeadquartersSessionBean () {
- // 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;
- }
-
-}
+++ /dev/null
-/*
- * 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.jfinancials.database.BaseFinancialsDatabaseBean;
-
-/**
- * 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 FinancialsHeadquartersSessionBean extends BaseFinancialsDatabaseBean 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;
- }
-
-}
/*
- * 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
/*
- * 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
/*
- * 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
/*
- * 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
/*
- * 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
/*
- * 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
/*
- * 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
/*
- * 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
/*
- * 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
/*
- * 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
/*
- * 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
} else if (product.getProductCategory().getCategoryId() < 1) {
// Throw IAE
throw new IllegalArgumentException(MessageFormat.format("product.productCategory.categoryId={0} is invalid", product.getProductCategory().getCategoryId())); //NOI18N
- } else if ((product.getProductManfacturer() instanceof BasicData) && (product.getProductManfacturer().getBasicDataId() == null)) {
+ } else if ((product.getProductManufacturer() instanceof BasicData) && (product.getProductManufacturer().getBasicDataId() == null)) {
// Throw NPE
throw new NullPointerException("product.productManufacturer.basicDataId is null"); //NOI18N
- } else if ((product.getProductManfacturer() instanceof BasicData) && (product.getProductManfacturer().getBasicDataId() < 1)) {
+ } else if ((product.getProductManufacturer() instanceof BasicData) && (product.getProductManufacturer().getBasicDataId() < 1)) {
// Throw IAE
- throw new IllegalArgumentException(MessageFormat.format("product.productManufacturer.basicDataId={0} is invalid", product.getProductManfacturer().getBasicDataId())); //NOI18N
+ throw new IllegalArgumentException(MessageFormat.format("product.productManufacturer.basicDataId={0} is invalid", product.getProductManufacturer().getBasicDataId())); //NOI18N
} else if (this.isProductCreated(product)) {
// Is already created (by name)
throw new ProductAlreadyAddedException(product);
product.setProductCategory(managedCategory);
// Is a manufacturer (basic_data entity) set?
- if (product.getProductManfacturer() instanceof BasicData) {
+ if (product.getProductManufacturer() instanceof BasicData) {
// Get managed instance from it
- final BasicData managedBasicData = this.createManaged(product.getProductManfacturer());
+ final BasicData managedBasicData = this.createManaged(product.getProductManufacturer());
// Set it back
- product.setProductManfacturer(managedBasicData);
+ product.setProductManufacturer(managedBasicData);
}
// Set created instance
/*
- * 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
/*
- * 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
// 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
// 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
/*
- * 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
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;
@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
}
@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
}
@Override
+ @Deprecated
public String generateRandomUserName () {
// Trace message
this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.generateRandomUserName - CALLED!", this.getClass().getSimpleName())); //NOI18N
}
@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
/*
- * 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
--- /dev/null
+/*
+ * 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
+ * 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.jusercore.model.user.activity;
+
+import java.text.MessageFormat;
+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.jfinancials.database.BaseFinancialsDatabaseBean;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ * A stateless, session-scoped EJB for user-activity
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@Stateless (name = "userActivity", description = "A stateless, session-scored user-activity bean.")
+public class FinancialsUserActivitySessionBean extends BaseFinancialsDatabaseBean implements UserActivityLogSessionBeanRemote {
+
+ /**
+ * Serial number
+ */
+ private static final long serialVersionUID = 1_268_376_401_659L;
+
+ /**
+ * Default constructor
+ */
+ public FinancialsUserActivitySessionBean () {
+ // Invoke super constructor
+ super("jms/jfinancials-queue-factory", "jms/jfinancials-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
+
+ // 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("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
+ }
+
+ try {
+ // Send out email change
+ final ObjectMessage message = this.getSession().createObjectMessage();
+ message.setObject(userActivity);
+
+ // Send message
+ this.sendMessage(message);
+ } catch (final JMSException ex) {
+ // Throw again
+ throw new EJBException(ex);
+ }
+
+ // Trace message
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addUserActivityLog: EXIT!", this.getClass().getSimpleName())); //NOI18N
+ }
+
+ @Override
+ @SuppressWarnings ("unchecked")
+ public List<LogableUserActivity> fetchAllUserActivityLog () {
+ // Trace message
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUserActivityLog: CALLED!", this.getClass().getSimpleName())); //NOI18N
+
+ // Get named query
+ final Query query = this.getEntityManager().createNamedQuery("AllUserActivityLog"); //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
+ }
+
+ // Get named query
+ final Query query = this.getEntityManager().createNamedQuery("SearchAllUsersActivity"); //NOI18N
+
+ // Set parameter
+ query.setParameter("activityUser", user); //NOI18N
+
+ // Get list from it
+ List<LogableUserActivity> list = query.getResultList();
+
+ // Trace message
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.fetchAllUsersActivityLog: list.size()={1} - EXIT!", this.getClass().getSimpleName(), list.size())); //NOI18N
+
+ // Return it
+ return list;
+ }
+
+}
/*
- * 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
/*
- * 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
/*
- * 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
}
// Get user instance from persistance
+ // @TODO Rewrite this to use JCache instead
final User updatedUser = this.userBean.fillUserData(container.getUser());
// Debug message
/*
- * 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
/*
- * 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