import java.util.Objects;
import javax.ejb.EJB;
import javax.ejb.Stateless;
+import org.mxchange.jcontactsbusiness.employee.Employee;
import org.mxchange.jcontactsbusiness.exceptions.basicdata.BusinessDataAlreadyAddedException;
import org.mxchange.jfinancials.database.BaseFinancialsDatabaseBean;
+import org.mxchange.jusercore.model.user.User;
/**
* An administrative stateless session bean for business data
} else if (basicData.getBasicDataId() != null) {
// Should be null
throw new IllegalArgumentException(MessageFormat.format("basicData.basicDataId={0} - is not null", basicData.getBasicDataId())); //NOI18N
+ } else if (this.isSameCompanyNameAdded(basicData)) {
+ // Throw exception
+ throw new BusinessDataAlreadyAddedException(basicData);
}
- // Get all available entries
- final List<BusinessBasicData> list = this.businessDataBean.allCompanyBasicData();
+ // Now add current date
+ basicData.setCompanyCreated(new GregorianCalendar());
- // Is the list filled?
- if (!list.isEmpty()) {
- // Then check each entry
- for (final BusinessBasicData entry : list) {
- // Is the company name matching?
- if (Objects.equals(entry.getCompanyName(), basicData.getCompanyName())) {
- // Found match
- throw new BusinessDataAlreadyAddedException(basicData);
- }
- }
+ // Is there a owner set?
+ if (basicData.getCompanyUserOwner() instanceof User) {
+ // Get managed instance
+ final User managedUser = this.createManaged(basicData.getCompanyUserOwner());
+
+ // Set it back
+ basicData.setCompanyUserOwner(managedUser);
}
- // Now add current date
- basicData.setCompanyCreated(new GregorianCalendar());
+ // Is a founder set?
+ if (basicData.getCompanyFounder() instanceof Employee) {
+ // Get managed instance
+ final Employee managedEmployee = this.createManaged(basicData.getCompanyFounder());
+
+ // Set it back
+ basicData.setCompanyFounder(managedEmployee);
+ }
+
+ // Is a contact person set?
+ if (basicData.getCompanyContactEmployee() instanceof Employee) {
+ // Get managed instance
+ final Employee managedEmployee = this.createManaged(basicData.getCompanyContactEmployee());
+
+ // Set it back
+ basicData.setCompanyContactEmployee(managedEmployee);
+ }
// Persist it
this.getEntityManager().persist(basicData);
return basicData;
}
+ /**
+ * Checks if given basic data is already added by it's company name
+ * <p>
+ * @param basicData Basic data to be checked
+ *
+ * @return Whether same company name has been used
+ */
+ private boolean isSameCompanyNameAdded (final BusinessBasicData basicData) {
+ // Get all available entries
+ final List<BusinessBasicData> list = this.businessDataBean.allCompanyBasicData();
+
+ // Default is not found
+ boolean isFound = false;
+
+ // Then check each entry
+ for (final BusinessBasicData entry : list) {
+ // Is the company name matching?
+ if (Objects.equals(entry.getCompanyName(), basicData.getCompanyName())) {
+ // Found match
+ isFound = true;
+ }
+ }
+
+ // Return flag
+ return isFound;
+ }
+
}
import org.mxchange.jcontacts.contact.UserContact;
import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData;
import org.mxchange.jcontactsbusiness.basicdata.CompanyBasicData;
+import org.mxchange.jcontactsbusiness.employee.CompanyEmployee;
+import org.mxchange.jcontactsbusiness.employee.Employee;
import org.mxchange.jcoreee.database.BaseDatabaseBean;
import org.mxchange.jcountry.data.Country;
import org.mxchange.jcountry.data.CountryData;
* <p>
* @return Managed contact instance
*/
- protected Contact getManaged (final Contact contact) {
+ protected Contact createManaged (final Contact contact) {
// Trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getManaged: contact={1} - CALLED!", this.getClass().getSimpleName(), contact)); //NOI18N
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.createManaged: contact={1} - CALLED!", this.getClass().getSimpleName(), contact)); //NOI18N
// user should not be null
if (null == contact) {
assert (managedContact instanceof Contact) : "managedContact is null"; //NOI18N
// Trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getManaged: managedContact={1} - EXIT!", this.getClass().getSimpleName(), managedContact)); //NOI18N
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.createManaged: managedContact={1} - EXIT!", this.getClass().getSimpleName(), managedContact)); //NOI18N
// Return it
return managedContact;
* <p>
* @return Managed country instance
*/
- protected Country getManaged (final Country country) {
+ protected Country createManaged (final Country country) {
// Trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getManaged: country={1} - CALLED!", this.getClass().getSimpleName(), country)); //NOI18N
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.createManaged: country={1} - CALLED!", this.getClass().getSimpleName(), country)); //NOI18N
// user should not be null
if (null == country) {
assert (managedCountry instanceof Country) : "managedCountry is null"; //NOI18N
// Trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getManaged: managedCountry={1} - EXIT!", this.getClass().getSimpleName(), managedCountry)); //NOI18N
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.createManaged: managedCountry={1} - EXIT!", this.getClass().getSimpleName(), managedCountry)); //NOI18N
// Return it
return managedCountry;
}
/**
- * Get back a managed instance from given contact
+ * Get back a managed instance from given basic data
* <p>
- * @param basicData Unmanaged/detached contact instance
+ * @param basicData Unmanaged/detached basic data instance
* <p>
- * @return Managed contact instance
+ * @return Managed basic data instance
*/
- protected BusinessBasicData getManaged (final BusinessBasicData basicData) {
+ protected BusinessBasicData createManaged (final BusinessBasicData basicData) {
// Trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getManaged: basicData={1} - CALLED!", this.getClass().getSimpleName(), basicData)); //NOI18N
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.createManaged: basicData={1} - CALLED!", this.getClass().getSimpleName(), basicData)); //NOI18N
// user should not be null
if (null == basicData) {
assert (managedBasicData instanceof BusinessBasicData) : "managedBasicData is null"; //NOI18N
// Trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getManaged: managedBasicData={1} - EXIT!", this.getClass().getSimpleName(), managedBasicData)); //NOI18N
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.createManaged: managedBasicData={1} - EXIT!", this.getClass().getSimpleName(), managedBasicData)); //NOI18N
// Return it
return managedBasicData;
}
+ /**
+ * Get back a managed instance from given employee
+ * <p>
+ * @param employee Unmanaged/detached employee instance
+ * <p>
+ * @return Managed employee instance
+ */
+ protected Employee createManaged (final Employee employee) {
+ // Trace message
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.createManaged: employee={1} - CALLED!", this.getClass().getSimpleName(), employee)); //NOI18N
+
+ // user should not be null
+ if (null == employee) {
+ // Abort here
+ throw new NullPointerException("employee is null"); //NOI18N
+ } else if (employee.getEmployeeId() == null) {
+ // Id is set
+ throw new NullPointerException("employee.employeeId is null"); //NOI18N
+ } else if (employee.getEmployeeId() < 1) {
+ // Id is set
+ throw new IllegalArgumentException(MessageFormat.format("employee.employeeId={0} is null", employee.getEmployeeId())); //NOI18N
+ }
+
+ // Try to find it (should be there)
+ final Employee managedEmployee = this.getEntityManager().find(CompanyEmployee.class, employee.getEmployeeId());
+
+ // Should be there
+ assert (managedEmployee instanceof Employee) : "managedEmployee is null"; //NOI18N
+
+ // Trace message
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.createManaged: managedEmployee={1} - EXIT!", this.getClass().getSimpleName(), managedEmployee)); //NOI18N
+
+ // Return it
+ return managedEmployee;
+ }
+
/**
* Get back a managed instance from given user
* <p>
* <p>
* @return Managed user instance
*/
- protected User getManaged (final User user) {
+ protected User createManaged (final User user) {
// Trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getManaged: user={1} - CALLED!", this.getClass().getSimpleName(), user)); //NOI18N
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.createManaged: user={1} - CALLED!", this.getClass().getSimpleName(), user)); //NOI18N
// user should not be null
if (null == user) {
assert (managedUser instanceof User) : "managedUser is null"; //NOI18N
// Trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getManaged: managedUser={1} - EXIT!", this.getClass().getSimpleName(), managedUser)); //NOI18N
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.createManaged: managedUser={1} - EXIT!", this.getClass().getSimpleName(), managedUser)); //NOI18N
// Return it
return managedUser;