Class BillingAddressForm

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

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:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • log

      static org.apache.commons.logging.Log log
    • billingFirstName

      private String billingFirstName
    • billingLastName

      private String billingLastName
    • billingOrganization

      private String billingOrganization
    • billingAddress1

      private String billingAddress1
    • billingAddress2

      private String billingAddress2
    • billingCity

      private String billingCity
    • billingState

      private String billingState
    • billingOther

      private String billingOther
    • billingPostalCode

      private String billingPostalCode
    • billingCountry

      private String billingCountry
    • billingPhone1

      private String billingPhone1
    • billingPhone2

      private String billingPhone2
    • billingEmail1

      private String billingEmail1
    • billingEmail2

      private String billingEmail2
    • billingExtra1

      private String billingExtra1
    • billingExtra2

      private String billingExtra2
    • billingExtra3

      private String billingExtra3
    • billingExtra4

      private String billingExtra4
    • billingExtra5

      private String billingExtra5
    • billingNotes

      private String billingNotes
    • csrfToken

      private String csrfToken
  • Constructor Details

    • BillingAddressForm

      public BillingAddressForm()
  • Method Details

    • getBillingAddress1

      public String getBillingAddress1()
    • getBillingAddress2

      public String getBillingAddress2()
    • getBillingCity

      public String getBillingCity()
    • getBillingCountry

      public String getBillingCountry()
    • getBillingEmail1

      public String getBillingEmail1()
    • getBillingEmail2

      public String getBillingEmail2()
    • getBillingExtra1

      public String getBillingExtra1()
    • getBillingExtra2

      public String getBillingExtra2()
    • getBillingFirstName

      public String getBillingFirstName()
    • getBillingLastName

      public String getBillingLastName()
    • getBillingNotes

      public String getBillingNotes()
    • getBillingOrganization

      public String getBillingOrganization()
    • getBillingPhone1

      public String getBillingPhone1()
    • getBillingPhone2

      public String getBillingPhone2()
    • getBillingPostalCode

      public String getBillingPostalCode()
    • getBillingState

      public String getBillingState()
    • getBillingOther

      public String getBillingOther()
    • setBillingAddress1

      public void setBillingAddress1(String string)
    • setBillingAddress2

      public void setBillingAddress2(String string)
    • setBillingCity

      public void setBillingCity(String string)
    • setBillingCountry

      public void setBillingCountry(String string)
    • setBillingEmail1

      public void setBillingEmail1(String string)
    • setBillingEmail2

      public void setBillingEmail2(String string)
    • setBillingExtra1

      public void setBillingExtra1(String string)
    • setBillingExtra2

      public void setBillingExtra2(String string)
    • getBillingExtra3

      public String getBillingExtra3()
    • setBillingExtra3

      public void setBillingExtra3(String billingExtra3)
    • getBillingExtra4

      public String getBillingExtra4()
    • setBillingExtra4

      public void setBillingExtra4(String billingExtra4)
    • getBillingExtra5

      public String getBillingExtra5()
    • setBillingExtra5

      public void setBillingExtra5(String billingExtra5)
    • setBillingFirstName

      public void setBillingFirstName(String string)
    • setBillingLastName

      public void setBillingLastName(String string)
    • setBillingNotes

      public void setBillingNotes(String string)
    • setBillingOrganization

      public void setBillingOrganization(String string)
    • setBillingPhone1

      public void setBillingPhone1(String string)
    • setBillingPhone2

      public void setBillingPhone2(String string)
    • setBillingPostalCode

      public void setBillingPostalCode(String string)
    • setBillingState

      public void setBillingState(String string)
    • setBillingOther

      public void setBillingOther(String string)
    • getCsrfToken

      public String getCsrfToken()
    • setCsrfToken

      public void setCsrfToken(String csrfToken)
    • 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(String thisFieldString, 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(String state, 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(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(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.