com.softslate.commerce.customer.order
Class AddressesForm

java.lang.Object
  extended by org.apache.struts.action.ActionForm
      extended by com.softslate.commerce.customer.core.BaseForm
          extended by com.softslate.commerce.customer.order.BillingAddressForm
              extended by com.softslate.commerce.customer.order.AddressesForm
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
CheckoutAddressesForm

public class AddressesForm
extends BillingAddressForm

Struts form class representing a user's billing and delivery addresses. It is also a superclass of CheckoutAddressesForm, which is used for submissions to "/CheckoutAddresses.do", where both billing and delivery addresses, as well as a shipping option, are submitted.

AddressesForm is a subclass of BillingAddressForm, and it inherits its billing address properties.

The validate method of this class first checks to see if the user chose to use the same address for billing and delivery. If so, it copies the billing address properties to the delivery properties. It then loops through the "deliveryRequired" database setting and makes sure each required field is populated. It also checks to make sure the submitted delivery state or province corresponds to the submitted country, and that fields such as emails and phone numbers are in a valid format.

Author:
David Tobey
See Also:
Serialized Form

Field Summary
private  java.lang.String deliveryAddress1
           
private  java.lang.String deliveryAddress2
           
private  java.lang.String deliveryCity
           
private  java.lang.String deliveryCountry
           
private  java.lang.String deliveryEmail1
           
private  java.lang.String deliveryEmail2
           
private  java.lang.String deliveryExtra1
           
private  java.lang.String deliveryExtra2
           
private  java.lang.String deliveryExtra3
           
private  java.lang.String deliveryExtra4
           
private  java.lang.String deliveryExtra5
           
private  java.lang.String deliveryFirstName
           
private  java.lang.String deliveryLastName
           
private  java.lang.String deliveryNotes
           
private  java.lang.String deliveryOrganization
           
private  java.lang.String deliveryOther
           
private  java.lang.String deliveryPhone1
           
private  java.lang.String deliveryPhone2
           
private  java.lang.String deliveryPostalCode
           
private  java.lang.String deliveryState
           
private  boolean deliveryUseBilling
           
(package private) static org.apache.commons.logging.Log log
           
private static long serialVersionUID
           
 
Fields inherited from class org.apache.struts.action.ActionForm
multipartRequestHandler, servlet
 
Constructor Summary
AddressesForm()
           
 
Method Summary
 void copyBillingToDelivery()
          If this forms deliveryUseBilling property is set, copies billing properties to delivery properties.
 java.lang.String getDeliveryAddress1()
           
 java.lang.String getDeliveryAddress2()
           
 java.lang.String getDeliveryCity()
           
 java.lang.String getDeliveryCountry()
           
 java.lang.String getDeliveryEmail1()
           
 java.lang.String getDeliveryEmail2()
           
 java.lang.String getDeliveryExtra1()
           
 java.lang.String getDeliveryExtra2()
           
 java.lang.String getDeliveryExtra3()
           
 java.lang.String getDeliveryExtra4()
           
 java.lang.String getDeliveryExtra5()
           
 java.lang.String getDeliveryFirstName()
           
 java.lang.String getDeliveryLastName()
           
 java.lang.String getDeliveryNotes()
           
 java.lang.String getDeliveryOrganization()
           
 java.lang.String getDeliveryOther()
           
 java.lang.String getDeliveryPhone1()
           
 java.lang.String getDeliveryPhone2()
           
 java.lang.String getDeliveryPostalCode()
           
 java.lang.String getDeliveryState()
           
 boolean getDeliveryUseBilling()
           
 boolean isDeliveryFieldValid(java.lang.String thisFieldString, java.lang.String thisValue)
          For a given field, validates the value of the field in this form.
 void prepareStateAndOtherFields(Customer customer)
          Prepares the billingState, billingOther, deliveryState, and deliveryOther fields for presentation.
 void prepareStateAndOtherFields(Order order)
          Prepares the billingState, billingOther, deliveryState, and deliveryOther fields for presentation.
 void setDeliveryAddress1(java.lang.String string)
           
 void setDeliveryAddress2(java.lang.String string)
           
 void setDeliveryCity(java.lang.String string)
           
 void setDeliveryCountry(java.lang.String string)
           
 void setDeliveryEmail1(java.lang.String string)
           
 void setDeliveryEmail2(java.lang.String string)
           
 void setDeliveryExtra1(java.lang.String string)
           
 void setDeliveryExtra2(java.lang.String string)
           
 void setDeliveryExtra3(java.lang.String deliveryExtra3)
           
 void setDeliveryExtra4(java.lang.String deliveryExtra4)
           
 void setDeliveryExtra5(java.lang.String deliveryExtra5)
           
 void setDeliveryFirstName(java.lang.String string)
           
 void setDeliveryLastName(java.lang.String string)
           
 void setDeliveryNotes(java.lang.String string)
           
 void setDeliveryOrganization(java.lang.String string)
           
 void setDeliveryOther(java.lang.String string)
           
 void setDeliveryPhone1(java.lang.String string)
           
 void setDeliveryPhone2(java.lang.String string)
           
 void setDeliveryPostalCode(java.lang.String string)
           
 void setDeliveryState(java.lang.String string)
           
 void setDeliveryUseBilling(boolean b)
           
 org.apache.struts.action.ActionErrors validate(org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest request)
           
 void validateDeliveryFields()
          Validates this form's delivery fields.
 void validateDeliveryStateField()
          Validate this form's state field.
 
