*/
package org.mxchange.pizzaapplication.beans.customer;
-import javax.annotation.PostConstruct;
import javax.enterprise.context.SessionScoped;
+import javax.faces.view.facelets.FaceletException;
import javax.inject.Named;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
-import org.mxchange.jcore.model.contact.gender.Gender;
-import org.mxchange.jcoreee.beans.BaseFrameworkBean;
+import org.mxchange.jcontacts.contact.Contact;
+import org.mxchange.jcontacts.contact.UserContact;
+import org.mxchange.jcontacts.contact.gender.Gender;
+import org.mxchange.jshopcore.model.customer.Customer;
import org.mxchange.jshopcore.model.customer.CustomerSessionBeanRemote;
+import org.mxchange.jshopcore.model.customer.ShopCustomer;
/**
* A customer bean which hides the customer instance
- *
+ * <p>
* @author Roland Haeder<roland@mxchange.org>
*/
-@Named("customer")
+@Named ("customerController")
@SessionScoped
-public class CustomerWebBean extends BaseFrameworkBean implements CustomerWebController {
+public class CustomerWebBean implements CustomerWebController {
+
/**
* Serial number
*/
private static final long serialVersionUID = 542_145_347_916L;
- /**
- * Remote customer bean
- */
- private final CustomerSessionBeanRemote customerBean;
-
/////////////////////// Properties /////////////////////
/**
* Cellphone number
*/
private String comment;
- /**
- * Company name
- */
- private String companyName;
-
/**
* Country code
*/
private String countryCode;
/**
- * Email address
+ * Remote customer bean
*/
- private String emailAddress;
+ private final CustomerSessionBeanRemote customerBean;
/**
- * Gender instance
+ * Email address
*/
- private Gender gender;
+ private String emailAddress;
/**
* Family name
*/
private String firstName;
+ /**
+ * Gender instance
+ */
+ private Gender gender;
+
/**
* House number
*/
- private Long houseNumber;
+ private Short houseNumber;
/**
* Phone number
/**
* ZIP code
*/
- private Long zipCode;
+ private Integer zipCode;
/**
* Default constructor
- *
- * @throws javax.naming.NamingException If something happens?
*/
- public CustomerWebBean () throws NamingException {
- // Get initial context
- Context context = new InitialContext();
-
+ public CustomerWebBean () {
// Set gender to UNKNOWN
this.gender = Gender.UNKNOWN;
- // Try to lookup
- this.customerBean = (CustomerSessionBeanRemote) context.lookup("ejb/stateless-customer");
- }
-
- @PostConstruct
- public void init () throws RuntimeException {
- // Call super init first
- super.genericInit();
- }
-
- @Override
- public Gender getGender () {
- return this.gender;
+ // Try it
+ try {
+ // Get initial context
+ Context context = new InitialContext();
+
+ // Try to lookup
+ this.customerBean = (CustomerSessionBeanRemote) context.lookup("ejb/stateless-customer");
+ } catch (final NamingException e) {
+ // Throw again
+ throw new FaceletException(e);
+ }
}
@Override
- public void setGender (final Gender gender) {
- this.gender = gender;
+ public Customer createCustomerInstance () {
+ // Trace message
+ //this.getLogger().logTrace("createInstance: CALLED!");
+
+ // Required personal data must be set
+ assert (this.isRequiredPersonalDataSet()) : "not all personal data is set"; //NOI18N
+
+ // Create new customer instance
+ Customer customer = new ShopCustomer();
+
+ // Create new contact
+ Contact contact = new UserContact(this.getGender(), this.getFirstName(), this.getFamilyName());
+ contact.setStreet(this.getStreet());
+ contact.setHouseNumber(this.getHouseNumber());
+ contact.setZipCode(this.getZipCode());
+ contact.setCity(this.getCity());
+ contact.setPhoneNumber(this.getPhoneNumber());
+ contact.setFaxNumber(this.getFaxNumber());
+ contact.setCellphoneNumber(this.getCellphoneNumber());
+
+ // Set contact in customer
+ customer.setContact(contact);
+
+ // Trace message
+ //this.getLogger().logTrace(MessageFormat.format("createInstance: customer={0} - EXIT!", customer));
+ // Return it
+ return customer;
}
@Override
- public String getCompanyName () {
- return this.companyName;
+ public String getCellphoneNumber () {
+ return this.cellphoneNumber;
}
@Override
- public void setCompanyName (final String companyName) {
- this.companyName = companyName;
+ public void setCellphoneNumber (final String cellphoneNumber) {
+ this.cellphoneNumber = cellphoneNumber;
}
@Override
- public String getFirstName () {
- return this.firstName;
+ public String getCity () {
+ return this.city;
}
@Override
- public void setFirstName (final String firstName) {
- this.firstName = firstName;
+ public void setCity (final String city) {
+ this.city = city;
}
@Override
- public String getFamilyName () {
- return this.familyName;
+ public String getCountryCode () {
+ return this.countryCode;
}
@Override
- public void setFamilyName (final String familyName) {
- this.familyName = familyName;
+ public void setCountryCode (final String countryCode) {
+ this.countryCode = countryCode;
}
@Override
- public String getStreet () {
- return this.street;
+ public String getEmailAddress () {
+ return this.emailAddress;
}
@Override
- public void setStreet (final String street) {
- this.street = street;
+ public void setEmailAddress (final String emailAddress) {
+ this.emailAddress = emailAddress;
}
@Override
- public Long getHouseNumber () {
- return this.houseNumber;
+ public String getFamilyName () {
+ return this.familyName;
}
@Override
- public void setHouseNumber (final Long houseNumber) {
- this.houseNumber = houseNumber;
+ public void setFamilyName (final String familyName) {
+ this.familyName = familyName;
}
@Override
- public Long getZipCode () {
- return this.zipCode;
+ public String getFaxNumber () {
+ return this.faxNumber;
}
@Override
- public void setZipCode (final Long zipCode) {
- this.zipCode = zipCode;
+ public void setFaxNumber (final String faxNumber) {
+ this.faxNumber = faxNumber;
}
@Override
- public String getCity () {
- return this.city;
+ public String getFirstName () {
+ return this.firstName;
}
@Override
- public void setCity (final String city) {
- this.city = city;
+ public void setFirstName (final String firstName) {
+ this.firstName = firstName;
}
@Override
- public String getCountryCode () {
- return this.countryCode;
+ public Gender getGender () {
+ return this.gender;
}
@Override
- public void setCountryCode (final String countryCode) {
- this.countryCode = countryCode;
+ public void setGender (final Gender gender) {
+ this.gender = gender;
}
@Override
- public String getEmailAddress () {
- return this.emailAddress;
+ public Short getHouseNumber () {
+ return this.houseNumber;
}
@Override
- public void setEmailAddress (final String emailAddress) {
- this.emailAddress = emailAddress;
+ public void setHouseNumber (final Short houseNumber) {
+ this.houseNumber = houseNumber;
}
@Override
}
@Override
- public String getFaxNumber () {
- return this.faxNumber;
+ public String getStreet () {
+ return this.street;
}
@Override
- public void setFaxNumber (final String faxNumber) {
- this.faxNumber = faxNumber;
+ public void setStreet (final String street) {
+ this.street = street;
}
@Override
- public String getCellphoneNumber () {
- return this.cellphoneNumber;
+ public Integer getZipCode () {
+ return this.zipCode;
}
@Override
- public void setCellphoneNumber (final String cellphoneNumber) {
- this.cellphoneNumber = cellphoneNumber;
+ public void setZipCode (final Integer zipCode) {
+ this.zipCode = zipCode;
+ }
+
+ @Override
+ public boolean isRequiredPersonalDataSet () {
+ return ((this.getGender() != null) && (this.getFirstName() != null) && (this.getFamilyName() != null) && (this.getStreet() != null) && (this.getHouseNumber() != null) && (this.getZipCode() != null) && (this.getCity() != null));
}
}