import javax.mail.internet.InternetAddress;
import org.mxchange.jcontacts.model.contact.Contact;
import org.mxchange.jcontacts.model.contact.ContactUtils;
+import org.mxchange.jcontacts.model.contact.UserContact;
+import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData;
+import org.mxchange.jcontactsbusiness.model.basicdata.CompanyBasicData;
import org.mxchange.jcoreee.database.BaseDatabaseBean;
+import org.mxchange.jcountry.model.data.Country;
+import org.mxchange.jcountry.model.data.CountryData;
import org.mxchange.jmailee.model.delivery.wrapper.EmailDeliveryWrapper;
import org.mxchange.jmailee.model.delivery.wrapper.WrapableEmailDelivery;
import org.mxchange.jphone.model.phonenumbers.fax.DialableFaxNumber;
return managedNumber;
}
+ /**
+ * Get back a managed instance from given contact
+ * <p>
+ * @param contact Unmanaged/detached contact instance
+ * <p>
+ * @return Managed contact instance
+ */
+ protected Contact getManaged (final Contact contact) {
+ // Trace message
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getManaged: contact={1} - CALLED!", this.getClass().getSimpleName(), contact)); //NOI18N
+
+ // user should not be null
+ if (null == contact) {
+ // Abort here
+ throw new NullPointerException("contact is null"); //NOI18N
+ } else if (contact.getContactId() == null) {
+ // Id is set
+ throw new NullPointerException("contact.contactId is null"); //NOI18N
+ } else if (contact.getContactId() < 1) {
+ // Id is set
+ throw new IllegalArgumentException(MessageFormat.format("contact.contactId={0} is null", contact.getContactId())); //NOI18N
+ }
+
+ // Try to find it (should be there)
+ final Contact managedContact = this.getEntityManager().find(UserContact.class, contact.getContactId());
+
+ // Should be there
+ 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
+
+ // Return it
+ return managedContact;
+ }
+
+ /**
+ * Get back a managed instance from given country
+ * <p>
+ * @param country Unmanaged/detached country instance
+ * <p>
+ * @return Managed country instance
+ */
+ protected Country getManaged (final Country country) {
+ // Trace message
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getManaged: country={1} - CALLED!", this.getClass().getSimpleName(), country)); //NOI18N
+
+ // user should not be null
+ if (null == country) {
+ // Abort here
+ throw new NullPointerException("country is null"); //NOI18N
+ } else if (country.getCountryId() == null) {
+ // Id is set
+ throw new NullPointerException("country.countryId is null"); //NOI18N
+ } else if (country.getCountryId() < 1) {
+ // Id is set
+ throw new IllegalArgumentException(MessageFormat.format("country.countryId={0} is null", country.getCountryId())); //NOI18N
+ }
+
+ // Try to find it (should be there)
+ final Country managedCountry = this.getEntityManager().find(CountryData.class, country.getCountryId());
+
+ // Should be there
+ 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
+
+ // Return it
+ return managedCountry;
+ }
+
+ /**
+ * Get back a managed instance from given contact
+ * <p>
+ * @param basicData Unmanaged/detached contact instance
+ * <p>
+ * @return Managed contact instance
+ */
+ protected BusinessBasicData getManaged (final BusinessBasicData basicData) {
+ // Trace message
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getManaged: basicData={1} - CALLED!", this.getClass().getSimpleName(), basicData)); //NOI18N
+
+ // user should not be null
+ if (null == basicData) {
+ // Abort here
+ throw new NullPointerException("basicData is null"); //NOI18N
+ } else if (basicData.getBasicDataId() == null) {
+ // Id is set
+ throw new NullPointerException("basicData.basicDataId is null"); //NOI18N
+ } else if (basicData.getBasicDataId() < 1) {
+ // Id is set
+ throw new IllegalArgumentException(MessageFormat.format("basicData.basicDataId={0} is null", basicData.getBasicDataId())); //NOI18N
+ }
+
+ // Try to find it (should be there)
+ final BusinessBasicData managedBasicData = this.getEntityManager().find(CompanyBasicData.class, basicData.getBasicDataId());
+
+ // Should be there
+ 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
+
+ // Return it
+ return managedBasicData;
+ }
+
/**
* Get back a managed instance from given user
* <p>
* <p>
* @return Managed user instance
*/
- protected User getManagedUser (final User user) {
+ protected User getManaged (final User user) {
// Trace message
this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.getManaged: user={1} - CALLED!", this.getClass().getSimpleName(), user)); //NOI18N
// Persist it
this.getEntityManager().persist(contact);
- // Flush it to get contactId set
- this.getEntityManager().flush();
-
// Trace message
this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addContact: contact.contactId={1} after persisting - EXIT!", this.getClass().getSimpleName(), contact.getContactId())); //NOI18N
import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
import org.mxchange.jcontacts.exceptions.ContactNotFoundException;
import org.mxchange.jcontacts.model.contact.Contact;
+import org.mxchange.jcontacts.model.contact.ContactSessionBeanRemote;
import org.mxchange.jcontacts.model.contact.ContactUtils;
import org.mxchange.jcontacts.model.contact.UserContact;
if (null == basicData) {
// Throw NPE
throw new NullPointerException("basicData is null"); //NOI18N
- } else if (basicData.getCompanyDataId() != null) {
+ } else if (basicData.getBasicDataId() != null) {
// Should be null
- throw new IllegalArgumentException(MessageFormat.format("basicData.companyDataId={0} - is not null", basicData.getCompanyDataId())); //NOI18N
+ throw new IllegalArgumentException(MessageFormat.format("basicData.basicDataId={0} - is not null", basicData.getBasicDataId())); //NOI18N
}
// Get all available entries
// Persist it
this.getEntityManager().persist(basicData);
- // Flush it (bad performance!)
- this.getEntityManager().flush();
-
// Trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addBusinessBasicData: basicData.companyDataId={1} - EXIT!", this.getClass().getSimpleName(), basicData.getCompanyDataId())); //NOI18N
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addBusinessBasicData: basicData.basicDataId={1} - EXIT!", this.getClass().getSimpleName(), basicData.getBasicDataId())); //NOI18N
// Return updated instance
return basicData;
}
@Override
- public BusinessBasicData findBasicDataById (final Long companyDataId) throws BusinessDataNotFoundException {
+ public BusinessBasicData findBasicDataById (final Long basicDataId) throws BusinessDataNotFoundException {
// Trace message
this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findBasicDataById: CALLED!", this.getClass().getSimpleName())); //NOI18N
final Query query = this.getEntityManager().createNamedQuery("SearchBusinessDataById", CompanyBasicData.class); //NOI18N
// Set parameter
- query.setParameter("companyDataId", companyDataId); //NOI18N
+ query.setParameter("basicDataId", basicDataId); //NOI18N
// Get single instance
- final BusinessBasicData businessData;
+ final BusinessBasicData basicData;
// Try to find a result
try {
// Find a single result
- businessData = (BusinessBasicData) query.getSingleResult();
+ basicData = (BusinessBasicData) query.getSingleResult();
// Log trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findBasicDataById: Found contact={1}", this.getClass().getSimpleName(), businessData)); //NOI18N
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findBasicDataById: Found basicData={1}", this.getClass().getSimpleName(), basicData)); //NOI18N
} catch (final NoResultException ex) {
// No result found
- throw new BusinessDataNotFoundException(companyDataId, ex);
+ throw new BusinessDataNotFoundException(basicDataId, ex);
}
// Trace message
- this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findBasicDataById: businessData={1} - EXIT!", this.getClass().getSimpleName(), businessData)); //NOI18N
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.findBasicDataById: basicData={1} - EXIT!", this.getClass().getSimpleName(), basicData)); //NOI18N
// Return it
- return businessData;
+ return basicData;
}
@Override
*/
package org.mxchange.jcontactsbusiness.branchoffice;
+import java.text.MessageFormat;
+import java.util.GregorianCalendar;
+import java.util.List;
+import javax.ejb.EJB;
import javax.ejb.Stateless;
+import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData;
+import org.mxchange.jcontactsbusiness.exceptions.branchoffice.BranchOfficeAlreadyAddedException;
+import org.mxchange.jcountry.data.Country;
import org.mxchange.jfinancials.database.BaseFinancialsDatabaseBean;
+import org.mxchange.jusercore.model.user.User;
/**
* A stateless session bean for administrative branch office purposes
*/
private static final long serialVersionUID = 58_467_386_571_701L;
+ /**
+ * General branch office bean
+ */
+ @EJB
+ private BranchOfficeSessionBeanRemote branchOfficeBean;
+
+ /**
+ * Default constructor
+ */
+ public FinancialsAdminBranchOfficeSessionBean () {
+ // Call super constructor
+ super();
+ }
+
+ @Override
+ public BranchOffice addBranchOffice (final BranchOffice branchOffice) throws BranchOfficeAlreadyAddedException {
+ // Trace message
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addBranchOffice(): branchOffice={1} - CALLED!", this.getClass().getSimpleName(), branchOffice)); //NOI18N
+
+ // Validate parameter
+ if (null == branchOffice) {
+ // Throw NPE
+ throw new NullPointerException("branchOffice is null"); //NOI18N
+ } else if (branchOffice.getBranchId() instanceof Long) {
+ // Should not happen
+ throw new IllegalArgumentException("branchOffice.branchId should not be set."); //NOI18N
+ } else if (this.isBranchOfficeFound(branchOffice)) {
+ // Already added, abort here
+ throw new BranchOfficeAlreadyAddedException(branchOffice);
+ }
+
+ // Add created timestamp
+ branchOffice.setBranchCreated(new GregorianCalendar());
+
+ // Is user instance set?
+ if (branchOffice.getBranchCompany() instanceof BusinessBasicData) {
+ // Get managed instance back
+ final BusinessBasicData managedBasicData = this.getManaged(branchOffice.getBranchCompany());
+
+ // Set it back in branch office
+ branchOffice.setBranchCompany(managedBasicData);
+ }
+
+ // Is user instance set?
+ if (branchOffice.getBranchUserOwner() instanceof User) {
+ // Get managed instance back
+ final User managedUser = this.getManaged(branchOffice.getBranchUserOwner());
+
+ // Set it back in branch office
+ branchOffice.setBranchUserOwner(managedUser);
+ }
+
+ // Is user instance set?
+ if (branchOffice.getBranchCountry() instanceof Country) {
+ // Get managed instance back
+ final Country managedCountry = this.getManaged(branchOffice.getBranchCountry());
+
+ // Set it back in branch office
+ branchOffice.setBranchCountry(managedCountry);
+ }
+
+ // Persist it
+ this.getEntityManager().persist(branchOffice);
+
+ // Trace message
+ this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addBranchOffice(): branchOffice.branchId={1} - EXIT!", this.getClass().getSimpleName(), branchOffice.getBranchId())); //NOI18N
+
+ // Return updated instance
+ return branchOffice;
+ }
+
+ /**
+ * 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 branchOffice Branch office being checked
+ * <p>
+ * @return Whether it has been found
+ */
+ private boolean isBranchOfficeFound (final BranchOffice branchOffice) {
+ // Get whole list
+ final List<BranchOffice> branchOffices = this.branchOfficeBean.allBranchOffices();
+
+ // Default is not found
+ boolean isFound = false;
+
+ // Check all single addresses
+ for (final BranchOffice bo : branchOffices) {
+ // Is the same address found?
+ if (BranchOfficeUtils.isSameAddress(bo, branchOffice)) {
+ // Found one
+ isFound = true;
+ break;
+ }
+ }
+
+ // Return flag
+ return isFound;
+ }
+
}
// It is not added, so persist it
this.getEntityManager().persist(country);
- // Flush it to get id number back, maybe it is directly needed?
- this.getEntityManager().flush();
-
// Trace message
this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addCountry: country={1} - EXIT!", this.getClass().getSimpleName(), country)); //NOI18N
// Persist it
this.getEntityManager().persist(mobileProvider);
- // ... and flush it to get id back
- this.getEntityManager().flush();
-
// Log trace message
this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addMobileProvider: mobileProvider.providerId={1} - EXIT!", this.getClass().getSimpleName(), mobileProvider.getProviderId())); //NOI18N
// Persist it
this.getEntityManager().persist(user);
- // Flush to get id back
- this.getEntityManager().flush();
-
// Trace message
this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.addUser: user={1},user.userId={2} - EXIT!", this.getClass().getSimpleName(), user, user.getUserId())); //NOI18N
}
// Get a managed instance
- final User managedUser = this.getManagedUser(user);
+ final User managedUser = this.getManaged(user);
// Should be found!
assert (managedUser instanceof User) : MessageFormat.format("User with id {0} not found, but should be.", user.getUserId()); //NOI18N
// Perist it
this.getEntityManager().persist(user);
- // Flush it to get updated instance back
- this.getEntityManager().flush();
-
// Log trace message
this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.linkUser: user={1} - EXIT!", this.getClass().getSimpleName(), user)); //NOI18N
}
// Make user instance managed
- final User managedUser = this.getManagedUser(userActivity.getActivityUser());
+ final User managedUser = this.getManaged(userActivity.getActivityUser());
// Set it back
userActivity.setActivityUser(managedUser);
import javax.persistence.NoResultException;
import javax.persistence.Query;
import org.mxchange.addressbook.database.BaseAddressbookDatabaseBean;
-import org.mxchange.jcontacts.contact.Contact;
+import org.mxchange.jcontacts.model.contact.Contact;
import org.mxchange.jusercore.exceptions.EmailAddressAlreadyRegisteredException;
import org.mxchange.jusercore.exceptions.UserNameAlreadyRegisteredException;
import org.mxchange.jusercore.model.user.AdminUserSessionBeanRemote;