package api.unicore.component;
 
import static api.util.ComponentConstants.DATE_NULL;
import static api.util.ComponentConstants.DATE_NULL_CODE;
import static api.util.ComponentConstants.INTEGER_NULL;
import static api.util.ComponentConstants.INTEGER_NULL_CODE;
import static api.util.ComponentConstants.STRING_NULL;
import static api.util.ComponentConstants.STRING_NULL_CODE;
import static org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion.NON_NULL;
 
import api.UnoComponent;
import api.unicore.component_manual.BusinessInfo;
import api.util.DateFormat;
import api.util.IntegerFormat;
import api.util.StringFormat;
import iapp.services.ServerObject;
import iapp.util.audit.AuditHelper;
import java.util.Date;
import javax.validation.constraints.Min;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.FormParam;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.codehaus.jackson.annotate.JsonPropertyOrder;
import org.codehaus.jackson.map.annotate.JsonDeserialize;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import unipay.fields_manual.Fields;
import unipay.validator.CustomValidator;
import unipay.validator.EnumValidator;
 
/**
 * @author CodeGen [Vasyl Chedryk]
 * @company UnitedThinkers
 * @since 2012/09/28
 */
 
@JsonSerialize(include=NON_NULL)
@XmlType(propOrder={"legalName", "webSite", "federalTaxId", "stateTaxId", "salesTaxId", "ownershipStructureType", "estimatedTransactionVolume", "estimatedAvgTransactionAmount", "estimatedMaxTransactionAmount", "estimationPeriodType", "relationshipBeginDate", "currencyCode", "createDate", "street1", "street2", "city", "state", "zipCode", "countryCode", "businessName", "registrationYear", "registrationCountryCode", "registrationState", "email", "workHours", "customerServicePhone", "contractBeginDate", "contractEndDate", "address", "cardDescriptor"})
@JsonPropertyOrder({"legalName", "webSite", "federalTaxId", "stateTaxId", "salesTaxId", "ownershipStructureType", "estimatedTransactionVolume", "estimatedAvgTransactionAmount", "estimatedMaxTransactionAmount", "estimationPeriodType", "relationshipBeginDate", "currencyCode", "createDate", "street1", "street2", "city", "state", "zipCode", "countryCode", "businessName", "registrationYear", "registrationCountryCode", "registrationState", "email", "workHours", "customerServicePhone", "contractBeginDate", "contractEndDate", "address", "cardDescriptor"})
@XmlAccessorType(XmlAccessType.NONE)
@XmlSeeAlso(BusinessInfo.class)
@CustomValidator
public abstract class AbstractBusinessInfo extends UnoComponent<unicore.model.BusinessInfo> {
 
    @FormParam("legalName")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String legalName;
 
    @FormParam("webSite")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String webSite;
 
    @FormParam("federalTaxId")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String federalTaxId;
 
    @FormParam("stateTaxId")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String stateTaxId;
 
    @FormParam("salesTaxId")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String salesTaxId;
 
    @FormParam("ownershipStructureType")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String ownershipStructureType;
 
    @FormParam("estimatedTransactionVolume")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer estimatedTransactionVolume;
 
    @FormParam("estimatedAvgTransactionAmount")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer estimatedAvgTransactionAmount;
 
    @FormParam("estimatedMaxTransactionAmount")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer estimatedMaxTransactionAmount;
 
    @FormParam("estimationPeriodType")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String estimationPeriodType;
 
    @FormParam("relationshipBeginDate")
    @DateFormat
    @DefaultValue(DATE_NULL_CODE)
    protected Date relationshipBeginDate;
 
    @FormParam("currencyCode")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String currencyCode;
 
    @FormParam("createDate")
    @DateFormat
    @DefaultValue(DATE_NULL_CODE)
    protected Date createDate;
 
    @FormParam("street1")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String street1;
 
    @FormParam("street2")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String street2;
 
    @FormParam("city")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String city;
 
    @FormParam("state")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String state;
 
    @FormParam("zipCode")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String zipCode;
 
    @FormParam("countryCode")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String countryCode;
 
    @FormParam("businessName")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String businessName;
 
    @FormParam("registrationYear")
    @IntegerFormat
    @DefaultValue(INTEGER_NULL_CODE)
    protected Integer registrationYear;
 
    @FormParam("registrationCountryCode")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String registrationCountryCode;
 
    @FormParam("registrationState")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String registrationState;
 
    @FormParam("email")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String email;
 
    @FormParam("workHours")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String workHours;
 