Methods inherited from class com.softslate.commerce.customer.order.BillingAddressForm
doesCountryAllowOtherStates, getBillingAddress1, getBillingAddress2, getBillingCity, getBillingCountry, getBillingEmail1, getBillingEmail2, getBillingExtra1, getBillingExtra2, getBillingExtra3, getBillingExtra4, getBillingExtra5, getBillingFirstName, getBillingLastName, getBillingNotes, getBillingOrganization, getBillingOther, getBillingPhone1, getBillingPhone2, getBillingPostalCode, getBillingState, isBillingFieldValid, isOtherState, setBillingAddress1, setBillingAddress2, setBillingCity, setBillingCountry, setBillingEmail1, setBillingEmail2, setBillingExtra1, setBillingExtra2, setBillingExtra3, setBillingExtra4, setBillingExtra5, setBillingFirstName, setBillingLastName, setBillingNotes, setBillingOrganization, setBillingOther, setBillingPhone1, setBillingPhone2, setBillingPostalCode, setBillingState, stateAndCountryMatch, validateBillingFields, validateBillingStateField
 
Methods inherited from class com.softslate.commerce.customer.core.BaseForm
formUtils, getBusinessObjectFactory, getErrors, getMapping, getMessage, getMessages, getRequest, getSettings, getUser, initializeProperties, setBusinessObjectFactory, setErrors, setMapping, setMessages, setRequest, setSettings, setUser
 
Methods inherited from class org.apache.struts.action.ActionForm
getMultipartRequestHandler, getServlet, getServletWrapper, reset, reset, setMultipartRequestHandler, setServlet, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

log

static org.apache.commons.logging.Log log

deliveryUseBilling

private boolean deliveryUseBilling

deliveryFirstName

private java.lang.String deliveryFirstName

deliveryLastName

private java.lang.String deliveryLastName

deliveryOrganization

private java.lang.String deliveryOrganization

deliveryAddress1

private java.lang.String deliveryAddress1

deliveryAddress2

private java.lang.String deliveryAddress2

deliveryCity

private java.lang.String deliveryCity

deliveryState

private java.lang.String deliveryState

deliveryOther

private java.lang.String deliveryOther

deliveryPostalCode

private java.lang.String deliveryPostalCode

deliveryCountry

private java.lang.String deliveryCountry

deliveryPhone1

private java.lang.String deliveryPhone1

deliveryPhone2

private java.lang.String deliveryPhone2

deliveryEmail1

private java.lang.String deliveryEmail1

deliveryEmail2

private java.lang.String deliveryEmail2

deliveryExtra1

private java.lang.String deliveryExtra1

deliveryExtra2

private java.lang.String deliveryExtra2

deliveryExtra3

private java.lang.String deliveryExtra3

deliveryExtra4

private java.lang.String deliveryExtra4

deliveryExtra5

private java.lang.String deliveryExtra5

deliveryNotes

private java.lang.String deliveryNotes
Constructor Detail

AddressesForm

public AddressesForm()
Method Detail

getDeliveryUseBilling

public boolean getDeliveryUseBilling()

getDeliveryAddress1

public java.lang.String getDeliveryAddress1()

getDeliveryAddress2

public java.lang.String getDeliveryAddress2()

getDeliveryCity

public java.lang.String getDeliveryCity()

getDeliveryCountry

public java.lang.String getDeliveryCountry()

getDeliveryEmail1

public java.lang.String getDeliveryEmail1()

getDeliveryEmail2

public java.lang.String getDeliveryEmail2()

getDeliveryExtra1

public java.lang.String getDeliveryExtra1()

getDeliveryExtra2

public java.lang.String getDeliveryExtra2()

getDeliveryFirstName

public java.lang.String getDeliveryFirstName()

getDeliveryLastName

public java.lang.String getDeliveryLastName()

getDeliveryNotes

