com.softslate.commerce.customer.order
Class BillingAddressForm

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
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
AddressesForm

public class BillingAddressForm
extends BaseForm

Struts form class representing a user's billing address. The class is used for submissions of billing address information in the customer account area. 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.

The validate method of this class loops through the "billingRequired" database setting and makes sure each required field is populated. It also checks to make sure the submitted 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 billingAddress1
           
private  java.lang.String billingAddress2
           
private  java.lang.String billingCity
           
private  java.lang.String billingCountry
           
private  java.lang.String billingEmail1
           
private  java.lang.String billingEmail2
           
private  java.lang.String billingExtra1
           
private  java.lang.String billingExtra2
           
private  java.lang.String billingExtra3
           
private  java.lang.String billingExtra4
           
private  java.lang.String billingExtra5
           
private  java.lang.String billingFirstName
           
private  java.lang.String billingLastName
           
private  java.lang.String billingNotes
           
private  java.lang.String billingOrganization
           
private  java.lang.String billingOther
           
private  java.lang.String billingPhone1
           
private  java.lang.String billingPhone2
           
private  java.lang.String billingPostalCode
           
private  java.lang.String billingState
           
(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
BillingAddressForm()
           
 
Method Summary
 boolean doesCountryAllowOtherStates(java.lang.String country)
          Determines if a given country is set to allow 'Other' states.
 java.lang.String getBillingAddress1()
           
 java.lang.String getBillingAddress2()
           
 java.lang.String getBillingCity()
           
 java.lang.String getBillingCountry()
           
 java.lang.String getBillingEmail1()
           
 java.lang.String getBillingEmail2()
           
 java.lang.String getBillingExtra1()
           
 java.lang.String getBillingExtra2()
           
 java.lang.String getBillingExtra3()
           
 java.lang.String getBillingExtra4()
           
 java.lang.String getBillingExtra5()
           
 java.lang.String getBillingFirstName()
           
 java.lang.String getBillingLastName()
           
 java.lang.String getBillingNotes()
           
 java.lang.String getBillingOrganization()
           
 java.lang.String getBillingOther()
           
 java.lang.String getBillingPhone1()
           
 java.lang.String getBillingPhone2()
           
 java.lang.String getBillingPostalCode()
           
 java.lang.String getBillingState()
           
 boolean isBillingFieldValid(java.lang.String thisFieldString, java.lang.String thisValue)
          For a given field, validates the value of the field in this form.
 boolean isOtherState(java.lang.String state)
          Determines if a given state is a 'Other' state.
 void prepareStateAndOtherFields(Customer customer)
          Prepares the billingState and billingOther fields for presentation in a form.
 void prepareStateAndOtherFields(Order order)
          Prepares the billingState and billingOther fields for presentation in a form.
 void setBillingAddress1(java.lang.String string)
           
 void setBillingAddress2(java.lang.String string)
           
 void setBillingCity(java.lang.String string)
           
 void setBillingCountry(java.lang.String string)
           
 void setBillingEmail1(java.lang.String string)
           
 void setBillingEmail2(java.lang.String string)
           
 void setBillingExtra1(java.lang.String string)
           
 void setBillingExtra2(java.lang.String string)
           
 void setBillingExtra3(java.lang.String billingExtra3)
           
 void setBillingExtra4(java.lang.String billingExtra4)
           
 void setBillingExtra5(java.lang.String billingExtra5)
           
 void setBillingFirstName(java.lang.String string)
           
 void setBillingLastName(java.lang.String string)
           
 void setBillingNotes(java.lang.String string)
           
 void setBillingOrganization(java.lang.String string)
           
 void setBillingOther(java.lang.String string)
           
 void setBillingPhone1(java.lang.String string)
           
 void setBillingPhone2(java.lang.String string)
           
 void setBillingPostalCode(java.lang.String string)
           
 void setBillingState(java.lang.String string)
           
 boolean stateAndCountryMatch(java.lang.String state, java.lang.String country)
          Checks to make sure this form's state and country match.
 org.apache.struts.action.ActionErrors validate(org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest request)
           
 void validateBillingFields()
          Validates the billing fields of this form.
 void validateBillingStateField()
          Validate this form's state field.
 
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

billingFirstName

private java.lang.String billingFirstName

billingLastName

private java.lang.String billingLastName

billingOrganization

private java.lang.String billingOrganization

billingAddress1

private java.lang.String billingAddress1

billingAddress2

private java.lang.String billingAddress2

billingCity

private java.lang.String billingCity

billingState

private java.lang.String billingState

billingOther

private java.lang.String billingOther

billingPostalCode

private java.lang.String billingPostalCode

billingCountry

private java.lang.String billingCountry

billingPhone1

private java.lang.String billingPhone1

billingPhone2

private java.lang.String billingPhone2

billingEmail1

private java.lang.String billingEmail1

billingEmail2

private java.lang.String billingEmail2

billingExtra1

private java.lang.String billingExtra1

billingExtra2

private java.lang.String billingExtra2

billingExtra3

private java.lang.String billingExtra3

billingExtra4

private java.lang.String billingExtra4

billingExtra5

private java.lang.String billingExtra5

billingNotes

private java.lang.String billingNotes
Constructor Detail

BillingAddressForm

public BillingAddressForm()
Method Detail

getBillingAddress1

public java.lang.String getBillingAddress1()

getBillingAddress2

public java.lang.String getBillingAddress2()

getBillingCity

public java.lang.String getBillingCity()

getBillingCountry

public java.lang.String getBillingCountry()

getBillingEmail1

public java.lang.String getBillingEmail1()

getBillingEmail2

public java.lang.String getBillingEmail2()

getBillingExtra1

public java.lang.String getBillingExtra1()

getBillingExtra2

public java.lang.String getBillingExtra2()

getBillingFirstName

public java.lang.String getBillingFirstName()

getBillingLastName

public java.lang.String getBillingLastName()

getBillingNotes

public java.lang.String getBillingNotes()

getBillingOrganization

public java.lang.String getBillingOrganization()

getBillingPhone1

public java.lang.String getBillingPhone1()

getBillingPhone2

public java.lang.String getBillingPhone2()

getBillingPostalCode

public java.lang.String getBillingPostalCode()

getBillingState

public java.lang.String getBillingState()

getBillingOther

public java.lang.String getBillingOther()

setBillingAddress1

public void setBillingAddress1(java.lang.String string)

setBillingAddress2

public void setBillingAddress2(java.lang.String string)

setBillingCity

public void setBillingCity(java.lang.String string)

setBillingCountry

public void setBillingCountry(java.lang.String string)

setBillingEmail1

public void setBillingEmail1(java.lang.String string)

setBillingEmail2

public void setBillingEmail2(java.lang.String string)

setBillingExtra1

public void setBillingExtra1(java.lang.String string)

setBillingExtra2

public void setBillingExtra2(java.lang.String string)

getBillingExtra3

public java.lang.String getBillingExtra3()

setBillingExtra3

public void setBillingExtra3(java.lang.String billingExtra3)

getBillingExtra4

public java.lang.String getBillingExtra4()

setBillingExtra4

public void setBillingExtra4(java.lang.String billingExtra4)

getBillingExtra5

public java.lang.String getBillingExtra5()

setBillingExtra5

public void setBillingExtra5(java.lang.String billingExtra5)

setBillingFirstName

public void setBillingFirstName(java.lang.String string)

setBillingLastName

public void setBillingLastName(java.lang.String string)

setBillingNotes

public void setBillingNotes(java.lang.String string)

setBillingOrganization

public void setBillingOrganization(java.lang.String string)

setBillingPhone1

public void setBillingPhone1(java.lang.String string)

setBillingPhone2

public void setBillingPhone2(java.lang.String string)

setBillingPostalCode

public void setBillingPostalCode(java.lang.String string)

setBillingState

public void setBillingState(java.lang.String string)

setBillingOther

public void setBillingOther(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 org.apache.struts.action.ActionForm

validateBillingFields

public void validateBillingFields()
Validates the billing fields of this form. First, this method loops through the fields in the "billingRequired" setting and check that each of the corresponding properties of this form are populated. Second, it loops through the fields in the "billingValidated" setting and ensures the field values are valid. (For example, that the email is in valid form.)


isBillingFieldValid

public boolean isBillingFieldValid(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

validateBillingStateField

public void validateBillingStateField()
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.


stateAndCountryMatch

public boolean stateAndCountryMatch(java.lang.String state,
                                    java.lang.String country)
Checks to make sure this form's state and country match. In other words, if the given state is contained in the sscState table, the given country must correspond to that state's country. If the given state is a 'Other' state, the given country must have its allowOtherStates flag set.

Parameters:
state - The string representing the state to be checked. This will be the two-letter state code from the code field of the sscState table, or some other string inputted by the user (if it is a 'Other' state).
country - The string representing the country to be checked. This will be the two-letter country code from the code field of the sscCountry table.
Returns:
true, if the state and country match.

prepareStateAndOtherFields

public void prepareStateAndOtherFields(Customer customer)
Prepares the billingState and billingOther fields for presentation in a form. Determines if a given Customer's billing address uses a 'Other' state and if so populates the billingOther and billingState fields accordingly. If it does use a 'Other' state, this method populates the billingState field with the string "Other" and populates the billingOther field with the value of billingState, so the address forms will accurately represent the customer's state.

Parameters:
customer - The given customer whose address fields are being prepared.

prepareStateAndOtherFields

public void prepareStateAndOtherFields(Order order)
Prepares the billingState and billingOther fields for presentation in a form. Determines if a given Order's billing address uses a 'Other' state and if so populates the billingOther and billingState fields accordingly. If it does use a 'Other' state, this method populates the billingState field with the string "Other" and populates the billingOther field with the value of billingState, so the address forms will accurately represent the customer's state.

Parameters:
order - The given order whose address fields are being prepared.

isOtherState

public boolean isOtherState(java.lang.String state)
Determines if a given state is a 'Other' state. In other words, determines if the value of the state is contained in the sscState database table or if it corresponds to a state or province in a foreign country not supported by sscState.

Parameters:
state - The string representing the state to be checked. This will be the two-letter state code from the code field of the sscState table, or some other string inputted by the user (if it is a 'Other' state).
Returns:
true, if the given state is a 'Other' state.

doesCountryAllowOtherStates

public boolean doesCountryAllowOtherStates(java.lang.String country)
Determines if a given country is set to allow 'Other' states.

Parameters:
country - The string representing the country to be checked. This will be the two-letter country code from the code field of the sscCountry table.
Returns:
true, if the given country is set to allow 'Other' states.


Copyright ? SoftSlate, LLC 2003?2005