    @FormParam("customerServicePhone")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String customerServicePhone;
 
    @FormParam("contractBeginDate")
    @DateFormat
    @DefaultValue(DATE_NULL_CODE)
    protected Date contractBeginDate;
 
    @FormParam("contractEndDate")
    @DateFormat
    @DefaultValue(DATE_NULL_CODE)
    protected Date contractEndDate;
 
    @FormParam("address")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String address;
 
    @FormParam("cardDescriptor")
    @StringFormat
    @DefaultValue(STRING_NULL_CODE)
    protected String cardDescriptor;
 
 
    public AbstractBusinessInfo(){
        super();
        applyDefaults();
    }
 
    public AbstractBusinessInfo(unicore.model.BusinessInfo object){
        super(object);
    }
 
 
    private void applyDefaults() {
        if (!isProxyObject()) {
            legalName = STRING_NULL;
            webSite = STRING_NULL;
            federalTaxId = STRING_NULL;
            stateTaxId = STRING_NULL;
            salesTaxId = STRING_NULL;
            ownershipStructureType = STRING_NULL;
            estimatedTransactionVolume = INTEGER_NULL;
            estimatedAvgTransactionAmount = INTEGER_NULL;
            estimatedMaxTransactionAmount = INTEGER_NULL;
            estimationPeriodType = STRING_NULL;
            relationshipBeginDate = DATE_NULL;
            currencyCode = STRING_NULL;
            createDate = DATE_NULL;
            street1 = STRING_NULL;
            street2 = STRING_NULL;
            city = STRING_NULL;
            state = STRING_NULL;
            zipCode = STRING_NULL;
            countryCode = STRING_NULL;
            businessName = STRING_NULL;
            registrationYear = INTEGER_NULL;
            registrationCountryCode = STRING_NULL;
            registrationState = STRING_NULL;
            email = STRING_NULL;
            workHours = STRING_NULL;
            customerServicePhone = STRING_NULL;
            contractBeginDate = DATE_NULL;
            contractEndDate = DATE_NULL;
            address = STRING_NULL;
            cardDescriptor = STRING_NULL;
        }
    }
 
    @Override
    public void from() {
        fromInternal();
        super.from();
    }
 
    protected abstract void fromInternal();
    @Override
    public abstract void to();
    @Override
    public abstract void initializeNew();
 
    @Override
    public String toString(){
        StringBuilder sb = new StringBuilder();
        sb.append("business-info: {");
        sb.append("legalName: ");
        sb.append(legalName);
        sb.append(',').append(' ');
        sb.append("webSite: ");
        sb.append(webSite);
        sb.append(',').append(' ');
        sb.append("federalTaxId: ");
        sb.append(federalTaxId);
        sb.append(',').append(' ');
        sb.append("stateTaxId: ");
        sb.append(stateTaxId);
        sb.append(',').append(' ');
        sb.append("salesTaxId: ");
        sb.append(salesTaxId);
        sb.append(',').append(' ');
        sb.append("ownershipStructureType: ");
        sb.append(ownershipStructureType);
        sb.append(',').append(' ');
        sb.append("estimatedTransactionVolume: ");
        sb.append(estimatedTransactionVolume);
        sb.append(',').append(' ');
        sb.append("estimatedAvgTransactionAmount: ");
        sb.append(estimatedAvgTransactionAmount);
        sb.append(',').append(' ');
        sb.append("estimatedMaxTransactionAmount: ");
        sb.append(estimatedMaxTransactionAmount);
        sb.append(',').append(' ');
        sb.append("estimationPeriodType: ");
        sb.append(estimationPeriodType);
        sb.append(',').append(' ');
        sb.append("relationshipBeginDate: ");
        sb.append(relationshipBeginDate);
        sb.append(',').append(' ');
        sb.append("currencyCode: ");
        sb.append(currencyCode);
        sb.append(',').append(' ');
        sb.append("createDate: ");
        sb.append(createDate);
        sb.append(',').append(' ');
        sb.append("street1: ");
        sb.append(street1);
        sb.append(',').append(' ');
        sb.append("street2: ");
        sb.append(street2);
        sb.append(',').append(' ');
        sb.append("city: ");
        sb.append(city);
        sb.append(',').append(' ');
        sb.append("state: ");
        sb.append(state);
        sb.append(',').append(' ');
        sb.append("zipCode: ");
        sb.append(zipCode);
        sb.append(',').append(' ');
        sb.append("countryCode: ");
        sb.append(countryCode);
        sb.append(',').append(' ');
        sb.append("businessName: ");
        sb.append(businessName);
        sb.append(',').append(' ');
        sb.append("registrationYear: ");
        sb.append(registrationYear);
        sb.append(',').append(' ');
        sb.append("registrationCountryCode: ");
        sb.append(registrationCountryCode);
        sb.append(',').append(' ');
        sb.append("registrationState: ");
        sb.append(registrationState);
        sb.append(',').append(' ');
        sb.append("email: ");
        sb.append(email);
        sb.append(',').append(' ');
        sb.append("workHours: ");
        sb.append(workHours);
        sb.append(',').append(' ');
        sb.append("customerServicePhone: ");
        sb.append(customerServicePhone);
        sb.append(',').append(' ');
        sb.append("contractBeginDate: ");
        sb.append(contractBeginDate);
        sb.append(',').append(' ');
        sb.append("contractEndDate: ");
        sb.append(contractEndDate);
        sb.append(',').append(' ');
        sb.append("address: ");
        sb.append(address);
        sb.append(',').append(' ');
        sb.append("cardDescriptor: ");
        sb.append(cardDescriptor);
        sb.append('}');
        return sb.toString();
    }
 
 
    @XmlAttribute(name="legalName")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("legalName")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Size(max = 255)
    @Pattern(regexp = unipay.validator.PatternName.NAME_BUSINESS)
    public String getLegalName(){
        return legalName;
    }
 
