<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for VendorSearchRowBasic StructType
 * @subpackage Structs
 */
class VendorSearchRowBasic extends SearchRowBasic
{
    /**
     * The accountNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $accountNumber;
    /**
     * The address
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $address;
    /**
     * The address1
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $address1;
    /**
     * The address2
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $address2;
    /**
     * The address3
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $address3;
    /**
     * The addressee
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $addressee;
    /**
     * The addressInternalId
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $addressInternalId;
    /**
     * The addressLabel
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $addressLabel;
    /**
     * The addressPhone
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $addressPhone;
    /**
     * The altContact
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $altContact;
    /**
     * The altEmail
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $altEmail;
    /**
     * The altName
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $altName;
    /**
     * The altPhone
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $altPhone;
    /**
     * The attention
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $attention;
    /**
     * The balance
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $balance;
    /**
     * The billAddress
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $billAddress;
    /**
     * The billAddress1
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $billAddress1;
    /**
     * The billAddress2
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $billAddress2;
    /**
     * The billAddress3
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $billAddress3;
    /**
     * The billAddressee
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $billAddressee;
    /**
     * The billAttention
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $billAttention;
    /**
     * The billCity
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $billCity;
    /**
     * The billCountry
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $billCountry;
    /**
     * The billCountryCode
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $billCountryCode;
    /**
     * The billPhone
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $billPhone;
    /**
     * The billState
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $billState;
    /**
     * The billZipCode
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $billZipCode;
    /**
     * The category
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $category;
    /**
     * The city
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $city;
    /**
     * The comments
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $comments;
    /**
     * The companyName
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $companyName;
    /**
     * The contact
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $contact;
    /**
     * The country
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $country;
    /**
     * The countryCode
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $countryCode;
    /**
     * The creditLimit
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $creditLimit;
    /**
     * The currency
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $currency;
    /**
     * The currentExchangeRate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $currentExchangeRate;
    /**
     * The dateCreated
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $dateCreated;
    /**
     * The defaultTaxReg
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $defaultTaxReg;
    /**
     * The eligibleForCommission
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $eligibleForCommission;
    /**
     * The email
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $email;
    /**
     * The emailPreference
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $emailPreference;
    /**
     * The emailTransactions
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $emailTransactions;
    /**
     * The entityId
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $entityId;
    /**
     * The entityNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnLongField[]
     */
    public $entityNumber;
    /**
     * The expenseAccount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $expenseAccount;
    /**
     * The externalId
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $externalId;
    /**
     * The fax
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $fax;
    /**
     * The faxTransactions
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $faxTransactions;
    /**
     * The firstName
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $firstName;
    /**
     * The fxBalance
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $fxBalance;
    /**
     * The fxUnbilledOrders
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $fxUnbilledOrders;
    /**
     * The giveAccess
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $giveAccess;
    /**
     * The globalSubscriptionStatus
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $globalSubscriptionStatus;
    /**
     * The hasDuplicates
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $hasDuplicates;
    /**
     * The homePhone
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $homePhone;
    /**
     * The image
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $image;
    /**
     * The incoterm
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $incoterm;
    /**
     * The internalId
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $internalId;
    /**
     * The is1099Eligible
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $is1099Eligible;
    /**
     * The isDefaultBilling
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isDefaultBilling;
    /**
     * The isDefaultShipping
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isDefaultShipping;
    /**
     * The isInactive
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isInactive;
    /**
     * The isJobResourceVend
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isJobResourceVend;
    /**
     * The isPerson
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isPerson;
    /**
     * The laborCost
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $laborCost;
    /**
     * The language
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $language;
    /**
     * The lastModifiedDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $lastModifiedDate;
    /**
     * The lastName
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $lastName;
    /**
     * The level
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $level;
    /**
     * The middleName
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $middleName;
    /**
     * The mobilePhone
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $mobilePhone;
    /**
     * The payablesAccount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $payablesAccount;
    /**
     * The pec
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $pec;
    /**
     * The permission
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $permission;
    /**
     * The phone
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $phone;
    /**
     * The phoneticName
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $phoneticName;
    /**
     * The predConfidence
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $predConfidence;
    /**
     * The predictedDays
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $predictedDays;
    /**
     * The printOnCheckAs
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $printOnCheckAs;
    /**
     * The printTransactions
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $printTransactions;
    /**
     * The purchaseOrderAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $purchaseOrderAmount;
    /**
     * The purchaseOrderQuantity
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $purchaseOrderQuantity;
    /**
     * The purchaseOrderQuantityDiff
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $purchaseOrderQuantityDiff;
    /**
     * The receiptAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $receiptAmount;
    /**
     * The receiptQuantity
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $receiptQuantity;
    /**
     * The receiptQuantityDiff
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $receiptQuantityDiff;
    /**
     * The salutation
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $salutation;
    /**
     * The shipAddress
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipAddress;
    /**
     * The shipAddress1
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipAddress1;
    /**
     * The shipAddress2
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipAddress2;
    /**
     * The shipAddress3
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipAddress3;
    /**
     * The shipAddressee
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipAddressee;
    /**
     * The shipAttention
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipAttention;
    /**
     * The shipCity
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipCity;
    /**
     * The shipCountry
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $shipCountry;
    /**
     * The shipCountryCode
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipCountryCode;
    /**
     * The shipPhone
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipPhone;
    /**
     * The shipState
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipState;
    /**
     * The shipZip
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipZip;
    /**
     * The state
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $state;
    /**
     * The subscription
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $subscription;
    /**
     * The subscriptionDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $subscriptionDate;
    /**
     * The subscriptionStatus
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $subscriptionStatus;
    /**
     * The subsidiary
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $subsidiary;
    /**
     * The taxIdNum
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $taxIdNum;
    /**
     * The terms
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $terms;
    /**
     * The timeApprover
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $timeApprover;
    /**
     * The title
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $title;
    /**
     * The unbilledOrders
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $unbilledOrders;
    /**
     * The url
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $url;
    /**
     * The vatRegNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $vatRegNumber;
    /**
     * The workCalendar
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $workCalendar;
    /**
     * The zipCode
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $zipCode;
    /**
     * The customFieldList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchColumnCustomFieldList
     */
    public $customFieldList;
    /**
     * Constructor method for VendorSearchRowBasic
     * @uses VendorSearchRowBasic::setAccountNumber()
     * @uses VendorSearchRowBasic::setAddress()
     * @uses VendorSearchRowBasic::setAddress1()
     * @uses VendorSearchRowBasic::setAddress2()
     * @uses VendorSearchRowBasic::setAddress3()
     * @uses VendorSearchRowBasic::setAddressee()
     * @uses VendorSearchRowBasic::setAddressInternalId()
     * @uses VendorSearchRowBasic::setAddressLabel()
     * @uses VendorSearchRowBasic::setAddressPhone()
     * @uses VendorSearchRowBasic::setAltContact()
     * @uses VendorSearchRowBasic::setAltEmail()
     * @uses VendorSearchRowBasic::setAltName()
     * @uses VendorSearchRowBasic::setAltPhone()
     * @uses VendorSearchRowBasic::setAttention()
     * @uses VendorSearchRowBasic::setBalance()
     * @uses VendorSearchRowBasic::setBillAddress()
     * @uses VendorSearchRowBasic::setBillAddress1()
     * @uses VendorSearchRowBasic::setBillAddress2()
     * @uses VendorSearchRowBasic::setBillAddress3()
     * @uses VendorSearchRowBasic::setBillAddressee()
     * @uses VendorSearchRowBasic::setBillAttention()
     * @uses VendorSearchRowBasic::setBillCity()
     * @uses VendorSearchRowBasic::setBillCountry()
     * @uses VendorSearchRowBasic::setBillCountryCode()
     * @uses VendorSearchRowBasic::setBillPhone()
     * @uses VendorSearchRowBasic::setBillState()
     * @uses VendorSearchRowBasic::setBillZipCode()
     * @uses VendorSearchRowBasic::setCategory()
     * @uses VendorSearchRowBasic::setCity()
     * @uses VendorSearchRowBasic::setComments()
     * @uses VendorSearchRowBasic::setCompanyName()
     * @uses VendorSearchRowBasic::setContact()
     * @uses VendorSearchRowBasic::setCountry()
     * @uses VendorSearchRowBasic::setCountryCode()
     * @uses VendorSearchRowBasic::setCreditLimit()
     * @uses VendorSearchRowBasic::setCurrency()
     * @uses VendorSearchRowBasic::setCurrentExchangeRate()
     * @uses VendorSearchRowBasic::setDateCreated()
     * @uses VendorSearchRowBasic::setDefaultTaxReg()
     * @uses VendorSearchRowBasic::setEligibleForCommission()
     * @uses VendorSearchRowBasic::setEmail()
     * @uses VendorSearchRowBasic::setEmailPreference()
     * @uses VendorSearchRowBasic::setEmailTransactions()
     * @uses VendorSearchRowBasic::setEntityId()
     * @uses VendorSearchRowBasic::setEntityNumber()
     * @uses VendorSearchRowBasic::setExpenseAccount()
     * @uses VendorSearchRowBasic::setExternalId()
     * @uses VendorSearchRowBasic::setFax()
     * @uses VendorSearchRowBasic::setFaxTransactions()
     * @uses VendorSearchRowBasic::setFirstName()
     * @uses VendorSearchRowBasic::setFxBalance()
     * @uses VendorSearchRowBasic::setFxUnbilledOrders()
     * @uses VendorSearchRowBasic::setGiveAccess()
     * @uses VendorSearchRowBasic::setGlobalSubscriptionStatus()
     * @uses VendorSearchRowBasic::setHasDuplicates()
     * @uses VendorSearchRowBasic::setHomePhone()
     * @uses VendorSearchRowBasic::setImage()
     * @uses VendorSearchRowBasic::setIncoterm()
     * @uses VendorSearchRowBasic::setInternalId()
     * @uses VendorSearchRowBasic::setIs1099Eligible()
     * @uses VendorSearchRowBasic::setIsDefaultBilling()
     * @uses VendorSearchRowBasic::setIsDefaultShipping()
     * @uses VendorSearchRowBasic::setIsInactive()
     * @uses VendorSearchRowBasic::setIsJobResourceVend()
     * @uses VendorSearchRowBasic::setIsPerson()
     * @uses VendorSearchRowBasic::setLaborCost()
     * @uses VendorSearchRowBasic::setLanguage()
     * @uses VendorSearchRowBasic::setLastModifiedDate()
     * @uses VendorSearchRowBasic::setLastName()
     * @uses VendorSearchRowBasic::setLevel()
     * @uses VendorSearchRowBasic::setMiddleName()
     * @uses VendorSearchRowBasic::setMobilePhone()
     * @uses VendorSearchRowBasic::setPayablesAccount()
     * @uses VendorSearchRowBasic::setPec()
     * @uses VendorSearchRowBasic::setPermission()
     * @uses VendorSearchRowBasic::setPhone()
     * @uses VendorSearchRowBasic::setPhoneticName()
     * @uses VendorSearchRowBasic::setPredConfidence()
     * @uses VendorSearchRowBasic::setPredictedDays()
     * @uses VendorSearchRowBasic::setPrintOnCheckAs()
     * @uses VendorSearchRowBasic::setPrintTransactions()
     * @uses VendorSearchRowBasic::setPurchaseOrderAmount()
     * @uses VendorSearchRowBasic::setPurchaseOrderQuantity()
     * @uses VendorSearchRowBasic::setPurchaseOrderQuantityDiff()
     * @uses VendorSearchRowBasic::setReceiptAmount()
     * @uses VendorSearchRowBasic::setReceiptQuantity()
     * @uses VendorSearchRowBasic::setReceiptQuantityDiff()
     * @uses VendorSearchRowBasic::setSalutation()
     * @uses VendorSearchRowBasic::setShipAddress()
     * @uses VendorSearchRowBasic::setShipAddress1()
     * @uses VendorSearchRowBasic::setShipAddress2()
     * @uses VendorSearchRowBasic::setShipAddress3()
     * @uses VendorSearchRowBasic::setShipAddressee()
     * @uses VendorSearchRowBasic::setShipAttention()
     * @uses VendorSearchRowBasic::setShipCity()
     * @uses VendorSearchRowBasic::setShipCountry()
     * @uses VendorSearchRowBasic::setShipCountryCode()
     * @uses VendorSearchRowBasic::setShipPhone()
     * @uses VendorSearchRowBasic::setShipState()
     * @uses VendorSearchRowBasic::setShipZip()
     * @uses VendorSearchRowBasic::setState()
     * @uses VendorSearchRowBasic::setSubscription()
     * @uses VendorSearchRowBasic::setSubscriptionDate()
     * @uses VendorSearchRowBasic::setSubscriptionStatus()
     * @uses VendorSearchRowBasic::setSubsidiary()
     * @uses VendorSearchRowBasic::setTaxIdNum()
     * @uses VendorSearchRowBasic::setTerms()
     * @uses VendorSearchRowBasic::setTimeApprover()
     * @uses VendorSearchRowBasic::setTitle()
     * @uses VendorSearchRowBasic::setUnbilledOrders()
     * @uses VendorSearchRowBasic::setUrl()
     * @uses VendorSearchRowBasic::setVatRegNumber()
     * @uses VendorSearchRowBasic::setWorkCalendar()
     * @uses VendorSearchRowBasic::setZipCode()
     * @uses VendorSearchRowBasic::setCustomFieldList()
     * @param \StructType\SearchColumnStringField[] $accountNumber
     * @param \StructType\SearchColumnStringField[] $address
     * @param \StructType\SearchColumnStringField[] $address1
     * @param \StructType\SearchColumnStringField[] $address2
     * @param \StructType\SearchColumnStringField[] $address3
     * @param \StructType\SearchColumnStringField[] $addressee
     * @param \StructType\SearchColumnStringField[] $addressInternalId
     * @param \StructType\SearchColumnStringField[] $addressLabel
     * @param \StructType\SearchColumnStringField[] $addressPhone
     * @param \StructType\SearchColumnStringField[] $altContact
     * @param \StructType\SearchColumnStringField[] $altEmail
     * @param \StructType\SearchColumnStringField[] $altName
     * @param \StructType\SearchColumnStringField[] $altPhone
     * @param \StructType\SearchColumnStringField[] $attention
     * @param \StructType\SearchColumnDoubleField[] $balance
     * @param \StructType\SearchColumnStringField[] $billAddress
     * @param \StructType\SearchColumnStringField[] $billAddress1
     * @param \StructType\SearchColumnStringField[] $billAddress2
     * @param \StructType\SearchColumnStringField[] $billAddress3
     * @param \StructType\SearchColumnStringField[] $billAddressee
     * @param \StructType\SearchColumnStringField[] $billAttention
     * @param \StructType\SearchColumnStringField[] $billCity
     * @param \StructType\SearchColumnEnumSelectField[] $billCountry
     * @param \StructType\SearchColumnStringField[] $billCountryCode
     * @param \StructType\SearchColumnStringField[] $billPhone
     * @param \StructType\SearchColumnStringField[] $billState
     * @param \StructType\SearchColumnStringField[] $billZipCode
     * @param \StructType\SearchColumnSelectField[] $category
     * @param \StructType\SearchColumnStringField[] $city
     * @param \StructType\SearchColumnStringField[] $comments
     * @param \StructType\SearchColumnStringField[] $companyName
     * @param \StructType\SearchColumnStringField[] $contact
     * @param \StructType\SearchColumnEnumSelectField[] $country
     * @param \StructType\SearchColumnStringField[] $countryCode
     * @param \StructType\SearchColumnDoubleField[] $creditLimit
     * @param \StructType\SearchColumnSelectField[] $currency
     * @param \StructType\SearchColumnDoubleField[] $currentExchangeRate
     * @param \StructType\SearchColumnDateField[] $dateCreated
     * @param \StructType\SearchColumnStringField[] $defaultTaxReg
     * @param \StructType\SearchColumnBooleanField[] $eligibleForCommission
     * @param \StructType\SearchColumnStringField[] $email
     * @param \StructType\SearchColumnEnumSelectField[] $emailPreference
     * @param \StructType\SearchColumnBooleanField[] $emailTransactions
     * @param \StructType\SearchColumnStringField[] $entityId
     * @param \StructType\SearchColumnLongField[] $entityNumber
     * @param \StructType\SearchColumnSelectField[] $expenseAccount
     * @param \StructType\SearchColumnSelectField[] $externalId
     * @param \StructType\SearchColumnStringField[] $fax
     * @param \StructType\SearchColumnBooleanField[] $faxTransactions
     * @param \StructType\SearchColumnStringField[] $firstName
     * @param \StructType\SearchColumnDoubleField[] $fxBalance
     * @param \StructType\SearchColumnDoubleField[] $fxUnbilledOrders
     * @param \StructType\SearchColumnBooleanField[] $giveAccess
     * @param \StructType\SearchColumnEnumSelectField[] $globalSubscriptionStatus
     * @param \StructType\SearchColumnBooleanField[] $hasDuplicates
     * @param \StructType\SearchColumnStringField[] $homePhone
     * @param \StructType\SearchColumnSelectField[] $image
     * @param \StructType\SearchColumnSelectField[] $incoterm
     * @param \StructType\SearchColumnSelectField[] $internalId
     * @param \StructType\SearchColumnBooleanField[] $is1099Eligible
     * @param \StructType\SearchColumnBooleanField[] $isDefaultBilling
     * @param \StructType\SearchColumnBooleanField[] $isDefaultShipping
     * @param \StructType\SearchColumnBooleanField[] $isInactive
     * @param \StructType\SearchColumnBooleanField[] $isJobResourceVend
     * @param \StructType\SearchColumnBooleanField[] $isPerson
     * @param \StructType\SearchColumnDoubleField[] $laborCost
     * @param \StructType\SearchColumnEnumSelectField[] $language
     * @param \StructType\SearchColumnDateField[] $lastModifiedDate
     * @param \StructType\SearchColumnStringField[] $lastName
     * @param \StructType\SearchColumnEnumSelectField[] $level
     * @param \StructType\SearchColumnStringField[] $middleName
     * @param \StructType\SearchColumnStringField[] $mobilePhone
     * @param \StructType\SearchColumnSelectField[] $payablesAccount
     * @param \StructType\SearchColumnStringField[] $pec
     * @param \StructType\SearchColumnEnumSelectField[] $permission
     * @param \StructType\SearchColumnStringField[] $phone
     * @param \StructType\SearchColumnStringField[] $phoneticName
     * @param \StructType\SearchColumnDoubleField[] $predConfidence
     * @param \StructType\SearchColumnDoubleField[] $predictedDays
     * @param \StructType\SearchColumnStringField[] $printOnCheckAs
     * @param \StructType\SearchColumnBooleanField[] $printTransactions
     * @param \StructType\SearchColumnDoubleField[] $purchaseOrderAmount
     * @param \StructType\SearchColumnDoubleField[] $purchaseOrderQuantity
     * @param \StructType\SearchColumnDoubleField[] $purchaseOrderQuantityDiff
     * @param \StructType\SearchColumnDoubleField[] $receiptAmount
     * @param \StructType\SearchColumnDoubleField[] $receiptQuantity
     * @param \StructType\SearchColumnDoubleField[] $receiptQuantityDiff
     * @param \StructType\SearchColumnStringField[] $salutation
     * @param \StructType\SearchColumnStringField[] $shipAddress
     * @param \StructType\SearchColumnStringField[] $shipAddress1
     * @param \StructType\SearchColumnStringField[] $shipAddress2
     * @param \StructType\SearchColumnStringField[] $shipAddress3
     * @param \StructType\SearchColumnStringField[] $shipAddressee
     * @param \StructType\SearchColumnStringField[] $shipAttention
     * @param \StructType\SearchColumnStringField[] $shipCity
     * @param \StructType\SearchColumnEnumSelectField[] $shipCountry
     * @param \StructType\SearchColumnStringField[] $shipCountryCode
     * @param \StructType\SearchColumnStringField[] $shipPhone
     * @param \StructType\SearchColumnStringField[] $shipState
     * @param \StructType\SearchColumnStringField[] $shipZip
     * @param \StructType\SearchColumnStringField[] $state
     * @param \StructType\SearchColumnSelectField[] $subscription
     * @param \StructType\SearchColumnDateField[] $subscriptionDate
     * @param \StructType\SearchColumnBooleanField[] $subscriptionStatus
     * @param \StructType\SearchColumnSelectField[] $subsidiary
     * @param \StructType\SearchColumnStringField[] $taxIdNum
     * @param \StructType\SearchColumnSelectField[] $terms
     * @param \StructType\SearchColumnSelectField[] $timeApprover
     * @param \StructType\SearchColumnStringField[] $title
     * @param \StructType\SearchColumnDoubleField[] $unbilledOrders
     * @param \StructType\SearchColumnStringField[] $url
     * @param \StructType\SearchColumnStringField[] $vatRegNumber
     * @param \StructType\SearchColumnSelectField[] $workCalendar
     * @param \StructType\SearchColumnStringField[] $zipCode
     * @param \StructType\SearchColumnCustomFieldList $customFieldList
     */
    public function __construct(array $accountNumber = array(), array $address = array(), array $address1 = array(), array $address2 = array(), array $address3 = array(), array $addressee = array(), array $addressInternalId = array(), array $addressLabel = array(), array $addressPhone = array(), array $altContact = array(), array $altEmail = array(), array $altName = array(), array $altPhone = array(), array $attention = array(), array $balance = array(), array $billAddress = array(), array $billAddress1 = array(), array $billAddress2 = array(), array $billAddress3 = array(), array $billAddressee = array(), array $billAttention = array(), array $billCity = array(), array $billCountry = array(), array $billCountryCode = array(), array $billPhone = array(), array $billState = array(), array $billZipCode = array(), array $category = array(), array $city = array(), array $comments = array(), array $companyName = array(), array $contact = array(), array $country = array(), array $countryCode = array(), array $creditLimit = array(), array $currency = array(), array $currentExchangeRate = array(), array $dateCreated = array(), array $defaultTaxReg = array(), array $eligibleForCommission = array(), array $email = array(), array $emailPreference = array(), array $emailTransactions = array(), array $entityId = array(), array $entityNumber = array(), array $expenseAccount = array(), array $externalId = array(), array $fax = array(), array $faxTransactions = array(), array $firstName = array(), array $fxBalance = array(), array $fxUnbilledOrders = array(), array $giveAccess = array(), array $globalSubscriptionStatus = array(), array $hasDuplicates = array(), array $homePhone = array(), array $image = array(), array $incoterm = array(), array $internalId = array(), array $is1099Eligible = array(), array $isDefaultBilling = array(), array $isDefaultShipping = array(), array $isInactive = array(), array $isJobResourceVend = array(), array $isPerson = array(), array $laborCost = array(), array $language = array(), array $lastModifiedDate = array(), array $lastName = array(), array $level = array(), array $middleName = array(), array $mobilePhone = array(), array $payablesAccount = array(), array $pec = array(), array $permission = array(), array $phone = array(), array $phoneticName = array(), array $predConfidence = array(), array $predictedDays = array(), array $printOnCheckAs = array(), array $printTransactions = array(), array $purchaseOrderAmount = array(), array $purchaseOrderQuantity = array(), array $purchaseOrderQuantityDiff = array(), array $receiptAmount = array(), array $receiptQuantity = array(), array $receiptQuantityDiff = array(), array $salutation = array(), array $shipAddress = array(), array $shipAddress1 = array(), array $shipAddress2 = array(), array $shipAddress3 = array(), array $shipAddressee = array(), array $shipAttention = array(), array $shipCity = array(), array $shipCountry = array(), array $shipCountryCode = array(), array $shipPhone = array(), array $shipState = array(), array $shipZip = array(), array $state = array(), array $subscription = array(), array $subscriptionDate = array(), array $subscriptionStatus = array(), array $subsidiary = array(), array $taxIdNum = array(), array $terms = array(), array $timeApprover = array(), array $title = array(), array $unbilledOrders = array(), array $url = array(), array $vatRegNumber = array(), array $workCalendar = array(), array $zipCode = array(), \StructType\SearchColumnCustomFieldList $customFieldList = null)
    {
        $this
            ->setAccountNumber($accountNumber)
            ->setAddress($address)
            ->setAddress1($address1)
            ->setAddress2($address2)
            ->setAddress3($address3)
            ->setAddressee($addressee)
            ->setAddressInternalId($addressInternalId)
            ->setAddressLabel($addressLabel)
            ->setAddressPhone($addressPhone)
            ->setAltContact($altContact)
            ->setAltEmail($altEmail)
            ->setAltName($altName)
            ->setAltPhone($altPhone)
            ->setAttention($attention)
            ->setBalance($balance)
            ->setBillAddress($billAddress)
            ->setBillAddress1($billAddress1)
            ->setBillAddress2($billAddress2)
            ->setBillAddress3($billAddress3)
            ->setBillAddressee($billAddressee)
            ->setBillAttention($billAttention)
            ->setBillCity($billCity)
            ->setBillCountry($billCountry)
            ->setBillCountryCode($billCountryCode)
            ->setBillPhone($billPhone)
            ->setBillState($billState)
            ->setBillZipCode($billZipCode)
            ->setCategory($category)
            ->setCity($city)
            ->setComments($comments)
            ->setCompanyName($companyName)
            ->setContact($contact)
            ->setCountry($country)
            ->setCountryCode($countryCode)
            ->setCreditLimit($creditLimit)
            ->setCurrency($currency)
            ->setCurrentExchangeRate($currentExchangeRate)
            ->setDateCreated($dateCreated)
            ->setDefaultTaxReg($defaultTaxReg)
            ->setEligibleForCommission($eligibleForCommission)
            ->setEmail($email)
            ->setEmailPreference($emailPreference)
            ->setEmailTransactions($emailTransactions)
            ->setEntityId($entityId)
            ->setEntityNumber($entityNumber)
            ->setExpenseAccount($expenseAccount)
            ->setExternalId($externalId)
            ->setFax($fax)
            ->setFaxTransactions($faxTransactions)
            ->setFirstName($firstName)
            ->setFxBalance($fxBalance)
            ->setFxUnbilledOrders($fxUnbilledOrders)
            ->setGiveAccess($giveAccess)
            ->setGlobalSubscriptionStatus($globalSubscriptionStatus)
            ->setHasDuplicates($hasDuplicates)
            ->setHomePhone($homePhone)
            ->setImage($image)
            ->setIncoterm($incoterm)
            ->setInternalId($internalId)
            ->setIs1099Eligible($is1099Eligible)
            ->setIsDefaultBilling($isDefaultBilling)
            ->setIsDefaultShipping($isDefaultShipping)
            ->setIsInactive($isInactive)
            ->setIsJobResourceVend($isJobResourceVend)
            ->setIsPerson($isPerson)
            ->setLaborCost($laborCost)
            ->setLanguage($language)
            ->setLastModifiedDate($lastModifiedDate)
            ->setLastName($lastName)
            ->setLevel($level)
            ->setMiddleName($middleName)
            ->setMobilePhone($mobilePhone)
            ->setPayablesAccount($payablesAccount)
            ->setPec($pec)
            ->setPermission($permission)
            ->setPhone($phone)
            ->setPhoneticName($phoneticName)
            ->setPredConfidence($predConfidence)
            ->setPredictedDays($predictedDays)
            ->setPrintOnCheckAs($printOnCheckAs)
            ->setPrintTransactions($printTransactions)
            ->setPurchaseOrderAmount($purchaseOrderAmount)
            ->setPurchaseOrderQuantity($purchaseOrderQuantity)
            ->setPurchaseOrderQuantityDiff($purchaseOrderQuantityDiff)
            ->setReceiptAmount($receiptAmount)
            ->setReceiptQuantity($receiptQuantity)
            ->setReceiptQuantityDiff($receiptQuantityDiff)
            ->setSalutation($salutation)
            ->setShipAddress($shipAddress)
            ->setShipAddress1($shipAddress1)
            ->setShipAddress2($shipAddress2)
            ->setShipAddress3($shipAddress3)
            ->setShipAddressee($shipAddressee)
            ->setShipAttention($shipAttention)
            ->setShipCity($shipCity)
            ->setShipCountry($shipCountry)
            ->setShipCountryCode($shipCountryCode)
            ->setShipPhone($shipPhone)
            ->setShipState($shipState)
            ->setShipZip($shipZip)
            ->setState($state)
            ->setSubscription($subscription)
            ->setSubscriptionDate($subscriptionDate)
            ->setSubscriptionStatus($subscriptionStatus)
            ->setSubsidiary($subsidiary)
            ->setTaxIdNum($taxIdNum)
            ->setTerms($terms)
            ->setTimeApprover($timeApprover)
            ->setTitle($title)
            ->setUnbilledOrders($unbilledOrders)
            ->setUrl($url)
            ->setVatRegNumber($vatRegNumber)
            ->setWorkCalendar($workCalendar)
            ->setZipCode($zipCode)
            ->setCustomFieldList($customFieldList);
    }
    /**
     * Get accountNumber value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAccountNumber()
    {
        return $this->accountNumber;
    }
    /**
     * This method is responsible for validating the values passed to the setAccountNumber method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAccountNumber method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAccountNumberForArrayConstraintsFromSetAccountNumber(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAccountNumberItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAccountNumberItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAccountNumberItem) ? get_class($vendorSearchRowBasicAccountNumberItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAccountNumberItem), var_export($vendorSearchRowBasicAccountNumberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The accountNumber property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set accountNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $accountNumber
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAccountNumber(array $accountNumber = array())
    {
        // validation for constraint: array
        if ('' !== ($accountNumberArrayErrorMessage = self::validateAccountNumberForArrayConstraintsFromSetAccountNumber($accountNumber))) {
            throw new \InvalidArgumentException($accountNumberArrayErrorMessage, __LINE__);
        }
        $this->accountNumber = $accountNumber;
        return $this;
    }
    /**
     * Add item to accountNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAccountNumber(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The accountNumber property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->accountNumber[] = $item;
        return $this;
    }
    /**
     * Get address value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAddress()
    {
        return $this->address;
    }
    /**
     * This method is responsible for validating the values passed to the setAddress method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAddress method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAddressForArrayConstraintsFromSetAddress(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAddressItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAddressItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAddressItem) ? get_class($vendorSearchRowBasicAddressItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAddressItem), var_export($vendorSearchRowBasicAddressItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The address property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set address value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $address
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAddress(array $address = array())
    {
        // validation for constraint: array
        if ('' !== ($addressArrayErrorMessage = self::validateAddressForArrayConstraintsFromSetAddress($address))) {
            throw new \InvalidArgumentException($addressArrayErrorMessage, __LINE__);
        }
        $this->address = $address;
        return $this;
    }
    /**
     * Add item to address value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAddress(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The address property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->address[] = $item;
        return $this;
    }
    /**
     * Get address1 value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAddress1()
    {
        return $this->address1;
    }
    /**
     * This method is responsible for validating the values passed to the setAddress1 method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAddress1 method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAddress1ForArrayConstraintsFromSetAddress1(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAddress1Item) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAddress1Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAddress1Item) ? get_class($vendorSearchRowBasicAddress1Item) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAddress1Item), var_export($vendorSearchRowBasicAddress1Item, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The address1 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set address1 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $address1
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAddress1(array $address1 = array())
    {
        // validation for constraint: array
        if ('' !== ($address1ArrayErrorMessage = self::validateAddress1ForArrayConstraintsFromSetAddress1($address1))) {
            throw new \InvalidArgumentException($address1ArrayErrorMessage, __LINE__);
        }
        $this->address1 = $address1;
        return $this;
    }
    /**
     * Add item to address1 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAddress1(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The address1 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->address1[] = $item;
        return $this;
    }
    /**
     * Get address2 value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAddress2()
    {
        return $this->address2;
    }
    /**
     * This method is responsible for validating the values passed to the setAddress2 method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAddress2 method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAddress2ForArrayConstraintsFromSetAddress2(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAddress2Item) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAddress2Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAddress2Item) ? get_class($vendorSearchRowBasicAddress2Item) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAddress2Item), var_export($vendorSearchRowBasicAddress2Item, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The address2 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set address2 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $address2
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAddress2(array $address2 = array())
    {
        // validation for constraint: array
        if ('' !== ($address2ArrayErrorMessage = self::validateAddress2ForArrayConstraintsFromSetAddress2($address2))) {
            throw new \InvalidArgumentException($address2ArrayErrorMessage, __LINE__);
        }
        $this->address2 = $address2;
        return $this;
    }
    /**
     * Add item to address2 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAddress2(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The address2 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->address2[] = $item;
        return $this;
    }
    /**
     * Get address3 value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAddress3()
    {
        return $this->address3;
    }
    /**
     * This method is responsible for validating the values passed to the setAddress3 method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAddress3 method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAddress3ForArrayConstraintsFromSetAddress3(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAddress3Item) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAddress3Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAddress3Item) ? get_class($vendorSearchRowBasicAddress3Item) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAddress3Item), var_export($vendorSearchRowBasicAddress3Item, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The address3 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set address3 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $address3
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAddress3(array $address3 = array())
    {
        // validation for constraint: array
        if ('' !== ($address3ArrayErrorMessage = self::validateAddress3ForArrayConstraintsFromSetAddress3($address3))) {
            throw new \InvalidArgumentException($address3ArrayErrorMessage, __LINE__);
        }
        $this->address3 = $address3;
        return $this;
    }
    /**
     * Add item to address3 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAddress3(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The address3 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->address3[] = $item;
        return $this;
    }
    /**
     * Get addressee value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAddressee()
    {
        return $this->addressee;
    }
    /**
     * This method is responsible for validating the values passed to the setAddressee method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAddressee method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAddresseeForArrayConstraintsFromSetAddressee(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAddresseeItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAddresseeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAddresseeItem) ? get_class($vendorSearchRowBasicAddresseeItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAddresseeItem), var_export($vendorSearchRowBasicAddresseeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The addressee property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set addressee value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $addressee
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAddressee(array $addressee = array())
    {
        // validation for constraint: array
        if ('' !== ($addresseeArrayErrorMessage = self::validateAddresseeForArrayConstraintsFromSetAddressee($addressee))) {
            throw new \InvalidArgumentException($addresseeArrayErrorMessage, __LINE__);
        }
        $this->addressee = $addressee;
        return $this;
    }
    /**
     * Add item to addressee value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAddressee(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The addressee property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->addressee[] = $item;
        return $this;
    }
    /**
     * Get addressInternalId value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAddressInternalId()
    {
        return $this->addressInternalId;
    }
    /**
     * This method is responsible for validating the values passed to the setAddressInternalId method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAddressInternalId method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAddressInternalIdForArrayConstraintsFromSetAddressInternalId(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAddressInternalIdItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAddressInternalIdItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAddressInternalIdItem) ? get_class($vendorSearchRowBasicAddressInternalIdItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAddressInternalIdItem), var_export($vendorSearchRowBasicAddressInternalIdItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The addressInternalId property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set addressInternalId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $addressInternalId
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAddressInternalId(array $addressInternalId = array())
    {
        // validation for constraint: array
        if ('' !== ($addressInternalIdArrayErrorMessage = self::validateAddressInternalIdForArrayConstraintsFromSetAddressInternalId($addressInternalId))) {
            throw new \InvalidArgumentException($addressInternalIdArrayErrorMessage, __LINE__);
        }
        $this->addressInternalId = $addressInternalId;
        return $this;
    }
    /**
     * Add item to addressInternalId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAddressInternalId(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The addressInternalId property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->addressInternalId[] = $item;
        return $this;
    }
    /**
     * Get addressLabel value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAddressLabel()
    {
        return $this->addressLabel;
    }
    /**
     * This method is responsible for validating the values passed to the setAddressLabel method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAddressLabel method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAddressLabelForArrayConstraintsFromSetAddressLabel(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAddressLabelItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAddressLabelItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAddressLabelItem) ? get_class($vendorSearchRowBasicAddressLabelItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAddressLabelItem), var_export($vendorSearchRowBasicAddressLabelItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The addressLabel property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set addressLabel value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $addressLabel
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAddressLabel(array $addressLabel = array())
    {
        // validation for constraint: array
        if ('' !== ($addressLabelArrayErrorMessage = self::validateAddressLabelForArrayConstraintsFromSetAddressLabel($addressLabel))) {
            throw new \InvalidArgumentException($addressLabelArrayErrorMessage, __LINE__);
        }
        $this->addressLabel = $addressLabel;
        return $this;
    }
    /**
     * Add item to addressLabel value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAddressLabel(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The addressLabel property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->addressLabel[] = $item;
        return $this;
    }
    /**
     * Get addressPhone value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAddressPhone()
    {
        return $this->addressPhone;
    }
    /**
     * This method is responsible for validating the values passed to the setAddressPhone method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAddressPhone method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAddressPhoneForArrayConstraintsFromSetAddressPhone(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAddressPhoneItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAddressPhoneItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAddressPhoneItem) ? get_class($vendorSearchRowBasicAddressPhoneItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAddressPhoneItem), var_export($vendorSearchRowBasicAddressPhoneItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The addressPhone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set addressPhone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $addressPhone
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAddressPhone(array $addressPhone = array())
    {
        // validation for constraint: array
        if ('' !== ($addressPhoneArrayErrorMessage = self::validateAddressPhoneForArrayConstraintsFromSetAddressPhone($addressPhone))) {
            throw new \InvalidArgumentException($addressPhoneArrayErrorMessage, __LINE__);
        }
        $this->addressPhone = $addressPhone;
        return $this;
    }
    /**
     * Add item to addressPhone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAddressPhone(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The addressPhone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->addressPhone[] = $item;
        return $this;
    }
    /**
     * Get altContact value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAltContact()
    {
        return $this->altContact;
    }
    /**
     * This method is responsible for validating the values passed to the setAltContact method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAltContact method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAltContactForArrayConstraintsFromSetAltContact(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAltContactItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAltContactItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAltContactItem) ? get_class($vendorSearchRowBasicAltContactItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAltContactItem), var_export($vendorSearchRowBasicAltContactItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The altContact property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set altContact value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $altContact
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAltContact(array $altContact = array())
    {
        // validation for constraint: array
        if ('' !== ($altContactArrayErrorMessage = self::validateAltContactForArrayConstraintsFromSetAltContact($altContact))) {
            throw new \InvalidArgumentException($altContactArrayErrorMessage, __LINE__);
        }
        $this->altContact = $altContact;
        return $this;
    }
    /**
     * Add item to altContact value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAltContact(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The altContact property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->altContact[] = $item;
        return $this;
    }
    /**
     * Get altEmail value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAltEmail()
    {
        return $this->altEmail;
    }
    /**
     * This method is responsible for validating the values passed to the setAltEmail method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAltEmail method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAltEmailForArrayConstraintsFromSetAltEmail(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAltEmailItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAltEmailItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAltEmailItem) ? get_class($vendorSearchRowBasicAltEmailItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAltEmailItem), var_export($vendorSearchRowBasicAltEmailItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The altEmail property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set altEmail value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $altEmail
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAltEmail(array $altEmail = array())
    {
        // validation for constraint: array
        if ('' !== ($altEmailArrayErrorMessage = self::validateAltEmailForArrayConstraintsFromSetAltEmail($altEmail))) {
            throw new \InvalidArgumentException($altEmailArrayErrorMessage, __LINE__);
        }
        $this->altEmail = $altEmail;
        return $this;
    }
    /**
     * Add item to altEmail value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAltEmail(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The altEmail property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->altEmail[] = $item;
        return $this;
    }
    /**
     * Get altName value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAltName()
    {
        return $this->altName;
    }
    /**
     * This method is responsible for validating the values passed to the setAltName method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAltName method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAltNameForArrayConstraintsFromSetAltName(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAltNameItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAltNameItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAltNameItem) ? get_class($vendorSearchRowBasicAltNameItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAltNameItem), var_export($vendorSearchRowBasicAltNameItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The altName property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set altName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $altName
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAltName(array $altName = array())
    {
        // validation for constraint: array
        if ('' !== ($altNameArrayErrorMessage = self::validateAltNameForArrayConstraintsFromSetAltName($altName))) {
            throw new \InvalidArgumentException($altNameArrayErrorMessage, __LINE__);
        }
        $this->altName = $altName;
        return $this;
    }
    /**
     * Add item to altName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAltName(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The altName property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->altName[] = $item;
        return $this;
    }
    /**
     * Get altPhone value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAltPhone()
    {
        return $this->altPhone;
    }
    /**
     * This method is responsible for validating the values passed to the setAltPhone method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAltPhone method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAltPhoneForArrayConstraintsFromSetAltPhone(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAltPhoneItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAltPhoneItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAltPhoneItem) ? get_class($vendorSearchRowBasicAltPhoneItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAltPhoneItem), var_export($vendorSearchRowBasicAltPhoneItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The altPhone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set altPhone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $altPhone
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAltPhone(array $altPhone = array())
    {
        // validation for constraint: array
        if ('' !== ($altPhoneArrayErrorMessage = self::validateAltPhoneForArrayConstraintsFromSetAltPhone($altPhone))) {
            throw new \InvalidArgumentException($altPhoneArrayErrorMessage, __LINE__);
        }
        $this->altPhone = $altPhone;
        return $this;
    }
    /**
     * Add item to altPhone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAltPhone(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The altPhone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->altPhone[] = $item;
        return $this;
    }
    /**
     * Get attention value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAttention()
    {
        return $this->attention;
    }
    /**
     * This method is responsible for validating the values passed to the setAttention method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAttention method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAttentionForArrayConstraintsFromSetAttention(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicAttentionItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicAttentionItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicAttentionItem) ? get_class($vendorSearchRowBasicAttentionItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicAttentionItem), var_export($vendorSearchRowBasicAttentionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The attention property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set attention value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $attention
     * @return \StructType\VendorSearchRowBasic
     */
    public function setAttention(array $attention = array())
    {
        // validation for constraint: array
        if ('' !== ($attentionArrayErrorMessage = self::validateAttentionForArrayConstraintsFromSetAttention($attention))) {
            throw new \InvalidArgumentException($attentionArrayErrorMessage, __LINE__);
        }
        $this->attention = $attention;
        return $this;
    }
    /**
     * Add item to attention value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToAttention(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The attention property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->attention[] = $item;
        return $this;
    }
    /**
     * Get balance value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getBalance()
    {
        return $this->balance;
    }
    /**
     * This method is responsible for validating the values passed to the setBalance method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBalance method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBalanceForArrayConstraintsFromSetBalance(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBalanceItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBalanceItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBalanceItem) ? get_class($vendorSearchRowBasicBalanceItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBalanceItem), var_export($vendorSearchRowBasicBalanceItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The balance property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set balance value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $balance
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBalance(array $balance = array())
    {
        // validation for constraint: array
        if ('' !== ($balanceArrayErrorMessage = self::validateBalanceForArrayConstraintsFromSetBalance($balance))) {
            throw new \InvalidArgumentException($balanceArrayErrorMessage, __LINE__);
        }
        $this->balance = $balance;
        return $this;
    }
    /**
     * Add item to balance value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBalance(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The balance property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->balance[] = $item;
        return $this;
    }
    /**
     * Get billAddress value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBillAddress()
    {
        return $this->billAddress;
    }
    /**
     * This method is responsible for validating the values passed to the setBillAddress method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillAddress method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillAddressForArrayConstraintsFromSetBillAddress(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBillAddressItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBillAddressItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBillAddressItem) ? get_class($vendorSearchRowBasicBillAddressItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBillAddressItem), var_export($vendorSearchRowBasicBillAddressItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billAddress property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set billAddress value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $billAddress
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBillAddress(array $billAddress = array())
    {
        // validation for constraint: array
        if ('' !== ($billAddressArrayErrorMessage = self::validateBillAddressForArrayConstraintsFromSetBillAddress($billAddress))) {
            throw new \InvalidArgumentException($billAddressArrayErrorMessage, __LINE__);
        }
        $this->billAddress = $billAddress;
        return $this;
    }
    /**
     * Add item to billAddress value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBillAddress(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The billAddress property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->billAddress[] = $item;
        return $this;
    }
    /**
     * Get billAddress1 value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBillAddress1()
    {
        return $this->billAddress1;
    }
    /**
     * This method is responsible for validating the values passed to the setBillAddress1 method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillAddress1 method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillAddress1ForArrayConstraintsFromSetBillAddress1(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBillAddress1Item) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBillAddress1Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBillAddress1Item) ? get_class($vendorSearchRowBasicBillAddress1Item) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBillAddress1Item), var_export($vendorSearchRowBasicBillAddress1Item, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billAddress1 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set billAddress1 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $billAddress1
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBillAddress1(array $billAddress1 = array())
    {
        // validation for constraint: array
        if ('' !== ($billAddress1ArrayErrorMessage = self::validateBillAddress1ForArrayConstraintsFromSetBillAddress1($billAddress1))) {
            throw new \InvalidArgumentException($billAddress1ArrayErrorMessage, __LINE__);
        }
        $this->billAddress1 = $billAddress1;
        return $this;
    }
    /**
     * Add item to billAddress1 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBillAddress1(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The billAddress1 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->billAddress1[] = $item;
        return $this;
    }
    /**
     * Get billAddress2 value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBillAddress2()
    {
        return $this->billAddress2;
    }
    /**
     * This method is responsible for validating the values passed to the setBillAddress2 method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillAddress2 method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillAddress2ForArrayConstraintsFromSetBillAddress2(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBillAddress2Item) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBillAddress2Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBillAddress2Item) ? get_class($vendorSearchRowBasicBillAddress2Item) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBillAddress2Item), var_export($vendorSearchRowBasicBillAddress2Item, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billAddress2 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set billAddress2 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $billAddress2
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBillAddress2(array $billAddress2 = array())
    {
        // validation for constraint: array
        if ('' !== ($billAddress2ArrayErrorMessage = self::validateBillAddress2ForArrayConstraintsFromSetBillAddress2($billAddress2))) {
            throw new \InvalidArgumentException($billAddress2ArrayErrorMessage, __LINE__);
        }
        $this->billAddress2 = $billAddress2;
        return $this;
    }
    /**
     * Add item to billAddress2 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBillAddress2(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The billAddress2 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->billAddress2[] = $item;
        return $this;
    }
    /**
     * Get billAddress3 value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBillAddress3()
    {
        return $this->billAddress3;
    }
    /**
     * This method is responsible for validating the values passed to the setBillAddress3 method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillAddress3 method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillAddress3ForArrayConstraintsFromSetBillAddress3(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBillAddress3Item) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBillAddress3Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBillAddress3Item) ? get_class($vendorSearchRowBasicBillAddress3Item) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBillAddress3Item), var_export($vendorSearchRowBasicBillAddress3Item, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billAddress3 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set billAddress3 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $billAddress3
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBillAddress3(array $billAddress3 = array())
    {
        // validation for constraint: array
        if ('' !== ($billAddress3ArrayErrorMessage = self::validateBillAddress3ForArrayConstraintsFromSetBillAddress3($billAddress3))) {
            throw new \InvalidArgumentException($billAddress3ArrayErrorMessage, __LINE__);
        }
        $this->billAddress3 = $billAddress3;
        return $this;
    }
    /**
     * Add item to billAddress3 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBillAddress3(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The billAddress3 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->billAddress3[] = $item;
        return $this;
    }
    /**
     * Get billAddressee value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBillAddressee()
    {
        return $this->billAddressee;
    }
    /**
     * This method is responsible for validating the values passed to the setBillAddressee method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillAddressee method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillAddresseeForArrayConstraintsFromSetBillAddressee(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBillAddresseeItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBillAddresseeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBillAddresseeItem) ? get_class($vendorSearchRowBasicBillAddresseeItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBillAddresseeItem), var_export($vendorSearchRowBasicBillAddresseeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billAddressee property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set billAddressee value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $billAddressee
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBillAddressee(array $billAddressee = array())
    {
        // validation for constraint: array
        if ('' !== ($billAddresseeArrayErrorMessage = self::validateBillAddresseeForArrayConstraintsFromSetBillAddressee($billAddressee))) {
            throw new \InvalidArgumentException($billAddresseeArrayErrorMessage, __LINE__);
        }
        $this->billAddressee = $billAddressee;
        return $this;
    }
    /**
     * Add item to billAddressee value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBillAddressee(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The billAddressee property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->billAddressee[] = $item;
        return $this;
    }
    /**
     * Get billAttention value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBillAttention()
    {
        return $this->billAttention;
    }
    /**
     * This method is responsible for validating the values passed to the setBillAttention method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillAttention method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillAttentionForArrayConstraintsFromSetBillAttention(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBillAttentionItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBillAttentionItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBillAttentionItem) ? get_class($vendorSearchRowBasicBillAttentionItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBillAttentionItem), var_export($vendorSearchRowBasicBillAttentionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billAttention property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set billAttention value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $billAttention
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBillAttention(array $billAttention = array())
    {
        // validation for constraint: array
        if ('' !== ($billAttentionArrayErrorMessage = self::validateBillAttentionForArrayConstraintsFromSetBillAttention($billAttention))) {
            throw new \InvalidArgumentException($billAttentionArrayErrorMessage, __LINE__);
        }
        $this->billAttention = $billAttention;
        return $this;
    }
    /**
     * Add item to billAttention value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBillAttention(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The billAttention property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->billAttention[] = $item;
        return $this;
    }
    /**
     * Get billCity value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBillCity()
    {
        return $this->billCity;
    }
    /**
     * This method is responsible for validating the values passed to the setBillCity method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillCity method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillCityForArrayConstraintsFromSetBillCity(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBillCityItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBillCityItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBillCityItem) ? get_class($vendorSearchRowBasicBillCityItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBillCityItem), var_export($vendorSearchRowBasicBillCityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billCity property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set billCity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $billCity
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBillCity(array $billCity = array())
    {
        // validation for constraint: array
        if ('' !== ($billCityArrayErrorMessage = self::validateBillCityForArrayConstraintsFromSetBillCity($billCity))) {
            throw new \InvalidArgumentException($billCityArrayErrorMessage, __LINE__);
        }
        $this->billCity = $billCity;
        return $this;
    }
    /**
     * Add item to billCity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBillCity(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The billCity property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->billCity[] = $item;
        return $this;
    }
    /**
     * Get billCountry value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getBillCountry()
    {
        return $this->billCountry;
    }
    /**
     * This method is responsible for validating the values passed to the setBillCountry method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillCountry method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillCountryForArrayConstraintsFromSetBillCountry(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBillCountryItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBillCountryItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBillCountryItem) ? get_class($vendorSearchRowBasicBillCountryItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBillCountryItem), var_export($vendorSearchRowBasicBillCountryItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billCountry property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set billCountry value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $billCountry
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBillCountry(array $billCountry = array())
    {
        // validation for constraint: array
        if ('' !== ($billCountryArrayErrorMessage = self::validateBillCountryForArrayConstraintsFromSetBillCountry($billCountry))) {
            throw new \InvalidArgumentException($billCountryArrayErrorMessage, __LINE__);
        }
        $this->billCountry = $billCountry;
        return $this;
    }
    /**
     * Add item to billCountry value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBillCountry(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The billCountry property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->billCountry[] = $item;
        return $this;
    }
    /**
     * Get billCountryCode value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBillCountryCode()
    {
        return $this->billCountryCode;
    }
    /**
     * This method is responsible for validating the values passed to the setBillCountryCode method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillCountryCode method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillCountryCodeForArrayConstraintsFromSetBillCountryCode(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBillCountryCodeItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBillCountryCodeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBillCountryCodeItem) ? get_class($vendorSearchRowBasicBillCountryCodeItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBillCountryCodeItem), var_export($vendorSearchRowBasicBillCountryCodeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billCountryCode property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set billCountryCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $billCountryCode
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBillCountryCode(array $billCountryCode = array())
    {
        // validation for constraint: array
        if ('' !== ($billCountryCodeArrayErrorMessage = self::validateBillCountryCodeForArrayConstraintsFromSetBillCountryCode($billCountryCode))) {
            throw new \InvalidArgumentException($billCountryCodeArrayErrorMessage, __LINE__);
        }
        $this->billCountryCode = $billCountryCode;
        return $this;
    }
    /**
     * Add item to billCountryCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBillCountryCode(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The billCountryCode property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->billCountryCode[] = $item;
        return $this;
    }
    /**
     * Get billPhone value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBillPhone()
    {
        return $this->billPhone;
    }
    /**
     * This method is responsible for validating the values passed to the setBillPhone method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillPhone method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillPhoneForArrayConstraintsFromSetBillPhone(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBillPhoneItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBillPhoneItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBillPhoneItem) ? get_class($vendorSearchRowBasicBillPhoneItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBillPhoneItem), var_export($vendorSearchRowBasicBillPhoneItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billPhone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set billPhone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $billPhone
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBillPhone(array $billPhone = array())
    {
        // validation for constraint: array
        if ('' !== ($billPhoneArrayErrorMessage = self::validateBillPhoneForArrayConstraintsFromSetBillPhone($billPhone))) {
            throw new \InvalidArgumentException($billPhoneArrayErrorMessage, __LINE__);
        }
        $this->billPhone = $billPhone;
        return $this;
    }
    /**
     * Add item to billPhone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBillPhone(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The billPhone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->billPhone[] = $item;
        return $this;
    }
    /**
     * Get billState value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBillState()
    {
        return $this->billState;
    }
    /**
     * This method is responsible for validating the values passed to the setBillState method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillState method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillStateForArrayConstraintsFromSetBillState(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBillStateItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBillStateItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBillStateItem) ? get_class($vendorSearchRowBasicBillStateItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBillStateItem), var_export($vendorSearchRowBasicBillStateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billState property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set billState value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $billState
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBillState(array $billState = array())
    {
        // validation for constraint: array
        if ('' !== ($billStateArrayErrorMessage = self::validateBillStateForArrayConstraintsFromSetBillState($billState))) {
            throw new \InvalidArgumentException($billStateArrayErrorMessage, __LINE__);
        }
        $this->billState = $billState;
        return $this;
    }
    /**
     * Add item to billState value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBillState(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The billState property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->billState[] = $item;
        return $this;
    }
    /**
     * Get billZipCode value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBillZipCode()
    {
        return $this->billZipCode;
    }
    /**
     * This method is responsible for validating the values passed to the setBillZipCode method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillZipCode method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillZipCodeForArrayConstraintsFromSetBillZipCode(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicBillZipCodeItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicBillZipCodeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicBillZipCodeItem) ? get_class($vendorSearchRowBasicBillZipCodeItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicBillZipCodeItem), var_export($vendorSearchRowBasicBillZipCodeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billZipCode property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set billZipCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $billZipCode
     * @return \StructType\VendorSearchRowBasic
     */
    public function setBillZipCode(array $billZipCode = array())
    {
        // validation for constraint: array
        if ('' !== ($billZipCodeArrayErrorMessage = self::validateBillZipCodeForArrayConstraintsFromSetBillZipCode($billZipCode))) {
            throw new \InvalidArgumentException($billZipCodeArrayErrorMessage, __LINE__);
        }
        $this->billZipCode = $billZipCode;
        return $this;
    }
    /**
     * Add item to billZipCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToBillZipCode(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The billZipCode property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->billZipCode[] = $item;
        return $this;
    }
    /**
     * Get category value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getCategory()
    {
        return $this->category;
    }
    /**
     * This method is responsible for validating the values passed to the setCategory method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCategory method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCategoryForArrayConstraintsFromSetCategory(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicCategoryItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicCategoryItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicCategoryItem) ? get_class($vendorSearchRowBasicCategoryItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicCategoryItem), var_export($vendorSearchRowBasicCategoryItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The category property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set category value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $category
     * @return \StructType\VendorSearchRowBasic
     */
    public function setCategory(array $category = array())
    {
        // validation for constraint: array
        if ('' !== ($categoryArrayErrorMessage = self::validateCategoryForArrayConstraintsFromSetCategory($category))) {
            throw new \InvalidArgumentException($categoryArrayErrorMessage, __LINE__);
        }
        $this->category = $category;
        return $this;
    }
    /**
     * Add item to category value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToCategory(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The category property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->category[] = $item;
        return $this;
    }
    /**
     * Get city value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getCity()
    {
        return $this->city;
    }
    /**
     * This method is responsible for validating the values passed to the setCity method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCity method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCityForArrayConstraintsFromSetCity(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicCityItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicCityItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicCityItem) ? get_class($vendorSearchRowBasicCityItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicCityItem), var_export($vendorSearchRowBasicCityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The city property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set city value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $city
     * @return \StructType\VendorSearchRowBasic
     */
    public function setCity(array $city = array())
    {
        // validation for constraint: array
        if ('' !== ($cityArrayErrorMessage = self::validateCityForArrayConstraintsFromSetCity($city))) {
            throw new \InvalidArgumentException($cityArrayErrorMessage, __LINE__);
        }
        $this->city = $city;
        return $this;
    }
    /**
     * Add item to city value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToCity(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The city property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->city[] = $item;
        return $this;
    }
    /**
     * Get comments value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getComments()
    {
        return $this->comments;
    }
    /**
     * This method is responsible for validating the values passed to the setComments method
     * This method is willingly generated in order to preserve the one-line inline validation within the setComments method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCommentsForArrayConstraintsFromSetComments(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicCommentsItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicCommentsItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicCommentsItem) ? get_class($vendorSearchRowBasicCommentsItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicCommentsItem), var_export($vendorSearchRowBasicCommentsItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The comments property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set comments value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $comments
     * @return \StructType\VendorSearchRowBasic
     */
    public function setComments(array $comments = array())
    {
        // validation for constraint: array
        if ('' !== ($commentsArrayErrorMessage = self::validateCommentsForArrayConstraintsFromSetComments($comments))) {
            throw new \InvalidArgumentException($commentsArrayErrorMessage, __LINE__);
        }
        $this->comments = $comments;
        return $this;
    }
    /**
     * Add item to comments value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToComments(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The comments property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->comments[] = $item;
        return $this;
    }
    /**
     * Get companyName value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getCompanyName()
    {
        return $this->companyName;
    }
    /**
     * This method is responsible for validating the values passed to the setCompanyName method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCompanyName method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCompanyNameForArrayConstraintsFromSetCompanyName(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicCompanyNameItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicCompanyNameItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicCompanyNameItem) ? get_class($vendorSearchRowBasicCompanyNameItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicCompanyNameItem), var_export($vendorSearchRowBasicCompanyNameItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The companyName property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set companyName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $companyName
     * @return \StructType\VendorSearchRowBasic
     */
    public function setCompanyName(array $companyName = array())
    {
        // validation for constraint: array
        if ('' !== ($companyNameArrayErrorMessage = self::validateCompanyNameForArrayConstraintsFromSetCompanyName($companyName))) {
            throw new \InvalidArgumentException($companyNameArrayErrorMessage, __LINE__);
        }
        $this->companyName = $companyName;
        return $this;
    }
    /**
     * Add item to companyName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToCompanyName(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The companyName property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->companyName[] = $item;
        return $this;
    }
    /**
     * Get contact value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getContact()
    {
        return $this->contact;
    }
    /**
     * This method is responsible for validating the values passed to the setContact method
     * This method is willingly generated in order to preserve the one-line inline validation within the setContact method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateContactForArrayConstraintsFromSetContact(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicContactItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicContactItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicContactItem) ? get_class($vendorSearchRowBasicContactItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicContactItem), var_export($vendorSearchRowBasicContactItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The contact property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set contact value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $contact
     * @return \StructType\VendorSearchRowBasic
     */
    public function setContact(array $contact = array())
    {
        // validation for constraint: array
        if ('' !== ($contactArrayErrorMessage = self::validateContactForArrayConstraintsFromSetContact($contact))) {
            throw new \InvalidArgumentException($contactArrayErrorMessage, __LINE__);
        }
        $this->contact = $contact;
        return $this;
    }
    /**
     * Add item to contact value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToContact(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The contact property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->contact[] = $item;
        return $this;
    }
    /**
     * Get country value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getCountry()
    {
        return $this->country;
    }
    /**
     * This method is responsible for validating the values passed to the setCountry method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCountry method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCountryForArrayConstraintsFromSetCountry(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicCountryItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicCountryItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicCountryItem) ? get_class($vendorSearchRowBasicCountryItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicCountryItem), var_export($vendorSearchRowBasicCountryItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The country property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set country value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $country
     * @return \StructType\VendorSearchRowBasic
     */
    public function setCountry(array $country = array())
    {
        // validation for constraint: array
        if ('' !== ($countryArrayErrorMessage = self::validateCountryForArrayConstraintsFromSetCountry($country))) {
            throw new \InvalidArgumentException($countryArrayErrorMessage, __LINE__);
        }
        $this->country = $country;
        return $this;
    }
    /**
     * Add item to country value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToCountry(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The country property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->country[] = $item;
        return $this;
    }
    /**
     * Get countryCode value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getCountryCode()
    {
        return $this->countryCode;
    }
    /**
     * This method is responsible for validating the values passed to the setCountryCode method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCountryCode method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCountryCodeForArrayConstraintsFromSetCountryCode(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicCountryCodeItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicCountryCodeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicCountryCodeItem) ? get_class($vendorSearchRowBasicCountryCodeItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicCountryCodeItem), var_export($vendorSearchRowBasicCountryCodeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The countryCode property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set countryCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $countryCode
     * @return \StructType\VendorSearchRowBasic
     */
    public function setCountryCode(array $countryCode = array())
    {
        // validation for constraint: array
        if ('' !== ($countryCodeArrayErrorMessage = self::validateCountryCodeForArrayConstraintsFromSetCountryCode($countryCode))) {
            throw new \InvalidArgumentException($countryCodeArrayErrorMessage, __LINE__);
        }
        $this->countryCode = $countryCode;
        return $this;
    }
    /**
     * Add item to countryCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToCountryCode(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The countryCode property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->countryCode[] = $item;
        return $this;
    }
    /**
     * Get creditLimit value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getCreditLimit()
    {
        return $this->creditLimit;
    }
    /**
     * This method is responsible for validating the values passed to the setCreditLimit method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCreditLimit method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCreditLimitForArrayConstraintsFromSetCreditLimit(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicCreditLimitItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicCreditLimitItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicCreditLimitItem) ? get_class($vendorSearchRowBasicCreditLimitItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicCreditLimitItem), var_export($vendorSearchRowBasicCreditLimitItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The creditLimit property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set creditLimit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $creditLimit
     * @return \StructType\VendorSearchRowBasic
     */
    public function setCreditLimit(array $creditLimit = array())
    {
        // validation for constraint: array
        if ('' !== ($creditLimitArrayErrorMessage = self::validateCreditLimitForArrayConstraintsFromSetCreditLimit($creditLimit))) {
            throw new \InvalidArgumentException($creditLimitArrayErrorMessage, __LINE__);
        }
        $this->creditLimit = $creditLimit;
        return $this;
    }
    /**
     * Add item to creditLimit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToCreditLimit(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The creditLimit property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->creditLimit[] = $item;
        return $this;
    }
    /**
     * Get currency value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getCurrency()
    {
        return $this->currency;
    }
    /**
     * This method is responsible for validating the values passed to the setCurrency method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCurrency method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCurrencyForArrayConstraintsFromSetCurrency(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicCurrencyItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicCurrencyItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicCurrencyItem) ? get_class($vendorSearchRowBasicCurrencyItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicCurrencyItem), var_export($vendorSearchRowBasicCurrencyItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The currency property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set currency value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $currency
     * @return \StructType\VendorSearchRowBasic
     */
    public function setCurrency(array $currency = array())
    {
        // validation for constraint: array
        if ('' !== ($currencyArrayErrorMessage = self::validateCurrencyForArrayConstraintsFromSetCurrency($currency))) {
            throw new \InvalidArgumentException($currencyArrayErrorMessage, __LINE__);
        }
        $this->currency = $currency;
        return $this;
    }
    /**
     * Add item to currency value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToCurrency(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The currency property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->currency[] = $item;
        return $this;
    }
    /**
     * Get currentExchangeRate value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getCurrentExchangeRate()
    {
        return $this->currentExchangeRate;
    }
    /**
     * This method is responsible for validating the values passed to the setCurrentExchangeRate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCurrentExchangeRate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCurrentExchangeRateForArrayConstraintsFromSetCurrentExchangeRate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicCurrentExchangeRateItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicCurrentExchangeRateItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicCurrentExchangeRateItem) ? get_class($vendorSearchRowBasicCurrentExchangeRateItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicCurrentExchangeRateItem), var_export($vendorSearchRowBasicCurrentExchangeRateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The currentExchangeRate property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set currentExchangeRate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $currentExchangeRate
     * @return \StructType\VendorSearchRowBasic
     */
    public function setCurrentExchangeRate(array $currentExchangeRate = array())
    {
        // validation for constraint: array
        if ('' !== ($currentExchangeRateArrayErrorMessage = self::validateCurrentExchangeRateForArrayConstraintsFromSetCurrentExchangeRate($currentExchangeRate))) {
            throw new \InvalidArgumentException($currentExchangeRateArrayErrorMessage, __LINE__);
        }
        $this->currentExchangeRate = $currentExchangeRate;
        return $this;
    }
    /**
     * Add item to currentExchangeRate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToCurrentExchangeRate(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The currentExchangeRate property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->currentExchangeRate[] = $item;
        return $this;
    }
    /**
     * Get dateCreated value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getDateCreated()
    {
        return $this->dateCreated;
    }
    /**
     * This method is responsible for validating the values passed to the setDateCreated method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDateCreated method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDateCreatedForArrayConstraintsFromSetDateCreated(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicDateCreatedItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicDateCreatedItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($vendorSearchRowBasicDateCreatedItem) ? get_class($vendorSearchRowBasicDateCreatedItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicDateCreatedItem), var_export($vendorSearchRowBasicDateCreatedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The dateCreated property can only contain items of type \StructType\SearchColumnDateField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set dateCreated value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $dateCreated
     * @return \StructType\VendorSearchRowBasic
     */
    public function setDateCreated(array $dateCreated = array())
    {
        // validation for constraint: array
        if ('' !== ($dateCreatedArrayErrorMessage = self::validateDateCreatedForArrayConstraintsFromSetDateCreated($dateCreated))) {
            throw new \InvalidArgumentException($dateCreatedArrayErrorMessage, __LINE__);
        }
        $this->dateCreated = $dateCreated;
        return $this;
    }
    /**
     * Add item to dateCreated value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToDateCreated(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The dateCreated property can only contain items of type \StructType\SearchColumnDateField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->dateCreated[] = $item;
        return $this;
    }
    /**
     * Get defaultTaxReg value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getDefaultTaxReg()
    {
        return $this->defaultTaxReg;
    }
    /**
     * This method is responsible for validating the values passed to the setDefaultTaxReg method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDefaultTaxReg method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDefaultTaxRegForArrayConstraintsFromSetDefaultTaxReg(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicDefaultTaxRegItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicDefaultTaxRegItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicDefaultTaxRegItem) ? get_class($vendorSearchRowBasicDefaultTaxRegItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicDefaultTaxRegItem), var_export($vendorSearchRowBasicDefaultTaxRegItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The defaultTaxReg property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set defaultTaxReg value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $defaultTaxReg
     * @return \StructType\VendorSearchRowBasic
     */
    public function setDefaultTaxReg(array $defaultTaxReg = array())
    {
        // validation for constraint: array
        if ('' !== ($defaultTaxRegArrayErrorMessage = self::validateDefaultTaxRegForArrayConstraintsFromSetDefaultTaxReg($defaultTaxReg))) {
            throw new \InvalidArgumentException($defaultTaxRegArrayErrorMessage, __LINE__);
        }
        $this->defaultTaxReg = $defaultTaxReg;
        return $this;
    }
    /**
     * Add item to defaultTaxReg value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToDefaultTaxReg(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The defaultTaxReg property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->defaultTaxReg[] = $item;
        return $this;
    }
    /**
     * Get eligibleForCommission value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getEligibleForCommission()
    {
        return $this->eligibleForCommission;
    }
    /**
     * This method is responsible for validating the values passed to the setEligibleForCommission method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEligibleForCommission method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEligibleForCommissionForArrayConstraintsFromSetEligibleForCommission(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicEligibleForCommissionItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicEligibleForCommissionItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicEligibleForCommissionItem) ? get_class($vendorSearchRowBasicEligibleForCommissionItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicEligibleForCommissionItem), var_export($vendorSearchRowBasicEligibleForCommissionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The eligibleForCommission property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set eligibleForCommission value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $eligibleForCommission
     * @return \StructType\VendorSearchRowBasic
     */
    public function setEligibleForCommission(array $eligibleForCommission = array())
    {
        // validation for constraint: array
        if ('' !== ($eligibleForCommissionArrayErrorMessage = self::validateEligibleForCommissionForArrayConstraintsFromSetEligibleForCommission($eligibleForCommission))) {
            throw new \InvalidArgumentException($eligibleForCommissionArrayErrorMessage, __LINE__);
        }
        $this->eligibleForCommission = $eligibleForCommission;
        return $this;
    }
    /**
     * Add item to eligibleForCommission value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToEligibleForCommission(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The eligibleForCommission property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->eligibleForCommission[] = $item;
        return $this;
    }
    /**
     * Get email value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getEmail()
    {
        return $this->email;
    }
    /**
     * This method is responsible for validating the values passed to the setEmail method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEmail method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEmailForArrayConstraintsFromSetEmail(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicEmailItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicEmailItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicEmailItem) ? get_class($vendorSearchRowBasicEmailItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicEmailItem), var_export($vendorSearchRowBasicEmailItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The email property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set email value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $email
     * @return \StructType\VendorSearchRowBasic
     */
    public function setEmail(array $email = array())
    {
        // validation for constraint: array
        if ('' !== ($emailArrayErrorMessage = self::validateEmailForArrayConstraintsFromSetEmail($email))) {
            throw new \InvalidArgumentException($emailArrayErrorMessage, __LINE__);
        }
        $this->email = $email;
        return $this;
    }
    /**
     * Add item to email value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToEmail(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The email property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->email[] = $item;
        return $this;
    }
    /**
     * Get emailPreference value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getEmailPreference()
    {
        return $this->emailPreference;
    }
    /**
     * This method is responsible for validating the values passed to the setEmailPreference method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEmailPreference method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEmailPreferenceForArrayConstraintsFromSetEmailPreference(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicEmailPreferenceItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicEmailPreferenceItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicEmailPreferenceItem) ? get_class($vendorSearchRowBasicEmailPreferenceItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicEmailPreferenceItem), var_export($vendorSearchRowBasicEmailPreferenceItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The emailPreference property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set emailPreference value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $emailPreference
     * @return \StructType\VendorSearchRowBasic
     */
    public function setEmailPreference(array $emailPreference = array())
    {
        // validation for constraint: array
        if ('' !== ($emailPreferenceArrayErrorMessage = self::validateEmailPreferenceForArrayConstraintsFromSetEmailPreference($emailPreference))) {
            throw new \InvalidArgumentException($emailPreferenceArrayErrorMessage, __LINE__);
        }
        $this->emailPreference = $emailPreference;
        return $this;
    }
    /**
     * Add item to emailPreference value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToEmailPreference(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The emailPreference property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->emailPreference[] = $item;
        return $this;
    }
    /**
     * Get emailTransactions value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getEmailTransactions()
    {
        return $this->emailTransactions;
    }
    /**
     * This method is responsible for validating the values passed to the setEmailTransactions method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEmailTransactions method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEmailTransactionsForArrayConstraintsFromSetEmailTransactions(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicEmailTransactionsItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicEmailTransactionsItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicEmailTransactionsItem) ? get_class($vendorSearchRowBasicEmailTransactionsItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicEmailTransactionsItem), var_export($vendorSearchRowBasicEmailTransactionsItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The emailTransactions property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set emailTransactions value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $emailTransactions
     * @return \StructType\VendorSearchRowBasic
     */
    public function setEmailTransactions(array $emailTransactions = array())
    {
        // validation for constraint: array
        if ('' !== ($emailTransactionsArrayErrorMessage = self::validateEmailTransactionsForArrayConstraintsFromSetEmailTransactions($emailTransactions))) {
            throw new \InvalidArgumentException($emailTransactionsArrayErrorMessage, __LINE__);
        }
        $this->emailTransactions = $emailTransactions;
        return $this;
    }
    /**
     * Add item to emailTransactions value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToEmailTransactions(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The emailTransactions property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->emailTransactions[] = $item;
        return $this;
    }
    /**
     * Get entityId value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getEntityId()
    {
        return $this->entityId;
    }
    /**
     * This method is responsible for validating the values passed to the setEntityId method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEntityId method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEntityIdForArrayConstraintsFromSetEntityId(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicEntityIdItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicEntityIdItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicEntityIdItem) ? get_class($vendorSearchRowBasicEntityIdItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicEntityIdItem), var_export($vendorSearchRowBasicEntityIdItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The entityId property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set entityId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $entityId
     * @return \StructType\VendorSearchRowBasic
     */
    public function setEntityId(array $entityId = array())
    {
        // validation for constraint: array
        if ('' !== ($entityIdArrayErrorMessage = self::validateEntityIdForArrayConstraintsFromSetEntityId($entityId))) {
            throw new \InvalidArgumentException($entityIdArrayErrorMessage, __LINE__);
        }
        $this->entityId = $entityId;
        return $this;
    }
    /**
     * Add item to entityId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToEntityId(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The entityId property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->entityId[] = $item;
        return $this;
    }
    /**
     * Get entityNumber value
     * @return \StructType\SearchColumnLongField[]|null
     */
    public function getEntityNumber()
    {
        return $this->entityNumber;
    }
    /**
     * This method is responsible for validating the values passed to the setEntityNumber method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEntityNumber method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEntityNumberForArrayConstraintsFromSetEntityNumber(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicEntityNumberItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicEntityNumberItem instanceof \StructType\SearchColumnLongField) {
                $invalidValues[] = is_object($vendorSearchRowBasicEntityNumberItem) ? get_class($vendorSearchRowBasicEntityNumberItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicEntityNumberItem), var_export($vendorSearchRowBasicEntityNumberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The entityNumber property can only contain items of type \StructType\SearchColumnLongField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set entityNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField[] $entityNumber
     * @return \StructType\VendorSearchRowBasic
     */
    public function setEntityNumber(array $entityNumber = array())
    {
        // validation for constraint: array
        if ('' !== ($entityNumberArrayErrorMessage = self::validateEntityNumberForArrayConstraintsFromSetEntityNumber($entityNumber))) {
            throw new \InvalidArgumentException($entityNumberArrayErrorMessage, __LINE__);
        }
        $this->entityNumber = $entityNumber;
        return $this;
    }
    /**
     * Add item to entityNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToEntityNumber(\StructType\SearchColumnLongField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnLongField) {
            throw new \InvalidArgumentException(sprintf('The entityNumber property can only contain items of type \StructType\SearchColumnLongField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->entityNumber[] = $item;
        return $this;
    }
    /**
     * Get expenseAccount value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getExpenseAccount()
    {
        return $this->expenseAccount;
    }
    /**
     * This method is responsible for validating the values passed to the setExpenseAccount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setExpenseAccount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateExpenseAccountForArrayConstraintsFromSetExpenseAccount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicExpenseAccountItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicExpenseAccountItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicExpenseAccountItem) ? get_class($vendorSearchRowBasicExpenseAccountItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicExpenseAccountItem), var_export($vendorSearchRowBasicExpenseAccountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The expenseAccount property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set expenseAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $expenseAccount
     * @return \StructType\VendorSearchRowBasic
     */
    public function setExpenseAccount(array $expenseAccount = array())
    {
        // validation for constraint: array
        if ('' !== ($expenseAccountArrayErrorMessage = self::validateExpenseAccountForArrayConstraintsFromSetExpenseAccount($expenseAccount))) {
            throw new \InvalidArgumentException($expenseAccountArrayErrorMessage, __LINE__);
        }
        $this->expenseAccount = $expenseAccount;
        return $this;
    }
    /**
     * Add item to expenseAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToExpenseAccount(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The expenseAccount property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->expenseAccount[] = $item;
        return $this;
    }
    /**
     * Get externalId value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getExternalId()
    {
        return $this->externalId;
    }
    /**
     * This method is responsible for validating the values passed to the setExternalId method
     * This method is willingly generated in order to preserve the one-line inline validation within the setExternalId method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateExternalIdForArrayConstraintsFromSetExternalId(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicExternalIdItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicExternalIdItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicExternalIdItem) ? get_class($vendorSearchRowBasicExternalIdItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicExternalIdItem), var_export($vendorSearchRowBasicExternalIdItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The externalId property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set externalId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $externalId
     * @return \StructType\VendorSearchRowBasic
     */
    public function setExternalId(array $externalId = array())
    {
        // validation for constraint: array
        if ('' !== ($externalIdArrayErrorMessage = self::validateExternalIdForArrayConstraintsFromSetExternalId($externalId))) {
            throw new \InvalidArgumentException($externalIdArrayErrorMessage, __LINE__);
        }
        $this->externalId = $externalId;
        return $this;
    }
    /**
     * Add item to externalId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToExternalId(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The externalId property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->externalId[] = $item;
        return $this;
    }
    /**
     * Get fax value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getFax()
    {
        return $this->fax;
    }
    /**
     * This method is responsible for validating the values passed to the setFax method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFax method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFaxForArrayConstraintsFromSetFax(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicFaxItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicFaxItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicFaxItem) ? get_class($vendorSearchRowBasicFaxItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicFaxItem), var_export($vendorSearchRowBasicFaxItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fax property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set fax value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $fax
     * @return \StructType\VendorSearchRowBasic
     */
    public function setFax(array $fax = array())
    {
        // validation for constraint: array
        if ('' !== ($faxArrayErrorMessage = self::validateFaxForArrayConstraintsFromSetFax($fax))) {
            throw new \InvalidArgumentException($faxArrayErrorMessage, __LINE__);
        }
        $this->fax = $fax;
        return $this;
    }
    /**
     * Add item to fax value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToFax(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The fax property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->fax[] = $item;
        return $this;
    }
    /**
     * Get faxTransactions value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getFaxTransactions()
    {
        return $this->faxTransactions;
    }
    /**
     * This method is responsible for validating the values passed to the setFaxTransactions method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFaxTransactions method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFaxTransactionsForArrayConstraintsFromSetFaxTransactions(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicFaxTransactionsItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicFaxTransactionsItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicFaxTransactionsItem) ? get_class($vendorSearchRowBasicFaxTransactionsItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicFaxTransactionsItem), var_export($vendorSearchRowBasicFaxTransactionsItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The faxTransactions property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set faxTransactions value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $faxTransactions
     * @return \StructType\VendorSearchRowBasic
     */
    public function setFaxTransactions(array $faxTransactions = array())
    {
        // validation for constraint: array
        if ('' !== ($faxTransactionsArrayErrorMessage = self::validateFaxTransactionsForArrayConstraintsFromSetFaxTransactions($faxTransactions))) {
            throw new \InvalidArgumentException($faxTransactionsArrayErrorMessage, __LINE__);
        }
        $this->faxTransactions = $faxTransactions;
        return $this;
    }
    /**
     * Add item to faxTransactions value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToFaxTransactions(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The faxTransactions property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->faxTransactions[] = $item;
        return $this;
    }
    /**
     * Get firstName value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getFirstName()
    {
        return $this->firstName;
    }
    /**
     * This method is responsible for validating the values passed to the setFirstName method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFirstName method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFirstNameForArrayConstraintsFromSetFirstName(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicFirstNameItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicFirstNameItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicFirstNameItem) ? get_class($vendorSearchRowBasicFirstNameItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicFirstNameItem), var_export($vendorSearchRowBasicFirstNameItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The firstName property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set firstName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $firstName
     * @return \StructType\VendorSearchRowBasic
     */
    public function setFirstName(array $firstName = array())
    {
        // validation for constraint: array
        if ('' !== ($firstNameArrayErrorMessage = self::validateFirstNameForArrayConstraintsFromSetFirstName($firstName))) {
            throw new \InvalidArgumentException($firstNameArrayErrorMessage, __LINE__);
        }
        $this->firstName = $firstName;
        return $this;
    }
    /**
     * Add item to firstName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToFirstName(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The firstName property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->firstName[] = $item;
        return $this;
    }
    /**
     * Get fxBalance value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getFxBalance()
    {
        return $this->fxBalance;
    }
    /**
     * This method is responsible for validating the values passed to the setFxBalance method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFxBalance method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFxBalanceForArrayConstraintsFromSetFxBalance(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicFxBalanceItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicFxBalanceItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicFxBalanceItem) ? get_class($vendorSearchRowBasicFxBalanceItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicFxBalanceItem), var_export($vendorSearchRowBasicFxBalanceItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fxBalance property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set fxBalance value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $fxBalance
     * @return \StructType\VendorSearchRowBasic
     */
    public function setFxBalance(array $fxBalance = array())
    {
        // validation for constraint: array
        if ('' !== ($fxBalanceArrayErrorMessage = self::validateFxBalanceForArrayConstraintsFromSetFxBalance($fxBalance))) {
            throw new \InvalidArgumentException($fxBalanceArrayErrorMessage, __LINE__);
        }
        $this->fxBalance = $fxBalance;
        return $this;
    }
    /**
     * Add item to fxBalance value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToFxBalance(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The fxBalance property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->fxBalance[] = $item;
        return $this;
    }
    /**
     * Get fxUnbilledOrders value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getFxUnbilledOrders()
    {
        return $this->fxUnbilledOrders;
    }
    /**
     * This method is responsible for validating the values passed to the setFxUnbilledOrders method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFxUnbilledOrders method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFxUnbilledOrdersForArrayConstraintsFromSetFxUnbilledOrders(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicFxUnbilledOrdersItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicFxUnbilledOrdersItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicFxUnbilledOrdersItem) ? get_class($vendorSearchRowBasicFxUnbilledOrdersItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicFxUnbilledOrdersItem), var_export($vendorSearchRowBasicFxUnbilledOrdersItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fxUnbilledOrders property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set fxUnbilledOrders value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $fxUnbilledOrders
     * @return \StructType\VendorSearchRowBasic
     */
    public function setFxUnbilledOrders(array $fxUnbilledOrders = array())
    {
        // validation for constraint: array
        if ('' !== ($fxUnbilledOrdersArrayErrorMessage = self::validateFxUnbilledOrdersForArrayConstraintsFromSetFxUnbilledOrders($fxUnbilledOrders))) {
            throw new \InvalidArgumentException($fxUnbilledOrdersArrayErrorMessage, __LINE__);
        }
        $this->fxUnbilledOrders = $fxUnbilledOrders;
        return $this;
    }
    /**
     * Add item to fxUnbilledOrders value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToFxUnbilledOrders(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The fxUnbilledOrders property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->fxUnbilledOrders[] = $item;
        return $this;
    }
    /**
     * Get giveAccess value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getGiveAccess()
    {
        return $this->giveAccess;
    }
    /**
     * This method is responsible for validating the values passed to the setGiveAccess method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGiveAccess method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGiveAccessForArrayConstraintsFromSetGiveAccess(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicGiveAccessItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicGiveAccessItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicGiveAccessItem) ? get_class($vendorSearchRowBasicGiveAccessItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicGiveAccessItem), var_export($vendorSearchRowBasicGiveAccessItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The giveAccess property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set giveAccess value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $giveAccess
     * @return \StructType\VendorSearchRowBasic
     */
    public function setGiveAccess(array $giveAccess = array())
    {
        // validation for constraint: array
        if ('' !== ($giveAccessArrayErrorMessage = self::validateGiveAccessForArrayConstraintsFromSetGiveAccess($giveAccess))) {
            throw new \InvalidArgumentException($giveAccessArrayErrorMessage, __LINE__);
        }
        $this->giveAccess = $giveAccess;
        return $this;
    }
    /**
     * Add item to giveAccess value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToGiveAccess(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The giveAccess property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->giveAccess[] = $item;
        return $this;
    }
    /**
     * Get globalSubscriptionStatus value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getGlobalSubscriptionStatus()
    {
        return $this->globalSubscriptionStatus;
    }
    /**
     * This method is responsible for validating the values passed to the setGlobalSubscriptionStatus method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGlobalSubscriptionStatus method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGlobalSubscriptionStatusForArrayConstraintsFromSetGlobalSubscriptionStatus(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicGlobalSubscriptionStatusItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicGlobalSubscriptionStatusItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicGlobalSubscriptionStatusItem) ? get_class($vendorSearchRowBasicGlobalSubscriptionStatusItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicGlobalSubscriptionStatusItem), var_export($vendorSearchRowBasicGlobalSubscriptionStatusItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The globalSubscriptionStatus property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set globalSubscriptionStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $globalSubscriptionStatus
     * @return \StructType\VendorSearchRowBasic
     */
    public function setGlobalSubscriptionStatus(array $globalSubscriptionStatus = array())
    {
        // validation for constraint: array
        if ('' !== ($globalSubscriptionStatusArrayErrorMessage = self::validateGlobalSubscriptionStatusForArrayConstraintsFromSetGlobalSubscriptionStatus($globalSubscriptionStatus))) {
            throw new \InvalidArgumentException($globalSubscriptionStatusArrayErrorMessage, __LINE__);
        }
        $this->globalSubscriptionStatus = $globalSubscriptionStatus;
        return $this;
    }
    /**
     * Add item to globalSubscriptionStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToGlobalSubscriptionStatus(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The globalSubscriptionStatus property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->globalSubscriptionStatus[] = $item;
        return $this;
    }
    /**
     * Get hasDuplicates value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getHasDuplicates()
    {
        return $this->hasDuplicates;
    }
    /**
     * This method is responsible for validating the values passed to the setHasDuplicates method
     * This method is willingly generated in order to preserve the one-line inline validation within the setHasDuplicates method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateHasDuplicatesForArrayConstraintsFromSetHasDuplicates(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicHasDuplicatesItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicHasDuplicatesItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicHasDuplicatesItem) ? get_class($vendorSearchRowBasicHasDuplicatesItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicHasDuplicatesItem), var_export($vendorSearchRowBasicHasDuplicatesItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The hasDuplicates property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set hasDuplicates value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $hasDuplicates
     * @return \StructType\VendorSearchRowBasic
     */
    public function setHasDuplicates(array $hasDuplicates = array())
    {
        // validation for constraint: array
        if ('' !== ($hasDuplicatesArrayErrorMessage = self::validateHasDuplicatesForArrayConstraintsFromSetHasDuplicates($hasDuplicates))) {
            throw new \InvalidArgumentException($hasDuplicatesArrayErrorMessage, __LINE__);
        }
        $this->hasDuplicates = $hasDuplicates;
        return $this;
    }
    /**
     * Add item to hasDuplicates value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToHasDuplicates(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The hasDuplicates property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->hasDuplicates[] = $item;
        return $this;
    }
    /**
     * Get homePhone value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getHomePhone()
    {
        return $this->homePhone;
    }
    /**
     * This method is responsible for validating the values passed to the setHomePhone method
     * This method is willingly generated in order to preserve the one-line inline validation within the setHomePhone method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateHomePhoneForArrayConstraintsFromSetHomePhone(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicHomePhoneItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicHomePhoneItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicHomePhoneItem) ? get_class($vendorSearchRowBasicHomePhoneItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicHomePhoneItem), var_export($vendorSearchRowBasicHomePhoneItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The homePhone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set homePhone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $homePhone
     * @return \StructType\VendorSearchRowBasic
     */
    public function setHomePhone(array $homePhone = array())
    {
        // validation for constraint: array
        if ('' !== ($homePhoneArrayErrorMessage = self::validateHomePhoneForArrayConstraintsFromSetHomePhone($homePhone))) {
            throw new \InvalidArgumentException($homePhoneArrayErrorMessage, __LINE__);
        }
        $this->homePhone = $homePhone;
        return $this;
    }
    /**
     * Add item to homePhone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToHomePhone(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The homePhone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->homePhone[] = $item;
        return $this;
    }
    /**
     * Get image value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getImage()
    {
        return $this->image;
    }
    /**
     * This method is responsible for validating the values passed to the setImage method
     * This method is willingly generated in order to preserve the one-line inline validation within the setImage method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateImageForArrayConstraintsFromSetImage(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicImageItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicImageItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicImageItem) ? get_class($vendorSearchRowBasicImageItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicImageItem), var_export($vendorSearchRowBasicImageItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The image property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set image value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $image
     * @return \StructType\VendorSearchRowBasic
     */
    public function setImage(array $image = array())
    {
        // validation for constraint: array
        if ('' !== ($imageArrayErrorMessage = self::validateImageForArrayConstraintsFromSetImage($image))) {
            throw new \InvalidArgumentException($imageArrayErrorMessage, __LINE__);
        }
        $this->image = $image;
        return $this;
    }
    /**
     * Add item to image value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToImage(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The image property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->image[] = $item;
        return $this;
    }
    /**
     * Get incoterm value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getIncoterm()
    {
        return $this->incoterm;
    }
    /**
     * This method is responsible for validating the values passed to the setIncoterm method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIncoterm method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIncotermForArrayConstraintsFromSetIncoterm(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicIncotermItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicIncotermItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicIncotermItem) ? get_class($vendorSearchRowBasicIncotermItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicIncotermItem), var_export($vendorSearchRowBasicIncotermItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The incoterm property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set incoterm value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $incoterm
     * @return \StructType\VendorSearchRowBasic
     */
    public function setIncoterm(array $incoterm = array())
    {
        // validation for constraint: array
        if ('' !== ($incotermArrayErrorMessage = self::validateIncotermForArrayConstraintsFromSetIncoterm($incoterm))) {
            throw new \InvalidArgumentException($incotermArrayErrorMessage, __LINE__);
        }
        $this->incoterm = $incoterm;
        return $this;
    }
    /**
     * Add item to incoterm value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToIncoterm(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The incoterm property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->incoterm[] = $item;
        return $this;
    }
    /**
     * Get internalId value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getInternalId()
    {
        return $this->internalId;
    }
    /**
     * This method is responsible for validating the values passed to the setInternalId method
     * This method is willingly generated in order to preserve the one-line inline validation within the setInternalId method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateInternalIdForArrayConstraintsFromSetInternalId(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicInternalIdItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicInternalIdItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicInternalIdItem) ? get_class($vendorSearchRowBasicInternalIdItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicInternalIdItem), var_export($vendorSearchRowBasicInternalIdItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The internalId property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set internalId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $internalId
     * @return \StructType\VendorSearchRowBasic
     */
    public function setInternalId(array $internalId = array())
    {
        // validation for constraint: array
        if ('' !== ($internalIdArrayErrorMessage = self::validateInternalIdForArrayConstraintsFromSetInternalId($internalId))) {
            throw new \InvalidArgumentException($internalIdArrayErrorMessage, __LINE__);
        }
        $this->internalId = $internalId;
        return $this;
    }
    /**
     * Add item to internalId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToInternalId(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The internalId property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->internalId[] = $item;
        return $this;
    }
    /**
     * Get is1099Eligible value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIs1099Eligible()
    {
        return $this->is1099Eligible;
    }
    /**
     * This method is responsible for validating the values passed to the setIs1099Eligible method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIs1099Eligible method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIs1099EligibleForArrayConstraintsFromSetIs1099Eligible(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicIs1099EligibleItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicIs1099EligibleItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicIs1099EligibleItem) ? get_class($vendorSearchRowBasicIs1099EligibleItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicIs1099EligibleItem), var_export($vendorSearchRowBasicIs1099EligibleItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The is1099Eligible property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set is1099Eligible value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $is1099Eligible
     * @return \StructType\VendorSearchRowBasic
     */
    public function setIs1099Eligible(array $is1099Eligible = array())
    {
        // validation for constraint: array
        if ('' !== ($is1099EligibleArrayErrorMessage = self::validateIs1099EligibleForArrayConstraintsFromSetIs1099Eligible($is1099Eligible))) {
            throw new \InvalidArgumentException($is1099EligibleArrayErrorMessage, __LINE__);
        }
        $this->is1099Eligible = $is1099Eligible;
        return $this;
    }
    /**
     * Add item to is1099Eligible value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToIs1099Eligible(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The is1099Eligible property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->is1099Eligible[] = $item;
        return $this;
    }
    /**
     * Get isDefaultBilling value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsDefaultBilling()
    {
        return $this->isDefaultBilling;
    }
    /**
     * This method is responsible for validating the values passed to the setIsDefaultBilling method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsDefaultBilling method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsDefaultBillingForArrayConstraintsFromSetIsDefaultBilling(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicIsDefaultBillingItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicIsDefaultBillingItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicIsDefaultBillingItem) ? get_class($vendorSearchRowBasicIsDefaultBillingItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicIsDefaultBillingItem), var_export($vendorSearchRowBasicIsDefaultBillingItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isDefaultBilling property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set isDefaultBilling value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isDefaultBilling
     * @return \StructType\VendorSearchRowBasic
     */
    public function setIsDefaultBilling(array $isDefaultBilling = array())
    {
        // validation for constraint: array
        if ('' !== ($isDefaultBillingArrayErrorMessage = self::validateIsDefaultBillingForArrayConstraintsFromSetIsDefaultBilling($isDefaultBilling))) {
            throw new \InvalidArgumentException($isDefaultBillingArrayErrorMessage, __LINE__);
        }
        $this->isDefaultBilling = $isDefaultBilling;
        return $this;
    }
    /**
     * Add item to isDefaultBilling value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToIsDefaultBilling(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isDefaultBilling property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->isDefaultBilling[] = $item;
        return $this;
    }
    /**
     * Get isDefaultShipping value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsDefaultShipping()
    {
        return $this->isDefaultShipping;
    }
    /**
     * This method is responsible for validating the values passed to the setIsDefaultShipping method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsDefaultShipping method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsDefaultShippingForArrayConstraintsFromSetIsDefaultShipping(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicIsDefaultShippingItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicIsDefaultShippingItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicIsDefaultShippingItem) ? get_class($vendorSearchRowBasicIsDefaultShippingItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicIsDefaultShippingItem), var_export($vendorSearchRowBasicIsDefaultShippingItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isDefaultShipping property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set isDefaultShipping value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isDefaultShipping
     * @return \StructType\VendorSearchRowBasic
     */
    public function setIsDefaultShipping(array $isDefaultShipping = array())
    {
        // validation for constraint: array
        if ('' !== ($isDefaultShippingArrayErrorMessage = self::validateIsDefaultShippingForArrayConstraintsFromSetIsDefaultShipping($isDefaultShipping))) {
            throw new \InvalidArgumentException($isDefaultShippingArrayErrorMessage, __LINE__);
        }
        $this->isDefaultShipping = $isDefaultShipping;
        return $this;
    }
    /**
     * Add item to isDefaultShipping value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToIsDefaultShipping(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isDefaultShipping property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->isDefaultShipping[] = $item;
        return $this;
    }
    /**
     * Get isInactive value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsInactive()
    {
        return $this->isInactive;
    }
    /**
     * This method is responsible for validating the values passed to the setIsInactive method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsInactive method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsInactiveForArrayConstraintsFromSetIsInactive(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicIsInactiveItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicIsInactiveItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicIsInactiveItem) ? get_class($vendorSearchRowBasicIsInactiveItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicIsInactiveItem), var_export($vendorSearchRowBasicIsInactiveItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isInactive property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set isInactive value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isInactive
     * @return \StructType\VendorSearchRowBasic
     */
    public function setIsInactive(array $isInactive = array())
    {
        // validation for constraint: array
        if ('' !== ($isInactiveArrayErrorMessage = self::validateIsInactiveForArrayConstraintsFromSetIsInactive($isInactive))) {
            throw new \InvalidArgumentException($isInactiveArrayErrorMessage, __LINE__);
        }
        $this->isInactive = $isInactive;
        return $this;
    }
    /**
     * Add item to isInactive value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToIsInactive(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isInactive property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->isInactive[] = $item;
        return $this;
    }
    /**
     * Get isJobResourceVend value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsJobResourceVend()
    {
        return $this->isJobResourceVend;
    }
    /**
     * This method is responsible for validating the values passed to the setIsJobResourceVend method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsJobResourceVend method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsJobResourceVendForArrayConstraintsFromSetIsJobResourceVend(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicIsJobResourceVendItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicIsJobResourceVendItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicIsJobResourceVendItem) ? get_class($vendorSearchRowBasicIsJobResourceVendItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicIsJobResourceVendItem), var_export($vendorSearchRowBasicIsJobResourceVendItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isJobResourceVend property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set isJobResourceVend value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isJobResourceVend
     * @return \StructType\VendorSearchRowBasic
     */
    public function setIsJobResourceVend(array $isJobResourceVend = array())
    {
        // validation for constraint: array
        if ('' !== ($isJobResourceVendArrayErrorMessage = self::validateIsJobResourceVendForArrayConstraintsFromSetIsJobResourceVend($isJobResourceVend))) {
            throw new \InvalidArgumentException($isJobResourceVendArrayErrorMessage, __LINE__);
        }
        $this->isJobResourceVend = $isJobResourceVend;
        return $this;
    }
    /**
     * Add item to isJobResourceVend value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToIsJobResourceVend(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isJobResourceVend property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->isJobResourceVend[] = $item;
        return $this;
    }
    /**
     * Get isPerson value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsPerson()
    {
        return $this->isPerson;
    }
    /**
     * This method is responsible for validating the values passed to the setIsPerson method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsPerson method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsPersonForArrayConstraintsFromSetIsPerson(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicIsPersonItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicIsPersonItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicIsPersonItem) ? get_class($vendorSearchRowBasicIsPersonItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicIsPersonItem), var_export($vendorSearchRowBasicIsPersonItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isPerson property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set isPerson value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isPerson
     * @return \StructType\VendorSearchRowBasic
     */
    public function setIsPerson(array $isPerson = array())
    {
        // validation for constraint: array
        if ('' !== ($isPersonArrayErrorMessage = self::validateIsPersonForArrayConstraintsFromSetIsPerson($isPerson))) {
            throw new \InvalidArgumentException($isPersonArrayErrorMessage, __LINE__);
        }
        $this->isPerson = $isPerson;
        return $this;
    }
    /**
     * Add item to isPerson value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToIsPerson(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isPerson property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->isPerson[] = $item;
        return $this;
    }
    /**
     * Get laborCost value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getLaborCost()
    {
        return $this->laborCost;
    }
    /**
     * This method is responsible for validating the values passed to the setLaborCost method
     * This method is willingly generated in order to preserve the one-line inline validation within the setLaborCost method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateLaborCostForArrayConstraintsFromSetLaborCost(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicLaborCostItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicLaborCostItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicLaborCostItem) ? get_class($vendorSearchRowBasicLaborCostItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicLaborCostItem), var_export($vendorSearchRowBasicLaborCostItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The laborCost property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set laborCost value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $laborCost
     * @return \StructType\VendorSearchRowBasic
     */
    public function setLaborCost(array $laborCost = array())
    {
        // validation for constraint: array
        if ('' !== ($laborCostArrayErrorMessage = self::validateLaborCostForArrayConstraintsFromSetLaborCost($laborCost))) {
            throw new \InvalidArgumentException($laborCostArrayErrorMessage, __LINE__);
        }
        $this->laborCost = $laborCost;
        return $this;
    }
    /**
     * Add item to laborCost value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToLaborCost(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The laborCost property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->laborCost[] = $item;
        return $this;
    }
    /**
     * Get language value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getLanguage()
    {
        return $this->language;
    }
    /**
     * This method is responsible for validating the values passed to the setLanguage method
     * This method is willingly generated in order to preserve the one-line inline validation within the setLanguage method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateLanguageForArrayConstraintsFromSetLanguage(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicLanguageItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicLanguageItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicLanguageItem) ? get_class($vendorSearchRowBasicLanguageItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicLanguageItem), var_export($vendorSearchRowBasicLanguageItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The language property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set language value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $language
     * @return \StructType\VendorSearchRowBasic
     */
    public function setLanguage(array $language = array())
    {
        // validation for constraint: array
        if ('' !== ($languageArrayErrorMessage = self::validateLanguageForArrayConstraintsFromSetLanguage($language))) {
            throw new \InvalidArgumentException($languageArrayErrorMessage, __LINE__);
        }
        $this->language = $language;
        return $this;
    }
    /**
     * Add item to language value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToLanguage(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The language property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->language[] = $item;
        return $this;
    }
    /**
     * Get lastModifiedDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getLastModifiedDate()
    {
        return $this->lastModifiedDate;
    }
    /**
     * This method is responsible for validating the values passed to the setLastModifiedDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setLastModifiedDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateLastModifiedDateForArrayConstraintsFromSetLastModifiedDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicLastModifiedDateItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicLastModifiedDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($vendorSearchRowBasicLastModifiedDateItem) ? get_class($vendorSearchRowBasicLastModifiedDateItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicLastModifiedDateItem), var_export($vendorSearchRowBasicLastModifiedDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The lastModifiedDate property can only contain items of type \StructType\SearchColumnDateField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set lastModifiedDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $lastModifiedDate
     * @return \StructType\VendorSearchRowBasic
     */
    public function setLastModifiedDate(array $lastModifiedDate = array())
    {
        // validation for constraint: array
        if ('' !== ($lastModifiedDateArrayErrorMessage = self::validateLastModifiedDateForArrayConstraintsFromSetLastModifiedDate($lastModifiedDate))) {
            throw new \InvalidArgumentException($lastModifiedDateArrayErrorMessage, __LINE__);
        }
        $this->lastModifiedDate = $lastModifiedDate;
        return $this;
    }
    /**
     * Add item to lastModifiedDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToLastModifiedDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The lastModifiedDate property can only contain items of type \StructType\SearchColumnDateField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->lastModifiedDate[] = $item;
        return $this;
    }
    /**
     * Get lastName value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getLastName()
    {
        return $this->lastName;
    }
    /**
     * This method is responsible for validating the values passed to the setLastName method
     * This method is willingly generated in order to preserve the one-line inline validation within the setLastName method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateLastNameForArrayConstraintsFromSetLastName(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicLastNameItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicLastNameItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicLastNameItem) ? get_class($vendorSearchRowBasicLastNameItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicLastNameItem), var_export($vendorSearchRowBasicLastNameItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The lastName property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set lastName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $lastName
     * @return \StructType\VendorSearchRowBasic
     */
    public function setLastName(array $lastName = array())
    {
        // validation for constraint: array
        if ('' !== ($lastNameArrayErrorMessage = self::validateLastNameForArrayConstraintsFromSetLastName($lastName))) {
            throw new \InvalidArgumentException($lastNameArrayErrorMessage, __LINE__);
        }
        $this->lastName = $lastName;
        return $this;
    }
    /**
     * Add item to lastName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToLastName(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The lastName property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->lastName[] = $item;
        return $this;
    }
    /**
     * Get level value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getLevel()
    {
        return $this->level;
    }
    /**
     * This method is responsible for validating the values passed to the setLevel method
     * This method is willingly generated in order to preserve the one-line inline validation within the setLevel method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateLevelForArrayConstraintsFromSetLevel(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicLevelItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicLevelItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicLevelItem) ? get_class($vendorSearchRowBasicLevelItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicLevelItem), var_export($vendorSearchRowBasicLevelItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The level property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set level value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $level
     * @return \StructType\VendorSearchRowBasic
     */
    public function setLevel(array $level = array())
    {
        // validation for constraint: array
        if ('' !== ($levelArrayErrorMessage = self::validateLevelForArrayConstraintsFromSetLevel($level))) {
            throw new \InvalidArgumentException($levelArrayErrorMessage, __LINE__);
        }
        $this->level = $level;
        return $this;
    }
    /**
     * Add item to level value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToLevel(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The level property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->level[] = $item;
        return $this;
    }
    /**
     * Get middleName value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getMiddleName()
    {
        return $this->middleName;
    }
    /**
     * This method is responsible for validating the values passed to the setMiddleName method
     * This method is willingly generated in order to preserve the one-line inline validation within the setMiddleName method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateMiddleNameForArrayConstraintsFromSetMiddleName(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicMiddleNameItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicMiddleNameItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicMiddleNameItem) ? get_class($vendorSearchRowBasicMiddleNameItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicMiddleNameItem), var_export($vendorSearchRowBasicMiddleNameItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The middleName property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set middleName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $middleName
     * @return \StructType\VendorSearchRowBasic
     */
    public function setMiddleName(array $middleName = array())
    {
        // validation for constraint: array
        if ('' !== ($middleNameArrayErrorMessage = self::validateMiddleNameForArrayConstraintsFromSetMiddleName($middleName))) {
            throw new \InvalidArgumentException($middleNameArrayErrorMessage, __LINE__);
        }
        $this->middleName = $middleName;
        return $this;
    }
    /**
     * Add item to middleName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToMiddleName(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The middleName property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->middleName[] = $item;
        return $this;
    }
    /**
     * Get mobilePhone value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getMobilePhone()
    {
        return $this->mobilePhone;
    }
    /**
     * This method is responsible for validating the values passed to the setMobilePhone method
     * This method is willingly generated in order to preserve the one-line inline validation within the setMobilePhone method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateMobilePhoneForArrayConstraintsFromSetMobilePhone(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicMobilePhoneItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicMobilePhoneItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicMobilePhoneItem) ? get_class($vendorSearchRowBasicMobilePhoneItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicMobilePhoneItem), var_export($vendorSearchRowBasicMobilePhoneItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The mobilePhone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set mobilePhone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $mobilePhone
     * @return \StructType\VendorSearchRowBasic
     */
    public function setMobilePhone(array $mobilePhone = array())
    {
        // validation for constraint: array
        if ('' !== ($mobilePhoneArrayErrorMessage = self::validateMobilePhoneForArrayConstraintsFromSetMobilePhone($mobilePhone))) {
            throw new \InvalidArgumentException($mobilePhoneArrayErrorMessage, __LINE__);
        }
        $this->mobilePhone = $mobilePhone;
        return $this;
    }
    /**
     * Add item to mobilePhone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToMobilePhone(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The mobilePhone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->mobilePhone[] = $item;
        return $this;
    }
    /**
     * Get payablesAccount value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getPayablesAccount()
    {
        return $this->payablesAccount;
    }
    /**
     * This method is responsible for validating the values passed to the setPayablesAccount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPayablesAccount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePayablesAccountForArrayConstraintsFromSetPayablesAccount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicPayablesAccountItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicPayablesAccountItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicPayablesAccountItem) ? get_class($vendorSearchRowBasicPayablesAccountItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicPayablesAccountItem), var_export($vendorSearchRowBasicPayablesAccountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The payablesAccount property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set payablesAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $payablesAccount
     * @return \StructType\VendorSearchRowBasic
     */
    public function setPayablesAccount(array $payablesAccount = array())
    {
        // validation for constraint: array
        if ('' !== ($payablesAccountArrayErrorMessage = self::validatePayablesAccountForArrayConstraintsFromSetPayablesAccount($payablesAccount))) {
            throw new \InvalidArgumentException($payablesAccountArrayErrorMessage, __LINE__);
        }
        $this->payablesAccount = $payablesAccount;
        return $this;
    }
    /**
     * Add item to payablesAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToPayablesAccount(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The payablesAccount property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->payablesAccount[] = $item;
        return $this;
    }
    /**
     * Get pec value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getPec()
    {
        return $this->pec;
    }
    /**
     * This method is responsible for validating the values passed to the setPec method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPec method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePecForArrayConstraintsFromSetPec(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicPecItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicPecItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicPecItem) ? get_class($vendorSearchRowBasicPecItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicPecItem), var_export($vendorSearchRowBasicPecItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The pec property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set pec value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $pec
     * @return \StructType\VendorSearchRowBasic
     */
    public function setPec(array $pec = array())
    {
        // validation for constraint: array
        if ('' !== ($pecArrayErrorMessage = self::validatePecForArrayConstraintsFromSetPec($pec))) {
            throw new \InvalidArgumentException($pecArrayErrorMessage, __LINE__);
        }
        $this->pec = $pec;
        return $this;
    }
    /**
     * Add item to pec value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToPec(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The pec property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->pec[] = $item;
        return $this;
    }
    /**
     * Get permission value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getPermission()
    {
        return $this->permission;
    }
    /**
     * This method is responsible for validating the values passed to the setPermission method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPermission method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePermissionForArrayConstraintsFromSetPermission(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicPermissionItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicPermissionItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicPermissionItem) ? get_class($vendorSearchRowBasicPermissionItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicPermissionItem), var_export($vendorSearchRowBasicPermissionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The permission property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set permission value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $permission
     * @return \StructType\VendorSearchRowBasic
     */
    public function setPermission(array $permission = array())
    {
        // validation for constraint: array
        if ('' !== ($permissionArrayErrorMessage = self::validatePermissionForArrayConstraintsFromSetPermission($permission))) {
            throw new \InvalidArgumentException($permissionArrayErrorMessage, __LINE__);
        }
        $this->permission = $permission;
        return $this;
    }
    /**
     * Add item to permission value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToPermission(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The permission property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->permission[] = $item;
        return $this;
    }
    /**
     * Get phone value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getPhone()
    {
        return $this->phone;
    }
    /**
     * This method is responsible for validating the values passed to the setPhone method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPhone method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePhoneForArrayConstraintsFromSetPhone(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicPhoneItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicPhoneItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicPhoneItem) ? get_class($vendorSearchRowBasicPhoneItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicPhoneItem), var_export($vendorSearchRowBasicPhoneItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The phone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set phone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $phone
     * @return \StructType\VendorSearchRowBasic
     */
    public function setPhone(array $phone = array())
    {
        // validation for constraint: array
        if ('' !== ($phoneArrayErrorMessage = self::validatePhoneForArrayConstraintsFromSetPhone($phone))) {
            throw new \InvalidArgumentException($phoneArrayErrorMessage, __LINE__);
        }
        $this->phone = $phone;
        return $this;
    }
    /**
     * Add item to phone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToPhone(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The phone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->phone[] = $item;
        return $this;
    }
    /**
     * Get phoneticName value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getPhoneticName()
    {
        return $this->phoneticName;
    }
    /**
     * This method is responsible for validating the values passed to the setPhoneticName method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPhoneticName method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePhoneticNameForArrayConstraintsFromSetPhoneticName(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicPhoneticNameItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicPhoneticNameItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicPhoneticNameItem) ? get_class($vendorSearchRowBasicPhoneticNameItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicPhoneticNameItem), var_export($vendorSearchRowBasicPhoneticNameItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The phoneticName property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set phoneticName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $phoneticName
     * @return \StructType\VendorSearchRowBasic
     */
    public function setPhoneticName(array $phoneticName = array())
    {
        // validation for constraint: array
        if ('' !== ($phoneticNameArrayErrorMessage = self::validatePhoneticNameForArrayConstraintsFromSetPhoneticName($phoneticName))) {
            throw new \InvalidArgumentException($phoneticNameArrayErrorMessage, __LINE__);
        }
        $this->phoneticName = $phoneticName;
        return $this;
    }
    /**
     * Add item to phoneticName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToPhoneticName(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The phoneticName property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->phoneticName[] = $item;
        return $this;
    }
    /**
     * Get predConfidence value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getPredConfidence()
    {
        return $this->predConfidence;
    }
    /**
     * This method is responsible for validating the values passed to the setPredConfidence method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPredConfidence method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePredConfidenceForArrayConstraintsFromSetPredConfidence(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicPredConfidenceItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicPredConfidenceItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicPredConfidenceItem) ? get_class($vendorSearchRowBasicPredConfidenceItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicPredConfidenceItem), var_export($vendorSearchRowBasicPredConfidenceItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The predConfidence property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set predConfidence value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $predConfidence
     * @return \StructType\VendorSearchRowBasic
     */
    public function setPredConfidence(array $predConfidence = array())
    {
        // validation for constraint: array
        if ('' !== ($predConfidenceArrayErrorMessage = self::validatePredConfidenceForArrayConstraintsFromSetPredConfidence($predConfidence))) {
            throw new \InvalidArgumentException($predConfidenceArrayErrorMessage, __LINE__);
        }
        $this->predConfidence = $predConfidence;
        return $this;
    }
    /**
     * Add item to predConfidence value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToPredConfidence(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The predConfidence property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->predConfidence[] = $item;
        return $this;
    }
    /**
     * Get predictedDays value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getPredictedDays()
    {
        return $this->predictedDays;
    }
    /**
     * This method is responsible for validating the values passed to the setPredictedDays method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPredictedDays method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePredictedDaysForArrayConstraintsFromSetPredictedDays(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicPredictedDaysItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicPredictedDaysItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicPredictedDaysItem) ? get_class($vendorSearchRowBasicPredictedDaysItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicPredictedDaysItem), var_export($vendorSearchRowBasicPredictedDaysItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The predictedDays property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set predictedDays value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $predictedDays
     * @return \StructType\VendorSearchRowBasic
     */
    public function setPredictedDays(array $predictedDays = array())
    {
        // validation for constraint: array
        if ('' !== ($predictedDaysArrayErrorMessage = self::validatePredictedDaysForArrayConstraintsFromSetPredictedDays($predictedDays))) {
            throw new \InvalidArgumentException($predictedDaysArrayErrorMessage, __LINE__);
        }
        $this->predictedDays = $predictedDays;
        return $this;
    }
    /**
     * Add item to predictedDays value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToPredictedDays(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The predictedDays property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->predictedDays[] = $item;
        return $this;
    }
    /**
     * Get printOnCheckAs value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getPrintOnCheckAs()
    {
        return $this->printOnCheckAs;
    }
    /**
     * This method is responsible for validating the values passed to the setPrintOnCheckAs method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPrintOnCheckAs method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePrintOnCheckAsForArrayConstraintsFromSetPrintOnCheckAs(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicPrintOnCheckAsItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicPrintOnCheckAsItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicPrintOnCheckAsItem) ? get_class($vendorSearchRowBasicPrintOnCheckAsItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicPrintOnCheckAsItem), var_export($vendorSearchRowBasicPrintOnCheckAsItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The printOnCheckAs property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set printOnCheckAs value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $printOnCheckAs
     * @return \StructType\VendorSearchRowBasic
     */
    public function setPrintOnCheckAs(array $printOnCheckAs = array())
    {
        // validation for constraint: array
        if ('' !== ($printOnCheckAsArrayErrorMessage = self::validatePrintOnCheckAsForArrayConstraintsFromSetPrintOnCheckAs($printOnCheckAs))) {
            throw new \InvalidArgumentException($printOnCheckAsArrayErrorMessage, __LINE__);
        }
        $this->printOnCheckAs = $printOnCheckAs;
        return $this;
    }
    /**
     * Add item to printOnCheckAs value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToPrintOnCheckAs(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The printOnCheckAs property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->printOnCheckAs[] = $item;
        return $this;
    }
    /**
     * Get printTransactions value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getPrintTransactions()
    {
        return $this->printTransactions;
    }
    /**
     * This method is responsible for validating the values passed to the setPrintTransactions method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPrintTransactions method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePrintTransactionsForArrayConstraintsFromSetPrintTransactions(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicPrintTransactionsItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicPrintTransactionsItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicPrintTransactionsItem) ? get_class($vendorSearchRowBasicPrintTransactionsItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicPrintTransactionsItem), var_export($vendorSearchRowBasicPrintTransactionsItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The printTransactions property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set printTransactions value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $printTransactions
     * @return \StructType\VendorSearchRowBasic
     */
    public function setPrintTransactions(array $printTransactions = array())
    {
        // validation for constraint: array
        if ('' !== ($printTransactionsArrayErrorMessage = self::validatePrintTransactionsForArrayConstraintsFromSetPrintTransactions($printTransactions))) {
            throw new \InvalidArgumentException($printTransactionsArrayErrorMessage, __LINE__);
        }
        $this->printTransactions = $printTransactions;
        return $this;
    }
    /**
     * Add item to printTransactions value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToPrintTransactions(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The printTransactions property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->printTransactions[] = $item;
        return $this;
    }
    /**
     * Get purchaseOrderAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getPurchaseOrderAmount()
    {
        return $this->purchaseOrderAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setPurchaseOrderAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPurchaseOrderAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePurchaseOrderAmountForArrayConstraintsFromSetPurchaseOrderAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicPurchaseOrderAmountItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicPurchaseOrderAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicPurchaseOrderAmountItem) ? get_class($vendorSearchRowBasicPurchaseOrderAmountItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicPurchaseOrderAmountItem), var_export($vendorSearchRowBasicPurchaseOrderAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The purchaseOrderAmount property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set purchaseOrderAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $purchaseOrderAmount
     * @return \StructType\VendorSearchRowBasic
     */
    public function setPurchaseOrderAmount(array $purchaseOrderAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($purchaseOrderAmountArrayErrorMessage = self::validatePurchaseOrderAmountForArrayConstraintsFromSetPurchaseOrderAmount($purchaseOrderAmount))) {
            throw new \InvalidArgumentException($purchaseOrderAmountArrayErrorMessage, __LINE__);
        }
        $this->purchaseOrderAmount = $purchaseOrderAmount;
        return $this;
    }
    /**
     * Add item to purchaseOrderAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToPurchaseOrderAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The purchaseOrderAmount property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->purchaseOrderAmount[] = $item;
        return $this;
    }
    /**
     * Get purchaseOrderQuantity value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getPurchaseOrderQuantity()
    {
        return $this->purchaseOrderQuantity;
    }
    /**
     * This method is responsible for validating the values passed to the setPurchaseOrderQuantity method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPurchaseOrderQuantity method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePurchaseOrderQuantityForArrayConstraintsFromSetPurchaseOrderQuantity(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicPurchaseOrderQuantityItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicPurchaseOrderQuantityItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicPurchaseOrderQuantityItem) ? get_class($vendorSearchRowBasicPurchaseOrderQuantityItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicPurchaseOrderQuantityItem), var_export($vendorSearchRowBasicPurchaseOrderQuantityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The purchaseOrderQuantity property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set purchaseOrderQuantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $purchaseOrderQuantity
     * @return \StructType\VendorSearchRowBasic
     */
    public function setPurchaseOrderQuantity(array $purchaseOrderQuantity = array())
    {
        // validation for constraint: array
        if ('' !== ($purchaseOrderQuantityArrayErrorMessage = self::validatePurchaseOrderQuantityForArrayConstraintsFromSetPurchaseOrderQuantity($purchaseOrderQuantity))) {
            throw new \InvalidArgumentException($purchaseOrderQuantityArrayErrorMessage, __LINE__);
        }
        $this->purchaseOrderQuantity = $purchaseOrderQuantity;
        return $this;
    }
    /**
     * Add item to purchaseOrderQuantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToPurchaseOrderQuantity(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The purchaseOrderQuantity property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->purchaseOrderQuantity[] = $item;
        return $this;
    }
    /**
     * Get purchaseOrderQuantityDiff value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getPurchaseOrderQuantityDiff()
    {
        return $this->purchaseOrderQuantityDiff;
    }
    /**
     * This method is responsible for validating the values passed to the setPurchaseOrderQuantityDiff method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPurchaseOrderQuantityDiff method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePurchaseOrderQuantityDiffForArrayConstraintsFromSetPurchaseOrderQuantityDiff(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicPurchaseOrderQuantityDiffItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicPurchaseOrderQuantityDiffItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicPurchaseOrderQuantityDiffItem) ? get_class($vendorSearchRowBasicPurchaseOrderQuantityDiffItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicPurchaseOrderQuantityDiffItem), var_export($vendorSearchRowBasicPurchaseOrderQuantityDiffItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The purchaseOrderQuantityDiff property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set purchaseOrderQuantityDiff value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $purchaseOrderQuantityDiff
     * @return \StructType\VendorSearchRowBasic
     */
    public function setPurchaseOrderQuantityDiff(array $purchaseOrderQuantityDiff = array())
    {
        // validation for constraint: array
        if ('' !== ($purchaseOrderQuantityDiffArrayErrorMessage = self::validatePurchaseOrderQuantityDiffForArrayConstraintsFromSetPurchaseOrderQuantityDiff($purchaseOrderQuantityDiff))) {
            throw new \InvalidArgumentException($purchaseOrderQuantityDiffArrayErrorMessage, __LINE__);
        }
        $this->purchaseOrderQuantityDiff = $purchaseOrderQuantityDiff;
        return $this;
    }
    /**
     * Add item to purchaseOrderQuantityDiff value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToPurchaseOrderQuantityDiff(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The purchaseOrderQuantityDiff property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->purchaseOrderQuantityDiff[] = $item;
        return $this;
    }
    /**
     * Get receiptAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getReceiptAmount()
    {
        return $this->receiptAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setReceiptAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setReceiptAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateReceiptAmountForArrayConstraintsFromSetReceiptAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicReceiptAmountItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicReceiptAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicReceiptAmountItem) ? get_class($vendorSearchRowBasicReceiptAmountItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicReceiptAmountItem), var_export($vendorSearchRowBasicReceiptAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The receiptAmount property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set receiptAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $receiptAmount
     * @return \StructType\VendorSearchRowBasic
     */
    public function setReceiptAmount(array $receiptAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($receiptAmountArrayErrorMessage = self::validateReceiptAmountForArrayConstraintsFromSetReceiptAmount($receiptAmount))) {
            throw new \InvalidArgumentException($receiptAmountArrayErrorMessage, __LINE__);
        }
        $this->receiptAmount = $receiptAmount;
        return $this;
    }
    /**
     * Add item to receiptAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToReceiptAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The receiptAmount property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->receiptAmount[] = $item;
        return $this;
    }
    /**
     * Get receiptQuantity value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getReceiptQuantity()
    {
        return $this->receiptQuantity;
    }
    /**
     * This method is responsible for validating the values passed to the setReceiptQuantity method
     * This method is willingly generated in order to preserve the one-line inline validation within the setReceiptQuantity method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateReceiptQuantityForArrayConstraintsFromSetReceiptQuantity(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicReceiptQuantityItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicReceiptQuantityItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicReceiptQuantityItem) ? get_class($vendorSearchRowBasicReceiptQuantityItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicReceiptQuantityItem), var_export($vendorSearchRowBasicReceiptQuantityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The receiptQuantity property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set receiptQuantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $receiptQuantity
     * @return \StructType\VendorSearchRowBasic
     */
    public function setReceiptQuantity(array $receiptQuantity = array())
    {
        // validation for constraint: array
        if ('' !== ($receiptQuantityArrayErrorMessage = self::validateReceiptQuantityForArrayConstraintsFromSetReceiptQuantity($receiptQuantity))) {
            throw new \InvalidArgumentException($receiptQuantityArrayErrorMessage, __LINE__);
        }
        $this->receiptQuantity = $receiptQuantity;
        return $this;
    }
    /**
     * Add item to receiptQuantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToReceiptQuantity(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The receiptQuantity property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->receiptQuantity[] = $item;
        return $this;
    }
    /**
     * Get receiptQuantityDiff value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getReceiptQuantityDiff()
    {
        return $this->receiptQuantityDiff;
    }
    /**
     * This method is responsible for validating the values passed to the setReceiptQuantityDiff method
     * This method is willingly generated in order to preserve the one-line inline validation within the setReceiptQuantityDiff method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateReceiptQuantityDiffForArrayConstraintsFromSetReceiptQuantityDiff(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicReceiptQuantityDiffItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicReceiptQuantityDiffItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicReceiptQuantityDiffItem) ? get_class($vendorSearchRowBasicReceiptQuantityDiffItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicReceiptQuantityDiffItem), var_export($vendorSearchRowBasicReceiptQuantityDiffItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The receiptQuantityDiff property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set receiptQuantityDiff value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $receiptQuantityDiff
     * @return \StructType\VendorSearchRowBasic
     */
    public function setReceiptQuantityDiff(array $receiptQuantityDiff = array())
    {
        // validation for constraint: array
        if ('' !== ($receiptQuantityDiffArrayErrorMessage = self::validateReceiptQuantityDiffForArrayConstraintsFromSetReceiptQuantityDiff($receiptQuantityDiff))) {
            throw new \InvalidArgumentException($receiptQuantityDiffArrayErrorMessage, __LINE__);
        }
        $this->receiptQuantityDiff = $receiptQuantityDiff;
        return $this;
    }
    /**
     * Add item to receiptQuantityDiff value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToReceiptQuantityDiff(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The receiptQuantityDiff property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->receiptQuantityDiff[] = $item;
        return $this;
    }
    /**
     * Get salutation value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getSalutation()
    {
        return $this->salutation;
    }
    /**
     * This method is responsible for validating the values passed to the setSalutation method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSalutation method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSalutationForArrayConstraintsFromSetSalutation(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicSalutationItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicSalutationItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicSalutationItem) ? get_class($vendorSearchRowBasicSalutationItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicSalutationItem), var_export($vendorSearchRowBasicSalutationItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The salutation property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set salutation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $salutation
     * @return \StructType\VendorSearchRowBasic
     */
    public function setSalutation(array $salutation = array())
    {
        // validation for constraint: array
        if ('' !== ($salutationArrayErrorMessage = self::validateSalutationForArrayConstraintsFromSetSalutation($salutation))) {
            throw new \InvalidArgumentException($salutationArrayErrorMessage, __LINE__);
        }
        $this->salutation = $salutation;
        return $this;
    }
    /**
     * Add item to salutation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToSalutation(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The salutation property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->salutation[] = $item;
        return $this;
    }
    /**
     * Get shipAddress value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getShipAddress()
    {
        return $this->shipAddress;
    }
    /**
     * This method is responsible for validating the values passed to the setShipAddress method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipAddress method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipAddressForArrayConstraintsFromSetShipAddress(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicShipAddressItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicShipAddressItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicShipAddressItem) ? get_class($vendorSearchRowBasicShipAddressItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicShipAddressItem), var_export($vendorSearchRowBasicShipAddressItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipAddress property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set shipAddress value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $shipAddress
     * @return \StructType\VendorSearchRowBasic
     */
    public function setShipAddress(array $shipAddress = array())
    {
        // validation for constraint: array
        if ('' !== ($shipAddressArrayErrorMessage = self::validateShipAddressForArrayConstraintsFromSetShipAddress($shipAddress))) {
            throw new \InvalidArgumentException($shipAddressArrayErrorMessage, __LINE__);
        }
        $this->shipAddress = $shipAddress;
        return $this;
    }
    /**
     * Add item to shipAddress value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToShipAddress(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The shipAddress property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->shipAddress[] = $item;
        return $this;
    }
    /**
     * Get shipAddress1 value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getShipAddress1()
    {
        return $this->shipAddress1;
    }
    /**
     * This method is responsible for validating the values passed to the setShipAddress1 method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipAddress1 method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipAddress1ForArrayConstraintsFromSetShipAddress1(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicShipAddress1Item) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicShipAddress1Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicShipAddress1Item) ? get_class($vendorSearchRowBasicShipAddress1Item) : sprintf('%s(%s)', gettype($vendorSearchRowBasicShipAddress1Item), var_export($vendorSearchRowBasicShipAddress1Item, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipAddress1 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set shipAddress1 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $shipAddress1
     * @return \StructType\VendorSearchRowBasic
     */
    public function setShipAddress1(array $shipAddress1 = array())
    {
        // validation for constraint: array
        if ('' !== ($shipAddress1ArrayErrorMessage = self::validateShipAddress1ForArrayConstraintsFromSetShipAddress1($shipAddress1))) {
            throw new \InvalidArgumentException($shipAddress1ArrayErrorMessage, __LINE__);
        }
        $this->shipAddress1 = $shipAddress1;
        return $this;
    }
    /**
     * Add item to shipAddress1 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToShipAddress1(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The shipAddress1 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->shipAddress1[] = $item;
        return $this;
    }
    /**
     * Get shipAddress2 value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getShipAddress2()
    {
        return $this->shipAddress2;
    }
    /**
     * This method is responsible for validating the values passed to the setShipAddress2 method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipAddress2 method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipAddress2ForArrayConstraintsFromSetShipAddress2(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicShipAddress2Item) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicShipAddress2Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicShipAddress2Item) ? get_class($vendorSearchRowBasicShipAddress2Item) : sprintf('%s(%s)', gettype($vendorSearchRowBasicShipAddress2Item), var_export($vendorSearchRowBasicShipAddress2Item, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipAddress2 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set shipAddress2 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $shipAddress2
     * @return \StructType\VendorSearchRowBasic
     */
    public function setShipAddress2(array $shipAddress2 = array())
    {
        // validation for constraint: array
        if ('' !== ($shipAddress2ArrayErrorMessage = self::validateShipAddress2ForArrayConstraintsFromSetShipAddress2($shipAddress2))) {
            throw new \InvalidArgumentException($shipAddress2ArrayErrorMessage, __LINE__);
        }
        $this->shipAddress2 = $shipAddress2;
        return $this;
    }
    /**
     * Add item to shipAddress2 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToShipAddress2(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The shipAddress2 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->shipAddress2[] = $item;
        return $this;
    }
    /**
     * Get shipAddress3 value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getShipAddress3()
    {
        return $this->shipAddress3;
    }
    /**
     * This method is responsible for validating the values passed to the setShipAddress3 method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipAddress3 method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipAddress3ForArrayConstraintsFromSetShipAddress3(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicShipAddress3Item) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicShipAddress3Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicShipAddress3Item) ? get_class($vendorSearchRowBasicShipAddress3Item) : sprintf('%s(%s)', gettype($vendorSearchRowBasicShipAddress3Item), var_export($vendorSearchRowBasicShipAddress3Item, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipAddress3 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set shipAddress3 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $shipAddress3
     * @return \StructType\VendorSearchRowBasic
     */
    public function setShipAddress3(array $shipAddress3 = array())
    {
        // validation for constraint: array
        if ('' !== ($shipAddress3ArrayErrorMessage = self::validateShipAddress3ForArrayConstraintsFromSetShipAddress3($shipAddress3))) {
            throw new \InvalidArgumentException($shipAddress3ArrayErrorMessage, __LINE__);
        }
        $this->shipAddress3 = $shipAddress3;
        return $this;
    }
    /**
     * Add item to shipAddress3 value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToShipAddress3(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The shipAddress3 property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->shipAddress3[] = $item;
        return $this;
    }
    /**
     * Get shipAddressee value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getShipAddressee()
    {
        return $this->shipAddressee;
    }
    /**
     * This method is responsible for validating the values passed to the setShipAddressee method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipAddressee method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipAddresseeForArrayConstraintsFromSetShipAddressee(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicShipAddresseeItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicShipAddresseeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicShipAddresseeItem) ? get_class($vendorSearchRowBasicShipAddresseeItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicShipAddresseeItem), var_export($vendorSearchRowBasicShipAddresseeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipAddressee property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set shipAddressee value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $shipAddressee
     * @return \StructType\VendorSearchRowBasic
     */
    public function setShipAddressee(array $shipAddressee = array())
    {
        // validation for constraint: array
        if ('' !== ($shipAddresseeArrayErrorMessage = self::validateShipAddresseeForArrayConstraintsFromSetShipAddressee($shipAddressee))) {
            throw new \InvalidArgumentException($shipAddresseeArrayErrorMessage, __LINE__);
        }
        $this->shipAddressee = $shipAddressee;
        return $this;
    }
    /**
     * Add item to shipAddressee value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToShipAddressee(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The shipAddressee property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->shipAddressee[] = $item;
        return $this;
    }
    /**
     * Get shipAttention value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getShipAttention()
    {
        return $this->shipAttention;
    }
    /**
     * This method is responsible for validating the values passed to the setShipAttention method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipAttention method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipAttentionForArrayConstraintsFromSetShipAttention(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicShipAttentionItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicShipAttentionItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicShipAttentionItem) ? get_class($vendorSearchRowBasicShipAttentionItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicShipAttentionItem), var_export($vendorSearchRowBasicShipAttentionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipAttention property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set shipAttention value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $shipAttention
     * @return \StructType\VendorSearchRowBasic
     */
    public function setShipAttention(array $shipAttention = array())
    {
        // validation for constraint: array
        if ('' !== ($shipAttentionArrayErrorMessage = self::validateShipAttentionForArrayConstraintsFromSetShipAttention($shipAttention))) {
            throw new \InvalidArgumentException($shipAttentionArrayErrorMessage, __LINE__);
        }
        $this->shipAttention = $shipAttention;
        return $this;
    }
    /**
     * Add item to shipAttention value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToShipAttention(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The shipAttention property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->shipAttention[] = $item;
        return $this;
    }
    /**
     * Get shipCity value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getShipCity()
    {
        return $this->shipCity;
    }
    /**
     * This method is responsible for validating the values passed to the setShipCity method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipCity method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipCityForArrayConstraintsFromSetShipCity(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicShipCityItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicShipCityItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicShipCityItem) ? get_class($vendorSearchRowBasicShipCityItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicShipCityItem), var_export($vendorSearchRowBasicShipCityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipCity property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set shipCity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $shipCity
     * @return \StructType\VendorSearchRowBasic
     */
    public function setShipCity(array $shipCity = array())
    {
        // validation for constraint: array
        if ('' !== ($shipCityArrayErrorMessage = self::validateShipCityForArrayConstraintsFromSetShipCity($shipCity))) {
            throw new \InvalidArgumentException($shipCityArrayErrorMessage, __LINE__);
        }
        $this->shipCity = $shipCity;
        return $this;
    }
    /**
     * Add item to shipCity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToShipCity(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The shipCity property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->shipCity[] = $item;
        return $this;
    }
    /**
     * Get shipCountry value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getShipCountry()
    {
        return $this->shipCountry;
    }
    /**
     * This method is responsible for validating the values passed to the setShipCountry method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipCountry method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipCountryForArrayConstraintsFromSetShipCountry(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicShipCountryItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicShipCountryItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicShipCountryItem) ? get_class($vendorSearchRowBasicShipCountryItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicShipCountryItem), var_export($vendorSearchRowBasicShipCountryItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipCountry property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set shipCountry value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $shipCountry
     * @return \StructType\VendorSearchRowBasic
     */
    public function setShipCountry(array $shipCountry = array())
    {
        // validation for constraint: array
        if ('' !== ($shipCountryArrayErrorMessage = self::validateShipCountryForArrayConstraintsFromSetShipCountry($shipCountry))) {
            throw new \InvalidArgumentException($shipCountryArrayErrorMessage, __LINE__);
        }
        $this->shipCountry = $shipCountry;
        return $this;
    }
    /**
     * Add item to shipCountry value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToShipCountry(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The shipCountry property can only contain items of type \StructType\SearchColumnEnumSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->shipCountry[] = $item;
        return $this;
    }
    /**
     * Get shipCountryCode value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getShipCountryCode()
    {
        return $this->shipCountryCode;
    }
    /**
     * This method is responsible for validating the values passed to the setShipCountryCode method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipCountryCode method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipCountryCodeForArrayConstraintsFromSetShipCountryCode(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicShipCountryCodeItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicShipCountryCodeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicShipCountryCodeItem) ? get_class($vendorSearchRowBasicShipCountryCodeItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicShipCountryCodeItem), var_export($vendorSearchRowBasicShipCountryCodeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipCountryCode property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set shipCountryCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $shipCountryCode
     * @return \StructType\VendorSearchRowBasic
     */
    public function setShipCountryCode(array $shipCountryCode = array())
    {
        // validation for constraint: array
        if ('' !== ($shipCountryCodeArrayErrorMessage = self::validateShipCountryCodeForArrayConstraintsFromSetShipCountryCode($shipCountryCode))) {
            throw new \InvalidArgumentException($shipCountryCodeArrayErrorMessage, __LINE__);
        }
        $this->shipCountryCode = $shipCountryCode;
        return $this;
    }
    /**
     * Add item to shipCountryCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToShipCountryCode(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The shipCountryCode property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->shipCountryCode[] = $item;
        return $this;
    }
    /**
     * Get shipPhone value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getShipPhone()
    {
        return $this->shipPhone;
    }
    /**
     * This method is responsible for validating the values passed to the setShipPhone method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipPhone method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipPhoneForArrayConstraintsFromSetShipPhone(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicShipPhoneItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicShipPhoneItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicShipPhoneItem) ? get_class($vendorSearchRowBasicShipPhoneItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicShipPhoneItem), var_export($vendorSearchRowBasicShipPhoneItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipPhone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set shipPhone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $shipPhone
     * @return \StructType\VendorSearchRowBasic
     */
    public function setShipPhone(array $shipPhone = array())
    {
        // validation for constraint: array
        if ('' !== ($shipPhoneArrayErrorMessage = self::validateShipPhoneForArrayConstraintsFromSetShipPhone($shipPhone))) {
            throw new \InvalidArgumentException($shipPhoneArrayErrorMessage, __LINE__);
        }
        $this->shipPhone = $shipPhone;
        return $this;
    }
    /**
     * Add item to shipPhone value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToShipPhone(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The shipPhone property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->shipPhone[] = $item;
        return $this;
    }
    /**
     * Get shipState value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getShipState()
    {
        return $this->shipState;
    }
    /**
     * This method is responsible for validating the values passed to the setShipState method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipState method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipStateForArrayConstraintsFromSetShipState(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicShipStateItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicShipStateItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicShipStateItem) ? get_class($vendorSearchRowBasicShipStateItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicShipStateItem), var_export($vendorSearchRowBasicShipStateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipState property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set shipState value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $shipState
     * @return \StructType\VendorSearchRowBasic
     */
    public function setShipState(array $shipState = array())
    {
        // validation for constraint: array
        if ('' !== ($shipStateArrayErrorMessage = self::validateShipStateForArrayConstraintsFromSetShipState($shipState))) {
            throw new \InvalidArgumentException($shipStateArrayErrorMessage, __LINE__);
        }
        $this->shipState = $shipState;
        return $this;
    }
    /**
     * Add item to shipState value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToShipState(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The shipState property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->shipState[] = $item;
        return $this;
    }
    /**
     * Get shipZip value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getShipZip()
    {
        return $this->shipZip;
    }
    /**
     * This method is responsible for validating the values passed to the setShipZip method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipZip method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipZipForArrayConstraintsFromSetShipZip(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicShipZipItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicShipZipItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicShipZipItem) ? get_class($vendorSearchRowBasicShipZipItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicShipZipItem), var_export($vendorSearchRowBasicShipZipItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipZip property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set shipZip value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $shipZip
     * @return \StructType\VendorSearchRowBasic
     */
    public function setShipZip(array $shipZip = array())
    {
        // validation for constraint: array
        if ('' !== ($shipZipArrayErrorMessage = self::validateShipZipForArrayConstraintsFromSetShipZip($shipZip))) {
            throw new \InvalidArgumentException($shipZipArrayErrorMessage, __LINE__);
        }
        $this->shipZip = $shipZip;
        return $this;
    }
    /**
     * Add item to shipZip value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToShipZip(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The shipZip property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->shipZip[] = $item;
        return $this;
    }
    /**
     * Get state value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getState()
    {
        return $this->state;
    }
    /**
     * This method is responsible for validating the values passed to the setState method
     * This method is willingly generated in order to preserve the one-line inline validation within the setState method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateStateForArrayConstraintsFromSetState(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicStateItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicStateItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicStateItem) ? get_class($vendorSearchRowBasicStateItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicStateItem), var_export($vendorSearchRowBasicStateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The state property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set state value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $state
     * @return \StructType\VendorSearchRowBasic
     */
    public function setState(array $state = array())
    {
        // validation for constraint: array
        if ('' !== ($stateArrayErrorMessage = self::validateStateForArrayConstraintsFromSetState($state))) {
            throw new \InvalidArgumentException($stateArrayErrorMessage, __LINE__);
        }
        $this->state = $state;
        return $this;
    }
    /**
     * Add item to state value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToState(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The state property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->state[] = $item;
        return $this;
    }
    /**
     * Get subscription value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getSubscription()
    {
        return $this->subscription;
    }
    /**
     * This method is responsible for validating the values passed to the setSubscription method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSubscription method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSubscriptionForArrayConstraintsFromSetSubscription(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicSubscriptionItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicSubscriptionItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicSubscriptionItem) ? get_class($vendorSearchRowBasicSubscriptionItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicSubscriptionItem), var_export($vendorSearchRowBasicSubscriptionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The subscription property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set subscription value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $subscription
     * @return \StructType\VendorSearchRowBasic
     */
    public function setSubscription(array $subscription = array())
    {
        // validation for constraint: array
        if ('' !== ($subscriptionArrayErrorMessage = self::validateSubscriptionForArrayConstraintsFromSetSubscription($subscription))) {
            throw new \InvalidArgumentException($subscriptionArrayErrorMessage, __LINE__);
        }
        $this->subscription = $subscription;
        return $this;
    }
    /**
     * Add item to subscription value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToSubscription(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The subscription property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->subscription[] = $item;
        return $this;
    }
    /**
     * Get subscriptionDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getSubscriptionDate()
    {
        return $this->subscriptionDate;
    }
    /**
     * This method is responsible for validating the values passed to the setSubscriptionDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSubscriptionDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSubscriptionDateForArrayConstraintsFromSetSubscriptionDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicSubscriptionDateItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicSubscriptionDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($vendorSearchRowBasicSubscriptionDateItem) ? get_class($vendorSearchRowBasicSubscriptionDateItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicSubscriptionDateItem), var_export($vendorSearchRowBasicSubscriptionDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The subscriptionDate property can only contain items of type \StructType\SearchColumnDateField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set subscriptionDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $subscriptionDate
     * @return \StructType\VendorSearchRowBasic
     */
    public function setSubscriptionDate(array $subscriptionDate = array())
    {
        // validation for constraint: array
        if ('' !== ($subscriptionDateArrayErrorMessage = self::validateSubscriptionDateForArrayConstraintsFromSetSubscriptionDate($subscriptionDate))) {
            throw new \InvalidArgumentException($subscriptionDateArrayErrorMessage, __LINE__);
        }
        $this->subscriptionDate = $subscriptionDate;
        return $this;
    }
    /**
     * Add item to subscriptionDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToSubscriptionDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The subscriptionDate property can only contain items of type \StructType\SearchColumnDateField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->subscriptionDate[] = $item;
        return $this;
    }
    /**
     * Get subscriptionStatus value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getSubscriptionStatus()
    {
        return $this->subscriptionStatus;
    }
    /**
     * This method is responsible for validating the values passed to the setSubscriptionStatus method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSubscriptionStatus method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSubscriptionStatusForArrayConstraintsFromSetSubscriptionStatus(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicSubscriptionStatusItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicSubscriptionStatusItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($vendorSearchRowBasicSubscriptionStatusItem) ? get_class($vendorSearchRowBasicSubscriptionStatusItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicSubscriptionStatusItem), var_export($vendorSearchRowBasicSubscriptionStatusItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The subscriptionStatus property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set subscriptionStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $subscriptionStatus
     * @return \StructType\VendorSearchRowBasic
     */
    public function setSubscriptionStatus(array $subscriptionStatus = array())
    {
        // validation for constraint: array
        if ('' !== ($subscriptionStatusArrayErrorMessage = self::validateSubscriptionStatusForArrayConstraintsFromSetSubscriptionStatus($subscriptionStatus))) {
            throw new \InvalidArgumentException($subscriptionStatusArrayErrorMessage, __LINE__);
        }
        $this->subscriptionStatus = $subscriptionStatus;
        return $this;
    }
    /**
     * Add item to subscriptionStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToSubscriptionStatus(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The subscriptionStatus property can only contain items of type \StructType\SearchColumnBooleanField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->subscriptionStatus[] = $item;
        return $this;
    }
    /**
     * Get subsidiary value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getSubsidiary()
    {
        return $this->subsidiary;
    }
    /**
     * This method is responsible for validating the values passed to the setSubsidiary method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSubsidiary method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSubsidiaryForArrayConstraintsFromSetSubsidiary(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicSubsidiaryItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicSubsidiaryItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicSubsidiaryItem) ? get_class($vendorSearchRowBasicSubsidiaryItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicSubsidiaryItem), var_export($vendorSearchRowBasicSubsidiaryItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The subsidiary property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set subsidiary value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $subsidiary
     * @return \StructType\VendorSearchRowBasic
     */
    public function setSubsidiary(array $subsidiary = array())
    {
        // validation for constraint: array
        if ('' !== ($subsidiaryArrayErrorMessage = self::validateSubsidiaryForArrayConstraintsFromSetSubsidiary($subsidiary))) {
            throw new \InvalidArgumentException($subsidiaryArrayErrorMessage, __LINE__);
        }
        $this->subsidiary = $subsidiary;
        return $this;
    }
    /**
     * Add item to subsidiary value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToSubsidiary(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The subsidiary property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->subsidiary[] = $item;
        return $this;
    }
    /**
     * Get taxIdNum value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getTaxIdNum()
    {
        return $this->taxIdNum;
    }
    /**
     * This method is responsible for validating the values passed to the setTaxIdNum method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTaxIdNum method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTaxIdNumForArrayConstraintsFromSetTaxIdNum(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicTaxIdNumItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicTaxIdNumItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicTaxIdNumItem) ? get_class($vendorSearchRowBasicTaxIdNumItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicTaxIdNumItem), var_export($vendorSearchRowBasicTaxIdNumItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The taxIdNum property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set taxIdNum value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $taxIdNum
     * @return \StructType\VendorSearchRowBasic
     */
    public function setTaxIdNum(array $taxIdNum = array())
    {
        // validation for constraint: array
        if ('' !== ($taxIdNumArrayErrorMessage = self::validateTaxIdNumForArrayConstraintsFromSetTaxIdNum($taxIdNum))) {
            throw new \InvalidArgumentException($taxIdNumArrayErrorMessage, __LINE__);
        }
        $this->taxIdNum = $taxIdNum;
        return $this;
    }
    /**
     * Add item to taxIdNum value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToTaxIdNum(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The taxIdNum property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->taxIdNum[] = $item;
        return $this;
    }
    /**
     * Get terms value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getTerms()
    {
        return $this->terms;
    }
    /**
     * This method is responsible for validating the values passed to the setTerms method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTerms method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTermsForArrayConstraintsFromSetTerms(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicTermsItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicTermsItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicTermsItem) ? get_class($vendorSearchRowBasicTermsItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicTermsItem), var_export($vendorSearchRowBasicTermsItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The terms property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set terms value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $terms
     * @return \StructType\VendorSearchRowBasic
     */
    public function setTerms(array $terms = array())
    {
        // validation for constraint: array
        if ('' !== ($termsArrayErrorMessage = self::validateTermsForArrayConstraintsFromSetTerms($terms))) {
            throw new \InvalidArgumentException($termsArrayErrorMessage, __LINE__);
        }
        $this->terms = $terms;
        return $this;
    }
    /**
     * Add item to terms value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToTerms(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The terms property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->terms[] = $item;
        return $this;
    }
    /**
     * Get timeApprover value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getTimeApprover()
    {
        return $this->timeApprover;
    }
    /**
     * This method is responsible for validating the values passed to the setTimeApprover method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTimeApprover method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTimeApproverForArrayConstraintsFromSetTimeApprover(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicTimeApproverItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicTimeApproverItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicTimeApproverItem) ? get_class($vendorSearchRowBasicTimeApproverItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicTimeApproverItem), var_export($vendorSearchRowBasicTimeApproverItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The timeApprover property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set timeApprover value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $timeApprover
     * @return \StructType\VendorSearchRowBasic
     */
    public function setTimeApprover(array $timeApprover = array())
    {
        // validation for constraint: array
        if ('' !== ($timeApproverArrayErrorMessage = self::validateTimeApproverForArrayConstraintsFromSetTimeApprover($timeApprover))) {
            throw new \InvalidArgumentException($timeApproverArrayErrorMessage, __LINE__);
        }
        $this->timeApprover = $timeApprover;
        return $this;
    }
    /**
     * Add item to timeApprover value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToTimeApprover(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The timeApprover property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->timeApprover[] = $item;
        return $this;
    }
    /**
     * Get title value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getTitle()
    {
        return $this->title;
    }
    /**
     * This method is responsible for validating the values passed to the setTitle method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTitle method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTitleForArrayConstraintsFromSetTitle(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicTitleItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicTitleItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicTitleItem) ? get_class($vendorSearchRowBasicTitleItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicTitleItem), var_export($vendorSearchRowBasicTitleItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The title property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set title value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $title
     * @return \StructType\VendorSearchRowBasic
     */
    public function setTitle(array $title = array())
    {
        // validation for constraint: array
        if ('' !== ($titleArrayErrorMessage = self::validateTitleForArrayConstraintsFromSetTitle($title))) {
            throw new \InvalidArgumentException($titleArrayErrorMessage, __LINE__);
        }
        $this->title = $title;
        return $this;
    }
    /**
     * Add item to title value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToTitle(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The title property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->title[] = $item;
        return $this;
    }
    /**
     * Get unbilledOrders value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getUnbilledOrders()
    {
        return $this->unbilledOrders;
    }
    /**
     * This method is responsible for validating the values passed to the setUnbilledOrders method
     * This method is willingly generated in order to preserve the one-line inline validation within the setUnbilledOrders method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateUnbilledOrdersForArrayConstraintsFromSetUnbilledOrders(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicUnbilledOrdersItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicUnbilledOrdersItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($vendorSearchRowBasicUnbilledOrdersItem) ? get_class($vendorSearchRowBasicUnbilledOrdersItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicUnbilledOrdersItem), var_export($vendorSearchRowBasicUnbilledOrdersItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The unbilledOrders property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set unbilledOrders value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $unbilledOrders
     * @return \StructType\VendorSearchRowBasic
     */
    public function setUnbilledOrders(array $unbilledOrders = array())
    {
        // validation for constraint: array
        if ('' !== ($unbilledOrdersArrayErrorMessage = self::validateUnbilledOrdersForArrayConstraintsFromSetUnbilledOrders($unbilledOrders))) {
            throw new \InvalidArgumentException($unbilledOrdersArrayErrorMessage, __LINE__);
        }
        $this->unbilledOrders = $unbilledOrders;
        return $this;
    }
    /**
     * Add item to unbilledOrders value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToUnbilledOrders(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The unbilledOrders property can only contain items of type \StructType\SearchColumnDoubleField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->unbilledOrders[] = $item;
        return $this;
    }
    /**
     * Get url value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getUrl()
    {
        return $this->url;
    }
    /**
     * This method is responsible for validating the values passed to the setUrl method
     * This method is willingly generated in order to preserve the one-line inline validation within the setUrl method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateUrlForArrayConstraintsFromSetUrl(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicUrlItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicUrlItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicUrlItem) ? get_class($vendorSearchRowBasicUrlItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicUrlItem), var_export($vendorSearchRowBasicUrlItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The url property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set url value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $url
     * @return \StructType\VendorSearchRowBasic
     */
    public function setUrl(array $url = array())
    {
        // validation for constraint: array
        if ('' !== ($urlArrayErrorMessage = self::validateUrlForArrayConstraintsFromSetUrl($url))) {
            throw new \InvalidArgumentException($urlArrayErrorMessage, __LINE__);
        }
        $this->url = $url;
        return $this;
    }
    /**
     * Add item to url value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToUrl(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The url property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->url[] = $item;
        return $this;
    }
    /**
     * Get vatRegNumber value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getVatRegNumber()
    {
        return $this->vatRegNumber;
    }
    /**
     * This method is responsible for validating the values passed to the setVatRegNumber method
     * This method is willingly generated in order to preserve the one-line inline validation within the setVatRegNumber method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateVatRegNumberForArrayConstraintsFromSetVatRegNumber(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicVatRegNumberItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicVatRegNumberItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicVatRegNumberItem) ? get_class($vendorSearchRowBasicVatRegNumberItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicVatRegNumberItem), var_export($vendorSearchRowBasicVatRegNumberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The vatRegNumber property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set vatRegNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $vatRegNumber
     * @return \StructType\VendorSearchRowBasic
     */
    public function setVatRegNumber(array $vatRegNumber = array())
    {
        // validation for constraint: array
        if ('' !== ($vatRegNumberArrayErrorMessage = self::validateVatRegNumberForArrayConstraintsFromSetVatRegNumber($vatRegNumber))) {
            throw new \InvalidArgumentException($vatRegNumberArrayErrorMessage, __LINE__);
        }
        $this->vatRegNumber = $vatRegNumber;
        return $this;
    }
    /**
     * Add item to vatRegNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToVatRegNumber(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The vatRegNumber property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->vatRegNumber[] = $item;
        return $this;
    }
    /**
     * Get workCalendar value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getWorkCalendar()
    {
        return $this->workCalendar;
    }
    /**
     * This method is responsible for validating the values passed to the setWorkCalendar method
     * This method is willingly generated in order to preserve the one-line inline validation within the setWorkCalendar method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateWorkCalendarForArrayConstraintsFromSetWorkCalendar(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicWorkCalendarItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicWorkCalendarItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($vendorSearchRowBasicWorkCalendarItem) ? get_class($vendorSearchRowBasicWorkCalendarItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicWorkCalendarItem), var_export($vendorSearchRowBasicWorkCalendarItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The workCalendar property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set workCalendar value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $workCalendar
     * @return \StructType\VendorSearchRowBasic
     */
    public function setWorkCalendar(array $workCalendar = array())
    {
        // validation for constraint: array
        if ('' !== ($workCalendarArrayErrorMessage = self::validateWorkCalendarForArrayConstraintsFromSetWorkCalendar($workCalendar))) {
            throw new \InvalidArgumentException($workCalendarArrayErrorMessage, __LINE__);
        }
        $this->workCalendar = $workCalendar;
        return $this;
    }
    /**
     * Add item to workCalendar value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToWorkCalendar(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The workCalendar property can only contain items of type \StructType\SearchColumnSelectField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->workCalendar[] = $item;
        return $this;
    }
    /**
     * Get zipCode value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getZipCode()
    {
        return $this->zipCode;
    }
    /**
     * This method is responsible for validating the values passed to the setZipCode method
     * This method is willingly generated in order to preserve the one-line inline validation within the setZipCode method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateZipCodeForArrayConstraintsFromSetZipCode(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $vendorSearchRowBasicZipCodeItem) {
            // validation for constraint: itemType
            if (!$vendorSearchRowBasicZipCodeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($vendorSearchRowBasicZipCodeItem) ? get_class($vendorSearchRowBasicZipCodeItem) : sprintf('%s(%s)', gettype($vendorSearchRowBasicZipCodeItem), var_export($vendorSearchRowBasicZipCodeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The zipCode property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set zipCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $zipCode
     * @return \StructType\VendorSearchRowBasic
     */
    public function setZipCode(array $zipCode = array())
    {
        // validation for constraint: array
        if ('' !== ($zipCodeArrayErrorMessage = self::validateZipCodeForArrayConstraintsFromSetZipCode($zipCode))) {
            throw new \InvalidArgumentException($zipCodeArrayErrorMessage, __LINE__);
        }
        $this->zipCode = $zipCode;
        return $this;
    }
    /**
     * Add item to zipCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\VendorSearchRowBasic
     */
    public function addToZipCode(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The zipCode property can only contain items of type \StructType\SearchColumnStringField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->zipCode[] = $item;
        return $this;
    }
    /**
     * Get customFieldList value
     * @return \StructType\SearchColumnCustomFieldList|null
     */
    public function getCustomFieldList()
    {
        return $this->customFieldList;
    }
    /**
     * Set customFieldList value
     * @param \StructType\SearchColumnCustomFieldList $customFieldList
     * @return \StructType\VendorSearchRowBasic
     */
    public function setCustomFieldList(\StructType\SearchColumnCustomFieldList $customFieldList = null)
    {
        $this->customFieldList = $customFieldList;
        return $this;
    }
}