public java.lang.String getDeliveryNotes()

getDeliveryOrganization

public java.lang.String getDeliveryOrganization()

getDeliveryPhone1

public java.lang.String getDeliveryPhone1()

getDeliveryPhone2

public java.lang.String getDeliveryPhone2()

getDeliveryPostalCode

public java.lang.String getDeliveryPostalCode()

getDeliveryState

public java.lang.String getDeliveryState()

getDeliveryOther

public java.lang.String getDeliveryOther()

setDeliveryUseBilling

public void setDeliveryUseBilling(boolean b)

setDeliveryAddress1

public void setDeliveryAddress1(java.lang.String string)

setDeliveryAddress2

public void setDeliveryAddress2(java.lang.String string)

setDeliveryCity

public void setDeliveryCity(java.lang.String string)

setDeliveryCountry

public void setDeliveryCountry(java.lang.String string)

setDeliveryEmail1

public void setDeliveryEmail1(java.lang.String string)

setDeliveryEmail2

public void setDeliveryEmail2(java.lang.String string)

setDeliveryExtra1

public void setDeliveryExtra1(java.lang.String string)

setDeliveryExtra2

public void setDeliveryExtra2(java.lang.String string)

getDeliveryExtra3

public java.lang.String getDeliveryExtra3()

setDeliveryExtra3

public void setDeliveryExtra3(java.lang.String deliveryExtra3)

getDeliveryExtra4

public java.lang.String getDeliveryExtra4()

setDeliveryExtra4

public void setDeliveryExtra4(java.lang.String deliveryExtra4)

getDeliveryExtra5

public java.lang.String getDeliveryExtra5()

setDeliveryExtra5

public void setDeliveryExtra5(java.lang.String deliveryExtra5)

setDeliveryFirstName

public void setDeliveryFirstName(java.lang.String string)

setDeliveryLastName

public void setDeliveryLastName(java.lang.String string)

setDeliveryNotes

public void setDeliveryNotes(java.lang.String string)

setDeliveryOrganization

public void setDeliveryOrganization(java.lang.String string)

setDeliveryPhone1

public void setDeliveryPhone1(java.lang.String string)

setDeliveryPhone2

public void setDeliveryPhone2(java.lang.String string)

setDeliveryPostalCode

public void setDeliveryPostalCode(java.lang.String string)

setDeliveryState

public void setDeliveryState(java.lang.String string)

setDeliveryOther

public void setDeliveryOther(java.lang.String string)

validate

public org.apache.struts.action.ActionErrors validate(org.apache.struts.action.ActionMapping mapping,
                                                      javax.servlet.http.HttpServletRequest request)
Overrides:
validate in class BillingAddressForm

copyBillingToDelivery

public void copyBillingToDelivery()
If this forms deliveryUseBilling property is set, copies billing properties to delivery properties.


validateDeliveryFields

public void validateDeliveryFields()
Validates this form's delivery fields. First, this method loops through the fields in the "deliveryRequired" setting and check that each of the corresponding properties of this form are populated. Second, it loops through the fields in the "deliveryValidated" setting and ensures the field values are valid. (For example, that the email is in valid form.)


isDeliveryFieldValid

public boolean isDeliveryFieldValid(java.lang.String thisFieldString,
                                    java.lang.String thisValue)
For a given field, validates the value of the field in this form. Emails are validated with a regular expression. Phone numbers are checked just to ensure at least 10 digits are present. And postal codes are checked for at least five digits if the country is the US.

Parameters:
thisFieldString - The name of the field to validate
thisValue - The field's value
Returns:
True, if the field's value is valid

validateDeliveryStateField

public void validateDeliveryStateField()
Validate this form's state field. One, if 'Other' was selected as the state, this method ensures that a value for the other field is present. Two, if 'Other' was not selected, the state is checked to make sure it matches with the submitted country.


prepareStateAndOtherFields

public void prepareStateAndOtherFields(Customer customer)
Prepares the billingState, billingOther, deliveryState, and deliveryOther fields for presentation. Determines if a given Customer's address uses a 'Other' state and if so populates the fields accordingly.

Overrides:
prepareStateAndOtherFields in class BillingAddressForm
Parameters:
customer - The given customer whose address fields are being prepared.

prepareStateAndOtherFields

public void prepareStateAndOtherFields(Order order)
Prepares the billingState, billingOther, deliveryState, and deliveryOther fields for presentation. Determines if a given Order's address uses a 'Other' state and if so populates the fields accordingly.

Overrides:
prepareStateAndOtherFields in class BillingAddressForm
Parameters:
order - The given order whose address fields are being prepared.


Copyright ? SoftSlate, LLC 2003?2005