    public void setLegalName(String value){
        this.legalName = value;
    }
 
    @XmlAttribute(name="webSite")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("webSite")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Size(max = 255)
    @Pattern(regexp = unipay.validator.PatternName.URL)
    public String getWebSite(){
        return webSite;
    }
 
    public void setWebSite(String value){
        this.webSite = value;
    }
 
    @XmlAttribute(name="federalTaxId")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("federalTaxId")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Size(max = 10)
    @Pattern(regexp = unipay.validator.PatternName.NUMERIC)
    public String getFederalTaxId(){
        return federalTaxId;
    }
 
    public void setFederalTaxId(String value){
        this.federalTaxId = value;
    }
 
    @XmlAttribute(name="stateTaxId")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("stateTaxId")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Pattern(regexp = unipay.validator.PatternName.ALPHANUMERIC_EXTENDED)
    public String getStateTaxId(){
        return stateTaxId;
    }
 
    public void setStateTaxId(String value){
        this.stateTaxId = value;
    }
 
    @XmlAttribute(name="salesTaxId")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("salesTaxId")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Pattern(regexp = unipay.validator.PatternName.ALPHANUMERIC_EXTENDED)
    public String getSalesTaxId(){
        return salesTaxId;
    }
 
    public void setSalesTaxId(String value){
        this.salesTaxId = value;
    }
 
    @XmlAttribute(name="ownershipStructureType")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("ownershipStructureType")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    public String getOwnershipStructureType(){
        return ownershipStructureType;
    }
 
    public void setOwnershipStructureType(String value){
        this.ownershipStructureType = value;
    }
 
    @XmlAttribute(name="estimatedTransactionVolume")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("estimatedTransactionVolume")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    @Min(0)
    public Integer getEstimatedTransactionVolume(){
        return estimatedTransactionVolume;
    }
 
    public void setEstimatedTransactionVolume(Integer value){
        this.estimatedTransactionVolume = value;
    }
 
    @XmlAttribute(name="estimatedAvgTransactionAmount")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("estimatedAvgTransactionAmount")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    @Min(0)
    public Integer getEstimatedAvgTransactionAmount(){
        return estimatedAvgTransactionAmount;
    }
 
    public void setEstimatedAvgTransactionAmount(Integer value){
        this.estimatedAvgTransactionAmount = value;
    }
 
    @XmlAttribute(name="estimatedMaxTransactionAmount")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("estimatedMaxTransactionAmount")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    @Min(0)
    public Integer getEstimatedMaxTransactionAmount(){
        return estimatedMaxTransactionAmount;
    }
 
    public void setEstimatedMaxTransactionAmount(Integer value){
        this.estimatedMaxTransactionAmount = value;
    }
 
    @XmlAttribute(name="estimationPeriodType")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("estimationPeriodType")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @EnumValidator(unicore.model.TimePeriodClassifier.class)
    public String getEstimationPeriodType(){
        return estimationPeriodType;
    }
 
    public void setEstimationPeriodType(String value){
        this.estimationPeriodType = value;
    }
 
    @XmlAttribute(name="relationshipBeginDate")
    @FormParam("relationshipBeginDate")
    @DateFormat
    @JsonDeserialize(using=api.util.DateDeserializer.class)
    public Date getRelationshipBeginDate(){
        return relationshipBeginDate;
    }
 
    public void setRelationshipBeginDate(Date value){
        this.relationshipBeginDate = value;
    }
 
    @XmlAttribute(name="currencyCode")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("currencyCode")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    public String getCurrencyCode(){
        return currencyCode;
    }
 
    public void setCurrencyCode(String value){
        this.currencyCode = value;
    }
 
    @XmlAttribute(name="createDate")
    @XmlJavaTypeAdapter(api.util.DateTimeAdapter.class)
    @FormParam("createDate")
    @DateFormat
    @JsonSerialize(using=api.util.DateTimeSerializer.class, include = NON_NULL)
    @JsonDeserialize(using=api.util.DateDeserializer.class)
    public Date getCreateDate(){
        return createDate;
    }
 
    public void setCreateDate(Date value){
        this.createDate = value;
    }
 
    @XmlAttribute(name="street1")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("street1")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Size(max = 128)
    @Pattern(regexp = unipay.validator.PatternName.STREET)
    public String getStreet1(){
        return street1;
    }
 
    public void setStreet1(String value){
        this.street1 = value;
    }
 
    @XmlAttribute(name="street2")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("street2")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Size(max = 128)
    @Pattern(regexp = unipay.validator.PatternName.STREET)
    public String getStreet2(){
        return street2;
    }
 
    public void setStreet2(String value){
        this.street2 = value;
    }
 
    @XmlAttribute(name="city")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("city")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Size(max = 50)
    @Pattern(regexp = unipay.validator.PatternName.ALPHANUMERIC_EXTENDED)
    public String getCity(){
        return city;
    }
 
    public void setCity(String value){
        this.city = value;
    }
 
    @XmlAttribute(name="state")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("state")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    public String getState(){
        return state;
    }
 
    public void setState(String value){
        this.state = value;
    }
 
    @XmlAttribute(name="zipCode")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("zipCode")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    public String getZipCode(){
        return zipCode;
    }
 
    public void setZipCode(String value){
        this.zipCode = value;
    }
 
    @XmlAttribute(name="countryCode")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("countryCode")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    public String getCountryCode(){
        return countryCode;
    }
 
    public void setCountryCode(String value){
        this.countryCode = value;
    }
 
    @XmlAttribute(name="businessName")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("businessName")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Pattern(regexp = unipay.validator.PatternName.NAME_BUSINESS)
    public String getBusinessName(){
        return businessName;
    }
 
    public void setBusinessName(String value){
        this.businessName = value;
    }
 
    @XmlAttribute(name="registrationYear")
    @XmlJavaTypeAdapter(value=api.util.IntegerAdapter.class, type=Integer.class)
    @FormParam("registrationYear")
    @IntegerFormat
    @JsonDeserialize(using=api.util.NumberDeserializer.class)
    @Min(0)
    public Integer getRegistrationYear(){
        return registrationYear;
    }
 
    public void setRegistrationYear(Integer value){
        this.registrationYear = value;
    }
 
    @XmlAttribute(name="registrationCountryCode")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("registrationCountryCode")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Size(max = 2)
    @Pattern(regexp = unipay.validator.PatternName.ALPHA)
    public String getRegistrationCountryCode(){
        return registrationCountryCode;
    }
 
    public void setRegistrationCountryCode(String value){
        this.registrationCountryCode = value;
    }
 
    @XmlAttribute(name="registrationState")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("registrationState")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Size(max = 3)
    @Pattern(regexp = unipay.validator.PatternName.ALPHA)
    public String getRegistrationState(){
        return registrationState;
    }
 
    public void setRegistrationState(String value){
        this.registrationState = value;
    }
 
    @XmlAttribute(name="email")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("email")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Size(max = 100)
    @Pattern(regexp = unipay.validator.PatternName.EMAIL)
    public String getEmail(){
        return email;
    }
 
    public void setEmail(String value){
        this.email = value;
    }
 
    @XmlAttribute(name="workHours")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("workHours")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Size(max = 225)
    @Pattern(regexp = unipay.validator.PatternName.TEXT)
    public String getWorkHours(){
        return workHours;
    }
 
    public void setWorkHours(String value){
        this.workHours = value;
    }
 
    @XmlAttribute(name="customerServicePhone")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("customerServicePhone")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    @Size(min = 10, max = 20)
    @Pattern(regexp = unipay.validator.PatternName.NUMERIC)
    public String getCustomerServicePhone(){
        return customerServicePhone;
    }
 
    public void setCustomerServicePhone(String value){
        this.customerServicePhone = value;
    }
 
    @XmlAttribute(name="contractBeginDate")
    @FormParam("contractBeginDate")
    @DateFormat
    @JsonDeserialize(using=api.util.DateDeserializer.class)
    public Date getContractBeginDate(){
        return contractBeginDate;
    }
 
    public void setContractBeginDate(Date value){
        this.contractBeginDate = value;
    }
 
    @XmlAttribute(name="contractEndDate")
    @FormParam("contractEndDate")
    @DateFormat
    @JsonDeserialize(using=api.util.DateDeserializer.class)
    public Date getContractEndDate(){
        return contractEndDate;
    }
 
    public void setContractEndDate(Date value){
        this.contractEndDate = value;
    }
 
    @XmlAttribute(name="address")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("address")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    public String getAddress(){
        return address;
    }
 
 
    @XmlAttribute(name="cardDescriptor")
    @XmlJavaTypeAdapter(value=api.util.StringAdapter.class, type=String.class)
    @FormParam("cardDescriptor")
    @StringFormat
    @JsonDeserialize(using = api.util.StringDeserializer.class)
    public String getCardDescriptor(){
        return cardDescriptor;
    }
 
    public void setCardDescriptor(String value){
        this.cardDescriptor = value;
    }
 
 
    public void audit(AuditHelper helper, ServerObject object) {
        unicore.model.BusinessInfo s_object = (unicore.model.BusinessInfo) object;
        helper.audit("legalName", legalName, s_object.getLegalName());
        helper.audit("webSite", webSite, s_object.getWebSite());
        helper.audit("federalTaxId", federalTaxId, s_object.getFederalTaxId());
        helper.audit("stateTaxId", stateTaxId, s_object.getStateTaxId());
        helper.audit("salesTaxId", salesTaxId, s_object.getSaleTaxId());
        helper.audit("ownershipStructureType", ownershipStructureType, s_object.getOwnershipStructureCl() == null ? null : s_object.getOwnershipStructureCl().getValue());
        helper.audit("estimatedTransactionVolume", estimatedTransactionVolume, s_object.getEstimatedTransactionVolume());
        helper.audit("estimatedAvgTransactionAmount", estimatedAvgTransactionAmount, s_object.getEstimatedAvgTransactionAmount());
        helper.audit("estimatedMaxTransactionAmount", estimatedMaxTransactionAmount, s_object.getEstimatedMaxTransactionAmount());
        helper.audit("estimationPeriodType", STRING_NULL.equals(estimationPeriodType) ? null : unicore.model.TimePeriodClassifier.fromString(Fields.Management.BusinessInfo.EstimationPeriodType, estimationPeriodType), s_object.getEstimationPeriodCl() == null ? null : s_object.getEstimationPeriodCl().getValue());
        helper.audit("relationshipBeginDate", relationshipBeginDate, s_object.getRelationshipBeginDate());
        helper.audit("currencyCode", currencyCode, s_object.getCurrencyCode());
        helper.audit("createDate", createDate, s_object.getCreateDate());
        helper.audit("street1", street1, s_object.getStreet1());
        helper.audit("street2", street2, s_object.getStreet2());
        helper.audit("city", city, s_object.getCity());
        helper.audit("state", state, s_object.getState());
        helper.audit("zipCode", zipCode, s_object.getZipCode());
        helper.audit("countryCode", countryCode, s_object.getCountryCode());
        helper.audit("businessName", businessName, s_object.getBusinessName());
        helper.audit("registrationYear", registrationYear, s_object.getRegistrationYear());
        helper.audit("registrationCountryCode", registrationCountryCode, s_object.getRegistrationCountryCode());
        helper.audit("registrationState", registrationState, s_object.getRegistrationState());
        helper.audit("email", email, s_object.getEmail());
        helper.audit("workHours", workHours, s_object.getWorkHours());
        helper.audit("customerServicePhone", customerServicePhone, s_object.getCustomerServicePhone());
        helper.audit("contractBeginDate", contractBeginDate, s_object.getContractBeginDate());
        helper.audit("contractEndDate", contractEndDate, s_object.getContractEndDate());
        helper.audit("address", address, s_object.getAddress());
        helper.audit("cardDescriptor", cardDescriptor, s_object.getCardDescriptor());
 
    }
 
    public static String objectTypeCode(){
        return "business-info";
    }
 
}