<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for TransactionSearchRowBasic StructType
 * @subpackage Structs
 */
class TransactionSearchRowBasic extends SearchRowBasic
{
    /**
     * The abbrev
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $abbrev;
    /**
     * The account
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $account;
    /**
     * The accountType
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $accountType;
    /**
     * The acctCorpCardExp
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $acctCorpCardExp;
    /**
     * The actualShipDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $actualShipDate;
    /**
     * The altSalesAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $altSalesAmount;
    /**
     * The altSalesNetAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $altSalesNetAmount;
    /**
     * The amount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $amount;
    /**
     * The amountPaid
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $amountPaid;
    /**
     * The amountRemaining
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $amountRemaining;
    /**
     * The amountUnbilled
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $amountUnbilled;
    /**
     * The appliedToForeignAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $appliedToForeignAmount;
    /**
     * The appliedToIsFxVariance
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $appliedToIsFxVariance;
    /**
     * The appliedToLinkAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $appliedToLinkAmount;
    /**
     * The appliedToLinkType
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $appliedToLinkType;
    /**
     * The appliedToTransaction
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $appliedToTransaction;
    /**
     * The applyingForeignAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $applyingForeignAmount;
    /**
     * The applyingIsFxVariance
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $applyingIsFxVariance;
    /**
     * The applyingLinkAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $applyingLinkAmount;
    /**
     * The applyingLinkType
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $applyingLinkType;
    /**
     * The applyingTransaction
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $applyingTransaction;
    /**
     * The approvalStatus
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $approvalStatus;
    /**
     * The authCode
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $authCode;
    /**
     * The autoCalculateLag
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $autoCalculateLag;
    /**
     * The avsStreetMatch
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $avsStreetMatch;
    /**
     * The avsZipMatch
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $avsZipMatch;
    /**
     * The billable
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $billable;
    /**
     * 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 billedDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $billedDate;
    /**
     * The billingAccount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $billingAccount;
    /**
     * The billingAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $billingAmount;
    /**
     * The billingSchedule
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $billingSchedule;
    /**
     * The billingTransaction
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $billingTransaction;
    /**
     * 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 billVarianceStatus
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $billVarianceStatus;
    /**
     * The billZip
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $billZip;
    /**
     * The binNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $binNumber;
    /**
     * The binNumberQuantity
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $binNumberQuantity;
    /**
     * The bomQuantity
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $bomQuantity;
    /**
     * The buildEntireAssembly
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $buildEntireAssembly;
    /**
     * The buildVariance
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $buildVariance;
    /**
     * The built
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $built;
    /**
     * The canHaveStackablePromotions
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $canHaveStackablePromotions;
    /**
     * The catchUpPeriod
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $catchUpPeriod;
    /**
     * The ccCustomerCode
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $ccCustomerCode;
    /**
     * The ccExpDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $ccExpDate;
    /**
     * The ccHolderName
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $ccHolderName;
    /**
     * The ccNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $ccNumber;
    /**
     * The ccStreet
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $ccStreet;
    /**
     * The ccZipCode
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $ccZipCode;
    /**
     * The class
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $class;
    /**
     * The cleared
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $cleared;
    /**
     * The closed
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $closed;
    /**
     * The closeDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $closeDate;
    /**
     * The cogsAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $cogsAmount;
    /**
     * The commissionEffectiveDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $commissionEffectiveDate;
    /**
     * The commit
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $commit;
    /**
     * The componentYield
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $componentYield;
    /**
     * The confirmationNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $confirmationNumber;
    /**
     * The contribution
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $contribution;
    /**
     * The contributionPrimary
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $contributionPrimary;
    /**
     * The costComponentAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $costComponentAmount;
    /**
     * The costComponentCategory
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $costComponentCategory;
    /**
     * The costComponentItem
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $costComponentItem;
    /**
     * The costComponentQuantity
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $costComponentQuantity;
    /**
     * The costComponentStandardCost
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $costComponentStandardCost;
    /**
     * The costEstimate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $costEstimate;
    /**
     * The costEstimateRate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $costEstimateRate;
    /**
     * The costEstimateType
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $costEstimateType;
    /**
     * The createdBy
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $createdBy;
    /**
     * The createdFrom
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $createdFrom;
    /**
     * The creditAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $creditAmount;
    /**
     * The cscMatch
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $cscMatch;
    /**
     * The currency
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $currency;
    /**
     * The customForm
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $customForm;
    /**
     * The customGL
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $customGL;
    /**
     * The custType
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $custType;
    /**
     * The dateCreated
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $dateCreated;
    /**
     * The daysOpen
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnLongField[]
     */
    public $daysOpen;
    /**
     * The daysOverdue
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnLongField[]
     */
    public $daysOverdue;
    /**
     * The debitAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $debitAmount;
    /**
     * The deferredRevenue
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $deferredRevenue;
    /**
     * The deferRevRec
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $deferRevRec;
    /**
     * The department
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $department;
    /**
     * The depositDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $depositDate;
    /**
     * The depositTransaction
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $depositTransaction;
    /**
     * The discountAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $discountAmount;
    /**
     * The docUnit
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $docUnit;
    /**
     * The drAccount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $drAccount;
    /**
     * The dueDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $dueDate;
    /**
     * The effectiveRate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $effectiveRate;
    /**
     * The email
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $email;
    /**
     * The endDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $endDate;
    /**
     * The entity
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $entity;
    /**
     * The entityStatus
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $entityStatus;
    /**
     * The estGrossProfit
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $estGrossProfit;
    /**
     * The estGrossProfitPct
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $estGrossProfitPct;
    /**
     * The estGrossProfitPercent
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $estGrossProfitPercent;
    /**
     * The exchangeRate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $exchangeRate;
    /**
     * The excludeCommission
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $excludeCommission;
    /**
     * The excludeFromRateRequest
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $excludeFromRateRequest;
    /**
     * The expectedCloseDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $expectedCloseDate;
    /**
     * The expectedReceiptDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $expectedReceiptDate;
    /**
     * The expenseCategory
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $expenseCategory;
    /**
     * The expenseDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $expenseDate;
    /**
     * The externalId
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $externalId;
    /**
     * The firmed
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $firmed;
    /**
     * The forecastType
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $forecastType;
    /**
     * The fulfillingTransaction
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $fulfillingTransaction;
    /**
     * The fxAccount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $fxAccount;
    /**
     * The fxAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $fxAmount;
    /**
     * The fxCostEstimate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $fxCostEstimate;
    /**
     * The fxCostEstimateRate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $fxCostEstimateRate;
    /**
     * The fxEstGrossProfit
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $fxEstGrossProfit;
    /**
     * The fxTranCostEstimate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $fxTranCostEstimate;
    /**
     * The fxVsoeAllocation
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $fxVsoeAllocation;
    /**
     * The fxVsoeAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $fxVsoeAmount;
    /**
     * The fxVsoePrice
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $fxVsoePrice;
    /**
     * The gcoAvailabelToCharge
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $gcoAvailabelToCharge;
    /**
     * The gcoAvailableToRefund
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $gcoAvailableToRefund;
    /**
     * The gcoAvsStreetMatch
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $gcoAvsStreetMatch;
    /**
     * The gcoAvsZipMatch
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $gcoAvsZipMatch;
    /**
     * The gcoBuyerAccountAge
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnLongField[]
     */
    public $gcoBuyerAccountAge;
    /**
     * The gcoBuyerIp
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $gcoBuyerIp;
    /**
     * The gcoChargeAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $gcoChargeAmount;
    /**
     * The gcoChargebackAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $gcoChargebackAmount;
    /**
     * The gcoConfirmedChargedTotal
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $gcoConfirmedChargedTotal;
    /**
     * The gcoConfirmedRefundedTotal
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $gcoConfirmedRefundedTotal;
    /**
     * The gcoCreditcardNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $gcoCreditcardNumber;
    /**
     * The gcoCscMatch
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $gcoCscMatch;
    /**
     * The gcoFinancialState
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $gcoFinancialState;
    /**
     * The gcoFulfillmentState
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $gcoFulfillmentState;
    /**
     * The gcoOrderId
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $gcoOrderId;
    /**
     * The gcoOrderTotal
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $gcoOrderTotal;
    /**
     * The gcoPromotionAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $gcoPromotionAmount;
    /**
     * The gcoPromotionName
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $gcoPromotionName;
    /**
     * The gcoRefundAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $gcoRefundAmount;
    /**
     * The gcoShippingTotal
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $gcoShippingTotal;
    /**
     * The gcoStateChangedDetail
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $gcoStateChangedDetail;
    /**
     * The giftCert
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $giftCert;
    /**
     * The grossAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $grossAmount;
    /**
     * The includeInForecast
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $includeInForecast;
    /**
     * The incoterm
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $incoterm;
    /**
     * The intercoStatus
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $intercoStatus;
    /**
     * The intercoTransaction
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $intercoTransaction;
    /**
     * The internalId
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $internalId;
    /**
     * The inventoryLocation
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $inventoryLocation;
    /**
     * The inventorySubsidiary
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $inventorySubsidiary;
    /**
     * The inVsoeBundle
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $inVsoeBundle;
    /**
     * The isAllocation
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isAllocation;
    /**
     * The isBackflush
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isBackflush;
    /**
     * The isGcoChargeback
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isGcoChargeback;
    /**
     * The isGcoChargeConfirmed
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isGcoChargeConfirmed;
    /**
     * The isGcoPaymentGuaranteed
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isGcoPaymentGuaranteed;
    /**
     * The isGcoRefundConfirmed
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isGcoRefundConfirmed;
    /**
     * The isInsideDelivery
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isInsideDelivery;
    /**
     * The isInsidePickup
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isInsidePickup;
    /**
     * The isIntercompanyAdjustment
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isIntercompanyAdjustment;
    /**
     * The isInTransitPayment
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isInTransitPayment;
    /**
     * The isMultiShipTo
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isMultiShipTo;
    /**
     * The isReversal
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isReversal;
    /**
     * The isRevRecTransaction
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isRevRecTransaction;
    /**
     * The isScrap
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isScrap;
    /**
     * The isShipAddress
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isShipAddress;
    /**
     * The isTransferPriceCosting
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isTransferPriceCosting;
    /**
     * The isWip
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $isWip;
    /**
     * The item
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $item;
    /**
     * The itemFulfillmentChoice
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $itemFulfillmentChoice;
    /**
     * The itemRevision
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $itemRevision;
    /**
     * The landedCostPerLine
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $landedCostPerLine;
    /**
     * The lastModifiedDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $lastModifiedDate;
    /**
     * The leadSource
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $leadSource;
    /**
     * The line
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnLongField[]
     */
    public $line;
    /**
     * The lineSequenceNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnLongField[]
     */
    public $lineSequenceNumber;
    /**
     * The lineUniqueKey
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnLongField[]
     */
    public $lineUniqueKey;
    /**
     * The location
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $location;
    /**
     * The locationAutoAssigned
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $locationAutoAssigned;
    /**
     * The mainLine
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $mainLine;
    /**
     * The mainName
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $mainName;
    /**
     * The manufacturingRouting
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $manufacturingRouting;
    /**
     * The matchBillToReceipt
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $matchBillToReceipt;
    /**
     * The memo
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $memo;
    /**
     * The memoMain
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $memoMain;
    /**
     * The memorized
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $memorized;
    /**
     * The merchantAccount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $merchantAccount;
    /**
     * The message
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $message;
    /**
     * The multiSubsidiary
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $multiSubsidiary;
    /**
     * The netAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $netAmount;
    /**
     * The netAmountNoTax
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $netAmountNoTax;
    /**
     * The nextApprover
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $nextApprover;
    /**
     * The nextBillDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $nextBillDate;
    /**
     * The nexus
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $nexus;
    /**
     * The noAutoAssignLocation
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $noAutoAssignLocation;
    /**
     * The nonReimbursable
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $nonReimbursable;
    /**
     * The oneTimeTotal
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $oneTimeTotal;
    /**
     * The opportunity
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $opportunity;
    /**
     * The options
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $options;
    /**
     * The orderAllocationStrategy
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $orderAllocationStrategy;
    /**
     * The orderPriority
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $orderPriority;
    /**
     * The originator
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $originator;
    /**
     * The otherRefNum
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnTextNumberField[]
     */
    public $otherRefNum;
    /**
     * The overheadParentItem
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $overheadParentItem;
    /**
     * The overrideInstallments
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $overrideInstallments;
    /**
     * The packageCount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnLongField[]
     */
    public $packageCount;
    /**
     * The paidAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $paidAmount;
    /**
     * The paidTransaction
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $paidTransaction;
    /**
     * The partner
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $partner;
    /**
     * The partnerContribution
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $partnerContribution;
    /**
     * The partnerRole
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $partnerRole;
    /**
     * The partnerTeamMember
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $partnerTeamMember;
    /**
     * The payingAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $payingAmount;
    /**
     * The payingTransaction
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $payingTransaction;
    /**
     * The paymentApproved
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $paymentApproved;
    /**
     * The paymentEventDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $paymentEventDate;
    /**
     * The paymentEventHoldReason
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $paymentEventHoldReason;
    /**
     * The paymentEventPurchaseCardUsed
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $paymentEventPurchaseCardUsed;
    /**
     * The paymentEventPurchaseDataSent
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $paymentEventPurchaseDataSent;
    /**
     * The paymentEventResult
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $paymentEventResult;
    /**
     * The paymentEventType
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $paymentEventType;
    /**
     * The paymentHold
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $paymentHold;
    /**
     * The paymentMethod
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $paymentMethod;
    /**
     * The paymentOption
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $paymentOption;
    /**
     * The payPalPending
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $payPalPending;
    /**
     * The payPalStatus
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $payPalStatus;
    /**
     * The payPalTranId
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $payPalTranId;
    /**
     * The payrollBatch
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $payrollBatch;
    /**
     * The pnRefNum
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $pnRefNum;
    /**
     * The poRate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $poRate;
    /**
     * The posting
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $posting;
    /**
     * The postingPeriod
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $postingPeriod;
    /**
     * The priceLevel
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $priceLevel;
    /**
     * The print
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $print;
    /**
     * The probability
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $probability;
    /**
     * The projectedAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $projectedAmount;
    /**
     * The projectTask
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $projectTask;
    /**
     * The promoCode
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $promoCode;
    /**
     * The purchaseOrder
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $purchaseOrder;
    /**
     * The quantity
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $quantity;
    /**
     * The quantityBilled
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $quantityBilled;
    /**
     * The quantityCommitted
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $quantityCommitted;
    /**
     * The quantityPacked
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $quantityPacked;
    /**
     * The quantityPicked
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $quantityPicked;
    /**
     * The quantityRevCommitted
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $quantityRevCommitted;
    /**
     * The quantityShipRecv
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $quantityShipRecv;
    /**
     * The quantityUom
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $quantityUom;
    /**
     * The rate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $rate;
    /**
     * The realizedGainPostingTransaction
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $realizedGainPostingTransaction;
    /**
     * The recognizedRevenue
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $recognizedRevenue;
    /**
     * The recordType
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $recordType;
    /**
     * The recurAnnuallyTotal
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $recurAnnuallyTotal;
    /**
     * The recurMonthlyTotal
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $recurMonthlyTotal;
    /**
     * The recurQuarterlyTotal
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $recurQuarterlyTotal;
    /**
     * The recurringBill
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $recurringBill;
    /**
     * The recurWeeklyTotal
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $recurWeeklyTotal;
    /**
     * The refNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnLongField[]
     */
    public $refNumber;
    /**
     * The requestedDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $requestedDate;
    /**
     * The revCommitStatus
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $revCommitStatus;
    /**
     * The revCommittingTransaction
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $revCommittingTransaction;
    /**
     * The revenueStatus
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $revenueStatus;
    /**
     * The reversalDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $reversalDate;
    /**
     * The reversalNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $reversalNumber;
    /**
     * The revRecEndDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $revRecEndDate;
    /**
     * The revRecOnRevCommitment
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $revRecOnRevCommitment;
    /**
     * The revRecStartDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $revRecStartDate;
    /**
     * The rgAccount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $rgAccount;
    /**
     * The rgAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $rgAmount;
    /**
     * The salesEffectiveDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $salesEffectiveDate;
    /**
     * The salesOrder
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $salesOrder;
    /**
     * The salesRep
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $salesRep;
    /**
     * The salesTeamMember
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $salesTeamMember;
    /**
     * The salesTeamRole
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $salesTeamRole;
    /**
     * The schedulingMethod
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $schedulingMethod;
    /**
     * The serialNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $serialNumber;
    /**
     * The serialNumberCost
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $serialNumberCost;
    /**
     * The serialNumberCostAdjustment
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $serialNumberCostAdjustment;
    /**
     * The serialNumberQuantity
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $serialNumberQuantity;
    /**
     * The serialNumbers
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $serialNumbers;
    /**
     * 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 shipCarrier
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $shipCarrier;
    /**
     * The shipCity
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipCity;
    /**
     * The shipComplete
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $shipComplete;
    /**
     * 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 shipDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $shipDate;
    /**
     * The shipGroup
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnLongField[]
     */
    public $shipGroup;
    /**
     * The shipMethod
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $shipMethod;
    /**
     * The shipPhone
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipPhone;
    /**
     * The shippingAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $shippingAmount;
    /**
     * The shipRecvStatusLine
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $shipRecvStatusLine;
    /**
     * The shipState
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipState;
    /**
     * The shipTo
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $shipTo;
    /**
     * The shipZip
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $shipZip;
    /**
     * The signedAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $signedAmount;
    /**
     * The source
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $source;
    /**
     * The startDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $startDate;
    /**
     * The status
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $status;
    /**
     * The subscription
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $subscription;
    /**
     * The subscriptionLine
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $subscriptionLine;
    /**
     * The subsidiary
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $subsidiary;
    /**
     * The subsidiaryTaxRegNum
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $subsidiaryTaxRegNum;
    /**
     * The taxAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $taxAmount;
    /**
     * The taxCode
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $taxCode;
    /**
     * The taxLine
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $taxLine;
    /**
     * The taxPeriod
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $taxPeriod;
    /**
     * The taxPointDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $taxPointDate;
    /**
     * The taxTotal
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $taxTotal;
    /**
     * The termInMonths
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnLongField[]
     */
    public $termInMonths;
    /**
     * The terms
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $terms;
    /**
     * The termsOfSale
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $termsOfSale;
    /**
     * The title
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $title;
    /**
     * The toBeEmailed
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $toBeEmailed;
    /**
     * The toBePrinted
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $toBePrinted;
    /**
     * The toSubsidiary
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $toSubsidiary;
    /**
     * The total
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $total;
    /**
     * The totalCostEstimate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $totalCostEstimate;
    /**
     * The trackingNumbers
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $trackingNumbers;
    /**
     * The tranDate
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDateField[]
     */
    public $tranDate;
    /**
     * The tranEstGrossProfit
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $tranEstGrossProfit;
    /**
     * The tranFxEstGrossProfit
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $tranFxEstGrossProfit;
    /**
     * The tranId
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $tranId;
    /**
     * The tranIsVsoeBundle
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $tranIsVsoeBundle;
    /**
     * The transactionDiscount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $transactionDiscount;
    /**
     * The transactionLineType
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $transactionLineType;
    /**
     * The transactionNumber
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $transactionNumber;
    /**
     * The transferLocation
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $transferLocation;
    /**
     * The transferOrderItemLine
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $transferOrderItemLine;
    /**
     * The transferOrderQuantityCommitted
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $transferOrderQuantityCommitted;
    /**
     * The transferOrderQuantityPacked
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $transferOrderQuantityPacked;
    /**
     * The transferOrderQuantityPicked
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $transferOrderQuantityPicked;
    /**
     * The transferOrderQuantityReceived
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $transferOrderQuantityReceived;
    /**
     * The transferOrderQuantityShipped
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $transferOrderQuantityShipped;
    /**
     * The type
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $type;
    /**
     * The unit
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $unit;
    /**
     * The unitCostOverride
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $unitCostOverride;
    /**
     * The vendType
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnSelectField[]
     */
    public $vendType;
    /**
     * The visibleToCustomer
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $visibleToCustomer;
    /**
     * The vsoeAllocation
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $vsoeAllocation;
    /**
     * The vsoeAmount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $vsoeAmount;
    /**
     * The vsoeDeferral
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $vsoeDeferral;
    /**
     * The vsoeDelivered
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnBooleanField[]
     */
    public $vsoeDelivered;
    /**
     * The vsoePermitDiscount
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnEnumSelectField[]
     */
    public $vsoePermitDiscount;
    /**
     * The vsoePrice
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnDoubleField[]
     */
    public $vsoePrice;
    /**
     * The webSite
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var \StructType\SearchColumnStringField[]
     */
    public $webSite;
    /**
     * The customFieldList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\SearchColumnCustomFieldList
     */
    public $customFieldList;
    /**
     * Constructor method for TransactionSearchRowBasic
     * @uses TransactionSearchRowBasic::setAbbrev()
     * @uses TransactionSearchRowBasic::setAccount()
     * @uses TransactionSearchRowBasic::setAccountType()
     * @uses TransactionSearchRowBasic::setAcctCorpCardExp()
     * @uses TransactionSearchRowBasic::setActualShipDate()
     * @uses TransactionSearchRowBasic::setAltSalesAmount()
     * @uses TransactionSearchRowBasic::setAltSalesNetAmount()
     * @uses TransactionSearchRowBasic::setAmount()
     * @uses TransactionSearchRowBasic::setAmountPaid()
     * @uses TransactionSearchRowBasic::setAmountRemaining()
     * @uses TransactionSearchRowBasic::setAmountUnbilled()
     * @uses TransactionSearchRowBasic::setAppliedToForeignAmount()
     * @uses TransactionSearchRowBasic::setAppliedToIsFxVariance()
     * @uses TransactionSearchRowBasic::setAppliedToLinkAmount()
     * @uses TransactionSearchRowBasic::setAppliedToLinkType()
     * @uses TransactionSearchRowBasic::setAppliedToTransaction()
     * @uses TransactionSearchRowBasic::setApplyingForeignAmount()
     * @uses TransactionSearchRowBasic::setApplyingIsFxVariance()
     * @uses TransactionSearchRowBasic::setApplyingLinkAmount()
     * @uses TransactionSearchRowBasic::setApplyingLinkType()
     * @uses TransactionSearchRowBasic::setApplyingTransaction()
     * @uses TransactionSearchRowBasic::setApprovalStatus()
     * @uses TransactionSearchRowBasic::setAuthCode()
     * @uses TransactionSearchRowBasic::setAutoCalculateLag()
     * @uses TransactionSearchRowBasic::setAvsStreetMatch()
     * @uses TransactionSearchRowBasic::setAvsZipMatch()
     * @uses TransactionSearchRowBasic::setBillable()
     * @uses TransactionSearchRowBasic::setBillAddress()
     * @uses TransactionSearchRowBasic::setBillAddress1()
     * @uses TransactionSearchRowBasic::setBillAddress2()
     * @uses TransactionSearchRowBasic::setBillAddress3()
     * @uses TransactionSearchRowBasic::setBillAddressee()
     * @uses TransactionSearchRowBasic::setBillAttention()
     * @uses TransactionSearchRowBasic::setBillCity()
     * @uses TransactionSearchRowBasic::setBillCountry()
     * @uses TransactionSearchRowBasic::setBillCountryCode()
     * @uses TransactionSearchRowBasic::setBilledDate()
     * @uses TransactionSearchRowBasic::setBillingAccount()
     * @uses TransactionSearchRowBasic::setBillingAmount()
     * @uses TransactionSearchRowBasic::setBillingSchedule()
     * @uses TransactionSearchRowBasic::setBillingTransaction()
     * @uses TransactionSearchRowBasic::setBillPhone()
     * @uses TransactionSearchRowBasic::setBillState()
     * @uses TransactionSearchRowBasic::setBillVarianceStatus()
     * @uses TransactionSearchRowBasic::setBillZip()
     * @uses TransactionSearchRowBasic::setBinNumber()
     * @uses TransactionSearchRowBasic::setBinNumberQuantity()
     * @uses TransactionSearchRowBasic::setBomQuantity()
     * @uses TransactionSearchRowBasic::setBuildEntireAssembly()
     * @uses TransactionSearchRowBasic::setBuildVariance()
     * @uses TransactionSearchRowBasic::setBuilt()
     * @uses TransactionSearchRowBasic::setCanHaveStackablePromotions()
     * @uses TransactionSearchRowBasic::setCatchUpPeriod()
     * @uses TransactionSearchRowBasic::setCcCustomerCode()
     * @uses TransactionSearchRowBasic::setCcExpDate()
     * @uses TransactionSearchRowBasic::setCcHolderName()
     * @uses TransactionSearchRowBasic::setCcNumber()
     * @uses TransactionSearchRowBasic::setCcStreet()
     * @uses TransactionSearchRowBasic::setCcZipCode()
     * @uses TransactionSearchRowBasic::setClass()
     * @uses TransactionSearchRowBasic::setCleared()
     * @uses TransactionSearchRowBasic::setClosed()
     * @uses TransactionSearchRowBasic::setCloseDate()
     * @uses TransactionSearchRowBasic::setCogsAmount()
     * @uses TransactionSearchRowBasic::setCommissionEffectiveDate()
     * @uses TransactionSearchRowBasic::setCommit()
     * @uses TransactionSearchRowBasic::setComponentYield()
     * @uses TransactionSearchRowBasic::setConfirmationNumber()
     * @uses TransactionSearchRowBasic::setContribution()
     * @uses TransactionSearchRowBasic::setContributionPrimary()
     * @uses TransactionSearchRowBasic::setCostComponentAmount()
     * @uses TransactionSearchRowBasic::setCostComponentCategory()
     * @uses TransactionSearchRowBasic::setCostComponentItem()
     * @uses TransactionSearchRowBasic::setCostComponentQuantity()
     * @uses TransactionSearchRowBasic::setCostComponentStandardCost()
     * @uses TransactionSearchRowBasic::setCostEstimate()
     * @uses TransactionSearchRowBasic::setCostEstimateRate()
     * @uses TransactionSearchRowBasic::setCostEstimateType()
     * @uses TransactionSearchRowBasic::setCreatedBy()
     * @uses TransactionSearchRowBasic::setCreatedFrom()
     * @uses TransactionSearchRowBasic::setCreditAmount()
     * @uses TransactionSearchRowBasic::setCscMatch()
     * @uses TransactionSearchRowBasic::setCurrency()
     * @uses TransactionSearchRowBasic::setCustomForm()
     * @uses TransactionSearchRowBasic::setCustomGL()
     * @uses TransactionSearchRowBasic::setCustType()
     * @uses TransactionSearchRowBasic::setDateCreated()
     * @uses TransactionSearchRowBasic::setDaysOpen()
     * @uses TransactionSearchRowBasic::setDaysOverdue()
     * @uses TransactionSearchRowBasic::setDebitAmount()
     * @uses TransactionSearchRowBasic::setDeferredRevenue()
     * @uses TransactionSearchRowBasic::setDeferRevRec()
     * @uses TransactionSearchRowBasic::setDepartment()
     * @uses TransactionSearchRowBasic::setDepositDate()
     * @uses TransactionSearchRowBasic::setDepositTransaction()
     * @uses TransactionSearchRowBasic::setDiscountAmount()
     * @uses TransactionSearchRowBasic::setDocUnit()
     * @uses TransactionSearchRowBasic::setDrAccount()
     * @uses TransactionSearchRowBasic::setDueDate()
     * @uses TransactionSearchRowBasic::setEffectiveRate()
     * @uses TransactionSearchRowBasic::setEmail()
     * @uses TransactionSearchRowBasic::setEndDate()
     * @uses TransactionSearchRowBasic::setEntity()
     * @uses TransactionSearchRowBasic::setEntityStatus()
     * @uses TransactionSearchRowBasic::setEstGrossProfit()
     * @uses TransactionSearchRowBasic::setEstGrossProfitPct()
     * @uses TransactionSearchRowBasic::setEstGrossProfitPercent()
     * @uses TransactionSearchRowBasic::setExchangeRate()
     * @uses TransactionSearchRowBasic::setExcludeCommission()
     * @uses TransactionSearchRowBasic::setExcludeFromRateRequest()
     * @uses TransactionSearchRowBasic::setExpectedCloseDate()
     * @uses TransactionSearchRowBasic::setExpectedReceiptDate()
     * @uses TransactionSearchRowBasic::setExpenseCategory()
     * @uses TransactionSearchRowBasic::setExpenseDate()
     * @uses TransactionSearchRowBasic::setExternalId()
     * @uses TransactionSearchRowBasic::setFirmed()
     * @uses TransactionSearchRowBasic::setForecastType()
     * @uses TransactionSearchRowBasic::setFulfillingTransaction()
     * @uses TransactionSearchRowBasic::setFxAccount()
     * @uses TransactionSearchRowBasic::setFxAmount()
     * @uses TransactionSearchRowBasic::setFxCostEstimate()
     * @uses TransactionSearchRowBasic::setFxCostEstimateRate()
     * @uses TransactionSearchRowBasic::setFxEstGrossProfit()
     * @uses TransactionSearchRowBasic::setFxTranCostEstimate()
     * @uses TransactionSearchRowBasic::setFxVsoeAllocation()
     * @uses TransactionSearchRowBasic::setFxVsoeAmount()
     * @uses TransactionSearchRowBasic::setFxVsoePrice()
     * @uses TransactionSearchRowBasic::setGcoAvailabelToCharge()
     * @uses TransactionSearchRowBasic::setGcoAvailableToRefund()
     * @uses TransactionSearchRowBasic::setGcoAvsStreetMatch()
     * @uses TransactionSearchRowBasic::setGcoAvsZipMatch()
     * @uses TransactionSearchRowBasic::setGcoBuyerAccountAge()
     * @uses TransactionSearchRowBasic::setGcoBuyerIp()
     * @uses TransactionSearchRowBasic::setGcoChargeAmount()
     * @uses TransactionSearchRowBasic::setGcoChargebackAmount()
     * @uses TransactionSearchRowBasic::setGcoConfirmedChargedTotal()
     * @uses TransactionSearchRowBasic::setGcoConfirmedRefundedTotal()
     * @uses TransactionSearchRowBasic::setGcoCreditcardNumber()
     * @uses TransactionSearchRowBasic::setGcoCscMatch()
     * @uses TransactionSearchRowBasic::setGcoFinancialState()
     * @uses TransactionSearchRowBasic::setGcoFulfillmentState()
     * @uses TransactionSearchRowBasic::setGcoOrderId()
     * @uses TransactionSearchRowBasic::setGcoOrderTotal()
     * @uses TransactionSearchRowBasic::setGcoPromotionAmount()
     * @uses TransactionSearchRowBasic::setGcoPromotionName()
     * @uses TransactionSearchRowBasic::setGcoRefundAmount()
     * @uses TransactionSearchRowBasic::setGcoShippingTotal()
     * @uses TransactionSearchRowBasic::setGcoStateChangedDetail()
     * @uses TransactionSearchRowBasic::setGiftCert()
     * @uses TransactionSearchRowBasic::setGrossAmount()
     * @uses TransactionSearchRowBasic::setIncludeInForecast()
     * @uses TransactionSearchRowBasic::setIncoterm()
     * @uses TransactionSearchRowBasic::setIntercoStatus()
     * @uses TransactionSearchRowBasic::setIntercoTransaction()
     * @uses TransactionSearchRowBasic::setInternalId()
     * @uses TransactionSearchRowBasic::setInventoryLocation()
     * @uses TransactionSearchRowBasic::setInventorySubsidiary()
     * @uses TransactionSearchRowBasic::setInVsoeBundle()
     * @uses TransactionSearchRowBasic::setIsAllocation()
     * @uses TransactionSearchRowBasic::setIsBackflush()
     * @uses TransactionSearchRowBasic::setIsGcoChargeback()
     * @uses TransactionSearchRowBasic::setIsGcoChargeConfirmed()
     * @uses TransactionSearchRowBasic::setIsGcoPaymentGuaranteed()
     * @uses TransactionSearchRowBasic::setIsGcoRefundConfirmed()
     * @uses TransactionSearchRowBasic::setIsInsideDelivery()
     * @uses TransactionSearchRowBasic::setIsInsidePickup()
     * @uses TransactionSearchRowBasic::setIsIntercompanyAdjustment()
     * @uses TransactionSearchRowBasic::setIsInTransitPayment()
     * @uses TransactionSearchRowBasic::setIsMultiShipTo()
     * @uses TransactionSearchRowBasic::setIsReversal()
     * @uses TransactionSearchRowBasic::setIsRevRecTransaction()
     * @uses TransactionSearchRowBasic::setIsScrap()
     * @uses TransactionSearchRowBasic::setIsShipAddress()
     * @uses TransactionSearchRowBasic::setIsTransferPriceCosting()
     * @uses TransactionSearchRowBasic::setIsWip()
     * @uses TransactionSearchRowBasic::setItem()
     * @uses TransactionSearchRowBasic::setItemFulfillmentChoice()
     * @uses TransactionSearchRowBasic::setItemRevision()
     * @uses TransactionSearchRowBasic::setLandedCostPerLine()
     * @uses TransactionSearchRowBasic::setLastModifiedDate()
     * @uses TransactionSearchRowBasic::setLeadSource()
     * @uses TransactionSearchRowBasic::setLine()
     * @uses TransactionSearchRowBasic::setLineSequenceNumber()
     * @uses TransactionSearchRowBasic::setLineUniqueKey()
     * @uses TransactionSearchRowBasic::setLocation()
     * @uses TransactionSearchRowBasic::setLocationAutoAssigned()
     * @uses TransactionSearchRowBasic::setMainLine()
     * @uses TransactionSearchRowBasic::setMainName()
     * @uses TransactionSearchRowBasic::setManufacturingRouting()
     * @uses TransactionSearchRowBasic::setMatchBillToReceipt()
     * @uses TransactionSearchRowBasic::setMemo()
     * @uses TransactionSearchRowBasic::setMemoMain()
     * @uses TransactionSearchRowBasic::setMemorized()
     * @uses TransactionSearchRowBasic::setMerchantAccount()
     * @uses TransactionSearchRowBasic::setMessage()
     * @uses TransactionSearchRowBasic::setMultiSubsidiary()
     * @uses TransactionSearchRowBasic::setNetAmount()
     * @uses TransactionSearchRowBasic::setNetAmountNoTax()
     * @uses TransactionSearchRowBasic::setNextApprover()
     * @uses TransactionSearchRowBasic::setNextBillDate()
     * @uses TransactionSearchRowBasic::setNexus()
     * @uses TransactionSearchRowBasic::setNoAutoAssignLocation()
     * @uses TransactionSearchRowBasic::setNonReimbursable()
     * @uses TransactionSearchRowBasic::setOneTimeTotal()
     * @uses TransactionSearchRowBasic::setOpportunity()
     * @uses TransactionSearchRowBasic::setOptions()
     * @uses TransactionSearchRowBasic::setOrderAllocationStrategy()
     * @uses TransactionSearchRowBasic::setOrderPriority()
     * @uses TransactionSearchRowBasic::setOriginator()
     * @uses TransactionSearchRowBasic::setOtherRefNum()
     * @uses TransactionSearchRowBasic::setOverheadParentItem()
     * @uses TransactionSearchRowBasic::setOverrideInstallments()
     * @uses TransactionSearchRowBasic::setPackageCount()
     * @uses TransactionSearchRowBasic::setPaidAmount()
     * @uses TransactionSearchRowBasic::setPaidTransaction()
     * @uses TransactionSearchRowBasic::setPartner()
     * @uses TransactionSearchRowBasic::setPartnerContribution()
     * @uses TransactionSearchRowBasic::setPartnerRole()
     * @uses TransactionSearchRowBasic::setPartnerTeamMember()
     * @uses TransactionSearchRowBasic::setPayingAmount()
     * @uses TransactionSearchRowBasic::setPayingTransaction()
     * @uses TransactionSearchRowBasic::setPaymentApproved()
     * @uses TransactionSearchRowBasic::setPaymentEventDate()
     * @uses TransactionSearchRowBasic::setPaymentEventHoldReason()
     * @uses TransactionSearchRowBasic::setPaymentEventPurchaseCardUsed()
     * @uses TransactionSearchRowBasic::setPaymentEventPurchaseDataSent()
     * @uses TransactionSearchRowBasic::setPaymentEventResult()
     * @uses TransactionSearchRowBasic::setPaymentEventType()
     * @uses TransactionSearchRowBasic::setPaymentHold()
     * @uses TransactionSearchRowBasic::setPaymentMethod()
     * @uses TransactionSearchRowBasic::setPaymentOption()
     * @uses TransactionSearchRowBasic::setPayPalPending()
     * @uses TransactionSearchRowBasic::setPayPalStatus()
     * @uses TransactionSearchRowBasic::setPayPalTranId()
     * @uses TransactionSearchRowBasic::setPayrollBatch()
     * @uses TransactionSearchRowBasic::setPnRefNum()
     * @uses TransactionSearchRowBasic::setPoRate()
     * @uses TransactionSearchRowBasic::setPosting()
     * @uses TransactionSearchRowBasic::setPostingPeriod()
     * @uses TransactionSearchRowBasic::setPriceLevel()
     * @uses TransactionSearchRowBasic::setPrint()
     * @uses TransactionSearchRowBasic::setProbability()
     * @uses TransactionSearchRowBasic::setProjectedAmount()
     * @uses TransactionSearchRowBasic::setProjectTask()
     * @uses TransactionSearchRowBasic::setPromoCode()
     * @uses TransactionSearchRowBasic::setPurchaseOrder()
     * @uses TransactionSearchRowBasic::setQuantity()
     * @uses TransactionSearchRowBasic::setQuantityBilled()
     * @uses TransactionSearchRowBasic::setQuantityCommitted()
     * @uses TransactionSearchRowBasic::setQuantityPacked()
     * @uses TransactionSearchRowBasic::setQuantityPicked()
     * @uses TransactionSearchRowBasic::setQuantityRevCommitted()
     * @uses TransactionSearchRowBasic::setQuantityShipRecv()
     * @uses TransactionSearchRowBasic::setQuantityUom()
     * @uses TransactionSearchRowBasic::setRate()
     * @uses TransactionSearchRowBasic::setRealizedGainPostingTransaction()
     * @uses TransactionSearchRowBasic::setRecognizedRevenue()
     * @uses TransactionSearchRowBasic::setRecordType()
     * @uses TransactionSearchRowBasic::setRecurAnnuallyTotal()
     * @uses TransactionSearchRowBasic::setRecurMonthlyTotal()
     * @uses TransactionSearchRowBasic::setRecurQuarterlyTotal()
     * @uses TransactionSearchRowBasic::setRecurringBill()
     * @uses TransactionSearchRowBasic::setRecurWeeklyTotal()
     * @uses TransactionSearchRowBasic::setRefNumber()
     * @uses TransactionSearchRowBasic::setRequestedDate()
     * @uses TransactionSearchRowBasic::setRevCommitStatus()
     * @uses TransactionSearchRowBasic::setRevCommittingTransaction()
     * @uses TransactionSearchRowBasic::setRevenueStatus()
     * @uses TransactionSearchRowBasic::setReversalDate()
     * @uses TransactionSearchRowBasic::setReversalNumber()
     * @uses TransactionSearchRowBasic::setRevRecEndDate()
     * @uses TransactionSearchRowBasic::setRevRecOnRevCommitment()
     * @uses TransactionSearchRowBasic::setRevRecStartDate()
     * @uses TransactionSearchRowBasic::setRgAccount()
     * @uses TransactionSearchRowBasic::setRgAmount()
     * @uses TransactionSearchRowBasic::setSalesEffectiveDate()
     * @uses TransactionSearchRowBasic::setSalesOrder()
     * @uses TransactionSearchRowBasic::setSalesRep()
     * @uses TransactionSearchRowBasic::setSalesTeamMember()
     * @uses TransactionSearchRowBasic::setSalesTeamRole()
     * @uses TransactionSearchRowBasic::setSchedulingMethod()
     * @uses TransactionSearchRowBasic::setSerialNumber()
     * @uses TransactionSearchRowBasic::setSerialNumberCost()
     * @uses TransactionSearchRowBasic::setSerialNumberCostAdjustment()
     * @uses TransactionSearchRowBasic::setSerialNumberQuantity()
     * @uses TransactionSearchRowBasic::setSerialNumbers()
     * @uses TransactionSearchRowBasic::setShipAddress()
     * @uses TransactionSearchRowBasic::setShipAddress1()
     * @uses TransactionSearchRowBasic::setShipAddress2()
     * @uses TransactionSearchRowBasic::setShipAddress3()
     * @uses TransactionSearchRowBasic::setShipAddressee()
     * @uses TransactionSearchRowBasic::setShipAttention()
     * @uses TransactionSearchRowBasic::setShipCarrier()
     * @uses TransactionSearchRowBasic::setShipCity()
     * @uses TransactionSearchRowBasic::setShipComplete()
     * @uses TransactionSearchRowBasic::setShipCountry()
     * @uses TransactionSearchRowBasic::setShipCountryCode()
     * @uses TransactionSearchRowBasic::setShipDate()
     * @uses TransactionSearchRowBasic::setShipGroup()
     * @uses TransactionSearchRowBasic::setShipMethod()
     * @uses TransactionSearchRowBasic::setShipPhone()
     * @uses TransactionSearchRowBasic::setShippingAmount()
     * @uses TransactionSearchRowBasic::setShipRecvStatusLine()
     * @uses TransactionSearchRowBasic::setShipState()
     * @uses TransactionSearchRowBasic::setShipTo()
     * @uses TransactionSearchRowBasic::setShipZip()
     * @uses TransactionSearchRowBasic::setSignedAmount()
     * @uses TransactionSearchRowBasic::setSource()
     * @uses TransactionSearchRowBasic::setStartDate()
     * @uses TransactionSearchRowBasic::setStatus()
     * @uses TransactionSearchRowBasic::setSubscription()
     * @uses TransactionSearchRowBasic::setSubscriptionLine()
     * @uses TransactionSearchRowBasic::setSubsidiary()
     * @uses TransactionSearchRowBasic::setSubsidiaryTaxRegNum()
     * @uses TransactionSearchRowBasic::setTaxAmount()
     * @uses TransactionSearchRowBasic::setTaxCode()
     * @uses TransactionSearchRowBasic::setTaxLine()
     * @uses TransactionSearchRowBasic::setTaxPeriod()
     * @uses TransactionSearchRowBasic::setTaxPointDate()
     * @uses TransactionSearchRowBasic::setTaxTotal()
     * @uses TransactionSearchRowBasic::setTermInMonths()
     * @uses TransactionSearchRowBasic::setTerms()
     * @uses TransactionSearchRowBasic::setTermsOfSale()
     * @uses TransactionSearchRowBasic::setTitle()
     * @uses TransactionSearchRowBasic::setToBeEmailed()
     * @uses TransactionSearchRowBasic::setToBePrinted()
     * @uses TransactionSearchRowBasic::setToSubsidiary()
     * @uses TransactionSearchRowBasic::setTotal()
     * @uses TransactionSearchRowBasic::setTotalCostEstimate()
     * @uses TransactionSearchRowBasic::setTrackingNumbers()
     * @uses TransactionSearchRowBasic::setTranDate()
     * @uses TransactionSearchRowBasic::setTranEstGrossProfit()
     * @uses TransactionSearchRowBasic::setTranFxEstGrossProfit()
     * @uses TransactionSearchRowBasic::setTranId()
     * @uses TransactionSearchRowBasic::setTranIsVsoeBundle()
     * @uses TransactionSearchRowBasic::setTransactionDiscount()
     * @uses TransactionSearchRowBasic::setTransactionLineType()
     * @uses TransactionSearchRowBasic::setTransactionNumber()
     * @uses TransactionSearchRowBasic::setTransferLocation()
     * @uses TransactionSearchRowBasic::setTransferOrderItemLine()
     * @uses TransactionSearchRowBasic::setTransferOrderQuantityCommitted()
     * @uses TransactionSearchRowBasic::setTransferOrderQuantityPacked()
     * @uses TransactionSearchRowBasic::setTransferOrderQuantityPicked()
     * @uses TransactionSearchRowBasic::setTransferOrderQuantityReceived()
     * @uses TransactionSearchRowBasic::setTransferOrderQuantityShipped()
     * @uses TransactionSearchRowBasic::setType()
     * @uses TransactionSearchRowBasic::setUnit()
     * @uses TransactionSearchRowBasic::setUnitCostOverride()
     * @uses TransactionSearchRowBasic::setVendType()
     * @uses TransactionSearchRowBasic::setVisibleToCustomer()
     * @uses TransactionSearchRowBasic::setVsoeAllocation()
     * @uses TransactionSearchRowBasic::setVsoeAmount()
     * @uses TransactionSearchRowBasic::setVsoeDeferral()
     * @uses TransactionSearchRowBasic::setVsoeDelivered()
     * @uses TransactionSearchRowBasic::setVsoePermitDiscount()
     * @uses TransactionSearchRowBasic::setVsoePrice()
     * @uses TransactionSearchRowBasic::setWebSite()
     * @uses TransactionSearchRowBasic::setCustomFieldList()
     * @param \StructType\SearchColumnStringField[] $abbrev
     * @param \StructType\SearchColumnSelectField[] $account
     * @param \StructType\SearchColumnEnumSelectField[] $accountType
     * @param \StructType\SearchColumnSelectField[] $acctCorpCardExp
     * @param \StructType\SearchColumnDateField[] $actualShipDate
     * @param \StructType\SearchColumnDoubleField[] $altSalesAmount
     * @param \StructType\SearchColumnDoubleField[] $altSalesNetAmount
     * @param \StructType\SearchColumnDoubleField[] $amount
     * @param \StructType\SearchColumnDoubleField[] $amountPaid
     * @param \StructType\SearchColumnDoubleField[] $amountRemaining
     * @param \StructType\SearchColumnDoubleField[] $amountUnbilled
     * @param \StructType\SearchColumnDoubleField[] $appliedToForeignAmount
     * @param \StructType\SearchColumnBooleanField[] $appliedToIsFxVariance
     * @param \StructType\SearchColumnDoubleField[] $appliedToLinkAmount
     * @param \StructType\SearchColumnStringField[] $appliedToLinkType
     * @param \StructType\SearchColumnSelectField[] $appliedToTransaction
     * @param \StructType\SearchColumnDoubleField[] $applyingForeignAmount
     * @param \StructType\SearchColumnBooleanField[] $applyingIsFxVariance
     * @param \StructType\SearchColumnDoubleField[] $applyingLinkAmount
     * @param \StructType\SearchColumnStringField[] $applyingLinkType
     * @param \StructType\SearchColumnSelectField[] $applyingTransaction
     * @param \StructType\SearchColumnEnumSelectField[] $approvalStatus
     * @param \StructType\SearchColumnStringField[] $authCode
     * @param \StructType\SearchColumnBooleanField[] $autoCalculateLag
     * @param \StructType\SearchColumnEnumSelectField[] $avsStreetMatch
     * @param \StructType\SearchColumnEnumSelectField[] $avsZipMatch
     * @param \StructType\SearchColumnBooleanField[] $billable
     * @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\SearchColumnDateField[] $billedDate
     * @param \StructType\SearchColumnSelectField[] $billingAccount
     * @param \StructType\SearchColumnDoubleField[] $billingAmount
     * @param \StructType\SearchColumnSelectField[] $billingSchedule
     * @param \StructType\SearchColumnSelectField[] $billingTransaction
     * @param \StructType\SearchColumnStringField[] $billPhone
     * @param \StructType\SearchColumnStringField[] $billState
     * @param \StructType\SearchColumnEnumSelectField[] $billVarianceStatus
     * @param \StructType\SearchColumnStringField[] $billZip
     * @param \StructType\SearchColumnStringField[] $binNumber
     * @param \StructType\SearchColumnDoubleField[] $binNumberQuantity
     * @param \StructType\SearchColumnDoubleField[] $bomQuantity
     * @param \StructType\SearchColumnBooleanField[] $buildEntireAssembly
     * @param \StructType\SearchColumnDoubleField[] $buildVariance
     * @param \StructType\SearchColumnDoubleField[] $built
     * @param \StructType\SearchColumnBooleanField[] $canHaveStackablePromotions
     * @param \StructType\SearchColumnStringField[] $catchUpPeriod
     * @param \StructType\SearchColumnStringField[] $ccCustomerCode
     * @param \StructType\SearchColumnDateField[] $ccExpDate
     * @param \StructType\SearchColumnStringField[] $ccHolderName
     * @param \StructType\SearchColumnStringField[] $ccNumber
     * @param \StructType\SearchColumnStringField[] $ccStreet
     * @param \StructType\SearchColumnStringField[] $ccZipCode
     * @param \StructType\SearchColumnSelectField[] $class
     * @param \StructType\SearchColumnBooleanField[] $cleared
     * @param \StructType\SearchColumnBooleanField[] $closed
     * @param \StructType\SearchColumnDateField[] $closeDate
     * @param \StructType\SearchColumnDoubleField[] $cogsAmount
     * @param \StructType\SearchColumnDateField[] $commissionEffectiveDate
     * @param \StructType\SearchColumnEnumSelectField[] $commit
     * @param \StructType\SearchColumnDoubleField[] $componentYield
     * @param \StructType\SearchColumnStringField[] $confirmationNumber
     * @param \StructType\SearchColumnDoubleField[] $contribution
     * @param \StructType\SearchColumnDoubleField[] $contributionPrimary
     * @param \StructType\SearchColumnDoubleField[] $costComponentAmount
     * @param \StructType\SearchColumnStringField[] $costComponentCategory
     * @param \StructType\SearchColumnStringField[] $costComponentItem
     * @param \StructType\SearchColumnDoubleField[] $costComponentQuantity
     * @param \StructType\SearchColumnDoubleField[] $costComponentStandardCost
     * @param \StructType\SearchColumnDoubleField[] $costEstimate
     * @param \StructType\SearchColumnDoubleField[] $costEstimateRate
     * @param \StructType\SearchColumnEnumSelectField[] $costEstimateType
     * @param \StructType\SearchColumnSelectField[] $createdBy
     * @param \StructType\SearchColumnSelectField[] $createdFrom
     * @param \StructType\SearchColumnDoubleField[] $creditAmount
     * @param \StructType\SearchColumnEnumSelectField[] $cscMatch
     * @param \StructType\SearchColumnSelectField[] $currency
     * @param \StructType\SearchColumnSelectField[] $customForm
     * @param \StructType\SearchColumnBooleanField[] $customGL
     * @param \StructType\SearchColumnSelectField[] $custType
     * @param \StructType\SearchColumnDateField[] $dateCreated
     * @param \StructType\SearchColumnLongField[] $daysOpen
     * @param \StructType\SearchColumnLongField[] $daysOverdue
     * @param \StructType\SearchColumnDoubleField[] $debitAmount
     * @param \StructType\SearchColumnDoubleField[] $deferredRevenue
     * @param \StructType\SearchColumnBooleanField[] $deferRevRec
     * @param \StructType\SearchColumnSelectField[] $department
     * @param \StructType\SearchColumnDateField[] $depositDate
     * @param \StructType\SearchColumnSelectField[] $depositTransaction
     * @param \StructType\SearchColumnDoubleField[] $discountAmount
     * @param \StructType\SearchColumnStringField[] $docUnit
     * @param \StructType\SearchColumnStringField[] $drAccount
     * @param \StructType\SearchColumnDateField[] $dueDate
     * @param \StructType\SearchColumnDoubleField[] $effectiveRate
     * @param \StructType\SearchColumnStringField[] $email
     * @param \StructType\SearchColumnDateField[] $endDate
     * @param \StructType\SearchColumnSelectField[] $entity
     * @param \StructType\SearchColumnSelectField[] $entityStatus
     * @param \StructType\SearchColumnDoubleField[] $estGrossProfit
     * @param \StructType\SearchColumnDoubleField[] $estGrossProfitPct
     * @param \StructType\SearchColumnDoubleField[] $estGrossProfitPercent
     * @param \StructType\SearchColumnDoubleField[] $exchangeRate
     * @param \StructType\SearchColumnBooleanField[] $excludeCommission
     * @param \StructType\SearchColumnBooleanField[] $excludeFromRateRequest
     * @param \StructType\SearchColumnDateField[] $expectedCloseDate
     * @param \StructType\SearchColumnDateField[] $expectedReceiptDate
     * @param \StructType\SearchColumnSelectField[] $expenseCategory
     * @param \StructType\SearchColumnDateField[] $expenseDate
     * @param \StructType\SearchColumnSelectField[] $externalId
     * @param \StructType\SearchColumnBooleanField[] $firmed
     * @param \StructType\SearchColumnEnumSelectField[] $forecastType
     * @param \StructType\SearchColumnSelectField[] $fulfillingTransaction
     * @param \StructType\SearchColumnStringField[] $fxAccount
     * @param \StructType\SearchColumnDoubleField[] $fxAmount
     * @param \StructType\SearchColumnDoubleField[] $fxCostEstimate
     * @param \StructType\SearchColumnDoubleField[] $fxCostEstimateRate
     * @param \StructType\SearchColumnDoubleField[] $fxEstGrossProfit
     * @param \StructType\SearchColumnDoubleField[] $fxTranCostEstimate
     * @param \StructType\SearchColumnDoubleField[] $fxVsoeAllocation
     * @param \StructType\SearchColumnDoubleField[] $fxVsoeAmount
     * @param \StructType\SearchColumnDoubleField[] $fxVsoePrice
     * @param \StructType\SearchColumnBooleanField[] $gcoAvailabelToCharge
     * @param \StructType\SearchColumnBooleanField[] $gcoAvailableToRefund
     * @param \StructType\SearchColumnEnumSelectField[] $gcoAvsStreetMatch
     * @param \StructType\SearchColumnEnumSelectField[] $gcoAvsZipMatch
     * @param \StructType\SearchColumnLongField[] $gcoBuyerAccountAge
     * @param \StructType\SearchColumnStringField[] $gcoBuyerIp
     * @param \StructType\SearchColumnDoubleField[] $gcoChargeAmount
     * @param \StructType\SearchColumnDoubleField[] $gcoChargebackAmount
     * @param \StructType\SearchColumnDoubleField[] $gcoConfirmedChargedTotal
     * @param \StructType\SearchColumnDoubleField[] $gcoConfirmedRefundedTotal
     * @param \StructType\SearchColumnStringField[] $gcoCreditcardNumber
     * @param \StructType\SearchColumnEnumSelectField[] $gcoCscMatch
     * @param \StructType\SearchColumnStringField[] $gcoFinancialState
     * @param \StructType\SearchColumnStringField[] $gcoFulfillmentState
     * @param \StructType\SearchColumnStringField[] $gcoOrderId
     * @param \StructType\SearchColumnDoubleField[] $gcoOrderTotal
     * @param \StructType\SearchColumnDoubleField[] $gcoPromotionAmount
     * @param \StructType\SearchColumnStringField[] $gcoPromotionName
     * @param \StructType\SearchColumnDoubleField[] $gcoRefundAmount
     * @param \StructType\SearchColumnDoubleField[] $gcoShippingTotal
     * @param \StructType\SearchColumnStringField[] $gcoStateChangedDetail
     * @param \StructType\SearchColumnStringField[] $giftCert
     * @param \StructType\SearchColumnDoubleField[] $grossAmount
     * @param \StructType\SearchColumnBooleanField[] $includeInForecast
     * @param \StructType\SearchColumnSelectField[] $incoterm
     * @param \StructType\SearchColumnEnumSelectField[] $intercoStatus
     * @param \StructType\SearchColumnStringField[] $intercoTransaction
     * @param \StructType\SearchColumnSelectField[] $internalId
     * @param \StructType\SearchColumnSelectField[] $inventoryLocation
     * @param \StructType\SearchColumnSelectField[] $inventorySubsidiary
     * @param \StructType\SearchColumnBooleanField[] $inVsoeBundle
     * @param \StructType\SearchColumnBooleanField[] $isAllocation
     * @param \StructType\SearchColumnBooleanField[] $isBackflush
     * @param \StructType\SearchColumnBooleanField[] $isGcoChargeback
     * @param \StructType\SearchColumnBooleanField[] $isGcoChargeConfirmed
     * @param \StructType\SearchColumnBooleanField[] $isGcoPaymentGuaranteed
     * @param \StructType\SearchColumnBooleanField[] $isGcoRefundConfirmed
     * @param \StructType\SearchColumnBooleanField[] $isInsideDelivery
     * @param \StructType\SearchColumnBooleanField[] $isInsidePickup
     * @param \StructType\SearchColumnBooleanField[] $isIntercompanyAdjustment
     * @param \StructType\SearchColumnBooleanField[] $isInTransitPayment
     * @param \StructType\SearchColumnBooleanField[] $isMultiShipTo
     * @param \StructType\SearchColumnBooleanField[] $isReversal
     * @param \StructType\SearchColumnBooleanField[] $isRevRecTransaction
     * @param \StructType\SearchColumnBooleanField[] $isScrap
     * @param \StructType\SearchColumnBooleanField[] $isShipAddress
     * @param \StructType\SearchColumnBooleanField[] $isTransferPriceCosting
     * @param \StructType\SearchColumnBooleanField[] $isWip
     * @param \StructType\SearchColumnSelectField[] $item
     * @param \StructType\SearchColumnEnumSelectField[] $itemFulfillmentChoice
     * @param \StructType\SearchColumnSelectField[] $itemRevision
     * @param \StructType\SearchColumnBooleanField[] $landedCostPerLine
     * @param \StructType\SearchColumnDateField[] $lastModifiedDate
     * @param \StructType\SearchColumnSelectField[] $leadSource
     * @param \StructType\SearchColumnLongField[] $line
     * @param \StructType\SearchColumnLongField[] $lineSequenceNumber
     * @param \StructType\SearchColumnLongField[] $lineUniqueKey
     * @param \StructType\SearchColumnSelectField[] $location
     * @param \StructType\SearchColumnBooleanField[] $locationAutoAssigned
     * @param \StructType\SearchColumnBooleanField[] $mainLine
     * @param \StructType\SearchColumnStringField[] $mainName
     * @param \StructType\SearchColumnSelectField[] $manufacturingRouting
     * @param \StructType\SearchColumnBooleanField[] $matchBillToReceipt
     * @param \StructType\SearchColumnStringField[] $memo
     * @param \StructType\SearchColumnStringField[] $memoMain
     * @param \StructType\SearchColumnBooleanField[] $memorized
     * @param \StructType\SearchColumnSelectField[] $merchantAccount
     * @param \StructType\SearchColumnStringField[] $message
     * @param \StructType\SearchColumnBooleanField[] $multiSubsidiary
     * @param \StructType\SearchColumnDoubleField[] $netAmount
     * @param \StructType\SearchColumnDoubleField[] $netAmountNoTax
     * @param \StructType\SearchColumnSelectField[] $nextApprover
     * @param \StructType\SearchColumnDateField[] $nextBillDate
     * @param \StructType\SearchColumnSelectField[] $nexus
     * @param \StructType\SearchColumnBooleanField[] $noAutoAssignLocation
     * @param \StructType\SearchColumnBooleanField[] $nonReimbursable
     * @param \StructType\SearchColumnDoubleField[] $oneTimeTotal
     * @param \StructType\SearchColumnSelectField[] $opportunity
     * @param \StructType\SearchColumnStringField[] $options
     * @param \StructType\SearchColumnSelectField[] $orderAllocationStrategy
     * @param \StructType\SearchColumnDoubleField[] $orderPriority
     * @param \StructType\SearchColumnEnumSelectField[] $originator
     * @param \StructType\SearchColumnTextNumberField[] $otherRefNum
     * @param \StructType\SearchColumnSelectField[] $overheadParentItem
     * @param \StructType\SearchColumnBooleanField[] $overrideInstallments
     * @param \StructType\SearchColumnLongField[] $packageCount
     * @param \StructType\SearchColumnDoubleField[] $paidAmount
     * @param \StructType\SearchColumnSelectField[] $paidTransaction
     * @param \StructType\SearchColumnSelectField[] $partner
     * @param \StructType\SearchColumnDoubleField[] $partnerContribution
     * @param \StructType\SearchColumnSelectField[] $partnerRole
     * @param \StructType\SearchColumnSelectField[] $partnerTeamMember
     * @param \StructType\SearchColumnDoubleField[] $payingAmount
     * @param \StructType\SearchColumnSelectField[] $payingTransaction
     * @param \StructType\SearchColumnBooleanField[] $paymentApproved
     * @param \StructType\SearchColumnDateField[] $paymentEventDate
     * @param \StructType\SearchColumnEnumSelectField[] $paymentEventHoldReason
     * @param \StructType\SearchColumnBooleanField[] $paymentEventPurchaseCardUsed
     * @param \StructType\SearchColumnBooleanField[] $paymentEventPurchaseDataSent
     * @param \StructType\SearchColumnEnumSelectField[] $paymentEventResult
     * @param \StructType\SearchColumnEnumSelectField[] $paymentEventType
     * @param \StructType\SearchColumnBooleanField[] $paymentHold
     * @param \StructType\SearchColumnSelectField[] $paymentMethod
     * @param \StructType\SearchColumnSelectField[] $paymentOption
     * @param \StructType\SearchColumnBooleanField[] $payPalPending
     * @param \StructType\SearchColumnStringField[] $payPalStatus
     * @param \StructType\SearchColumnStringField[] $payPalTranId
     * @param \StructType\SearchColumnStringField[] $payrollBatch
     * @param \StructType\SearchColumnStringField[] $pnRefNum
     * @param \StructType\SearchColumnDoubleField[] $poRate
     * @param \StructType\SearchColumnBooleanField[] $posting
     * @param \StructType\SearchColumnSelectField[] $postingPeriod
     * @param \StructType\SearchColumnSelectField[] $priceLevel
     * @param \StructType\SearchColumnStringField[] $print
     * @param \StructType\SearchColumnDoubleField[] $probability
     * @param \StructType\SearchColumnDoubleField[] $projectedAmount
     * @param \StructType\SearchColumnSelectField[] $projectTask
     * @param \StructType\SearchColumnSelectField[] $promoCode
     * @param \StructType\SearchColumnSelectField[] $purchaseOrder
     * @param \StructType\SearchColumnDoubleField[] $quantity
     * @param \StructType\SearchColumnDoubleField[] $quantityBilled
     * @param \StructType\SearchColumnDoubleField[] $quantityCommitted
     * @param \StructType\SearchColumnDoubleField[] $quantityPacked
     * @param \StructType\SearchColumnDoubleField[] $quantityPicked
     * @param \StructType\SearchColumnDoubleField[] $quantityRevCommitted
     * @param \StructType\SearchColumnDoubleField[] $quantityShipRecv
     * @param \StructType\SearchColumnDoubleField[] $quantityUom
     * @param \StructType\SearchColumnDoubleField[] $rate
     * @param \StructType\SearchColumnStringField[] $realizedGainPostingTransaction
     * @param \StructType\SearchColumnDoubleField[] $recognizedRevenue
     * @param \StructType\SearchColumnStringField[] $recordType
     * @param \StructType\SearchColumnDoubleField[] $recurAnnuallyTotal
     * @param \StructType\SearchColumnDoubleField[] $recurMonthlyTotal
     * @param \StructType\SearchColumnDoubleField[] $recurQuarterlyTotal
     * @param \StructType\SearchColumnBooleanField[] $recurringBill
     * @param \StructType\SearchColumnDoubleField[] $recurWeeklyTotal
     * @param \StructType\SearchColumnLongField[] $refNumber
     * @param \StructType\SearchColumnDateField[] $requestedDate
     * @param \StructType\SearchColumnEnumSelectField[] $revCommitStatus
     * @param \StructType\SearchColumnSelectField[] $revCommittingTransaction
     * @param \StructType\SearchColumnEnumSelectField[] $revenueStatus
     * @param \StructType\SearchColumnDateField[] $reversalDate
     * @param \StructType\SearchColumnStringField[] $reversalNumber
     * @param \StructType\SearchColumnDateField[] $revRecEndDate
     * @param \StructType\SearchColumnBooleanField[] $revRecOnRevCommitment
     * @param \StructType\SearchColumnDateField[] $revRecStartDate
     * @param \StructType\SearchColumnSelectField[] $rgAccount
     * @param \StructType\SearchColumnDoubleField[] $rgAmount
     * @param \StructType\SearchColumnDateField[] $salesEffectiveDate
     * @param \StructType\SearchColumnSelectField[] $salesOrder
     * @param \StructType\SearchColumnSelectField[] $salesRep
     * @param \StructType\SearchColumnSelectField[] $salesTeamMember
     * @param \StructType\SearchColumnSelectField[] $salesTeamRole
     * @param \StructType\SearchColumnEnumSelectField[] $schedulingMethod
     * @param \StructType\SearchColumnStringField[] $serialNumber
     * @param \StructType\SearchColumnDoubleField[] $serialNumberCost
     * @param \StructType\SearchColumnDoubleField[] $serialNumberCostAdjustment
     * @param \StructType\SearchColumnDoubleField[] $serialNumberQuantity
     * @param \StructType\SearchColumnStringField[] $serialNumbers
     * @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\SearchColumnEnumSelectField[] $shipCarrier
     * @param \StructType\SearchColumnStringField[] $shipCity
     * @param \StructType\SearchColumnBooleanField[] $shipComplete
     * @param \StructType\SearchColumnEnumSelectField[] $shipCountry
     * @param \StructType\SearchColumnStringField[] $shipCountryCode
     * @param \StructType\SearchColumnDateField[] $shipDate
     * @param \StructType\SearchColumnLongField[] $shipGroup
     * @param \StructType\SearchColumnSelectField[] $shipMethod
     * @param \StructType\SearchColumnStringField[] $shipPhone
     * @param \StructType\SearchColumnDoubleField[] $shippingAmount
     * @param \StructType\SearchColumnBooleanField[] $shipRecvStatusLine
     * @param \StructType\SearchColumnStringField[] $shipState
     * @param \StructType\SearchColumnSelectField[] $shipTo
     * @param \StructType\SearchColumnStringField[] $shipZip
     * @param \StructType\SearchColumnDoubleField[] $signedAmount
     * @param \StructType\SearchColumnStringField[] $source
     * @param \StructType\SearchColumnDateField[] $startDate
     * @param \StructType\SearchColumnEnumSelectField[] $status
     * @param \StructType\SearchColumnSelectField[] $subscription
     * @param \StructType\SearchColumnSelectField[] $subscriptionLine
     * @param \StructType\SearchColumnSelectField[] $subsidiary
     * @param \StructType\SearchColumnStringField[] $subsidiaryTaxRegNum
     * @param \StructType\SearchColumnDoubleField[] $taxAmount
     * @param \StructType\SearchColumnSelectField[] $taxCode
     * @param \StructType\SearchColumnBooleanField[] $taxLine
     * @param \StructType\SearchColumnSelectField[] $taxPeriod
     * @param \StructType\SearchColumnDateField[] $taxPointDate
     * @param \StructType\SearchColumnDoubleField[] $taxTotal
     * @param \StructType\SearchColumnLongField[] $termInMonths
     * @param \StructType\SearchColumnSelectField[] $terms
     * @param \StructType\SearchColumnStringField[] $termsOfSale
     * @param \StructType\SearchColumnStringField[] $title
     * @param \StructType\SearchColumnBooleanField[] $toBeEmailed
     * @param \StructType\SearchColumnBooleanField[] $toBePrinted
     * @param \StructType\SearchColumnSelectField[] $toSubsidiary
     * @param \StructType\SearchColumnDoubleField[] $total
     * @param \StructType\SearchColumnDoubleField[] $totalCostEstimate
     * @param \StructType\SearchColumnStringField[] $trackingNumbers
     * @param \StructType\SearchColumnDateField[] $tranDate
     * @param \StructType\SearchColumnDoubleField[] $tranEstGrossProfit
     * @param \StructType\SearchColumnDoubleField[] $tranFxEstGrossProfit
     * @param \StructType\SearchColumnStringField[] $tranId
     * @param \StructType\SearchColumnBooleanField[] $tranIsVsoeBundle
     * @param \StructType\SearchColumnBooleanField[] $transactionDiscount
     * @param \StructType\SearchColumnEnumSelectField[] $transactionLineType
     * @param \StructType\SearchColumnStringField[] $transactionNumber
     * @param \StructType\SearchColumnSelectField[] $transferLocation
     * @param \StructType\SearchColumnStringField[] $transferOrderItemLine
     * @param \StructType\SearchColumnDoubleField[] $transferOrderQuantityCommitted
     * @param \StructType\SearchColumnDoubleField[] $transferOrderQuantityPacked
     * @param \StructType\SearchColumnDoubleField[] $transferOrderQuantityPicked
     * @param \StructType\SearchColumnDoubleField[] $transferOrderQuantityReceived
     * @param \StructType\SearchColumnDoubleField[] $transferOrderQuantityShipped
     * @param \StructType\SearchColumnEnumSelectField[] $type
     * @param \StructType\SearchColumnStringField[] $unit
     * @param \StructType\SearchColumnDoubleField[] $unitCostOverride
     * @param \StructType\SearchColumnSelectField[] $vendType
     * @param \StructType\SearchColumnBooleanField[] $visibleToCustomer
     * @param \StructType\SearchColumnDoubleField[] $vsoeAllocation
     * @param \StructType\SearchColumnDoubleField[] $vsoeAmount
     * @param \StructType\SearchColumnEnumSelectField[] $vsoeDeferral
     * @param \StructType\SearchColumnBooleanField[] $vsoeDelivered
     * @param \StructType\SearchColumnEnumSelectField[] $vsoePermitDiscount
     * @param \StructType\SearchColumnDoubleField[] $vsoePrice
     * @param \StructType\SearchColumnStringField[] $webSite
     * @param \StructType\SearchColumnCustomFieldList $customFieldList
     */
    public function __construct(array $abbrev = array(), array $account = array(), array $accountType = array(), array $acctCorpCardExp = array(), array $actualShipDate = array(), array $altSalesAmount = array(), array $altSalesNetAmount = array(), array $amount = array(), array $amountPaid = array(), array $amountRemaining = array(), array $amountUnbilled = array(), array $appliedToForeignAmount = array(), array $appliedToIsFxVariance = array(), array $appliedToLinkAmount = array(), array $appliedToLinkType = array(), array $appliedToTransaction = array(), array $applyingForeignAmount = array(), array $applyingIsFxVariance = array(), array $applyingLinkAmount = array(), array $applyingLinkType = array(), array $applyingTransaction = array(), array $approvalStatus = array(), array $authCode = array(), array $autoCalculateLag = array(), array $avsStreetMatch = array(), array $avsZipMatch = array(), array $billable = 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 $billedDate = array(), array $billingAccount = array(), array $billingAmount = array(), array $billingSchedule = array(), array $billingTransaction = array(), array $billPhone = array(), array $billState = array(), array $billVarianceStatus = array(), array $billZip = array(), array $binNumber = array(), array $binNumberQuantity = array(), array $bomQuantity = array(), array $buildEntireAssembly = array(), array $buildVariance = array(), array $built = array(), array $canHaveStackablePromotions = array(), array $catchUpPeriod = array(), array $ccCustomerCode = array(), array $ccExpDate = array(), array $ccHolderName = array(), array $ccNumber = array(), array $ccStreet = array(), array $ccZipCode = array(), array $class = array(), array $cleared = array(), array $closed = array(), array $closeDate = array(), array $cogsAmount = array(), array $commissionEffectiveDate = array(), array $commit = array(), array $componentYield = array(), array $confirmationNumber = array(), array $contribution = array(), array $contributionPrimary = array(), array $costComponentAmount = array(), array $costComponentCategory = array(), array $costComponentItem = array(), array $costComponentQuantity = array(), array $costComponentStandardCost = array(), array $costEstimate = array(), array $costEstimateRate = array(), array $costEstimateType = array(), array $createdBy = array(), array $createdFrom = array(), array $creditAmount = array(), array $cscMatch = array(), array $currency = array(), array $customForm = array(), array $customGL = array(), array $custType = array(), array $dateCreated = array(), array $daysOpen = array(), array $daysOverdue = array(), array $debitAmount = array(), array $deferredRevenue = array(), array $deferRevRec = array(), array $department = array(), array $depositDate = array(), array $depositTransaction = array(), array $discountAmount = array(), array $docUnit = array(), array $drAccount = array(), array $dueDate = array(), array $effectiveRate = array(), array $email = array(), array $endDate = array(), array $entity = array(), array $entityStatus = array(), array $estGrossProfit = array(), array $estGrossProfitPct = array(), array $estGrossProfitPercent = array(), array $exchangeRate = array(), array $excludeCommission = array(), array $excludeFromRateRequest = array(), array $expectedCloseDate = array(), array $expectedReceiptDate = array(), array $expenseCategory = array(), array $expenseDate = array(), array $externalId = array(), array $firmed = array(), array $forecastType = array(), array $fulfillingTransaction = array(), array $fxAccount = array(), array $fxAmount = array(), array $fxCostEstimate = array(), array $fxCostEstimateRate = array(), array $fxEstGrossProfit = array(), array $fxTranCostEstimate = array(), array $fxVsoeAllocation = array(), array $fxVsoeAmount = array(), array $fxVsoePrice = array(), array $gcoAvailabelToCharge = array(), array $gcoAvailableToRefund = array(), array $gcoAvsStreetMatch = array(), array $gcoAvsZipMatch = array(), array $gcoBuyerAccountAge = array(), array $gcoBuyerIp = array(), array $gcoChargeAmount = array(), array $gcoChargebackAmount = array(), array $gcoConfirmedChargedTotal = array(), array $gcoConfirmedRefundedTotal = array(), array $gcoCreditcardNumber = array(), array $gcoCscMatch = array(), array $gcoFinancialState = array(), array $gcoFulfillmentState = array(), array $gcoOrderId = array(), array $gcoOrderTotal = array(), array $gcoPromotionAmount = array(), array $gcoPromotionName = array(), array $gcoRefundAmount = array(), array $gcoShippingTotal = array(), array $gcoStateChangedDetail = array(), array $giftCert = array(), array $grossAmount = array(), array $includeInForecast = array(), array $incoterm = array(), array $intercoStatus = array(), array $intercoTransaction = array(), array $internalId = array(), array $inventoryLocation = array(), array $inventorySubsidiary = array(), array $inVsoeBundle = array(), array $isAllocation = array(), array $isBackflush = array(), array $isGcoChargeback = array(), array $isGcoChargeConfirmed = array(), array $isGcoPaymentGuaranteed = array(), array $isGcoRefundConfirmed = array(), array $isInsideDelivery = array(), array $isInsidePickup = array(), array $isIntercompanyAdjustment = array(), array $isInTransitPayment = array(), array $isMultiShipTo = array(), array $isReversal = array(), array $isRevRecTransaction = array(), array $isScrap = array(), array $isShipAddress = array(), array $isTransferPriceCosting = array(), array $isWip = array(), array $item = array(), array $itemFulfillmentChoice = array(), array $itemRevision = array(), array $landedCostPerLine = array(), array $lastModifiedDate = array(), array $leadSource = array(), array $line = array(), array $lineSequenceNumber = array(), array $lineUniqueKey = array(), array $location = array(), array $locationAutoAssigned = array(), array $mainLine = array(), array $mainName = array(), array $manufacturingRouting = array(), array $matchBillToReceipt = array(), array $memo = array(), array $memoMain = array(), array $memorized = array(), array $merchantAccount = array(), array $message = array(), array $multiSubsidiary = array(), array $netAmount = array(), array $netAmountNoTax = array(), array $nextApprover = array(), array $nextBillDate = array(), array $nexus = array(), array $noAutoAssignLocation = array(), array $nonReimbursable = array(), array $oneTimeTotal = array(), array $opportunity = array(), array $options = array(), array $orderAllocationStrategy = array(), array $orderPriority = array(), array $originator = array(), array $otherRefNum = array(), array $overheadParentItem = array(), array $overrideInstallments = array(), array $packageCount = array(), array $paidAmount = array(), array $paidTransaction = array(), array $partner = array(), array $partnerContribution = array(), array $partnerRole = array(), array $partnerTeamMember = array(), array $payingAmount = array(), array $payingTransaction = array(), array $paymentApproved = array(), array $paymentEventDate = array(), array $paymentEventHoldReason = array(), array $paymentEventPurchaseCardUsed = array(), array $paymentEventPurchaseDataSent = array(), array $paymentEventResult = array(), array $paymentEventType = array(), array $paymentHold = array(), array $paymentMethod = array(), array $paymentOption = array(), array $payPalPending = array(), array $payPalStatus = array(), array $payPalTranId = array(), array $payrollBatch = array(), array $pnRefNum = array(), array $poRate = array(), array $posting = array(), array $postingPeriod = array(), array $priceLevel = array(), array $print = array(), array $probability = array(), array $projectedAmount = array(), array $projectTask = array(), array $promoCode = array(), array $purchaseOrder = array(), array $quantity = array(), array $quantityBilled = array(), array $quantityCommitted = array(), array $quantityPacked = array(), array $quantityPicked = array(), array $quantityRevCommitted = array(), array $quantityShipRecv = array(), array $quantityUom = array(), array $rate = array(), array $realizedGainPostingTransaction = array(), array $recognizedRevenue = array(), array $recordType = array(), array $recurAnnuallyTotal = array(), array $recurMonthlyTotal = array(), array $recurQuarterlyTotal = array(), array $recurringBill = array(), array $recurWeeklyTotal = array(), array $refNumber = array(), array $requestedDate = array(), array $revCommitStatus = array(), array $revCommittingTransaction = array(), array $revenueStatus = array(), array $reversalDate = array(), array $reversalNumber = array(), array $revRecEndDate = array(), array $revRecOnRevCommitment = array(), array $revRecStartDate = array(), array $rgAccount = array(), array $rgAmount = array(), array $salesEffectiveDate = array(), array $salesOrder = array(), array $salesRep = array(), array $salesTeamMember = array(), array $salesTeamRole = array(), array $schedulingMethod = array(), array $serialNumber = array(), array $serialNumberCost = array(), array $serialNumberCostAdjustment = array(), array $serialNumberQuantity = array(), array $serialNumbers = array(), array $shipAddress = array(), array $shipAddress1 = array(), array $shipAddress2 = array(), array $shipAddress3 = array(), array $shipAddressee = array(), array $shipAttention = array(), array $shipCarrier = array(), array $shipCity = array(), array $shipComplete = array(), array $shipCountry = array(), array $shipCountryCode = array(), array $shipDate = array(), array $shipGroup = array(), array $shipMethod = array(), array $shipPhone = array(), array $shippingAmount = array(), array $shipRecvStatusLine = array(), array $shipState = array(), array $shipTo = array(), array $shipZip = array(), array $signedAmount = array(), array $source = array(), array $startDate = array(), array $status = array(), array $subscription = array(), array $subscriptionLine = array(), array $subsidiary = array(), array $subsidiaryTaxRegNum = array(), array $taxAmount = array(), array $taxCode = array(), array $taxLine = array(), array $taxPeriod = array(), array $taxPointDate = array(), array $taxTotal = array(), array $termInMonths = array(), array $terms = array(), array $termsOfSale = array(), array $title = array(), array $toBeEmailed = array(), array $toBePrinted = array(), array $toSubsidiary = array(), array $total = array(), array $totalCostEstimate = array(), array $trackingNumbers = array(), array $tranDate = array(), array $tranEstGrossProfit = array(), array $tranFxEstGrossProfit = array(), array $tranId = array(), array $tranIsVsoeBundle = array(), array $transactionDiscount = array(), array $transactionLineType = array(), array $transactionNumber = array(), array $transferLocation = array(), array $transferOrderItemLine = array(), array $transferOrderQuantityCommitted = array(), array $transferOrderQuantityPacked = array(), array $transferOrderQuantityPicked = array(), array $transferOrderQuantityReceived = array(), array $transferOrderQuantityShipped = array(), array $type = array(), array $unit = array(), array $unitCostOverride = array(), array $vendType = array(), array $visibleToCustomer = array(), array $vsoeAllocation = array(), array $vsoeAmount = array(), array $vsoeDeferral = array(), array $vsoeDelivered = array(), array $vsoePermitDiscount = array(), array $vsoePrice = array(), array $webSite = array(), \StructType\SearchColumnCustomFieldList $customFieldList = null)
    {
        $this
            ->setAbbrev($abbrev)
            ->setAccount($account)
            ->setAccountType($accountType)
            ->setAcctCorpCardExp($acctCorpCardExp)
            ->setActualShipDate($actualShipDate)
            ->setAltSalesAmount($altSalesAmount)
            ->setAltSalesNetAmount($altSalesNetAmount)
            ->setAmount($amount)
            ->setAmountPaid($amountPaid)
            ->setAmountRemaining($amountRemaining)
            ->setAmountUnbilled($amountUnbilled)
            ->setAppliedToForeignAmount($appliedToForeignAmount)
            ->setAppliedToIsFxVariance($appliedToIsFxVariance)
            ->setAppliedToLinkAmount($appliedToLinkAmount)
            ->setAppliedToLinkType($appliedToLinkType)
            ->setAppliedToTransaction($appliedToTransaction)
            ->setApplyingForeignAmount($applyingForeignAmount)
            ->setApplyingIsFxVariance($applyingIsFxVariance)
            ->setApplyingLinkAmount($applyingLinkAmount)
            ->setApplyingLinkType($applyingLinkType)
            ->setApplyingTransaction($applyingTransaction)
            ->setApprovalStatus($approvalStatus)
            ->setAuthCode($authCode)
            ->setAutoCalculateLag($autoCalculateLag)
            ->setAvsStreetMatch($avsStreetMatch)
            ->setAvsZipMatch($avsZipMatch)
            ->setBillable($billable)
            ->setBillAddress($billAddress)
            ->setBillAddress1($billAddress1)
            ->setBillAddress2($billAddress2)
            ->setBillAddress3($billAddress3)
            ->setBillAddressee($billAddressee)
            ->setBillAttention($billAttention)
            ->setBillCity($billCity)
            ->setBillCountry($billCountry)
            ->setBillCountryCode($billCountryCode)
            ->setBilledDate($billedDate)
            ->setBillingAccount($billingAccount)
            ->setBillingAmount($billingAmount)
            ->setBillingSchedule($billingSchedule)
            ->setBillingTransaction($billingTransaction)
            ->setBillPhone($billPhone)
            ->setBillState($billState)
            ->setBillVarianceStatus($billVarianceStatus)
            ->setBillZip($billZip)
            ->setBinNumber($binNumber)
            ->setBinNumberQuantity($binNumberQuantity)
            ->setBomQuantity($bomQuantity)
            ->setBuildEntireAssembly($buildEntireAssembly)
            ->setBuildVariance($buildVariance)
            ->setBuilt($built)
            ->setCanHaveStackablePromotions($canHaveStackablePromotions)
            ->setCatchUpPeriod($catchUpPeriod)
            ->setCcCustomerCode($ccCustomerCode)
            ->setCcExpDate($ccExpDate)
            ->setCcHolderName($ccHolderName)
            ->setCcNumber($ccNumber)
            ->setCcStreet($ccStreet)
            ->setCcZipCode($ccZipCode)
            ->setClass($class)
            ->setCleared($cleared)
            ->setClosed($closed)
            ->setCloseDate($closeDate)
            ->setCogsAmount($cogsAmount)
            ->setCommissionEffectiveDate($commissionEffectiveDate)
            ->setCommit($commit)
            ->setComponentYield($componentYield)
            ->setConfirmationNumber($confirmationNumber)
            ->setContribution($contribution)
            ->setContributionPrimary($contributionPrimary)
            ->setCostComponentAmount($costComponentAmount)
            ->setCostComponentCategory($costComponentCategory)
            ->setCostComponentItem($costComponentItem)
            ->setCostComponentQuantity($costComponentQuantity)
            ->setCostComponentStandardCost($costComponentStandardCost)
            ->setCostEstimate($costEstimate)
            ->setCostEstimateRate($costEstimateRate)
            ->setCostEstimateType($costEstimateType)
            ->setCreatedBy($createdBy)
            ->setCreatedFrom($createdFrom)
            ->setCreditAmount($creditAmount)
            ->setCscMatch($cscMatch)
            ->setCurrency($currency)
            ->setCustomForm($customForm)
            ->setCustomGL($customGL)
            ->setCustType($custType)
            ->setDateCreated($dateCreated)
            ->setDaysOpen($daysOpen)
            ->setDaysOverdue($daysOverdue)
            ->setDebitAmount($debitAmount)
            ->setDeferredRevenue($deferredRevenue)
            ->setDeferRevRec($deferRevRec)
            ->setDepartment($department)
            ->setDepositDate($depositDate)
            ->setDepositTransaction($depositTransaction)
            ->setDiscountAmount($discountAmount)
            ->setDocUnit($docUnit)
            ->setDrAccount($drAccount)
            ->setDueDate($dueDate)
            ->setEffectiveRate($effectiveRate)
            ->setEmail($email)
            ->setEndDate($endDate)
            ->setEntity($entity)
            ->setEntityStatus($entityStatus)
            ->setEstGrossProfit($estGrossProfit)
            ->setEstGrossProfitPct($estGrossProfitPct)
            ->setEstGrossProfitPercent($estGrossProfitPercent)
            ->setExchangeRate($exchangeRate)
            ->setExcludeCommission($excludeCommission)
            ->setExcludeFromRateRequest($excludeFromRateRequest)
            ->setExpectedCloseDate($expectedCloseDate)
            ->setExpectedReceiptDate($expectedReceiptDate)
            ->setExpenseCategory($expenseCategory)
            ->setExpenseDate($expenseDate)
            ->setExternalId($externalId)
            ->setFirmed($firmed)
            ->setForecastType($forecastType)
            ->setFulfillingTransaction($fulfillingTransaction)
            ->setFxAccount($fxAccount)
            ->setFxAmount($fxAmount)
            ->setFxCostEstimate($fxCostEstimate)
            ->setFxCostEstimateRate($fxCostEstimateRate)
            ->setFxEstGrossProfit($fxEstGrossProfit)
            ->setFxTranCostEstimate($fxTranCostEstimate)
            ->setFxVsoeAllocation($fxVsoeAllocation)
            ->setFxVsoeAmount($fxVsoeAmount)
            ->setFxVsoePrice($fxVsoePrice)
            ->setGcoAvailabelToCharge($gcoAvailabelToCharge)
            ->setGcoAvailableToRefund($gcoAvailableToRefund)
            ->setGcoAvsStreetMatch($gcoAvsStreetMatch)
            ->setGcoAvsZipMatch($gcoAvsZipMatch)
            ->setGcoBuyerAccountAge($gcoBuyerAccountAge)
            ->setGcoBuyerIp($gcoBuyerIp)
            ->setGcoChargeAmount($gcoChargeAmount)
            ->setGcoChargebackAmount($gcoChargebackAmount)
            ->setGcoConfirmedChargedTotal($gcoConfirmedChargedTotal)
            ->setGcoConfirmedRefundedTotal($gcoConfirmedRefundedTotal)
            ->setGcoCreditcardNumber($gcoCreditcardNumber)
            ->setGcoCscMatch($gcoCscMatch)
            ->setGcoFinancialState($gcoFinancialState)
            ->setGcoFulfillmentState($gcoFulfillmentState)
            ->setGcoOrderId($gcoOrderId)
            ->setGcoOrderTotal($gcoOrderTotal)
            ->setGcoPromotionAmount($gcoPromotionAmount)
            ->setGcoPromotionName($gcoPromotionName)
            ->setGcoRefundAmount($gcoRefundAmount)
            ->setGcoShippingTotal($gcoShippingTotal)
            ->setGcoStateChangedDetail($gcoStateChangedDetail)
            ->setGiftCert($giftCert)
            ->setGrossAmount($grossAmount)
            ->setIncludeInForecast($includeInForecast)
            ->setIncoterm($incoterm)
            ->setIntercoStatus($intercoStatus)
            ->setIntercoTransaction($intercoTransaction)
            ->setInternalId($internalId)
            ->setInventoryLocation($inventoryLocation)
            ->setInventorySubsidiary($inventorySubsidiary)
            ->setInVsoeBundle($inVsoeBundle)
            ->setIsAllocation($isAllocation)
            ->setIsBackflush($isBackflush)
            ->setIsGcoChargeback($isGcoChargeback)
            ->setIsGcoChargeConfirmed($isGcoChargeConfirmed)
            ->setIsGcoPaymentGuaranteed($isGcoPaymentGuaranteed)
            ->setIsGcoRefundConfirmed($isGcoRefundConfirmed)
            ->setIsInsideDelivery($isInsideDelivery)
            ->setIsInsidePickup($isInsidePickup)
            ->setIsIntercompanyAdjustment($isIntercompanyAdjustment)
            ->setIsInTransitPayment($isInTransitPayment)
            ->setIsMultiShipTo($isMultiShipTo)
            ->setIsReversal($isReversal)
            ->setIsRevRecTransaction($isRevRecTransaction)
            ->setIsScrap($isScrap)
            ->setIsShipAddress($isShipAddress)
            ->setIsTransferPriceCosting($isTransferPriceCosting)
            ->setIsWip($isWip)
            ->setItem($item)
            ->setItemFulfillmentChoice($itemFulfillmentChoice)
            ->setItemRevision($itemRevision)
            ->setLandedCostPerLine($landedCostPerLine)
            ->setLastModifiedDate($lastModifiedDate)
            ->setLeadSource($leadSource)
            ->setLine($line)
            ->setLineSequenceNumber($lineSequenceNumber)
            ->setLineUniqueKey($lineUniqueKey)
            ->setLocation($location)
            ->setLocationAutoAssigned($locationAutoAssigned)
            ->setMainLine($mainLine)
            ->setMainName($mainName)
            ->setManufacturingRouting($manufacturingRouting)
            ->setMatchBillToReceipt($matchBillToReceipt)
            ->setMemo($memo)
            ->setMemoMain($memoMain)
            ->setMemorized($memorized)
            ->setMerchantAccount($merchantAccount)
            ->setMessage($message)
            ->setMultiSubsidiary($multiSubsidiary)
            ->setNetAmount($netAmount)
            ->setNetAmountNoTax($netAmountNoTax)
            ->setNextApprover($nextApprover)
            ->setNextBillDate($nextBillDate)
            ->setNexus($nexus)
            ->setNoAutoAssignLocation($noAutoAssignLocation)
            ->setNonReimbursable($nonReimbursable)
            ->setOneTimeTotal($oneTimeTotal)
            ->setOpportunity($opportunity)
            ->setOptions($options)
            ->setOrderAllocationStrategy($orderAllocationStrategy)
            ->setOrderPriority($orderPriority)
            ->setOriginator($originator)
            ->setOtherRefNum($otherRefNum)
            ->setOverheadParentItem($overheadParentItem)
            ->setOverrideInstallments($overrideInstallments)
            ->setPackageCount($packageCount)
            ->setPaidAmount($paidAmount)
            ->setPaidTransaction($paidTransaction)
            ->setPartner($partner)
            ->setPartnerContribution($partnerContribution)
            ->setPartnerRole($partnerRole)
            ->setPartnerTeamMember($partnerTeamMember)
            ->setPayingAmount($payingAmount)
            ->setPayingTransaction($payingTransaction)
            ->setPaymentApproved($paymentApproved)
            ->setPaymentEventDate($paymentEventDate)
            ->setPaymentEventHoldReason($paymentEventHoldReason)
            ->setPaymentEventPurchaseCardUsed($paymentEventPurchaseCardUsed)
            ->setPaymentEventPurchaseDataSent($paymentEventPurchaseDataSent)
            ->setPaymentEventResult($paymentEventResult)
            ->setPaymentEventType($paymentEventType)
            ->setPaymentHold($paymentHold)
            ->setPaymentMethod($paymentMethod)
            ->setPaymentOption($paymentOption)
            ->setPayPalPending($payPalPending)
            ->setPayPalStatus($payPalStatus)
            ->setPayPalTranId($payPalTranId)
            ->setPayrollBatch($payrollBatch)
            ->setPnRefNum($pnRefNum)
            ->setPoRate($poRate)
            ->setPosting($posting)
            ->setPostingPeriod($postingPeriod)
            ->setPriceLevel($priceLevel)
            ->setPrint($print)
            ->setProbability($probability)
            ->setProjectedAmount($projectedAmount)
            ->setProjectTask($projectTask)
            ->setPromoCode($promoCode)
            ->setPurchaseOrder($purchaseOrder)
            ->setQuantity($quantity)
            ->setQuantityBilled($quantityBilled)
            ->setQuantityCommitted($quantityCommitted)
            ->setQuantityPacked($quantityPacked)
            ->setQuantityPicked($quantityPicked)
            ->setQuantityRevCommitted($quantityRevCommitted)
            ->setQuantityShipRecv($quantityShipRecv)
            ->setQuantityUom($quantityUom)
            ->setRate($rate)
            ->setRealizedGainPostingTransaction($realizedGainPostingTransaction)
            ->setRecognizedRevenue($recognizedRevenue)
            ->setRecordType($recordType)
            ->setRecurAnnuallyTotal($recurAnnuallyTotal)
            ->setRecurMonthlyTotal($recurMonthlyTotal)
            ->setRecurQuarterlyTotal($recurQuarterlyTotal)
            ->setRecurringBill($recurringBill)
            ->setRecurWeeklyTotal($recurWeeklyTotal)
            ->setRefNumber($refNumber)
            ->setRequestedDate($requestedDate)
            ->setRevCommitStatus($revCommitStatus)
            ->setRevCommittingTransaction($revCommittingTransaction)
            ->setRevenueStatus($revenueStatus)
            ->setReversalDate($reversalDate)
            ->setReversalNumber($reversalNumber)
            ->setRevRecEndDate($revRecEndDate)
            ->setRevRecOnRevCommitment($revRecOnRevCommitment)
            ->setRevRecStartDate($revRecStartDate)
            ->setRgAccount($rgAccount)
            ->setRgAmount($rgAmount)
            ->setSalesEffectiveDate($salesEffectiveDate)
            ->setSalesOrder($salesOrder)
            ->setSalesRep($salesRep)
            ->setSalesTeamMember($salesTeamMember)
            ->setSalesTeamRole($salesTeamRole)
            ->setSchedulingMethod($schedulingMethod)
            ->setSerialNumber($serialNumber)
            ->setSerialNumberCost($serialNumberCost)
            ->setSerialNumberCostAdjustment($serialNumberCostAdjustment)
            ->setSerialNumberQuantity($serialNumberQuantity)
            ->setSerialNumbers($serialNumbers)
            ->setShipAddress($shipAddress)
            ->setShipAddress1($shipAddress1)
            ->setShipAddress2($shipAddress2)
            ->setShipAddress3($shipAddress3)
            ->setShipAddressee($shipAddressee)
            ->setShipAttention($shipAttention)
            ->setShipCarrier($shipCarrier)
            ->setShipCity($shipCity)
            ->setShipComplete($shipComplete)
            ->setShipCountry($shipCountry)
            ->setShipCountryCode($shipCountryCode)
            ->setShipDate($shipDate)
            ->setShipGroup($shipGroup)
            ->setShipMethod($shipMethod)
            ->setShipPhone($shipPhone)
            ->setShippingAmount($shippingAmount)
            ->setShipRecvStatusLine($shipRecvStatusLine)
            ->setShipState($shipState)
            ->setShipTo($shipTo)
            ->setShipZip($shipZip)
            ->setSignedAmount($signedAmount)
            ->setSource($source)
            ->setStartDate($startDate)
            ->setStatus($status)
            ->setSubscription($subscription)
            ->setSubscriptionLine($subscriptionLine)
            ->setSubsidiary($subsidiary)
            ->setSubsidiaryTaxRegNum($subsidiaryTaxRegNum)
            ->setTaxAmount($taxAmount)
            ->setTaxCode($taxCode)
            ->setTaxLine($taxLine)
            ->setTaxPeriod($taxPeriod)
            ->setTaxPointDate($taxPointDate)
            ->setTaxTotal($taxTotal)
            ->setTermInMonths($termInMonths)
            ->setTerms($terms)
            ->setTermsOfSale($termsOfSale)
            ->setTitle($title)
            ->setToBeEmailed($toBeEmailed)
            ->setToBePrinted($toBePrinted)
            ->setToSubsidiary($toSubsidiary)
            ->setTotal($total)
            ->setTotalCostEstimate($totalCostEstimate)
            ->setTrackingNumbers($trackingNumbers)
            ->setTranDate($tranDate)
            ->setTranEstGrossProfit($tranEstGrossProfit)
            ->setTranFxEstGrossProfit($tranFxEstGrossProfit)
            ->setTranId($tranId)
            ->setTranIsVsoeBundle($tranIsVsoeBundle)
            ->setTransactionDiscount($transactionDiscount)
            ->setTransactionLineType($transactionLineType)
            ->setTransactionNumber($transactionNumber)
            ->setTransferLocation($transferLocation)
            ->setTransferOrderItemLine($transferOrderItemLine)
            ->setTransferOrderQuantityCommitted($transferOrderQuantityCommitted)
            ->setTransferOrderQuantityPacked($transferOrderQuantityPacked)
            ->setTransferOrderQuantityPicked($transferOrderQuantityPicked)
            ->setTransferOrderQuantityReceived($transferOrderQuantityReceived)
            ->setTransferOrderQuantityShipped($transferOrderQuantityShipped)
            ->setType($type)
            ->setUnit($unit)
            ->setUnitCostOverride($unitCostOverride)
            ->setVendType($vendType)
            ->setVisibleToCustomer($visibleToCustomer)
            ->setVsoeAllocation($vsoeAllocation)
            ->setVsoeAmount($vsoeAmount)
            ->setVsoeDeferral($vsoeDeferral)
            ->setVsoeDelivered($vsoeDelivered)
            ->setVsoePermitDiscount($vsoePermitDiscount)
            ->setVsoePrice($vsoePrice)
            ->setWebSite($webSite)
            ->setCustomFieldList($customFieldList);
    }
    /**
     * Get abbrev value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAbbrev()
    {
        return $this->abbrev;
    }
    /**
     * This method is responsible for validating the values passed to the setAbbrev method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAbbrev method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAbbrevForArrayConstraintsFromSetAbbrev(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAbbrevItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAbbrevItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAbbrevItem) ? get_class($transactionSearchRowBasicAbbrevItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAbbrevItem), var_export($transactionSearchRowBasicAbbrevItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The abbrev 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 abbrev value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $abbrev
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAbbrev(array $abbrev = array())
    {
        // validation for constraint: array
        if ('' !== ($abbrevArrayErrorMessage = self::validateAbbrevForArrayConstraintsFromSetAbbrev($abbrev))) {
            throw new \InvalidArgumentException($abbrevArrayErrorMessage, __LINE__);
        }
        $this->abbrev = $abbrev;
        return $this;
    }
    /**
     * Add item to abbrev value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAbbrev(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The abbrev 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->abbrev[] = $item;
        return $this;
    }
    /**
     * Get account value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getAccount()
    {
        return $this->account;
    }
    /**
     * This method is responsible for validating the values passed to the setAccount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAccount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAccountForArrayConstraintsFromSetAccount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAccountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAccountItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAccountItem) ? get_class($transactionSearchRowBasicAccountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAccountItem), var_export($transactionSearchRowBasicAccountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The account 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 account value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $account
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAccount(array $account = array())
    {
        // validation for constraint: array
        if ('' !== ($accountArrayErrorMessage = self::validateAccountForArrayConstraintsFromSetAccount($account))) {
            throw new \InvalidArgumentException($accountArrayErrorMessage, __LINE__);
        }
        $this->account = $account;
        return $this;
    }
    /**
     * Add item to account value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAccount(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The account 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->account[] = $item;
        return $this;
    }
    /**
     * Get accountType value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getAccountType()
    {
        return $this->accountType;
    }
    /**
     * This method is responsible for validating the values passed to the setAccountType method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAccountType method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAccountTypeForArrayConstraintsFromSetAccountType(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAccountTypeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAccountTypeItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAccountTypeItem) ? get_class($transactionSearchRowBasicAccountTypeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAccountTypeItem), var_export($transactionSearchRowBasicAccountTypeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The accountType 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 accountType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $accountType
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAccountType(array $accountType = array())
    {
        // validation for constraint: array
        if ('' !== ($accountTypeArrayErrorMessage = self::validateAccountTypeForArrayConstraintsFromSetAccountType($accountType))) {
            throw new \InvalidArgumentException($accountTypeArrayErrorMessage, __LINE__);
        }
        $this->accountType = $accountType;
        return $this;
    }
    /**
     * Add item to accountType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAccountType(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The accountType 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->accountType[] = $item;
        return $this;
    }
    /**
     * Get acctCorpCardExp value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getAcctCorpCardExp()
    {
        return $this->acctCorpCardExp;
    }
    /**
     * This method is responsible for validating the values passed to the setAcctCorpCardExp method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAcctCorpCardExp method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAcctCorpCardExpForArrayConstraintsFromSetAcctCorpCardExp(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAcctCorpCardExpItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAcctCorpCardExpItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAcctCorpCardExpItem) ? get_class($transactionSearchRowBasicAcctCorpCardExpItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAcctCorpCardExpItem), var_export($transactionSearchRowBasicAcctCorpCardExpItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The acctCorpCardExp 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 acctCorpCardExp value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $acctCorpCardExp
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAcctCorpCardExp(array $acctCorpCardExp = array())
    {
        // validation for constraint: array
        if ('' !== ($acctCorpCardExpArrayErrorMessage = self::validateAcctCorpCardExpForArrayConstraintsFromSetAcctCorpCardExp($acctCorpCardExp))) {
            throw new \InvalidArgumentException($acctCorpCardExpArrayErrorMessage, __LINE__);
        }
        $this->acctCorpCardExp = $acctCorpCardExp;
        return $this;
    }
    /**
     * Add item to acctCorpCardExp value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAcctCorpCardExp(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The acctCorpCardExp 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->acctCorpCardExp[] = $item;
        return $this;
    }
    /**
     * Get actualShipDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getActualShipDate()
    {
        return $this->actualShipDate;
    }
    /**
     * This method is responsible for validating the values passed to the setActualShipDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setActualShipDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateActualShipDateForArrayConstraintsFromSetActualShipDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicActualShipDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicActualShipDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicActualShipDateItem) ? get_class($transactionSearchRowBasicActualShipDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicActualShipDateItem), var_export($transactionSearchRowBasicActualShipDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The actualShipDate 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 actualShipDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $actualShipDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setActualShipDate(array $actualShipDate = array())
    {
        // validation for constraint: array
        if ('' !== ($actualShipDateArrayErrorMessage = self::validateActualShipDateForArrayConstraintsFromSetActualShipDate($actualShipDate))) {
            throw new \InvalidArgumentException($actualShipDateArrayErrorMessage, __LINE__);
        }
        $this->actualShipDate = $actualShipDate;
        return $this;
    }
    /**
     * Add item to actualShipDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToActualShipDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The actualShipDate 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->actualShipDate[] = $item;
        return $this;
    }
    /**
     * Get altSalesAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getAltSalesAmount()
    {
        return $this->altSalesAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setAltSalesAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAltSalesAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAltSalesAmountForArrayConstraintsFromSetAltSalesAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAltSalesAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAltSalesAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAltSalesAmountItem) ? get_class($transactionSearchRowBasicAltSalesAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAltSalesAmountItem), var_export($transactionSearchRowBasicAltSalesAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The altSalesAmount 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 altSalesAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $altSalesAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAltSalesAmount(array $altSalesAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($altSalesAmountArrayErrorMessage = self::validateAltSalesAmountForArrayConstraintsFromSetAltSalesAmount($altSalesAmount))) {
            throw new \InvalidArgumentException($altSalesAmountArrayErrorMessage, __LINE__);
        }
        $this->altSalesAmount = $altSalesAmount;
        return $this;
    }
    /**
     * Add item to altSalesAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAltSalesAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The altSalesAmount 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->altSalesAmount[] = $item;
        return $this;
    }
    /**
     * Get altSalesNetAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getAltSalesNetAmount()
    {
        return $this->altSalesNetAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setAltSalesNetAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAltSalesNetAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAltSalesNetAmountForArrayConstraintsFromSetAltSalesNetAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAltSalesNetAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAltSalesNetAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAltSalesNetAmountItem) ? get_class($transactionSearchRowBasicAltSalesNetAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAltSalesNetAmountItem), var_export($transactionSearchRowBasicAltSalesNetAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The altSalesNetAmount 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 altSalesNetAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $altSalesNetAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAltSalesNetAmount(array $altSalesNetAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($altSalesNetAmountArrayErrorMessage = self::validateAltSalesNetAmountForArrayConstraintsFromSetAltSalesNetAmount($altSalesNetAmount))) {
            throw new \InvalidArgumentException($altSalesNetAmountArrayErrorMessage, __LINE__);
        }
        $this->altSalesNetAmount = $altSalesNetAmount;
        return $this;
    }
    /**
     * Add item to altSalesNetAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAltSalesNetAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The altSalesNetAmount 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->altSalesNetAmount[] = $item;
        return $this;
    }
    /**
     * Get amount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getAmount()
    {
        return $this->amount;
    }
    /**
     * This method is responsible for validating the values passed to the setAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAmountForArrayConstraintsFromSetAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAmountItem) ? get_class($transactionSearchRowBasicAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAmountItem), var_export($transactionSearchRowBasicAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The amount 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 amount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $amount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAmount(array $amount = array())
    {
        // validation for constraint: array
        if ('' !== ($amountArrayErrorMessage = self::validateAmountForArrayConstraintsFromSetAmount($amount))) {
            throw new \InvalidArgumentException($amountArrayErrorMessage, __LINE__);
        }
        $this->amount = $amount;
        return $this;
    }
    /**
     * Add item to amount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The amount 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->amount[] = $item;
        return $this;
    }
    /**
     * Get amountPaid value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getAmountPaid()
    {
        return $this->amountPaid;
    }
    /**
     * This method is responsible for validating the values passed to the setAmountPaid method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAmountPaid method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAmountPaidForArrayConstraintsFromSetAmountPaid(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAmountPaidItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAmountPaidItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAmountPaidItem) ? get_class($transactionSearchRowBasicAmountPaidItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAmountPaidItem), var_export($transactionSearchRowBasicAmountPaidItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The amountPaid 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 amountPaid value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $amountPaid
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAmountPaid(array $amountPaid = array())
    {
        // validation for constraint: array
        if ('' !== ($amountPaidArrayErrorMessage = self::validateAmountPaidForArrayConstraintsFromSetAmountPaid($amountPaid))) {
            throw new \InvalidArgumentException($amountPaidArrayErrorMessage, __LINE__);
        }
        $this->amountPaid = $amountPaid;
        return $this;
    }
    /**
     * Add item to amountPaid value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAmountPaid(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The amountPaid 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->amountPaid[] = $item;
        return $this;
    }
    /**
     * Get amountRemaining value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getAmountRemaining()
    {
        return $this->amountRemaining;
    }
    /**
     * This method is responsible for validating the values passed to the setAmountRemaining method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAmountRemaining method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAmountRemainingForArrayConstraintsFromSetAmountRemaining(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAmountRemainingItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAmountRemainingItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAmountRemainingItem) ? get_class($transactionSearchRowBasicAmountRemainingItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAmountRemainingItem), var_export($transactionSearchRowBasicAmountRemainingItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The amountRemaining 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 amountRemaining value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $amountRemaining
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAmountRemaining(array $amountRemaining = array())
    {
        // validation for constraint: array
        if ('' !== ($amountRemainingArrayErrorMessage = self::validateAmountRemainingForArrayConstraintsFromSetAmountRemaining($amountRemaining))) {
            throw new \InvalidArgumentException($amountRemainingArrayErrorMessage, __LINE__);
        }
        $this->amountRemaining = $amountRemaining;
        return $this;
    }
    /**
     * Add item to amountRemaining value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAmountRemaining(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The amountRemaining 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->amountRemaining[] = $item;
        return $this;
    }
    /**
     * Get amountUnbilled value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getAmountUnbilled()
    {
        return $this->amountUnbilled;
    }
    /**
     * This method is responsible for validating the values passed to the setAmountUnbilled method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAmountUnbilled method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAmountUnbilledForArrayConstraintsFromSetAmountUnbilled(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAmountUnbilledItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAmountUnbilledItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAmountUnbilledItem) ? get_class($transactionSearchRowBasicAmountUnbilledItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAmountUnbilledItem), var_export($transactionSearchRowBasicAmountUnbilledItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The amountUnbilled 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 amountUnbilled value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $amountUnbilled
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAmountUnbilled(array $amountUnbilled = array())
    {
        // validation for constraint: array
        if ('' !== ($amountUnbilledArrayErrorMessage = self::validateAmountUnbilledForArrayConstraintsFromSetAmountUnbilled($amountUnbilled))) {
            throw new \InvalidArgumentException($amountUnbilledArrayErrorMessage, __LINE__);
        }
        $this->amountUnbilled = $amountUnbilled;
        return $this;
    }
    /**
     * Add item to amountUnbilled value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAmountUnbilled(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The amountUnbilled 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->amountUnbilled[] = $item;
        return $this;
    }
    /**
     * Get appliedToForeignAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getAppliedToForeignAmount()
    {
        return $this->appliedToForeignAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setAppliedToForeignAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAppliedToForeignAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAppliedToForeignAmountForArrayConstraintsFromSetAppliedToForeignAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAppliedToForeignAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAppliedToForeignAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAppliedToForeignAmountItem) ? get_class($transactionSearchRowBasicAppliedToForeignAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAppliedToForeignAmountItem), var_export($transactionSearchRowBasicAppliedToForeignAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The appliedToForeignAmount 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 appliedToForeignAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $appliedToForeignAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAppliedToForeignAmount(array $appliedToForeignAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($appliedToForeignAmountArrayErrorMessage = self::validateAppliedToForeignAmountForArrayConstraintsFromSetAppliedToForeignAmount($appliedToForeignAmount))) {
            throw new \InvalidArgumentException($appliedToForeignAmountArrayErrorMessage, __LINE__);
        }
        $this->appliedToForeignAmount = $appliedToForeignAmount;
        return $this;
    }
    /**
     * Add item to appliedToForeignAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAppliedToForeignAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The appliedToForeignAmount 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->appliedToForeignAmount[] = $item;
        return $this;
    }
    /**
     * Get appliedToIsFxVariance value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getAppliedToIsFxVariance()
    {
        return $this->appliedToIsFxVariance;
    }
    /**
     * This method is responsible for validating the values passed to the setAppliedToIsFxVariance method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAppliedToIsFxVariance method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAppliedToIsFxVarianceForArrayConstraintsFromSetAppliedToIsFxVariance(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAppliedToIsFxVarianceItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAppliedToIsFxVarianceItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAppliedToIsFxVarianceItem) ? get_class($transactionSearchRowBasicAppliedToIsFxVarianceItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAppliedToIsFxVarianceItem), var_export($transactionSearchRowBasicAppliedToIsFxVarianceItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The appliedToIsFxVariance 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 appliedToIsFxVariance value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $appliedToIsFxVariance
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAppliedToIsFxVariance(array $appliedToIsFxVariance = array())
    {
        // validation for constraint: array
        if ('' !== ($appliedToIsFxVarianceArrayErrorMessage = self::validateAppliedToIsFxVarianceForArrayConstraintsFromSetAppliedToIsFxVariance($appliedToIsFxVariance))) {
            throw new \InvalidArgumentException($appliedToIsFxVarianceArrayErrorMessage, __LINE__);
        }
        $this->appliedToIsFxVariance = $appliedToIsFxVariance;
        return $this;
    }
    /**
     * Add item to appliedToIsFxVariance value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAppliedToIsFxVariance(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The appliedToIsFxVariance 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->appliedToIsFxVariance[] = $item;
        return $this;
    }
    /**
     * Get appliedToLinkAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getAppliedToLinkAmount()
    {
        return $this->appliedToLinkAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setAppliedToLinkAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAppliedToLinkAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAppliedToLinkAmountForArrayConstraintsFromSetAppliedToLinkAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAppliedToLinkAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAppliedToLinkAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAppliedToLinkAmountItem) ? get_class($transactionSearchRowBasicAppliedToLinkAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAppliedToLinkAmountItem), var_export($transactionSearchRowBasicAppliedToLinkAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The appliedToLinkAmount 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 appliedToLinkAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $appliedToLinkAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAppliedToLinkAmount(array $appliedToLinkAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($appliedToLinkAmountArrayErrorMessage = self::validateAppliedToLinkAmountForArrayConstraintsFromSetAppliedToLinkAmount($appliedToLinkAmount))) {
            throw new \InvalidArgumentException($appliedToLinkAmountArrayErrorMessage, __LINE__);
        }
        $this->appliedToLinkAmount = $appliedToLinkAmount;
        return $this;
    }
    /**
     * Add item to appliedToLinkAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAppliedToLinkAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The appliedToLinkAmount 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->appliedToLinkAmount[] = $item;
        return $this;
    }
    /**
     * Get appliedToLinkType value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAppliedToLinkType()
    {
        return $this->appliedToLinkType;
    }
    /**
     * This method is responsible for validating the values passed to the setAppliedToLinkType method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAppliedToLinkType method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAppliedToLinkTypeForArrayConstraintsFromSetAppliedToLinkType(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAppliedToLinkTypeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAppliedToLinkTypeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAppliedToLinkTypeItem) ? get_class($transactionSearchRowBasicAppliedToLinkTypeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAppliedToLinkTypeItem), var_export($transactionSearchRowBasicAppliedToLinkTypeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The appliedToLinkType 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 appliedToLinkType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $appliedToLinkType
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAppliedToLinkType(array $appliedToLinkType = array())
    {
        // validation for constraint: array
        if ('' !== ($appliedToLinkTypeArrayErrorMessage = self::validateAppliedToLinkTypeForArrayConstraintsFromSetAppliedToLinkType($appliedToLinkType))) {
            throw new \InvalidArgumentException($appliedToLinkTypeArrayErrorMessage, __LINE__);
        }
        $this->appliedToLinkType = $appliedToLinkType;
        return $this;
    }
    /**
     * Add item to appliedToLinkType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAppliedToLinkType(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The appliedToLinkType 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->appliedToLinkType[] = $item;
        return $this;
    }
    /**
     * Get appliedToTransaction value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getAppliedToTransaction()
    {
        return $this->appliedToTransaction;
    }
    /**
     * This method is responsible for validating the values passed to the setAppliedToTransaction method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAppliedToTransaction method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAppliedToTransactionForArrayConstraintsFromSetAppliedToTransaction(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAppliedToTransactionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAppliedToTransactionItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAppliedToTransactionItem) ? get_class($transactionSearchRowBasicAppliedToTransactionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAppliedToTransactionItem), var_export($transactionSearchRowBasicAppliedToTransactionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The appliedToTransaction 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 appliedToTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $appliedToTransaction
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAppliedToTransaction(array $appliedToTransaction = array())
    {
        // validation for constraint: array
        if ('' !== ($appliedToTransactionArrayErrorMessage = self::validateAppliedToTransactionForArrayConstraintsFromSetAppliedToTransaction($appliedToTransaction))) {
            throw new \InvalidArgumentException($appliedToTransactionArrayErrorMessage, __LINE__);
        }
        $this->appliedToTransaction = $appliedToTransaction;
        return $this;
    }
    /**
     * Add item to appliedToTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAppliedToTransaction(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The appliedToTransaction 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->appliedToTransaction[] = $item;
        return $this;
    }
    /**
     * Get applyingForeignAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getApplyingForeignAmount()
    {
        return $this->applyingForeignAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setApplyingForeignAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setApplyingForeignAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateApplyingForeignAmountForArrayConstraintsFromSetApplyingForeignAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicApplyingForeignAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicApplyingForeignAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicApplyingForeignAmountItem) ? get_class($transactionSearchRowBasicApplyingForeignAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicApplyingForeignAmountItem), var_export($transactionSearchRowBasicApplyingForeignAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The applyingForeignAmount 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 applyingForeignAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $applyingForeignAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setApplyingForeignAmount(array $applyingForeignAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($applyingForeignAmountArrayErrorMessage = self::validateApplyingForeignAmountForArrayConstraintsFromSetApplyingForeignAmount($applyingForeignAmount))) {
            throw new \InvalidArgumentException($applyingForeignAmountArrayErrorMessage, __LINE__);
        }
        $this->applyingForeignAmount = $applyingForeignAmount;
        return $this;
    }
    /**
     * Add item to applyingForeignAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToApplyingForeignAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The applyingForeignAmount 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->applyingForeignAmount[] = $item;
        return $this;
    }
    /**
     * Get applyingIsFxVariance value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getApplyingIsFxVariance()
    {
        return $this->applyingIsFxVariance;
    }
    /**
     * This method is responsible for validating the values passed to the setApplyingIsFxVariance method
     * This method is willingly generated in order to preserve the one-line inline validation within the setApplyingIsFxVariance method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateApplyingIsFxVarianceForArrayConstraintsFromSetApplyingIsFxVariance(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicApplyingIsFxVarianceItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicApplyingIsFxVarianceItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicApplyingIsFxVarianceItem) ? get_class($transactionSearchRowBasicApplyingIsFxVarianceItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicApplyingIsFxVarianceItem), var_export($transactionSearchRowBasicApplyingIsFxVarianceItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The applyingIsFxVariance 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 applyingIsFxVariance value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $applyingIsFxVariance
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setApplyingIsFxVariance(array $applyingIsFxVariance = array())
    {
        // validation for constraint: array
        if ('' !== ($applyingIsFxVarianceArrayErrorMessage = self::validateApplyingIsFxVarianceForArrayConstraintsFromSetApplyingIsFxVariance($applyingIsFxVariance))) {
            throw new \InvalidArgumentException($applyingIsFxVarianceArrayErrorMessage, __LINE__);
        }
        $this->applyingIsFxVariance = $applyingIsFxVariance;
        return $this;
    }
    /**
     * Add item to applyingIsFxVariance value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToApplyingIsFxVariance(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The applyingIsFxVariance 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->applyingIsFxVariance[] = $item;
        return $this;
    }
    /**
     * Get applyingLinkAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getApplyingLinkAmount()
    {
        return $this->applyingLinkAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setApplyingLinkAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setApplyingLinkAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateApplyingLinkAmountForArrayConstraintsFromSetApplyingLinkAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicApplyingLinkAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicApplyingLinkAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicApplyingLinkAmountItem) ? get_class($transactionSearchRowBasicApplyingLinkAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicApplyingLinkAmountItem), var_export($transactionSearchRowBasicApplyingLinkAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The applyingLinkAmount 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 applyingLinkAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $applyingLinkAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setApplyingLinkAmount(array $applyingLinkAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($applyingLinkAmountArrayErrorMessage = self::validateApplyingLinkAmountForArrayConstraintsFromSetApplyingLinkAmount($applyingLinkAmount))) {
            throw new \InvalidArgumentException($applyingLinkAmountArrayErrorMessage, __LINE__);
        }
        $this->applyingLinkAmount = $applyingLinkAmount;
        return $this;
    }
    /**
     * Add item to applyingLinkAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToApplyingLinkAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The applyingLinkAmount 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->applyingLinkAmount[] = $item;
        return $this;
    }
    /**
     * Get applyingLinkType value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getApplyingLinkType()
    {
        return $this->applyingLinkType;
    }
    /**
     * This method is responsible for validating the values passed to the setApplyingLinkType method
     * This method is willingly generated in order to preserve the one-line inline validation within the setApplyingLinkType method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateApplyingLinkTypeForArrayConstraintsFromSetApplyingLinkType(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicApplyingLinkTypeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicApplyingLinkTypeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicApplyingLinkTypeItem) ? get_class($transactionSearchRowBasicApplyingLinkTypeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicApplyingLinkTypeItem), var_export($transactionSearchRowBasicApplyingLinkTypeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The applyingLinkType 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 applyingLinkType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $applyingLinkType
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setApplyingLinkType(array $applyingLinkType = array())
    {
        // validation for constraint: array
        if ('' !== ($applyingLinkTypeArrayErrorMessage = self::validateApplyingLinkTypeForArrayConstraintsFromSetApplyingLinkType($applyingLinkType))) {
            throw new \InvalidArgumentException($applyingLinkTypeArrayErrorMessage, __LINE__);
        }
        $this->applyingLinkType = $applyingLinkType;
        return $this;
    }
    /**
     * Add item to applyingLinkType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToApplyingLinkType(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The applyingLinkType 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->applyingLinkType[] = $item;
        return $this;
    }
    /**
     * Get applyingTransaction value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getApplyingTransaction()
    {
        return $this->applyingTransaction;
    }
    /**
     * This method is responsible for validating the values passed to the setApplyingTransaction method
     * This method is willingly generated in order to preserve the one-line inline validation within the setApplyingTransaction method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateApplyingTransactionForArrayConstraintsFromSetApplyingTransaction(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicApplyingTransactionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicApplyingTransactionItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicApplyingTransactionItem) ? get_class($transactionSearchRowBasicApplyingTransactionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicApplyingTransactionItem), var_export($transactionSearchRowBasicApplyingTransactionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The applyingTransaction 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 applyingTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $applyingTransaction
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setApplyingTransaction(array $applyingTransaction = array())
    {
        // validation for constraint: array
        if ('' !== ($applyingTransactionArrayErrorMessage = self::validateApplyingTransactionForArrayConstraintsFromSetApplyingTransaction($applyingTransaction))) {
            throw new \InvalidArgumentException($applyingTransactionArrayErrorMessage, __LINE__);
        }
        $this->applyingTransaction = $applyingTransaction;
        return $this;
    }
    /**
     * Add item to applyingTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToApplyingTransaction(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The applyingTransaction 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->applyingTransaction[] = $item;
        return $this;
    }
    /**
     * Get approvalStatus value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getApprovalStatus()
    {
        return $this->approvalStatus;
    }
    /**
     * This method is responsible for validating the values passed to the setApprovalStatus method
     * This method is willingly generated in order to preserve the one-line inline validation within the setApprovalStatus method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateApprovalStatusForArrayConstraintsFromSetApprovalStatus(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicApprovalStatusItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicApprovalStatusItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicApprovalStatusItem) ? get_class($transactionSearchRowBasicApprovalStatusItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicApprovalStatusItem), var_export($transactionSearchRowBasicApprovalStatusItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The approvalStatus 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 approvalStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $approvalStatus
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setApprovalStatus(array $approvalStatus = array())
    {
        // validation for constraint: array
        if ('' !== ($approvalStatusArrayErrorMessage = self::validateApprovalStatusForArrayConstraintsFromSetApprovalStatus($approvalStatus))) {
            throw new \InvalidArgumentException($approvalStatusArrayErrorMessage, __LINE__);
        }
        $this->approvalStatus = $approvalStatus;
        return $this;
    }
    /**
     * Add item to approvalStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToApprovalStatus(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The approvalStatus 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->approvalStatus[] = $item;
        return $this;
    }
    /**
     * Get authCode value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getAuthCode()
    {
        return $this->authCode;
    }
    /**
     * This method is responsible for validating the values passed to the setAuthCode method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAuthCode method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAuthCodeForArrayConstraintsFromSetAuthCode(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAuthCodeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAuthCodeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAuthCodeItem) ? get_class($transactionSearchRowBasicAuthCodeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAuthCodeItem), var_export($transactionSearchRowBasicAuthCodeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The authCode 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 authCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $authCode
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAuthCode(array $authCode = array())
    {
        // validation for constraint: array
        if ('' !== ($authCodeArrayErrorMessage = self::validateAuthCodeForArrayConstraintsFromSetAuthCode($authCode))) {
            throw new \InvalidArgumentException($authCodeArrayErrorMessage, __LINE__);
        }
        $this->authCode = $authCode;
        return $this;
    }
    /**
     * Add item to authCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAuthCode(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The authCode 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->authCode[] = $item;
        return $this;
    }
    /**
     * Get autoCalculateLag value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getAutoCalculateLag()
    {
        return $this->autoCalculateLag;
    }
    /**
     * This method is responsible for validating the values passed to the setAutoCalculateLag method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAutoCalculateLag method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAutoCalculateLagForArrayConstraintsFromSetAutoCalculateLag(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAutoCalculateLagItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAutoCalculateLagItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAutoCalculateLagItem) ? get_class($transactionSearchRowBasicAutoCalculateLagItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAutoCalculateLagItem), var_export($transactionSearchRowBasicAutoCalculateLagItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The autoCalculateLag 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 autoCalculateLag value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $autoCalculateLag
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAutoCalculateLag(array $autoCalculateLag = array())
    {
        // validation for constraint: array
        if ('' !== ($autoCalculateLagArrayErrorMessage = self::validateAutoCalculateLagForArrayConstraintsFromSetAutoCalculateLag($autoCalculateLag))) {
            throw new \InvalidArgumentException($autoCalculateLagArrayErrorMessage, __LINE__);
        }
        $this->autoCalculateLag = $autoCalculateLag;
        return $this;
    }
    /**
     * Add item to autoCalculateLag value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAutoCalculateLag(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The autoCalculateLag 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->autoCalculateLag[] = $item;
        return $this;
    }
    /**
     * Get avsStreetMatch value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getAvsStreetMatch()
    {
        return $this->avsStreetMatch;
    }
    /**
     * This method is responsible for validating the values passed to the setAvsStreetMatch method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAvsStreetMatch method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAvsStreetMatchForArrayConstraintsFromSetAvsStreetMatch(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAvsStreetMatchItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAvsStreetMatchItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAvsStreetMatchItem) ? get_class($transactionSearchRowBasicAvsStreetMatchItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAvsStreetMatchItem), var_export($transactionSearchRowBasicAvsStreetMatchItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The avsStreetMatch 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 avsStreetMatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $avsStreetMatch
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAvsStreetMatch(array $avsStreetMatch = array())
    {
        // validation for constraint: array
        if ('' !== ($avsStreetMatchArrayErrorMessage = self::validateAvsStreetMatchForArrayConstraintsFromSetAvsStreetMatch($avsStreetMatch))) {
            throw new \InvalidArgumentException($avsStreetMatchArrayErrorMessage, __LINE__);
        }
        $this->avsStreetMatch = $avsStreetMatch;
        return $this;
    }
    /**
     * Add item to avsStreetMatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAvsStreetMatch(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The avsStreetMatch 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->avsStreetMatch[] = $item;
        return $this;
    }
    /**
     * Get avsZipMatch value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getAvsZipMatch()
    {
        return $this->avsZipMatch;
    }
    /**
     * This method is responsible for validating the values passed to the setAvsZipMatch method
     * This method is willingly generated in order to preserve the one-line inline validation within the setAvsZipMatch method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateAvsZipMatchForArrayConstraintsFromSetAvsZipMatch(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicAvsZipMatchItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicAvsZipMatchItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicAvsZipMatchItem) ? get_class($transactionSearchRowBasicAvsZipMatchItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicAvsZipMatchItem), var_export($transactionSearchRowBasicAvsZipMatchItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The avsZipMatch 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 avsZipMatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $avsZipMatch
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setAvsZipMatch(array $avsZipMatch = array())
    {
        // validation for constraint: array
        if ('' !== ($avsZipMatchArrayErrorMessage = self::validateAvsZipMatchForArrayConstraintsFromSetAvsZipMatch($avsZipMatch))) {
            throw new \InvalidArgumentException($avsZipMatchArrayErrorMessage, __LINE__);
        }
        $this->avsZipMatch = $avsZipMatch;
        return $this;
    }
    /**
     * Add item to avsZipMatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToAvsZipMatch(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The avsZipMatch 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->avsZipMatch[] = $item;
        return $this;
    }
    /**
     * Get billable value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getBillable()
    {
        return $this->billable;
    }
    /**
     * This method is responsible for validating the values passed to the setBillable method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillable method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillableForArrayConstraintsFromSetBillable(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBillableItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillableItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillableItem) ? get_class($transactionSearchRowBasicBillableItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillableItem), var_export($transactionSearchRowBasicBillableItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billable 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 billable value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $billable
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBillable(array $billable = array())
    {
        // validation for constraint: array
        if ('' !== ($billableArrayErrorMessage = self::validateBillableForArrayConstraintsFromSetBillable($billable))) {
            throw new \InvalidArgumentException($billableArrayErrorMessage, __LINE__);
        }
        $this->billable = $billable;
        return $this;
    }
    /**
     * Add item to billable value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBillable(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The billable 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->billable[] = $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 $transactionSearchRowBasicBillAddressItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillAddressItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillAddressItem) ? get_class($transactionSearchRowBasicBillAddressItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillAddressItem), var_export($transactionSearchRowBasicBillAddressItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicBillAddress1Item) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillAddress1Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillAddress1Item) ? get_class($transactionSearchRowBasicBillAddress1Item) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillAddress1Item), var_export($transactionSearchRowBasicBillAddress1Item, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicBillAddress2Item) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillAddress2Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillAddress2Item) ? get_class($transactionSearchRowBasicBillAddress2Item) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillAddress2Item), var_export($transactionSearchRowBasicBillAddress2Item, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicBillAddress3Item) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillAddress3Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillAddress3Item) ? get_class($transactionSearchRowBasicBillAddress3Item) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillAddress3Item), var_export($transactionSearchRowBasicBillAddress3Item, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicBillAddresseeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillAddresseeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillAddresseeItem) ? get_class($transactionSearchRowBasicBillAddresseeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillAddresseeItem), var_export($transactionSearchRowBasicBillAddresseeItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicBillAttentionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillAttentionItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillAttentionItem) ? get_class($transactionSearchRowBasicBillAttentionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillAttentionItem), var_export($transactionSearchRowBasicBillAttentionItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicBillCityItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillCityItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillCityItem) ? get_class($transactionSearchRowBasicBillCityItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillCityItem), var_export($transactionSearchRowBasicBillCityItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicBillCountryItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillCountryItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillCountryItem) ? get_class($transactionSearchRowBasicBillCountryItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillCountryItem), var_export($transactionSearchRowBasicBillCountryItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicBillCountryCodeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillCountryCodeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillCountryCodeItem) ? get_class($transactionSearchRowBasicBillCountryCodeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillCountryCodeItem), var_export($transactionSearchRowBasicBillCountryCodeItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 billedDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getBilledDate()
    {
        return $this->billedDate;
    }
    /**
     * This method is responsible for validating the values passed to the setBilledDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBilledDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBilledDateForArrayConstraintsFromSetBilledDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBilledDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBilledDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBilledDateItem) ? get_class($transactionSearchRowBasicBilledDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBilledDateItem), var_export($transactionSearchRowBasicBilledDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billedDate 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 billedDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $billedDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBilledDate(array $billedDate = array())
    {
        // validation for constraint: array
        if ('' !== ($billedDateArrayErrorMessage = self::validateBilledDateForArrayConstraintsFromSetBilledDate($billedDate))) {
            throw new \InvalidArgumentException($billedDateArrayErrorMessage, __LINE__);
        }
        $this->billedDate = $billedDate;
        return $this;
    }
    /**
     * Add item to billedDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBilledDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The billedDate 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->billedDate[] = $item;
        return $this;
    }
    /**
     * Get billingAccount value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getBillingAccount()
    {
        return $this->billingAccount;
    }
    /**
     * This method is responsible for validating the values passed to the setBillingAccount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillingAccount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillingAccountForArrayConstraintsFromSetBillingAccount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBillingAccountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillingAccountItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillingAccountItem) ? get_class($transactionSearchRowBasicBillingAccountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillingAccountItem), var_export($transactionSearchRowBasicBillingAccountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billingAccount 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 billingAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $billingAccount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBillingAccount(array $billingAccount = array())
    {
        // validation for constraint: array
        if ('' !== ($billingAccountArrayErrorMessage = self::validateBillingAccountForArrayConstraintsFromSetBillingAccount($billingAccount))) {
            throw new \InvalidArgumentException($billingAccountArrayErrorMessage, __LINE__);
        }
        $this->billingAccount = $billingAccount;
        return $this;
    }
    /**
     * Add item to billingAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBillingAccount(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The billingAccount 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->billingAccount[] = $item;
        return $this;
    }
    /**
     * Get billingAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getBillingAmount()
    {
        return $this->billingAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setBillingAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillingAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillingAmountForArrayConstraintsFromSetBillingAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBillingAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillingAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillingAmountItem) ? get_class($transactionSearchRowBasicBillingAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillingAmountItem), var_export($transactionSearchRowBasicBillingAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billingAmount 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 billingAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $billingAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBillingAmount(array $billingAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($billingAmountArrayErrorMessage = self::validateBillingAmountForArrayConstraintsFromSetBillingAmount($billingAmount))) {
            throw new \InvalidArgumentException($billingAmountArrayErrorMessage, __LINE__);
        }
        $this->billingAmount = $billingAmount;
        return $this;
    }
    /**
     * Add item to billingAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBillingAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The billingAmount 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->billingAmount[] = $item;
        return $this;
    }
    /**
     * Get billingSchedule value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getBillingSchedule()
    {
        return $this->billingSchedule;
    }
    /**
     * This method is responsible for validating the values passed to the setBillingSchedule method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillingSchedule method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillingScheduleForArrayConstraintsFromSetBillingSchedule(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBillingScheduleItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillingScheduleItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillingScheduleItem) ? get_class($transactionSearchRowBasicBillingScheduleItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillingScheduleItem), var_export($transactionSearchRowBasicBillingScheduleItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billingSchedule 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 billingSchedule value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $billingSchedule
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBillingSchedule(array $billingSchedule = array())
    {
        // validation for constraint: array
        if ('' !== ($billingScheduleArrayErrorMessage = self::validateBillingScheduleForArrayConstraintsFromSetBillingSchedule($billingSchedule))) {
            throw new \InvalidArgumentException($billingScheduleArrayErrorMessage, __LINE__);
        }
        $this->billingSchedule = $billingSchedule;
        return $this;
    }
    /**
     * Add item to billingSchedule value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBillingSchedule(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The billingSchedule 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->billingSchedule[] = $item;
        return $this;
    }
    /**
     * Get billingTransaction value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getBillingTransaction()
    {
        return $this->billingTransaction;
    }
    /**
     * This method is responsible for validating the values passed to the setBillingTransaction method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillingTransaction method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillingTransactionForArrayConstraintsFromSetBillingTransaction(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBillingTransactionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillingTransactionItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillingTransactionItem) ? get_class($transactionSearchRowBasicBillingTransactionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillingTransactionItem), var_export($transactionSearchRowBasicBillingTransactionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billingTransaction 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 billingTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $billingTransaction
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBillingTransaction(array $billingTransaction = array())
    {
        // validation for constraint: array
        if ('' !== ($billingTransactionArrayErrorMessage = self::validateBillingTransactionForArrayConstraintsFromSetBillingTransaction($billingTransaction))) {
            throw new \InvalidArgumentException($billingTransactionArrayErrorMessage, __LINE__);
        }
        $this->billingTransaction = $billingTransaction;
        return $this;
    }
    /**
     * Add item to billingTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBillingTransaction(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The billingTransaction 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->billingTransaction[] = $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 $transactionSearchRowBasicBillPhoneItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillPhoneItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillPhoneItem) ? get_class($transactionSearchRowBasicBillPhoneItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillPhoneItem), var_export($transactionSearchRowBasicBillPhoneItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicBillStateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillStateItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillStateItem) ? get_class($transactionSearchRowBasicBillStateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillStateItem), var_export($transactionSearchRowBasicBillStateItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 billVarianceStatus value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getBillVarianceStatus()
    {
        return $this->billVarianceStatus;
    }
    /**
     * This method is responsible for validating the values passed to the setBillVarianceStatus method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillVarianceStatus method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillVarianceStatusForArrayConstraintsFromSetBillVarianceStatus(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBillVarianceStatusItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillVarianceStatusItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillVarianceStatusItem) ? get_class($transactionSearchRowBasicBillVarianceStatusItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillVarianceStatusItem), var_export($transactionSearchRowBasicBillVarianceStatusItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billVarianceStatus 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 billVarianceStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $billVarianceStatus
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBillVarianceStatus(array $billVarianceStatus = array())
    {
        // validation for constraint: array
        if ('' !== ($billVarianceStatusArrayErrorMessage = self::validateBillVarianceStatusForArrayConstraintsFromSetBillVarianceStatus($billVarianceStatus))) {
            throw new \InvalidArgumentException($billVarianceStatusArrayErrorMessage, __LINE__);
        }
        $this->billVarianceStatus = $billVarianceStatus;
        return $this;
    }
    /**
     * Add item to billVarianceStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBillVarianceStatus(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The billVarianceStatus 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->billVarianceStatus[] = $item;
        return $this;
    }
    /**
     * Get billZip value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBillZip()
    {
        return $this->billZip;
    }
    /**
     * This method is responsible for validating the values passed to the setBillZip method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBillZip method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBillZipForArrayConstraintsFromSetBillZip(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBillZipItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBillZipItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBillZipItem) ? get_class($transactionSearchRowBasicBillZipItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBillZipItem), var_export($transactionSearchRowBasicBillZipItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The billZip 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 billZip value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $billZip
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBillZip(array $billZip = array())
    {
        // validation for constraint: array
        if ('' !== ($billZipArrayErrorMessage = self::validateBillZipForArrayConstraintsFromSetBillZip($billZip))) {
            throw new \InvalidArgumentException($billZipArrayErrorMessage, __LINE__);
        }
        $this->billZip = $billZip;
        return $this;
    }
    /**
     * Add item to billZip value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBillZip(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The billZip 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->billZip[] = $item;
        return $this;
    }
    /**
     * Get binNumber value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getBinNumber()
    {
        return $this->binNumber;
    }
    /**
     * This method is responsible for validating the values passed to the setBinNumber method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBinNumber method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBinNumberForArrayConstraintsFromSetBinNumber(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBinNumberItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBinNumberItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBinNumberItem) ? get_class($transactionSearchRowBasicBinNumberItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBinNumberItem), var_export($transactionSearchRowBasicBinNumberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The binNumber 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 binNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $binNumber
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBinNumber(array $binNumber = array())
    {
        // validation for constraint: array
        if ('' !== ($binNumberArrayErrorMessage = self::validateBinNumberForArrayConstraintsFromSetBinNumber($binNumber))) {
            throw new \InvalidArgumentException($binNumberArrayErrorMessage, __LINE__);
        }
        $this->binNumber = $binNumber;
        return $this;
    }
    /**
     * Add item to binNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBinNumber(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The binNumber 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->binNumber[] = $item;
        return $this;
    }
    /**
     * Get binNumberQuantity value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getBinNumberQuantity()
    {
        return $this->binNumberQuantity;
    }
    /**
     * This method is responsible for validating the values passed to the setBinNumberQuantity method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBinNumberQuantity method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBinNumberQuantityForArrayConstraintsFromSetBinNumberQuantity(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBinNumberQuantityItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBinNumberQuantityItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBinNumberQuantityItem) ? get_class($transactionSearchRowBasicBinNumberQuantityItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBinNumberQuantityItem), var_export($transactionSearchRowBasicBinNumberQuantityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The binNumberQuantity 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 binNumberQuantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $binNumberQuantity
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBinNumberQuantity(array $binNumberQuantity = array())
    {
        // validation for constraint: array
        if ('' !== ($binNumberQuantityArrayErrorMessage = self::validateBinNumberQuantityForArrayConstraintsFromSetBinNumberQuantity($binNumberQuantity))) {
            throw new \InvalidArgumentException($binNumberQuantityArrayErrorMessage, __LINE__);
        }
        $this->binNumberQuantity = $binNumberQuantity;
        return $this;
    }
    /**
     * Add item to binNumberQuantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBinNumberQuantity(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The binNumberQuantity 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->binNumberQuantity[] = $item;
        return $this;
    }
    /**
     * Get bomQuantity value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getBomQuantity()
    {
        return $this->bomQuantity;
    }
    /**
     * This method is responsible for validating the values passed to the setBomQuantity method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBomQuantity method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBomQuantityForArrayConstraintsFromSetBomQuantity(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBomQuantityItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBomQuantityItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBomQuantityItem) ? get_class($transactionSearchRowBasicBomQuantityItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBomQuantityItem), var_export($transactionSearchRowBasicBomQuantityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The bomQuantity 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 bomQuantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $bomQuantity
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBomQuantity(array $bomQuantity = array())
    {
        // validation for constraint: array
        if ('' !== ($bomQuantityArrayErrorMessage = self::validateBomQuantityForArrayConstraintsFromSetBomQuantity($bomQuantity))) {
            throw new \InvalidArgumentException($bomQuantityArrayErrorMessage, __LINE__);
        }
        $this->bomQuantity = $bomQuantity;
        return $this;
    }
    /**
     * Add item to bomQuantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBomQuantity(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The bomQuantity 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->bomQuantity[] = $item;
        return $this;
    }
    /**
     * Get buildEntireAssembly value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getBuildEntireAssembly()
    {
        return $this->buildEntireAssembly;
    }
    /**
     * This method is responsible for validating the values passed to the setBuildEntireAssembly method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBuildEntireAssembly method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBuildEntireAssemblyForArrayConstraintsFromSetBuildEntireAssembly(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBuildEntireAssemblyItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBuildEntireAssemblyItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBuildEntireAssemblyItem) ? get_class($transactionSearchRowBasicBuildEntireAssemblyItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBuildEntireAssemblyItem), var_export($transactionSearchRowBasicBuildEntireAssemblyItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The buildEntireAssembly 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 buildEntireAssembly value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $buildEntireAssembly
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBuildEntireAssembly(array $buildEntireAssembly = array())
    {
        // validation for constraint: array
        if ('' !== ($buildEntireAssemblyArrayErrorMessage = self::validateBuildEntireAssemblyForArrayConstraintsFromSetBuildEntireAssembly($buildEntireAssembly))) {
            throw new \InvalidArgumentException($buildEntireAssemblyArrayErrorMessage, __LINE__);
        }
        $this->buildEntireAssembly = $buildEntireAssembly;
        return $this;
    }
    /**
     * Add item to buildEntireAssembly value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBuildEntireAssembly(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The buildEntireAssembly 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->buildEntireAssembly[] = $item;
        return $this;
    }
    /**
     * Get buildVariance value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getBuildVariance()
    {
        return $this->buildVariance;
    }
    /**
     * This method is responsible for validating the values passed to the setBuildVariance method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBuildVariance method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBuildVarianceForArrayConstraintsFromSetBuildVariance(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBuildVarianceItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBuildVarianceItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBuildVarianceItem) ? get_class($transactionSearchRowBasicBuildVarianceItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBuildVarianceItem), var_export($transactionSearchRowBasicBuildVarianceItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The buildVariance 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 buildVariance value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $buildVariance
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBuildVariance(array $buildVariance = array())
    {
        // validation for constraint: array
        if ('' !== ($buildVarianceArrayErrorMessage = self::validateBuildVarianceForArrayConstraintsFromSetBuildVariance($buildVariance))) {
            throw new \InvalidArgumentException($buildVarianceArrayErrorMessage, __LINE__);
        }
        $this->buildVariance = $buildVariance;
        return $this;
    }
    /**
     * Add item to buildVariance value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBuildVariance(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The buildVariance 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->buildVariance[] = $item;
        return $this;
    }
    /**
     * Get built value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getBuilt()
    {
        return $this->built;
    }
    /**
     * This method is responsible for validating the values passed to the setBuilt method
     * This method is willingly generated in order to preserve the one-line inline validation within the setBuilt method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateBuiltForArrayConstraintsFromSetBuilt(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicBuiltItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicBuiltItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicBuiltItem) ? get_class($transactionSearchRowBasicBuiltItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicBuiltItem), var_export($transactionSearchRowBasicBuiltItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The built 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 built value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $built
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setBuilt(array $built = array())
    {
        // validation for constraint: array
        if ('' !== ($builtArrayErrorMessage = self::validateBuiltForArrayConstraintsFromSetBuilt($built))) {
            throw new \InvalidArgumentException($builtArrayErrorMessage, __LINE__);
        }
        $this->built = $built;
        return $this;
    }
    /**
     * Add item to built value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToBuilt(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The built 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->built[] = $item;
        return $this;
    }
    /**
     * Get canHaveStackablePromotions value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getCanHaveStackablePromotions()
    {
        return $this->canHaveStackablePromotions;
    }
    /**
     * This method is responsible for validating the values passed to the setCanHaveStackablePromotions method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCanHaveStackablePromotions method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCanHaveStackablePromotionsForArrayConstraintsFromSetCanHaveStackablePromotions(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCanHaveStackablePromotionsItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCanHaveStackablePromotionsItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCanHaveStackablePromotionsItem) ? get_class($transactionSearchRowBasicCanHaveStackablePromotionsItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCanHaveStackablePromotionsItem), var_export($transactionSearchRowBasicCanHaveStackablePromotionsItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The canHaveStackablePromotions 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 canHaveStackablePromotions value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $canHaveStackablePromotions
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCanHaveStackablePromotions(array $canHaveStackablePromotions = array())
    {
        // validation for constraint: array
        if ('' !== ($canHaveStackablePromotionsArrayErrorMessage = self::validateCanHaveStackablePromotionsForArrayConstraintsFromSetCanHaveStackablePromotions($canHaveStackablePromotions))) {
            throw new \InvalidArgumentException($canHaveStackablePromotionsArrayErrorMessage, __LINE__);
        }
        $this->canHaveStackablePromotions = $canHaveStackablePromotions;
        return $this;
    }
    /**
     * Add item to canHaveStackablePromotions value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCanHaveStackablePromotions(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The canHaveStackablePromotions 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->canHaveStackablePromotions[] = $item;
        return $this;
    }
    /**
     * Get catchUpPeriod value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getCatchUpPeriod()
    {
        return $this->catchUpPeriod;
    }
    /**
     * This method is responsible for validating the values passed to the setCatchUpPeriod method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCatchUpPeriod method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCatchUpPeriodForArrayConstraintsFromSetCatchUpPeriod(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCatchUpPeriodItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCatchUpPeriodItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCatchUpPeriodItem) ? get_class($transactionSearchRowBasicCatchUpPeriodItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCatchUpPeriodItem), var_export($transactionSearchRowBasicCatchUpPeriodItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The catchUpPeriod 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 catchUpPeriod value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $catchUpPeriod
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCatchUpPeriod(array $catchUpPeriod = array())
    {
        // validation for constraint: array
        if ('' !== ($catchUpPeriodArrayErrorMessage = self::validateCatchUpPeriodForArrayConstraintsFromSetCatchUpPeriod($catchUpPeriod))) {
            throw new \InvalidArgumentException($catchUpPeriodArrayErrorMessage, __LINE__);
        }
        $this->catchUpPeriod = $catchUpPeriod;
        return $this;
    }
    /**
     * Add item to catchUpPeriod value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCatchUpPeriod(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The catchUpPeriod 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->catchUpPeriod[] = $item;
        return $this;
    }
    /**
     * Get ccCustomerCode value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getCcCustomerCode()
    {
        return $this->ccCustomerCode;
    }
    /**
     * This method is responsible for validating the values passed to the setCcCustomerCode method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCcCustomerCode method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCcCustomerCodeForArrayConstraintsFromSetCcCustomerCode(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCcCustomerCodeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCcCustomerCodeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCcCustomerCodeItem) ? get_class($transactionSearchRowBasicCcCustomerCodeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCcCustomerCodeItem), var_export($transactionSearchRowBasicCcCustomerCodeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The ccCustomerCode 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 ccCustomerCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $ccCustomerCode
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCcCustomerCode(array $ccCustomerCode = array())
    {
        // validation for constraint: array
        if ('' !== ($ccCustomerCodeArrayErrorMessage = self::validateCcCustomerCodeForArrayConstraintsFromSetCcCustomerCode($ccCustomerCode))) {
            throw new \InvalidArgumentException($ccCustomerCodeArrayErrorMessage, __LINE__);
        }
        $this->ccCustomerCode = $ccCustomerCode;
        return $this;
    }
    /**
     * Add item to ccCustomerCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCcCustomerCode(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The ccCustomerCode 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->ccCustomerCode[] = $item;
        return $this;
    }
    /**
     * Get ccExpDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getCcExpDate()
    {
        return $this->ccExpDate;
    }
    /**
     * This method is responsible for validating the values passed to the setCcExpDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCcExpDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCcExpDateForArrayConstraintsFromSetCcExpDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCcExpDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCcExpDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCcExpDateItem) ? get_class($transactionSearchRowBasicCcExpDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCcExpDateItem), var_export($transactionSearchRowBasicCcExpDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The ccExpDate 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 ccExpDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $ccExpDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCcExpDate(array $ccExpDate = array())
    {
        // validation for constraint: array
        if ('' !== ($ccExpDateArrayErrorMessage = self::validateCcExpDateForArrayConstraintsFromSetCcExpDate($ccExpDate))) {
            throw new \InvalidArgumentException($ccExpDateArrayErrorMessage, __LINE__);
        }
        $this->ccExpDate = $ccExpDate;
        return $this;
    }
    /**
     * Add item to ccExpDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCcExpDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The ccExpDate 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->ccExpDate[] = $item;
        return $this;
    }
    /**
     * Get ccHolderName value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getCcHolderName()
    {
        return $this->ccHolderName;
    }
    /**
     * This method is responsible for validating the values passed to the setCcHolderName method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCcHolderName method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCcHolderNameForArrayConstraintsFromSetCcHolderName(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCcHolderNameItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCcHolderNameItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCcHolderNameItem) ? get_class($transactionSearchRowBasicCcHolderNameItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCcHolderNameItem), var_export($transactionSearchRowBasicCcHolderNameItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The ccHolderName 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 ccHolderName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $ccHolderName
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCcHolderName(array $ccHolderName = array())
    {
        // validation for constraint: array
        if ('' !== ($ccHolderNameArrayErrorMessage = self::validateCcHolderNameForArrayConstraintsFromSetCcHolderName($ccHolderName))) {
            throw new \InvalidArgumentException($ccHolderNameArrayErrorMessage, __LINE__);
        }
        $this->ccHolderName = $ccHolderName;
        return $this;
    }
    /**
     * Add item to ccHolderName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCcHolderName(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The ccHolderName 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->ccHolderName[] = $item;
        return $this;
    }
    /**
     * Get ccNumber value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getCcNumber()
    {
        return $this->ccNumber;
    }
    /**
     * This method is responsible for validating the values passed to the setCcNumber method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCcNumber method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCcNumberForArrayConstraintsFromSetCcNumber(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCcNumberItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCcNumberItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCcNumberItem) ? get_class($transactionSearchRowBasicCcNumberItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCcNumberItem), var_export($transactionSearchRowBasicCcNumberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The ccNumber 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 ccNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $ccNumber
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCcNumber(array $ccNumber = array())
    {
        // validation for constraint: array
        if ('' !== ($ccNumberArrayErrorMessage = self::validateCcNumberForArrayConstraintsFromSetCcNumber($ccNumber))) {
            throw new \InvalidArgumentException($ccNumberArrayErrorMessage, __LINE__);
        }
        $this->ccNumber = $ccNumber;
        return $this;
    }
    /**
     * Add item to ccNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCcNumber(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The ccNumber 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->ccNumber[] = $item;
        return $this;
    }
    /**
     * Get ccStreet value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getCcStreet()
    {
        return $this->ccStreet;
    }
    /**
     * This method is responsible for validating the values passed to the setCcStreet method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCcStreet method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCcStreetForArrayConstraintsFromSetCcStreet(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCcStreetItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCcStreetItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCcStreetItem) ? get_class($transactionSearchRowBasicCcStreetItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCcStreetItem), var_export($transactionSearchRowBasicCcStreetItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The ccStreet 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 ccStreet value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $ccStreet
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCcStreet(array $ccStreet = array())
    {
        // validation for constraint: array
        if ('' !== ($ccStreetArrayErrorMessage = self::validateCcStreetForArrayConstraintsFromSetCcStreet($ccStreet))) {
            throw new \InvalidArgumentException($ccStreetArrayErrorMessage, __LINE__);
        }
        $this->ccStreet = $ccStreet;
        return $this;
    }
    /**
     * Add item to ccStreet value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCcStreet(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The ccStreet 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->ccStreet[] = $item;
        return $this;
    }
    /**
     * Get ccZipCode value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getCcZipCode()
    {
        return $this->ccZipCode;
    }
    /**
     * This method is responsible for validating the values passed to the setCcZipCode method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCcZipCode method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCcZipCodeForArrayConstraintsFromSetCcZipCode(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCcZipCodeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCcZipCodeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCcZipCodeItem) ? get_class($transactionSearchRowBasicCcZipCodeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCcZipCodeItem), var_export($transactionSearchRowBasicCcZipCodeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The ccZipCode 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 ccZipCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $ccZipCode
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCcZipCode(array $ccZipCode = array())
    {
        // validation for constraint: array
        if ('' !== ($ccZipCodeArrayErrorMessage = self::validateCcZipCodeForArrayConstraintsFromSetCcZipCode($ccZipCode))) {
            throw new \InvalidArgumentException($ccZipCodeArrayErrorMessage, __LINE__);
        }
        $this->ccZipCode = $ccZipCode;
        return $this;
    }
    /**
     * Add item to ccZipCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCcZipCode(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The ccZipCode 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->ccZipCode[] = $item;
        return $this;
    }
    /**
     * Get class value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getClass()
    {
        return $this->class;
    }
    /**
     * This method is responsible for validating the values passed to the setClass method
     * This method is willingly generated in order to preserve the one-line inline validation within the setClass method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateClassForArrayConstraintsFromSetClass(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicClassItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicClassItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicClassItem) ? get_class($transactionSearchRowBasicClassItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicClassItem), var_export($transactionSearchRowBasicClassItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The class 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 class value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $class
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setClass(array $class = array())
    {
        // validation for constraint: array
        if ('' !== ($classArrayErrorMessage = self::validateClassForArrayConstraintsFromSetClass($class))) {
            throw new \InvalidArgumentException($classArrayErrorMessage, __LINE__);
        }
        $this->class = $class;
        return $this;
    }
    /**
     * Add item to class value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToClass(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The class 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->class[] = $item;
        return $this;
    }
    /**
     * Get cleared value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getCleared()
    {
        return $this->cleared;
    }
    /**
     * This method is responsible for validating the values passed to the setCleared method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCleared method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateClearedForArrayConstraintsFromSetCleared(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicClearedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicClearedItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicClearedItem) ? get_class($transactionSearchRowBasicClearedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicClearedItem), var_export($transactionSearchRowBasicClearedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The cleared 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 cleared value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $cleared
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCleared(array $cleared = array())
    {
        // validation for constraint: array
        if ('' !== ($clearedArrayErrorMessage = self::validateClearedForArrayConstraintsFromSetCleared($cleared))) {
            throw new \InvalidArgumentException($clearedArrayErrorMessage, __LINE__);
        }
        $this->cleared = $cleared;
        return $this;
    }
    /**
     * Add item to cleared value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCleared(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The cleared 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->cleared[] = $item;
        return $this;
    }
    /**
     * Get closed value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getClosed()
    {
        return $this->closed;
    }
    /**
     * This method is responsible for validating the values passed to the setClosed method
     * This method is willingly generated in order to preserve the one-line inline validation within the setClosed method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateClosedForArrayConstraintsFromSetClosed(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicClosedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicClosedItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicClosedItem) ? get_class($transactionSearchRowBasicClosedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicClosedItem), var_export($transactionSearchRowBasicClosedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The closed 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 closed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $closed
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setClosed(array $closed = array())
    {
        // validation for constraint: array
        if ('' !== ($closedArrayErrorMessage = self::validateClosedForArrayConstraintsFromSetClosed($closed))) {
            throw new \InvalidArgumentException($closedArrayErrorMessage, __LINE__);
        }
        $this->closed = $closed;
        return $this;
    }
    /**
     * Add item to closed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToClosed(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The closed 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->closed[] = $item;
        return $this;
    }
    /**
     * Get closeDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getCloseDate()
    {
        return $this->closeDate;
    }
    /**
     * This method is responsible for validating the values passed to the setCloseDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCloseDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCloseDateForArrayConstraintsFromSetCloseDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCloseDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCloseDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCloseDateItem) ? get_class($transactionSearchRowBasicCloseDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCloseDateItem), var_export($transactionSearchRowBasicCloseDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The closeDate 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 closeDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $closeDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCloseDate(array $closeDate = array())
    {
        // validation for constraint: array
        if ('' !== ($closeDateArrayErrorMessage = self::validateCloseDateForArrayConstraintsFromSetCloseDate($closeDate))) {
            throw new \InvalidArgumentException($closeDateArrayErrorMessage, __LINE__);
        }
        $this->closeDate = $closeDate;
        return $this;
    }
    /**
     * Add item to closeDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCloseDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The closeDate 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->closeDate[] = $item;
        return $this;
    }
    /**
     * Get cogsAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getCogsAmount()
    {
        return $this->cogsAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setCogsAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCogsAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCogsAmountForArrayConstraintsFromSetCogsAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCogsAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCogsAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCogsAmountItem) ? get_class($transactionSearchRowBasicCogsAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCogsAmountItem), var_export($transactionSearchRowBasicCogsAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The cogsAmount 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 cogsAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $cogsAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCogsAmount(array $cogsAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($cogsAmountArrayErrorMessage = self::validateCogsAmountForArrayConstraintsFromSetCogsAmount($cogsAmount))) {
            throw new \InvalidArgumentException($cogsAmountArrayErrorMessage, __LINE__);
        }
        $this->cogsAmount = $cogsAmount;
        return $this;
    }
    /**
     * Add item to cogsAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCogsAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The cogsAmount 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->cogsAmount[] = $item;
        return $this;
    }
    /**
     * Get commissionEffectiveDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getCommissionEffectiveDate()
    {
        return $this->commissionEffectiveDate;
    }
    /**
     * This method is responsible for validating the values passed to the setCommissionEffectiveDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCommissionEffectiveDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCommissionEffectiveDateForArrayConstraintsFromSetCommissionEffectiveDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCommissionEffectiveDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCommissionEffectiveDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCommissionEffectiveDateItem) ? get_class($transactionSearchRowBasicCommissionEffectiveDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCommissionEffectiveDateItem), var_export($transactionSearchRowBasicCommissionEffectiveDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The commissionEffectiveDate 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 commissionEffectiveDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $commissionEffectiveDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCommissionEffectiveDate(array $commissionEffectiveDate = array())
    {
        // validation for constraint: array
        if ('' !== ($commissionEffectiveDateArrayErrorMessage = self::validateCommissionEffectiveDateForArrayConstraintsFromSetCommissionEffectiveDate($commissionEffectiveDate))) {
            throw new \InvalidArgumentException($commissionEffectiveDateArrayErrorMessage, __LINE__);
        }
        $this->commissionEffectiveDate = $commissionEffectiveDate;
        return $this;
    }
    /**
     * Add item to commissionEffectiveDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCommissionEffectiveDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The commissionEffectiveDate 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->commissionEffectiveDate[] = $item;
        return $this;
    }
    /**
     * Get commit value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getCommit()
    {
        return $this->commit;
    }
    /**
     * This method is responsible for validating the values passed to the setCommit method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCommit method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCommitForArrayConstraintsFromSetCommit(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCommitItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCommitItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCommitItem) ? get_class($transactionSearchRowBasicCommitItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCommitItem), var_export($transactionSearchRowBasicCommitItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The commit 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 commit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $commit
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCommit(array $commit = array())
    {
        // validation for constraint: array
        if ('' !== ($commitArrayErrorMessage = self::validateCommitForArrayConstraintsFromSetCommit($commit))) {
            throw new \InvalidArgumentException($commitArrayErrorMessage, __LINE__);
        }
        $this->commit = $commit;
        return $this;
    }
    /**
     * Add item to commit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCommit(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The commit 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->commit[] = $item;
        return $this;
    }
    /**
     * Get componentYield value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getComponentYield()
    {
        return $this->componentYield;
    }
    /**
     * This method is responsible for validating the values passed to the setComponentYield method
     * This method is willingly generated in order to preserve the one-line inline validation within the setComponentYield method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateComponentYieldForArrayConstraintsFromSetComponentYield(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicComponentYieldItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicComponentYieldItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicComponentYieldItem) ? get_class($transactionSearchRowBasicComponentYieldItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicComponentYieldItem), var_export($transactionSearchRowBasicComponentYieldItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The componentYield 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 componentYield value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $componentYield
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setComponentYield(array $componentYield = array())
    {
        // validation for constraint: array
        if ('' !== ($componentYieldArrayErrorMessage = self::validateComponentYieldForArrayConstraintsFromSetComponentYield($componentYield))) {
            throw new \InvalidArgumentException($componentYieldArrayErrorMessage, __LINE__);
        }
        $this->componentYield = $componentYield;
        return $this;
    }
    /**
     * Add item to componentYield value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToComponentYield(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The componentYield 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->componentYield[] = $item;
        return $this;
    }
    /**
     * Get confirmationNumber value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getConfirmationNumber()
    {
        return $this->confirmationNumber;
    }
    /**
     * This method is responsible for validating the values passed to the setConfirmationNumber method
     * This method is willingly generated in order to preserve the one-line inline validation within the setConfirmationNumber method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateConfirmationNumberForArrayConstraintsFromSetConfirmationNumber(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicConfirmationNumberItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicConfirmationNumberItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicConfirmationNumberItem) ? get_class($transactionSearchRowBasicConfirmationNumberItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicConfirmationNumberItem), var_export($transactionSearchRowBasicConfirmationNumberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The confirmationNumber 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 confirmationNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $confirmationNumber
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setConfirmationNumber(array $confirmationNumber = array())
    {
        // validation for constraint: array
        if ('' !== ($confirmationNumberArrayErrorMessage = self::validateConfirmationNumberForArrayConstraintsFromSetConfirmationNumber($confirmationNumber))) {
            throw new \InvalidArgumentException($confirmationNumberArrayErrorMessage, __LINE__);
        }
        $this->confirmationNumber = $confirmationNumber;
        return $this;
    }
    /**
     * Add item to confirmationNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToConfirmationNumber(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The confirmationNumber 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->confirmationNumber[] = $item;
        return $this;
    }
    /**
     * Get contribution value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getContribution()
    {
        return $this->contribution;
    }
    /**
     * This method is responsible for validating the values passed to the setContribution method
     * This method is willingly generated in order to preserve the one-line inline validation within the setContribution method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateContributionForArrayConstraintsFromSetContribution(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicContributionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicContributionItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicContributionItem) ? get_class($transactionSearchRowBasicContributionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicContributionItem), var_export($transactionSearchRowBasicContributionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The contribution 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 contribution value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $contribution
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setContribution(array $contribution = array())
    {
        // validation for constraint: array
        if ('' !== ($contributionArrayErrorMessage = self::validateContributionForArrayConstraintsFromSetContribution($contribution))) {
            throw new \InvalidArgumentException($contributionArrayErrorMessage, __LINE__);
        }
        $this->contribution = $contribution;
        return $this;
    }
    /**
     * Add item to contribution value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToContribution(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The contribution 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->contribution[] = $item;
        return $this;
    }
    /**
     * Get contributionPrimary value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getContributionPrimary()
    {
        return $this->contributionPrimary;
    }
    /**
     * This method is responsible for validating the values passed to the setContributionPrimary method
     * This method is willingly generated in order to preserve the one-line inline validation within the setContributionPrimary method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateContributionPrimaryForArrayConstraintsFromSetContributionPrimary(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicContributionPrimaryItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicContributionPrimaryItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicContributionPrimaryItem) ? get_class($transactionSearchRowBasicContributionPrimaryItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicContributionPrimaryItem), var_export($transactionSearchRowBasicContributionPrimaryItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The contributionPrimary 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 contributionPrimary value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $contributionPrimary
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setContributionPrimary(array $contributionPrimary = array())
    {
        // validation for constraint: array
        if ('' !== ($contributionPrimaryArrayErrorMessage = self::validateContributionPrimaryForArrayConstraintsFromSetContributionPrimary($contributionPrimary))) {
            throw new \InvalidArgumentException($contributionPrimaryArrayErrorMessage, __LINE__);
        }
        $this->contributionPrimary = $contributionPrimary;
        return $this;
    }
    /**
     * Add item to contributionPrimary value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToContributionPrimary(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The contributionPrimary 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->contributionPrimary[] = $item;
        return $this;
    }
    /**
     * Get costComponentAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getCostComponentAmount()
    {
        return $this->costComponentAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setCostComponentAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCostComponentAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCostComponentAmountForArrayConstraintsFromSetCostComponentAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCostComponentAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCostComponentAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCostComponentAmountItem) ? get_class($transactionSearchRowBasicCostComponentAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCostComponentAmountItem), var_export($transactionSearchRowBasicCostComponentAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The costComponentAmount 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 costComponentAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $costComponentAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCostComponentAmount(array $costComponentAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($costComponentAmountArrayErrorMessage = self::validateCostComponentAmountForArrayConstraintsFromSetCostComponentAmount($costComponentAmount))) {
            throw new \InvalidArgumentException($costComponentAmountArrayErrorMessage, __LINE__);
        }
        $this->costComponentAmount = $costComponentAmount;
        return $this;
    }
    /**
     * Add item to costComponentAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCostComponentAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The costComponentAmount 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->costComponentAmount[] = $item;
        return $this;
    }
    /**
     * Get costComponentCategory value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getCostComponentCategory()
    {
        return $this->costComponentCategory;
    }
    /**
     * This method is responsible for validating the values passed to the setCostComponentCategory method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCostComponentCategory method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCostComponentCategoryForArrayConstraintsFromSetCostComponentCategory(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCostComponentCategoryItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCostComponentCategoryItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCostComponentCategoryItem) ? get_class($transactionSearchRowBasicCostComponentCategoryItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCostComponentCategoryItem), var_export($transactionSearchRowBasicCostComponentCategoryItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The costComponentCategory 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 costComponentCategory value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $costComponentCategory
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCostComponentCategory(array $costComponentCategory = array())
    {
        // validation for constraint: array
        if ('' !== ($costComponentCategoryArrayErrorMessage = self::validateCostComponentCategoryForArrayConstraintsFromSetCostComponentCategory($costComponentCategory))) {
            throw new \InvalidArgumentException($costComponentCategoryArrayErrorMessage, __LINE__);
        }
        $this->costComponentCategory = $costComponentCategory;
        return $this;
    }
    /**
     * Add item to costComponentCategory value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCostComponentCategory(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The costComponentCategory 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->costComponentCategory[] = $item;
        return $this;
    }
    /**
     * Get costComponentItem value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getCostComponentItem()
    {
        return $this->costComponentItem;
    }
    /**
     * This method is responsible for validating the values passed to the setCostComponentItem method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCostComponentItem method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCostComponentItemForArrayConstraintsFromSetCostComponentItem(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCostComponentItemItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCostComponentItemItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCostComponentItemItem) ? get_class($transactionSearchRowBasicCostComponentItemItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCostComponentItemItem), var_export($transactionSearchRowBasicCostComponentItemItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The costComponentItem 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 costComponentItem value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $costComponentItem
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCostComponentItem(array $costComponentItem = array())
    {
        // validation for constraint: array
        if ('' !== ($costComponentItemArrayErrorMessage = self::validateCostComponentItemForArrayConstraintsFromSetCostComponentItem($costComponentItem))) {
            throw new \InvalidArgumentException($costComponentItemArrayErrorMessage, __LINE__);
        }
        $this->costComponentItem = $costComponentItem;
        return $this;
    }
    /**
     * Add item to costComponentItem value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCostComponentItem(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The costComponentItem 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->costComponentItem[] = $item;
        return $this;
    }
    /**
     * Get costComponentQuantity value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getCostComponentQuantity()
    {
        return $this->costComponentQuantity;
    }
    /**
     * This method is responsible for validating the values passed to the setCostComponentQuantity method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCostComponentQuantity method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCostComponentQuantityForArrayConstraintsFromSetCostComponentQuantity(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCostComponentQuantityItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCostComponentQuantityItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCostComponentQuantityItem) ? get_class($transactionSearchRowBasicCostComponentQuantityItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCostComponentQuantityItem), var_export($transactionSearchRowBasicCostComponentQuantityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The costComponentQuantity 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 costComponentQuantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $costComponentQuantity
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCostComponentQuantity(array $costComponentQuantity = array())
    {
        // validation for constraint: array
        if ('' !== ($costComponentQuantityArrayErrorMessage = self::validateCostComponentQuantityForArrayConstraintsFromSetCostComponentQuantity($costComponentQuantity))) {
            throw new \InvalidArgumentException($costComponentQuantityArrayErrorMessage, __LINE__);
        }
        $this->costComponentQuantity = $costComponentQuantity;
        return $this;
    }
    /**
     * Add item to costComponentQuantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCostComponentQuantity(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The costComponentQuantity 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->costComponentQuantity[] = $item;
        return $this;
    }
    /**
     * Get costComponentStandardCost value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getCostComponentStandardCost()
    {
        return $this->costComponentStandardCost;
    }
    /**
     * This method is responsible for validating the values passed to the setCostComponentStandardCost method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCostComponentStandardCost method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCostComponentStandardCostForArrayConstraintsFromSetCostComponentStandardCost(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCostComponentStandardCostItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCostComponentStandardCostItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCostComponentStandardCostItem) ? get_class($transactionSearchRowBasicCostComponentStandardCostItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCostComponentStandardCostItem), var_export($transactionSearchRowBasicCostComponentStandardCostItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The costComponentStandardCost 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 costComponentStandardCost value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $costComponentStandardCost
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCostComponentStandardCost(array $costComponentStandardCost = array())
    {
        // validation for constraint: array
        if ('' !== ($costComponentStandardCostArrayErrorMessage = self::validateCostComponentStandardCostForArrayConstraintsFromSetCostComponentStandardCost($costComponentStandardCost))) {
            throw new \InvalidArgumentException($costComponentStandardCostArrayErrorMessage, __LINE__);
        }
        $this->costComponentStandardCost = $costComponentStandardCost;
        return $this;
    }
    /**
     * Add item to costComponentStandardCost value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCostComponentStandardCost(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The costComponentStandardCost 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->costComponentStandardCost[] = $item;
        return $this;
    }
    /**
     * Get costEstimate value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getCostEstimate()
    {
        return $this->costEstimate;
    }
    /**
     * This method is responsible for validating the values passed to the setCostEstimate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCostEstimate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCostEstimateForArrayConstraintsFromSetCostEstimate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCostEstimateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCostEstimateItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCostEstimateItem) ? get_class($transactionSearchRowBasicCostEstimateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCostEstimateItem), var_export($transactionSearchRowBasicCostEstimateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The costEstimate 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 costEstimate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $costEstimate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCostEstimate(array $costEstimate = array())
    {
        // validation for constraint: array
        if ('' !== ($costEstimateArrayErrorMessage = self::validateCostEstimateForArrayConstraintsFromSetCostEstimate($costEstimate))) {
            throw new \InvalidArgumentException($costEstimateArrayErrorMessage, __LINE__);
        }
        $this->costEstimate = $costEstimate;
        return $this;
    }
    /**
     * Add item to costEstimate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCostEstimate(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The costEstimate 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->costEstimate[] = $item;
        return $this;
    }
    /**
     * Get costEstimateRate value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getCostEstimateRate()
    {
        return $this->costEstimateRate;
    }
    /**
     * This method is responsible for validating the values passed to the setCostEstimateRate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCostEstimateRate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCostEstimateRateForArrayConstraintsFromSetCostEstimateRate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCostEstimateRateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCostEstimateRateItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCostEstimateRateItem) ? get_class($transactionSearchRowBasicCostEstimateRateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCostEstimateRateItem), var_export($transactionSearchRowBasicCostEstimateRateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The costEstimateRate 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 costEstimateRate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $costEstimateRate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCostEstimateRate(array $costEstimateRate = array())
    {
        // validation for constraint: array
        if ('' !== ($costEstimateRateArrayErrorMessage = self::validateCostEstimateRateForArrayConstraintsFromSetCostEstimateRate($costEstimateRate))) {
            throw new \InvalidArgumentException($costEstimateRateArrayErrorMessage, __LINE__);
        }
        $this->costEstimateRate = $costEstimateRate;
        return $this;
    }
    /**
     * Add item to costEstimateRate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCostEstimateRate(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The costEstimateRate 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->costEstimateRate[] = $item;
        return $this;
    }
    /**
     * Get costEstimateType value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getCostEstimateType()
    {
        return $this->costEstimateType;
    }
    /**
     * This method is responsible for validating the values passed to the setCostEstimateType method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCostEstimateType method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCostEstimateTypeForArrayConstraintsFromSetCostEstimateType(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCostEstimateTypeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCostEstimateTypeItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCostEstimateTypeItem) ? get_class($transactionSearchRowBasicCostEstimateTypeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCostEstimateTypeItem), var_export($transactionSearchRowBasicCostEstimateTypeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The costEstimateType 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 costEstimateType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $costEstimateType
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCostEstimateType(array $costEstimateType = array())
    {
        // validation for constraint: array
        if ('' !== ($costEstimateTypeArrayErrorMessage = self::validateCostEstimateTypeForArrayConstraintsFromSetCostEstimateType($costEstimateType))) {
            throw new \InvalidArgumentException($costEstimateTypeArrayErrorMessage, __LINE__);
        }
        $this->costEstimateType = $costEstimateType;
        return $this;
    }
    /**
     * Add item to costEstimateType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCostEstimateType(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The costEstimateType 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->costEstimateType[] = $item;
        return $this;
    }
    /**
     * Get createdBy value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getCreatedBy()
    {
        return $this->createdBy;
    }
    /**
     * This method is responsible for validating the values passed to the setCreatedBy method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCreatedBy method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCreatedByForArrayConstraintsFromSetCreatedBy(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCreatedByItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCreatedByItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCreatedByItem) ? get_class($transactionSearchRowBasicCreatedByItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCreatedByItem), var_export($transactionSearchRowBasicCreatedByItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The createdBy 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 createdBy value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $createdBy
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCreatedBy(array $createdBy = array())
    {
        // validation for constraint: array
        if ('' !== ($createdByArrayErrorMessage = self::validateCreatedByForArrayConstraintsFromSetCreatedBy($createdBy))) {
            throw new \InvalidArgumentException($createdByArrayErrorMessage, __LINE__);
        }
        $this->createdBy = $createdBy;
        return $this;
    }
    /**
     * Add item to createdBy value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCreatedBy(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The createdBy 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->createdBy[] = $item;
        return $this;
    }
    /**
     * Get createdFrom value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getCreatedFrom()
    {
        return $this->createdFrom;
    }
    /**
     * This method is responsible for validating the values passed to the setCreatedFrom method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCreatedFrom method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCreatedFromForArrayConstraintsFromSetCreatedFrom(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCreatedFromItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCreatedFromItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCreatedFromItem) ? get_class($transactionSearchRowBasicCreatedFromItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCreatedFromItem), var_export($transactionSearchRowBasicCreatedFromItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The createdFrom 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 createdFrom value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $createdFrom
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCreatedFrom(array $createdFrom = array())
    {
        // validation for constraint: array
        if ('' !== ($createdFromArrayErrorMessage = self::validateCreatedFromForArrayConstraintsFromSetCreatedFrom($createdFrom))) {
            throw new \InvalidArgumentException($createdFromArrayErrorMessage, __LINE__);
        }
        $this->createdFrom = $createdFrom;
        return $this;
    }
    /**
     * Add item to createdFrom value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCreatedFrom(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The createdFrom 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->createdFrom[] = $item;
        return $this;
    }
    /**
     * Get creditAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getCreditAmount()
    {
        return $this->creditAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setCreditAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCreditAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCreditAmountForArrayConstraintsFromSetCreditAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCreditAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCreditAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCreditAmountItem) ? get_class($transactionSearchRowBasicCreditAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCreditAmountItem), var_export($transactionSearchRowBasicCreditAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The creditAmount 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 creditAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $creditAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCreditAmount(array $creditAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($creditAmountArrayErrorMessage = self::validateCreditAmountForArrayConstraintsFromSetCreditAmount($creditAmount))) {
            throw new \InvalidArgumentException($creditAmountArrayErrorMessage, __LINE__);
        }
        $this->creditAmount = $creditAmount;
        return $this;
    }
    /**
     * Add item to creditAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCreditAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The creditAmount 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->creditAmount[] = $item;
        return $this;
    }
    /**
     * Get cscMatch value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getCscMatch()
    {
        return $this->cscMatch;
    }
    /**
     * This method is responsible for validating the values passed to the setCscMatch method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCscMatch method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCscMatchForArrayConstraintsFromSetCscMatch(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCscMatchItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCscMatchItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCscMatchItem) ? get_class($transactionSearchRowBasicCscMatchItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCscMatchItem), var_export($transactionSearchRowBasicCscMatchItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The cscMatch 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 cscMatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $cscMatch
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCscMatch(array $cscMatch = array())
    {
        // validation for constraint: array
        if ('' !== ($cscMatchArrayErrorMessage = self::validateCscMatchForArrayConstraintsFromSetCscMatch($cscMatch))) {
            throw new \InvalidArgumentException($cscMatchArrayErrorMessage, __LINE__);
        }
        $this->cscMatch = $cscMatch;
        return $this;
    }
    /**
     * Add item to cscMatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCscMatch(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The cscMatch 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->cscMatch[] = $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 $transactionSearchRowBasicCurrencyItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCurrencyItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCurrencyItem) ? get_class($transactionSearchRowBasicCurrencyItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCurrencyItem), var_export($transactionSearchRowBasicCurrencyItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 customForm value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getCustomForm()
    {
        return $this->customForm;
    }
    /**
     * This method is responsible for validating the values passed to the setCustomForm method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCustomForm method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCustomFormForArrayConstraintsFromSetCustomForm(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCustomFormItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCustomFormItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCustomFormItem) ? get_class($transactionSearchRowBasicCustomFormItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCustomFormItem), var_export($transactionSearchRowBasicCustomFormItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The customForm 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 customForm value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $customForm
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCustomForm(array $customForm = array())
    {
        // validation for constraint: array
        if ('' !== ($customFormArrayErrorMessage = self::validateCustomFormForArrayConstraintsFromSetCustomForm($customForm))) {
            throw new \InvalidArgumentException($customFormArrayErrorMessage, __LINE__);
        }
        $this->customForm = $customForm;
        return $this;
    }
    /**
     * Add item to customForm value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCustomForm(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The customForm 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->customForm[] = $item;
        return $this;
    }
    /**
     * Get customGL value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getCustomGL()
    {
        return $this->customGL;
    }
    /**
     * This method is responsible for validating the values passed to the setCustomGL method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCustomGL method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCustomGLForArrayConstraintsFromSetCustomGL(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCustomGLItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCustomGLItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCustomGLItem) ? get_class($transactionSearchRowBasicCustomGLItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCustomGLItem), var_export($transactionSearchRowBasicCustomGLItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The customGL 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 customGL value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $customGL
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCustomGL(array $customGL = array())
    {
        // validation for constraint: array
        if ('' !== ($customGLArrayErrorMessage = self::validateCustomGLForArrayConstraintsFromSetCustomGL($customGL))) {
            throw new \InvalidArgumentException($customGLArrayErrorMessage, __LINE__);
        }
        $this->customGL = $customGL;
        return $this;
    }
    /**
     * Add item to customGL value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCustomGL(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The customGL 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->customGL[] = $item;
        return $this;
    }
    /**
     * Get custType value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getCustType()
    {
        return $this->custType;
    }
    /**
     * This method is responsible for validating the values passed to the setCustType method
     * This method is willingly generated in order to preserve the one-line inline validation within the setCustType method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateCustTypeForArrayConstraintsFromSetCustType(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicCustTypeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicCustTypeItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicCustTypeItem) ? get_class($transactionSearchRowBasicCustTypeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicCustTypeItem), var_export($transactionSearchRowBasicCustTypeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The custType 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 custType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $custType
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setCustType(array $custType = array())
    {
        // validation for constraint: array
        if ('' !== ($custTypeArrayErrorMessage = self::validateCustTypeForArrayConstraintsFromSetCustType($custType))) {
            throw new \InvalidArgumentException($custTypeArrayErrorMessage, __LINE__);
        }
        $this->custType = $custType;
        return $this;
    }
    /**
     * Add item to custType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToCustType(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The custType 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->custType[] = $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 $transactionSearchRowBasicDateCreatedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDateCreatedItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDateCreatedItem) ? get_class($transactionSearchRowBasicDateCreatedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDateCreatedItem), var_export($transactionSearchRowBasicDateCreatedItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 daysOpen value
     * @return \StructType\SearchColumnLongField[]|null
     */
    public function getDaysOpen()
    {
        return $this->daysOpen;
    }
    /**
     * This method is responsible for validating the values passed to the setDaysOpen method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDaysOpen method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDaysOpenForArrayConstraintsFromSetDaysOpen(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicDaysOpenItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDaysOpenItem instanceof \StructType\SearchColumnLongField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDaysOpenItem) ? get_class($transactionSearchRowBasicDaysOpenItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDaysOpenItem), var_export($transactionSearchRowBasicDaysOpenItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The daysOpen 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 daysOpen value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField[] $daysOpen
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setDaysOpen(array $daysOpen = array())
    {
        // validation for constraint: array
        if ('' !== ($daysOpenArrayErrorMessage = self::validateDaysOpenForArrayConstraintsFromSetDaysOpen($daysOpen))) {
            throw new \InvalidArgumentException($daysOpenArrayErrorMessage, __LINE__);
        }
        $this->daysOpen = $daysOpen;
        return $this;
    }
    /**
     * Add item to daysOpen value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToDaysOpen(\StructType\SearchColumnLongField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnLongField) {
            throw new \InvalidArgumentException(sprintf('The daysOpen 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->daysOpen[] = $item;
        return $this;
    }
    /**
     * Get daysOverdue value
     * @return \StructType\SearchColumnLongField[]|null
     */
    public function getDaysOverdue()
    {
        return $this->daysOverdue;
    }
    /**
     * This method is responsible for validating the values passed to the setDaysOverdue method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDaysOverdue method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDaysOverdueForArrayConstraintsFromSetDaysOverdue(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicDaysOverdueItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDaysOverdueItem instanceof \StructType\SearchColumnLongField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDaysOverdueItem) ? get_class($transactionSearchRowBasicDaysOverdueItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDaysOverdueItem), var_export($transactionSearchRowBasicDaysOverdueItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The daysOverdue 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 daysOverdue value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField[] $daysOverdue
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setDaysOverdue(array $daysOverdue = array())
    {
        // validation for constraint: array
        if ('' !== ($daysOverdueArrayErrorMessage = self::validateDaysOverdueForArrayConstraintsFromSetDaysOverdue($daysOverdue))) {
            throw new \InvalidArgumentException($daysOverdueArrayErrorMessage, __LINE__);
        }
        $this->daysOverdue = $daysOverdue;
        return $this;
    }
    /**
     * Add item to daysOverdue value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToDaysOverdue(\StructType\SearchColumnLongField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnLongField) {
            throw new \InvalidArgumentException(sprintf('The daysOverdue 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->daysOverdue[] = $item;
        return $this;
    }
    /**
     * Get debitAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getDebitAmount()
    {
        return $this->debitAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setDebitAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDebitAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDebitAmountForArrayConstraintsFromSetDebitAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicDebitAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDebitAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDebitAmountItem) ? get_class($transactionSearchRowBasicDebitAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDebitAmountItem), var_export($transactionSearchRowBasicDebitAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The debitAmount 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 debitAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $debitAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setDebitAmount(array $debitAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($debitAmountArrayErrorMessage = self::validateDebitAmountForArrayConstraintsFromSetDebitAmount($debitAmount))) {
            throw new \InvalidArgumentException($debitAmountArrayErrorMessage, __LINE__);
        }
        $this->debitAmount = $debitAmount;
        return $this;
    }
    /**
     * Add item to debitAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToDebitAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The debitAmount 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->debitAmount[] = $item;
        return $this;
    }
    /**
     * Get deferredRevenue value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getDeferredRevenue()
    {
        return $this->deferredRevenue;
    }
    /**
     * This method is responsible for validating the values passed to the setDeferredRevenue method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDeferredRevenue method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDeferredRevenueForArrayConstraintsFromSetDeferredRevenue(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicDeferredRevenueItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDeferredRevenueItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDeferredRevenueItem) ? get_class($transactionSearchRowBasicDeferredRevenueItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDeferredRevenueItem), var_export($transactionSearchRowBasicDeferredRevenueItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The deferredRevenue 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 deferredRevenue value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $deferredRevenue
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setDeferredRevenue(array $deferredRevenue = array())
    {
        // validation for constraint: array
        if ('' !== ($deferredRevenueArrayErrorMessage = self::validateDeferredRevenueForArrayConstraintsFromSetDeferredRevenue($deferredRevenue))) {
            throw new \InvalidArgumentException($deferredRevenueArrayErrorMessage, __LINE__);
        }
        $this->deferredRevenue = $deferredRevenue;
        return $this;
    }
    /**
     * Add item to deferredRevenue value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToDeferredRevenue(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The deferredRevenue 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->deferredRevenue[] = $item;
        return $this;
    }
    /**
     * Get deferRevRec value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getDeferRevRec()
    {
        return $this->deferRevRec;
    }
    /**
     * This method is responsible for validating the values passed to the setDeferRevRec method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDeferRevRec method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDeferRevRecForArrayConstraintsFromSetDeferRevRec(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicDeferRevRecItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDeferRevRecItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDeferRevRecItem) ? get_class($transactionSearchRowBasicDeferRevRecItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDeferRevRecItem), var_export($transactionSearchRowBasicDeferRevRecItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The deferRevRec 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 deferRevRec value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $deferRevRec
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setDeferRevRec(array $deferRevRec = array())
    {
        // validation for constraint: array
        if ('' !== ($deferRevRecArrayErrorMessage = self::validateDeferRevRecForArrayConstraintsFromSetDeferRevRec($deferRevRec))) {
            throw new \InvalidArgumentException($deferRevRecArrayErrorMessage, __LINE__);
        }
        $this->deferRevRec = $deferRevRec;
        return $this;
    }
    /**
     * Add item to deferRevRec value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToDeferRevRec(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The deferRevRec 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->deferRevRec[] = $item;
        return $this;
    }
    /**
     * Get department value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getDepartment()
    {
        return $this->department;
    }
    /**
     * This method is responsible for validating the values passed to the setDepartment method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDepartment method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDepartmentForArrayConstraintsFromSetDepartment(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicDepartmentItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDepartmentItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDepartmentItem) ? get_class($transactionSearchRowBasicDepartmentItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDepartmentItem), var_export($transactionSearchRowBasicDepartmentItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The department 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 department value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $department
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setDepartment(array $department = array())
    {
        // validation for constraint: array
        if ('' !== ($departmentArrayErrorMessage = self::validateDepartmentForArrayConstraintsFromSetDepartment($department))) {
            throw new \InvalidArgumentException($departmentArrayErrorMessage, __LINE__);
        }
        $this->department = $department;
        return $this;
    }
    /**
     * Add item to department value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToDepartment(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The department 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->department[] = $item;
        return $this;
    }
    /**
     * Get depositDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getDepositDate()
    {
        return $this->depositDate;
    }
    /**
     * This method is responsible for validating the values passed to the setDepositDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDepositDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDepositDateForArrayConstraintsFromSetDepositDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicDepositDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDepositDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDepositDateItem) ? get_class($transactionSearchRowBasicDepositDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDepositDateItem), var_export($transactionSearchRowBasicDepositDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The depositDate 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 depositDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $depositDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setDepositDate(array $depositDate = array())
    {
        // validation for constraint: array
        if ('' !== ($depositDateArrayErrorMessage = self::validateDepositDateForArrayConstraintsFromSetDepositDate($depositDate))) {
            throw new \InvalidArgumentException($depositDateArrayErrorMessage, __LINE__);
        }
        $this->depositDate = $depositDate;
        return $this;
    }
    /**
     * Add item to depositDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToDepositDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The depositDate 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->depositDate[] = $item;
        return $this;
    }
    /**
     * Get depositTransaction value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getDepositTransaction()
    {
        return $this->depositTransaction;
    }
    /**
     * This method is responsible for validating the values passed to the setDepositTransaction method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDepositTransaction method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDepositTransactionForArrayConstraintsFromSetDepositTransaction(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicDepositTransactionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDepositTransactionItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDepositTransactionItem) ? get_class($transactionSearchRowBasicDepositTransactionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDepositTransactionItem), var_export($transactionSearchRowBasicDepositTransactionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The depositTransaction 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 depositTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $depositTransaction
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setDepositTransaction(array $depositTransaction = array())
    {
        // validation for constraint: array
        if ('' !== ($depositTransactionArrayErrorMessage = self::validateDepositTransactionForArrayConstraintsFromSetDepositTransaction($depositTransaction))) {
            throw new \InvalidArgumentException($depositTransactionArrayErrorMessage, __LINE__);
        }
        $this->depositTransaction = $depositTransaction;
        return $this;
    }
    /**
     * Add item to depositTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToDepositTransaction(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The depositTransaction 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->depositTransaction[] = $item;
        return $this;
    }
    /**
     * Get discountAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getDiscountAmount()
    {
        return $this->discountAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setDiscountAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDiscountAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDiscountAmountForArrayConstraintsFromSetDiscountAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicDiscountAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDiscountAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDiscountAmountItem) ? get_class($transactionSearchRowBasicDiscountAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDiscountAmountItem), var_export($transactionSearchRowBasicDiscountAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The discountAmount 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 discountAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $discountAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setDiscountAmount(array $discountAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($discountAmountArrayErrorMessage = self::validateDiscountAmountForArrayConstraintsFromSetDiscountAmount($discountAmount))) {
            throw new \InvalidArgumentException($discountAmountArrayErrorMessage, __LINE__);
        }
        $this->discountAmount = $discountAmount;
        return $this;
    }
    /**
     * Add item to discountAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToDiscountAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The discountAmount 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->discountAmount[] = $item;
        return $this;
    }
    /**
     * Get docUnit value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getDocUnit()
    {
        return $this->docUnit;
    }
    /**
     * This method is responsible for validating the values passed to the setDocUnit method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDocUnit method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDocUnitForArrayConstraintsFromSetDocUnit(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicDocUnitItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDocUnitItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDocUnitItem) ? get_class($transactionSearchRowBasicDocUnitItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDocUnitItem), var_export($transactionSearchRowBasicDocUnitItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The docUnit 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 docUnit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $docUnit
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setDocUnit(array $docUnit = array())
    {
        // validation for constraint: array
        if ('' !== ($docUnitArrayErrorMessage = self::validateDocUnitForArrayConstraintsFromSetDocUnit($docUnit))) {
            throw new \InvalidArgumentException($docUnitArrayErrorMessage, __LINE__);
        }
        $this->docUnit = $docUnit;
        return $this;
    }
    /**
     * Add item to docUnit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToDocUnit(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The docUnit 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->docUnit[] = $item;
        return $this;
    }
    /**
     * Get drAccount value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getDrAccount()
    {
        return $this->drAccount;
    }
    /**
     * This method is responsible for validating the values passed to the setDrAccount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDrAccount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDrAccountForArrayConstraintsFromSetDrAccount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicDrAccountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDrAccountItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDrAccountItem) ? get_class($transactionSearchRowBasicDrAccountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDrAccountItem), var_export($transactionSearchRowBasicDrAccountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The drAccount 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 drAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $drAccount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setDrAccount(array $drAccount = array())
    {
        // validation for constraint: array
        if ('' !== ($drAccountArrayErrorMessage = self::validateDrAccountForArrayConstraintsFromSetDrAccount($drAccount))) {
            throw new \InvalidArgumentException($drAccountArrayErrorMessage, __LINE__);
        }
        $this->drAccount = $drAccount;
        return $this;
    }
    /**
     * Add item to drAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToDrAccount(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The drAccount 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->drAccount[] = $item;
        return $this;
    }
    /**
     * Get dueDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getDueDate()
    {
        return $this->dueDate;
    }
    /**
     * This method is responsible for validating the values passed to the setDueDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setDueDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateDueDateForArrayConstraintsFromSetDueDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicDueDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicDueDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicDueDateItem) ? get_class($transactionSearchRowBasicDueDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicDueDateItem), var_export($transactionSearchRowBasicDueDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The dueDate 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 dueDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $dueDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setDueDate(array $dueDate = array())
    {
        // validation for constraint: array
        if ('' !== ($dueDateArrayErrorMessage = self::validateDueDateForArrayConstraintsFromSetDueDate($dueDate))) {
            throw new \InvalidArgumentException($dueDateArrayErrorMessage, __LINE__);
        }
        $this->dueDate = $dueDate;
        return $this;
    }
    /**
     * Add item to dueDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToDueDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The dueDate 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->dueDate[] = $item;
        return $this;
    }
    /**
     * Get effectiveRate value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getEffectiveRate()
    {
        return $this->effectiveRate;
    }
    /**
     * This method is responsible for validating the values passed to the setEffectiveRate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEffectiveRate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEffectiveRateForArrayConstraintsFromSetEffectiveRate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicEffectiveRateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicEffectiveRateItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicEffectiveRateItem) ? get_class($transactionSearchRowBasicEffectiveRateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicEffectiveRateItem), var_export($transactionSearchRowBasicEffectiveRateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The effectiveRate 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 effectiveRate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $effectiveRate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setEffectiveRate(array $effectiveRate = array())
    {
        // validation for constraint: array
        if ('' !== ($effectiveRateArrayErrorMessage = self::validateEffectiveRateForArrayConstraintsFromSetEffectiveRate($effectiveRate))) {
            throw new \InvalidArgumentException($effectiveRateArrayErrorMessage, __LINE__);
        }
        $this->effectiveRate = $effectiveRate;
        return $this;
    }
    /**
     * Add item to effectiveRate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToEffectiveRate(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The effectiveRate 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->effectiveRate[] = $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 $transactionSearchRowBasicEmailItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicEmailItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicEmailItem) ? get_class($transactionSearchRowBasicEmailItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicEmailItem), var_export($transactionSearchRowBasicEmailItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 endDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getEndDate()
    {
        return $this->endDate;
    }
    /**
     * This method is responsible for validating the values passed to the setEndDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEndDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEndDateForArrayConstraintsFromSetEndDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicEndDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicEndDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicEndDateItem) ? get_class($transactionSearchRowBasicEndDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicEndDateItem), var_export($transactionSearchRowBasicEndDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The endDate 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 endDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $endDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setEndDate(array $endDate = array())
    {
        // validation for constraint: array
        if ('' !== ($endDateArrayErrorMessage = self::validateEndDateForArrayConstraintsFromSetEndDate($endDate))) {
            throw new \InvalidArgumentException($endDateArrayErrorMessage, __LINE__);
        }
        $this->endDate = $endDate;
        return $this;
    }
    /**
     * Add item to endDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToEndDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The endDate 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->endDate[] = $item;
        return $this;
    }
    /**
     * Get entity value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getEntity()
    {
        return $this->entity;
    }
    /**
     * This method is responsible for validating the values passed to the setEntity method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEntity method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEntityForArrayConstraintsFromSetEntity(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicEntityItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicEntityItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicEntityItem) ? get_class($transactionSearchRowBasicEntityItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicEntityItem), var_export($transactionSearchRowBasicEntityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The entity 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 entity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $entity
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setEntity(array $entity = array())
    {
        // validation for constraint: array
        if ('' !== ($entityArrayErrorMessage = self::validateEntityForArrayConstraintsFromSetEntity($entity))) {
            throw new \InvalidArgumentException($entityArrayErrorMessage, __LINE__);
        }
        $this->entity = $entity;
        return $this;
    }
    /**
     * Add item to entity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToEntity(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The entity 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->entity[] = $item;
        return $this;
    }
    /**
     * Get entityStatus value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getEntityStatus()
    {
        return $this->entityStatus;
    }
    /**
     * This method is responsible for validating the values passed to the setEntityStatus method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEntityStatus method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEntityStatusForArrayConstraintsFromSetEntityStatus(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicEntityStatusItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicEntityStatusItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicEntityStatusItem) ? get_class($transactionSearchRowBasicEntityStatusItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicEntityStatusItem), var_export($transactionSearchRowBasicEntityStatusItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The entityStatus 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 entityStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $entityStatus
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setEntityStatus(array $entityStatus = array())
    {
        // validation for constraint: array
        if ('' !== ($entityStatusArrayErrorMessage = self::validateEntityStatusForArrayConstraintsFromSetEntityStatus($entityStatus))) {
            throw new \InvalidArgumentException($entityStatusArrayErrorMessage, __LINE__);
        }
        $this->entityStatus = $entityStatus;
        return $this;
    }
    /**
     * Add item to entityStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToEntityStatus(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The entityStatus 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->entityStatus[] = $item;
        return $this;
    }
    /**
     * Get estGrossProfit value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getEstGrossProfit()
    {
        return $this->estGrossProfit;
    }
    /**
     * This method is responsible for validating the values passed to the setEstGrossProfit method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEstGrossProfit method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEstGrossProfitForArrayConstraintsFromSetEstGrossProfit(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicEstGrossProfitItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicEstGrossProfitItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicEstGrossProfitItem) ? get_class($transactionSearchRowBasicEstGrossProfitItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicEstGrossProfitItem), var_export($transactionSearchRowBasicEstGrossProfitItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The estGrossProfit 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 estGrossProfit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $estGrossProfit
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setEstGrossProfit(array $estGrossProfit = array())
    {
        // validation for constraint: array
        if ('' !== ($estGrossProfitArrayErrorMessage = self::validateEstGrossProfitForArrayConstraintsFromSetEstGrossProfit($estGrossProfit))) {
            throw new \InvalidArgumentException($estGrossProfitArrayErrorMessage, __LINE__);
        }
        $this->estGrossProfit = $estGrossProfit;
        return $this;
    }
    /**
     * Add item to estGrossProfit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToEstGrossProfit(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The estGrossProfit 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->estGrossProfit[] = $item;
        return $this;
    }
    /**
     * Get estGrossProfitPct value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getEstGrossProfitPct()
    {
        return $this->estGrossProfitPct;
    }
    /**
     * This method is responsible for validating the values passed to the setEstGrossProfitPct method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEstGrossProfitPct method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEstGrossProfitPctForArrayConstraintsFromSetEstGrossProfitPct(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicEstGrossProfitPctItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicEstGrossProfitPctItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicEstGrossProfitPctItem) ? get_class($transactionSearchRowBasicEstGrossProfitPctItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicEstGrossProfitPctItem), var_export($transactionSearchRowBasicEstGrossProfitPctItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The estGrossProfitPct 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 estGrossProfitPct value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $estGrossProfitPct
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setEstGrossProfitPct(array $estGrossProfitPct = array())
    {
        // validation for constraint: array
        if ('' !== ($estGrossProfitPctArrayErrorMessage = self::validateEstGrossProfitPctForArrayConstraintsFromSetEstGrossProfitPct($estGrossProfitPct))) {
            throw new \InvalidArgumentException($estGrossProfitPctArrayErrorMessage, __LINE__);
        }
        $this->estGrossProfitPct = $estGrossProfitPct;
        return $this;
    }
    /**
     * Add item to estGrossProfitPct value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToEstGrossProfitPct(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The estGrossProfitPct 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->estGrossProfitPct[] = $item;
        return $this;
    }
    /**
     * Get estGrossProfitPercent value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getEstGrossProfitPercent()
    {
        return $this->estGrossProfitPercent;
    }
    /**
     * This method is responsible for validating the values passed to the setEstGrossProfitPercent method
     * This method is willingly generated in order to preserve the one-line inline validation within the setEstGrossProfitPercent method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateEstGrossProfitPercentForArrayConstraintsFromSetEstGrossProfitPercent(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicEstGrossProfitPercentItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicEstGrossProfitPercentItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicEstGrossProfitPercentItem) ? get_class($transactionSearchRowBasicEstGrossProfitPercentItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicEstGrossProfitPercentItem), var_export($transactionSearchRowBasicEstGrossProfitPercentItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The estGrossProfitPercent 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 estGrossProfitPercent value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $estGrossProfitPercent
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setEstGrossProfitPercent(array $estGrossProfitPercent = array())
    {
        // validation for constraint: array
        if ('' !== ($estGrossProfitPercentArrayErrorMessage = self::validateEstGrossProfitPercentForArrayConstraintsFromSetEstGrossProfitPercent($estGrossProfitPercent))) {
            throw new \InvalidArgumentException($estGrossProfitPercentArrayErrorMessage, __LINE__);
        }
        $this->estGrossProfitPercent = $estGrossProfitPercent;
        return $this;
    }
    /**
     * Add item to estGrossProfitPercent value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToEstGrossProfitPercent(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The estGrossProfitPercent 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->estGrossProfitPercent[] = $item;
        return $this;
    }
    /**
     * Get exchangeRate value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getExchangeRate()
    {
        return $this->exchangeRate;
    }
    /**
     * This method is responsible for validating the values passed to the setExchangeRate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setExchangeRate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateExchangeRateForArrayConstraintsFromSetExchangeRate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicExchangeRateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicExchangeRateItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicExchangeRateItem) ? get_class($transactionSearchRowBasicExchangeRateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicExchangeRateItem), var_export($transactionSearchRowBasicExchangeRateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The exchangeRate 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 exchangeRate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $exchangeRate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setExchangeRate(array $exchangeRate = array())
    {
        // validation for constraint: array
        if ('' !== ($exchangeRateArrayErrorMessage = self::validateExchangeRateForArrayConstraintsFromSetExchangeRate($exchangeRate))) {
            throw new \InvalidArgumentException($exchangeRateArrayErrorMessage, __LINE__);
        }
        $this->exchangeRate = $exchangeRate;
        return $this;
    }
    /**
     * Add item to exchangeRate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToExchangeRate(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The exchangeRate 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->exchangeRate[] = $item;
        return $this;
    }
    /**
     * Get excludeCommission value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getExcludeCommission()
    {
        return $this->excludeCommission;
    }
    /**
     * This method is responsible for validating the values passed to the setExcludeCommission method
     * This method is willingly generated in order to preserve the one-line inline validation within the setExcludeCommission method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateExcludeCommissionForArrayConstraintsFromSetExcludeCommission(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicExcludeCommissionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicExcludeCommissionItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicExcludeCommissionItem) ? get_class($transactionSearchRowBasicExcludeCommissionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicExcludeCommissionItem), var_export($transactionSearchRowBasicExcludeCommissionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The excludeCommission 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 excludeCommission value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $excludeCommission
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setExcludeCommission(array $excludeCommission = array())
    {
        // validation for constraint: array
        if ('' !== ($excludeCommissionArrayErrorMessage = self::validateExcludeCommissionForArrayConstraintsFromSetExcludeCommission($excludeCommission))) {
            throw new \InvalidArgumentException($excludeCommissionArrayErrorMessage, __LINE__);
        }
        $this->excludeCommission = $excludeCommission;
        return $this;
    }
    /**
     * Add item to excludeCommission value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToExcludeCommission(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The excludeCommission 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->excludeCommission[] = $item;
        return $this;
    }
    /**
     * Get excludeFromRateRequest value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getExcludeFromRateRequest()
    {
        return $this->excludeFromRateRequest;
    }
    /**
     * This method is responsible for validating the values passed to the setExcludeFromRateRequest method
     * This method is willingly generated in order to preserve the one-line inline validation within the setExcludeFromRateRequest method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateExcludeFromRateRequestForArrayConstraintsFromSetExcludeFromRateRequest(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicExcludeFromRateRequestItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicExcludeFromRateRequestItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicExcludeFromRateRequestItem) ? get_class($transactionSearchRowBasicExcludeFromRateRequestItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicExcludeFromRateRequestItem), var_export($transactionSearchRowBasicExcludeFromRateRequestItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The excludeFromRateRequest 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 excludeFromRateRequest value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $excludeFromRateRequest
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setExcludeFromRateRequest(array $excludeFromRateRequest = array())
    {
        // validation for constraint: array
        if ('' !== ($excludeFromRateRequestArrayErrorMessage = self::validateExcludeFromRateRequestForArrayConstraintsFromSetExcludeFromRateRequest($excludeFromRateRequest))) {
            throw new \InvalidArgumentException($excludeFromRateRequestArrayErrorMessage, __LINE__);
        }
        $this->excludeFromRateRequest = $excludeFromRateRequest;
        return $this;
    }
    /**
     * Add item to excludeFromRateRequest value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToExcludeFromRateRequest(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The excludeFromRateRequest 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->excludeFromRateRequest[] = $item;
        return $this;
    }
    /**
     * Get expectedCloseDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getExpectedCloseDate()
    {
        return $this->expectedCloseDate;
    }
    /**
     * This method is responsible for validating the values passed to the setExpectedCloseDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setExpectedCloseDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateExpectedCloseDateForArrayConstraintsFromSetExpectedCloseDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicExpectedCloseDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicExpectedCloseDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicExpectedCloseDateItem) ? get_class($transactionSearchRowBasicExpectedCloseDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicExpectedCloseDateItem), var_export($transactionSearchRowBasicExpectedCloseDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The expectedCloseDate 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 expectedCloseDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $expectedCloseDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setExpectedCloseDate(array $expectedCloseDate = array())
    {
        // validation for constraint: array
        if ('' !== ($expectedCloseDateArrayErrorMessage = self::validateExpectedCloseDateForArrayConstraintsFromSetExpectedCloseDate($expectedCloseDate))) {
            throw new \InvalidArgumentException($expectedCloseDateArrayErrorMessage, __LINE__);
        }
        $this->expectedCloseDate = $expectedCloseDate;
        return $this;
    }
    /**
     * Add item to expectedCloseDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToExpectedCloseDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The expectedCloseDate 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->expectedCloseDate[] = $item;
        return $this;
    }
    /**
     * Get expectedReceiptDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getExpectedReceiptDate()
    {
        return $this->expectedReceiptDate;
    }
    /**
     * This method is responsible for validating the values passed to the setExpectedReceiptDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setExpectedReceiptDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateExpectedReceiptDateForArrayConstraintsFromSetExpectedReceiptDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicExpectedReceiptDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicExpectedReceiptDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicExpectedReceiptDateItem) ? get_class($transactionSearchRowBasicExpectedReceiptDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicExpectedReceiptDateItem), var_export($transactionSearchRowBasicExpectedReceiptDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The expectedReceiptDate 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 expectedReceiptDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $expectedReceiptDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setExpectedReceiptDate(array $expectedReceiptDate = array())
    {
        // validation for constraint: array
        if ('' !== ($expectedReceiptDateArrayErrorMessage = self::validateExpectedReceiptDateForArrayConstraintsFromSetExpectedReceiptDate($expectedReceiptDate))) {
            throw new \InvalidArgumentException($expectedReceiptDateArrayErrorMessage, __LINE__);
        }
        $this->expectedReceiptDate = $expectedReceiptDate;
        return $this;
    }
    /**
     * Add item to expectedReceiptDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToExpectedReceiptDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The expectedReceiptDate 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->expectedReceiptDate[] = $item;
        return $this;
    }
    /**
     * Get expenseCategory value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getExpenseCategory()
    {
        return $this->expenseCategory;
    }
    /**
     * This method is responsible for validating the values passed to the setExpenseCategory method
     * This method is willingly generated in order to preserve the one-line inline validation within the setExpenseCategory method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateExpenseCategoryForArrayConstraintsFromSetExpenseCategory(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicExpenseCategoryItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicExpenseCategoryItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicExpenseCategoryItem) ? get_class($transactionSearchRowBasicExpenseCategoryItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicExpenseCategoryItem), var_export($transactionSearchRowBasicExpenseCategoryItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The expenseCategory 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 expenseCategory value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $expenseCategory
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setExpenseCategory(array $expenseCategory = array())
    {
        // validation for constraint: array
        if ('' !== ($expenseCategoryArrayErrorMessage = self::validateExpenseCategoryForArrayConstraintsFromSetExpenseCategory($expenseCategory))) {
            throw new \InvalidArgumentException($expenseCategoryArrayErrorMessage, __LINE__);
        }
        $this->expenseCategory = $expenseCategory;
        return $this;
    }
    /**
     * Add item to expenseCategory value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToExpenseCategory(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The expenseCategory 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->expenseCategory[] = $item;
        return $this;
    }
    /**
     * Get expenseDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getExpenseDate()
    {
        return $this->expenseDate;
    }
    /**
     * This method is responsible for validating the values passed to the setExpenseDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setExpenseDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateExpenseDateForArrayConstraintsFromSetExpenseDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicExpenseDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicExpenseDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicExpenseDateItem) ? get_class($transactionSearchRowBasicExpenseDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicExpenseDateItem), var_export($transactionSearchRowBasicExpenseDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The expenseDate 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 expenseDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $expenseDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setExpenseDate(array $expenseDate = array())
    {
        // validation for constraint: array
        if ('' !== ($expenseDateArrayErrorMessage = self::validateExpenseDateForArrayConstraintsFromSetExpenseDate($expenseDate))) {
            throw new \InvalidArgumentException($expenseDateArrayErrorMessage, __LINE__);
        }
        $this->expenseDate = $expenseDate;
        return $this;
    }
    /**
     * Add item to expenseDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToExpenseDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The expenseDate 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->expenseDate[] = $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 $transactionSearchRowBasicExternalIdItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicExternalIdItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicExternalIdItem) ? get_class($transactionSearchRowBasicExternalIdItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicExternalIdItem), var_export($transactionSearchRowBasicExternalIdItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 firmed value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getFirmed()
    {
        return $this->firmed;
    }
    /**
     * This method is responsible for validating the values passed to the setFirmed method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFirmed method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFirmedForArrayConstraintsFromSetFirmed(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicFirmedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicFirmedItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicFirmedItem) ? get_class($transactionSearchRowBasicFirmedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicFirmedItem), var_export($transactionSearchRowBasicFirmedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The firmed 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 firmed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $firmed
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setFirmed(array $firmed = array())
    {
        // validation for constraint: array
        if ('' !== ($firmedArrayErrorMessage = self::validateFirmedForArrayConstraintsFromSetFirmed($firmed))) {
            throw new \InvalidArgumentException($firmedArrayErrorMessage, __LINE__);
        }
        $this->firmed = $firmed;
        return $this;
    }
    /**
     * Add item to firmed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToFirmed(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The firmed 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->firmed[] = $item;
        return $this;
    }
    /**
     * Get forecastType value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getForecastType()
    {
        return $this->forecastType;
    }
    /**
     * This method is responsible for validating the values passed to the setForecastType method
     * This method is willingly generated in order to preserve the one-line inline validation within the setForecastType method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateForecastTypeForArrayConstraintsFromSetForecastType(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicForecastTypeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicForecastTypeItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicForecastTypeItem) ? get_class($transactionSearchRowBasicForecastTypeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicForecastTypeItem), var_export($transactionSearchRowBasicForecastTypeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The forecastType 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 forecastType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $forecastType
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setForecastType(array $forecastType = array())
    {
        // validation for constraint: array
        if ('' !== ($forecastTypeArrayErrorMessage = self::validateForecastTypeForArrayConstraintsFromSetForecastType($forecastType))) {
            throw new \InvalidArgumentException($forecastTypeArrayErrorMessage, __LINE__);
        }
        $this->forecastType = $forecastType;
        return $this;
    }
    /**
     * Add item to forecastType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToForecastType(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The forecastType 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->forecastType[] = $item;
        return $this;
    }
    /**
     * Get fulfillingTransaction value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getFulfillingTransaction()
    {
        return $this->fulfillingTransaction;
    }
    /**
     * This method is responsible for validating the values passed to the setFulfillingTransaction method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFulfillingTransaction method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFulfillingTransactionForArrayConstraintsFromSetFulfillingTransaction(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicFulfillingTransactionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicFulfillingTransactionItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicFulfillingTransactionItem) ? get_class($transactionSearchRowBasicFulfillingTransactionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicFulfillingTransactionItem), var_export($transactionSearchRowBasicFulfillingTransactionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fulfillingTransaction 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 fulfillingTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $fulfillingTransaction
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setFulfillingTransaction(array $fulfillingTransaction = array())
    {
        // validation for constraint: array
        if ('' !== ($fulfillingTransactionArrayErrorMessage = self::validateFulfillingTransactionForArrayConstraintsFromSetFulfillingTransaction($fulfillingTransaction))) {
            throw new \InvalidArgumentException($fulfillingTransactionArrayErrorMessage, __LINE__);
        }
        $this->fulfillingTransaction = $fulfillingTransaction;
        return $this;
    }
    /**
     * Add item to fulfillingTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToFulfillingTransaction(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The fulfillingTransaction 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->fulfillingTransaction[] = $item;
        return $this;
    }
    /**
     * Get fxAccount value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getFxAccount()
    {
        return $this->fxAccount;
    }
    /**
     * This method is responsible for validating the values passed to the setFxAccount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFxAccount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFxAccountForArrayConstraintsFromSetFxAccount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicFxAccountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicFxAccountItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicFxAccountItem) ? get_class($transactionSearchRowBasicFxAccountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicFxAccountItem), var_export($transactionSearchRowBasicFxAccountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fxAccount 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 fxAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $fxAccount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setFxAccount(array $fxAccount = array())
    {
        // validation for constraint: array
        if ('' !== ($fxAccountArrayErrorMessage = self::validateFxAccountForArrayConstraintsFromSetFxAccount($fxAccount))) {
            throw new \InvalidArgumentException($fxAccountArrayErrorMessage, __LINE__);
        }
        $this->fxAccount = $fxAccount;
        return $this;
    }
    /**
     * Add item to fxAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToFxAccount(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The fxAccount 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->fxAccount[] = $item;
        return $this;
    }
    /**
     * Get fxAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getFxAmount()
    {
        return $this->fxAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setFxAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFxAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFxAmountForArrayConstraintsFromSetFxAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicFxAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicFxAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicFxAmountItem) ? get_class($transactionSearchRowBasicFxAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicFxAmountItem), var_export($transactionSearchRowBasicFxAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fxAmount 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 fxAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $fxAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setFxAmount(array $fxAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($fxAmountArrayErrorMessage = self::validateFxAmountForArrayConstraintsFromSetFxAmount($fxAmount))) {
            throw new \InvalidArgumentException($fxAmountArrayErrorMessage, __LINE__);
        }
        $this->fxAmount = $fxAmount;
        return $this;
    }
    /**
     * Add item to fxAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToFxAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The fxAmount 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->fxAmount[] = $item;
        return $this;
    }
    /**
     * Get fxCostEstimate value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getFxCostEstimate()
    {
        return $this->fxCostEstimate;
    }
    /**
     * This method is responsible for validating the values passed to the setFxCostEstimate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFxCostEstimate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFxCostEstimateForArrayConstraintsFromSetFxCostEstimate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicFxCostEstimateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicFxCostEstimateItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicFxCostEstimateItem) ? get_class($transactionSearchRowBasicFxCostEstimateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicFxCostEstimateItem), var_export($transactionSearchRowBasicFxCostEstimateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fxCostEstimate 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 fxCostEstimate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $fxCostEstimate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setFxCostEstimate(array $fxCostEstimate = array())
    {
        // validation for constraint: array
        if ('' !== ($fxCostEstimateArrayErrorMessage = self::validateFxCostEstimateForArrayConstraintsFromSetFxCostEstimate($fxCostEstimate))) {
            throw new \InvalidArgumentException($fxCostEstimateArrayErrorMessage, __LINE__);
        }
        $this->fxCostEstimate = $fxCostEstimate;
        return $this;
    }
    /**
     * Add item to fxCostEstimate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToFxCostEstimate(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The fxCostEstimate 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->fxCostEstimate[] = $item;
        return $this;
    }
    /**
     * Get fxCostEstimateRate value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getFxCostEstimateRate()
    {
        return $this->fxCostEstimateRate;
    }
    /**
     * This method is responsible for validating the values passed to the setFxCostEstimateRate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFxCostEstimateRate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFxCostEstimateRateForArrayConstraintsFromSetFxCostEstimateRate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicFxCostEstimateRateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicFxCostEstimateRateItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicFxCostEstimateRateItem) ? get_class($transactionSearchRowBasicFxCostEstimateRateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicFxCostEstimateRateItem), var_export($transactionSearchRowBasicFxCostEstimateRateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fxCostEstimateRate 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 fxCostEstimateRate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $fxCostEstimateRate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setFxCostEstimateRate(array $fxCostEstimateRate = array())
    {
        // validation for constraint: array
        if ('' !== ($fxCostEstimateRateArrayErrorMessage = self::validateFxCostEstimateRateForArrayConstraintsFromSetFxCostEstimateRate($fxCostEstimateRate))) {
            throw new \InvalidArgumentException($fxCostEstimateRateArrayErrorMessage, __LINE__);
        }
        $this->fxCostEstimateRate = $fxCostEstimateRate;
        return $this;
    }
    /**
     * Add item to fxCostEstimateRate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToFxCostEstimateRate(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The fxCostEstimateRate 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->fxCostEstimateRate[] = $item;
        return $this;
    }
    /**
     * Get fxEstGrossProfit value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getFxEstGrossProfit()
    {
        return $this->fxEstGrossProfit;
    }
    /**
     * This method is responsible for validating the values passed to the setFxEstGrossProfit method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFxEstGrossProfit method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFxEstGrossProfitForArrayConstraintsFromSetFxEstGrossProfit(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicFxEstGrossProfitItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicFxEstGrossProfitItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicFxEstGrossProfitItem) ? get_class($transactionSearchRowBasicFxEstGrossProfitItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicFxEstGrossProfitItem), var_export($transactionSearchRowBasicFxEstGrossProfitItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fxEstGrossProfit 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 fxEstGrossProfit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $fxEstGrossProfit
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setFxEstGrossProfit(array $fxEstGrossProfit = array())
    {
        // validation for constraint: array
        if ('' !== ($fxEstGrossProfitArrayErrorMessage = self::validateFxEstGrossProfitForArrayConstraintsFromSetFxEstGrossProfit($fxEstGrossProfit))) {
            throw new \InvalidArgumentException($fxEstGrossProfitArrayErrorMessage, __LINE__);
        }
        $this->fxEstGrossProfit = $fxEstGrossProfit;
        return $this;
    }
    /**
     * Add item to fxEstGrossProfit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToFxEstGrossProfit(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The fxEstGrossProfit 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->fxEstGrossProfit[] = $item;
        return $this;
    }
    /**
     * Get fxTranCostEstimate value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getFxTranCostEstimate()
    {
        return $this->fxTranCostEstimate;
    }
    /**
     * This method is responsible for validating the values passed to the setFxTranCostEstimate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFxTranCostEstimate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFxTranCostEstimateForArrayConstraintsFromSetFxTranCostEstimate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicFxTranCostEstimateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicFxTranCostEstimateItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicFxTranCostEstimateItem) ? get_class($transactionSearchRowBasicFxTranCostEstimateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicFxTranCostEstimateItem), var_export($transactionSearchRowBasicFxTranCostEstimateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fxTranCostEstimate 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 fxTranCostEstimate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $fxTranCostEstimate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setFxTranCostEstimate(array $fxTranCostEstimate = array())
    {
        // validation for constraint: array
        if ('' !== ($fxTranCostEstimateArrayErrorMessage = self::validateFxTranCostEstimateForArrayConstraintsFromSetFxTranCostEstimate($fxTranCostEstimate))) {
            throw new \InvalidArgumentException($fxTranCostEstimateArrayErrorMessage, __LINE__);
        }
        $this->fxTranCostEstimate = $fxTranCostEstimate;
        return $this;
    }
    /**
     * Add item to fxTranCostEstimate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToFxTranCostEstimate(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The fxTranCostEstimate 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->fxTranCostEstimate[] = $item;
        return $this;
    }
    /**
     * Get fxVsoeAllocation value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getFxVsoeAllocation()
    {
        return $this->fxVsoeAllocation;
    }
    /**
     * This method is responsible for validating the values passed to the setFxVsoeAllocation method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFxVsoeAllocation method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFxVsoeAllocationForArrayConstraintsFromSetFxVsoeAllocation(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicFxVsoeAllocationItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicFxVsoeAllocationItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicFxVsoeAllocationItem) ? get_class($transactionSearchRowBasicFxVsoeAllocationItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicFxVsoeAllocationItem), var_export($transactionSearchRowBasicFxVsoeAllocationItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fxVsoeAllocation 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 fxVsoeAllocation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $fxVsoeAllocation
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setFxVsoeAllocation(array $fxVsoeAllocation = array())
    {
        // validation for constraint: array
        if ('' !== ($fxVsoeAllocationArrayErrorMessage = self::validateFxVsoeAllocationForArrayConstraintsFromSetFxVsoeAllocation($fxVsoeAllocation))) {
            throw new \InvalidArgumentException($fxVsoeAllocationArrayErrorMessage, __LINE__);
        }
        $this->fxVsoeAllocation = $fxVsoeAllocation;
        return $this;
    }
    /**
     * Add item to fxVsoeAllocation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToFxVsoeAllocation(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The fxVsoeAllocation 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->fxVsoeAllocation[] = $item;
        return $this;
    }
    /**
     * Get fxVsoeAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getFxVsoeAmount()
    {
        return $this->fxVsoeAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setFxVsoeAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFxVsoeAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFxVsoeAmountForArrayConstraintsFromSetFxVsoeAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicFxVsoeAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicFxVsoeAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicFxVsoeAmountItem) ? get_class($transactionSearchRowBasicFxVsoeAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicFxVsoeAmountItem), var_export($transactionSearchRowBasicFxVsoeAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fxVsoeAmount 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 fxVsoeAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $fxVsoeAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setFxVsoeAmount(array $fxVsoeAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($fxVsoeAmountArrayErrorMessage = self::validateFxVsoeAmountForArrayConstraintsFromSetFxVsoeAmount($fxVsoeAmount))) {
            throw new \InvalidArgumentException($fxVsoeAmountArrayErrorMessage, __LINE__);
        }
        $this->fxVsoeAmount = $fxVsoeAmount;
        return $this;
    }
    /**
     * Add item to fxVsoeAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToFxVsoeAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The fxVsoeAmount 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->fxVsoeAmount[] = $item;
        return $this;
    }
    /**
     * Get fxVsoePrice value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getFxVsoePrice()
    {
        return $this->fxVsoePrice;
    }
    /**
     * This method is responsible for validating the values passed to the setFxVsoePrice method
     * This method is willingly generated in order to preserve the one-line inline validation within the setFxVsoePrice method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateFxVsoePriceForArrayConstraintsFromSetFxVsoePrice(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicFxVsoePriceItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicFxVsoePriceItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicFxVsoePriceItem) ? get_class($transactionSearchRowBasicFxVsoePriceItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicFxVsoePriceItem), var_export($transactionSearchRowBasicFxVsoePriceItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The fxVsoePrice 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 fxVsoePrice value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $fxVsoePrice
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setFxVsoePrice(array $fxVsoePrice = array())
    {
        // validation for constraint: array
        if ('' !== ($fxVsoePriceArrayErrorMessage = self::validateFxVsoePriceForArrayConstraintsFromSetFxVsoePrice($fxVsoePrice))) {
            throw new \InvalidArgumentException($fxVsoePriceArrayErrorMessage, __LINE__);
        }
        $this->fxVsoePrice = $fxVsoePrice;
        return $this;
    }
    /**
     * Add item to fxVsoePrice value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToFxVsoePrice(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The fxVsoePrice 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->fxVsoePrice[] = $item;
        return $this;
    }
    /**
     * Get gcoAvailabelToCharge value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getGcoAvailabelToCharge()
    {
        return $this->gcoAvailabelToCharge;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoAvailabelToCharge method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoAvailabelToCharge method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoAvailabelToChargeForArrayConstraintsFromSetGcoAvailabelToCharge(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoAvailabelToChargeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoAvailabelToChargeItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoAvailabelToChargeItem) ? get_class($transactionSearchRowBasicGcoAvailabelToChargeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoAvailabelToChargeItem), var_export($transactionSearchRowBasicGcoAvailabelToChargeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoAvailabelToCharge 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 gcoAvailabelToCharge value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $gcoAvailabelToCharge
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoAvailabelToCharge(array $gcoAvailabelToCharge = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoAvailabelToChargeArrayErrorMessage = self::validateGcoAvailabelToChargeForArrayConstraintsFromSetGcoAvailabelToCharge($gcoAvailabelToCharge))) {
            throw new \InvalidArgumentException($gcoAvailabelToChargeArrayErrorMessage, __LINE__);
        }
        $this->gcoAvailabelToCharge = $gcoAvailabelToCharge;
        return $this;
    }
    /**
     * Add item to gcoAvailabelToCharge value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoAvailabelToCharge(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The gcoAvailabelToCharge 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->gcoAvailabelToCharge[] = $item;
        return $this;
    }
    /**
     * Get gcoAvailableToRefund value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getGcoAvailableToRefund()
    {
        return $this->gcoAvailableToRefund;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoAvailableToRefund method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoAvailableToRefund method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoAvailableToRefundForArrayConstraintsFromSetGcoAvailableToRefund(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoAvailableToRefundItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoAvailableToRefundItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoAvailableToRefundItem) ? get_class($transactionSearchRowBasicGcoAvailableToRefundItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoAvailableToRefundItem), var_export($transactionSearchRowBasicGcoAvailableToRefundItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoAvailableToRefund 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 gcoAvailableToRefund value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $gcoAvailableToRefund
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoAvailableToRefund(array $gcoAvailableToRefund = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoAvailableToRefundArrayErrorMessage = self::validateGcoAvailableToRefundForArrayConstraintsFromSetGcoAvailableToRefund($gcoAvailableToRefund))) {
            throw new \InvalidArgumentException($gcoAvailableToRefundArrayErrorMessage, __LINE__);
        }
        $this->gcoAvailableToRefund = $gcoAvailableToRefund;
        return $this;
    }
    /**
     * Add item to gcoAvailableToRefund value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoAvailableToRefund(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The gcoAvailableToRefund 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->gcoAvailableToRefund[] = $item;
        return $this;
    }
    /**
     * Get gcoAvsStreetMatch value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getGcoAvsStreetMatch()
    {
        return $this->gcoAvsStreetMatch;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoAvsStreetMatch method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoAvsStreetMatch method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoAvsStreetMatchForArrayConstraintsFromSetGcoAvsStreetMatch(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoAvsStreetMatchItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoAvsStreetMatchItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoAvsStreetMatchItem) ? get_class($transactionSearchRowBasicGcoAvsStreetMatchItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoAvsStreetMatchItem), var_export($transactionSearchRowBasicGcoAvsStreetMatchItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoAvsStreetMatch 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 gcoAvsStreetMatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $gcoAvsStreetMatch
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoAvsStreetMatch(array $gcoAvsStreetMatch = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoAvsStreetMatchArrayErrorMessage = self::validateGcoAvsStreetMatchForArrayConstraintsFromSetGcoAvsStreetMatch($gcoAvsStreetMatch))) {
            throw new \InvalidArgumentException($gcoAvsStreetMatchArrayErrorMessage, __LINE__);
        }
        $this->gcoAvsStreetMatch = $gcoAvsStreetMatch;
        return $this;
    }
    /**
     * Add item to gcoAvsStreetMatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoAvsStreetMatch(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The gcoAvsStreetMatch 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->gcoAvsStreetMatch[] = $item;
        return $this;
    }
    /**
     * Get gcoAvsZipMatch value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getGcoAvsZipMatch()
    {
        return $this->gcoAvsZipMatch;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoAvsZipMatch method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoAvsZipMatch method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoAvsZipMatchForArrayConstraintsFromSetGcoAvsZipMatch(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoAvsZipMatchItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoAvsZipMatchItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoAvsZipMatchItem) ? get_class($transactionSearchRowBasicGcoAvsZipMatchItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoAvsZipMatchItem), var_export($transactionSearchRowBasicGcoAvsZipMatchItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoAvsZipMatch 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 gcoAvsZipMatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $gcoAvsZipMatch
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoAvsZipMatch(array $gcoAvsZipMatch = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoAvsZipMatchArrayErrorMessage = self::validateGcoAvsZipMatchForArrayConstraintsFromSetGcoAvsZipMatch($gcoAvsZipMatch))) {
            throw new \InvalidArgumentException($gcoAvsZipMatchArrayErrorMessage, __LINE__);
        }
        $this->gcoAvsZipMatch = $gcoAvsZipMatch;
        return $this;
    }
    /**
     * Add item to gcoAvsZipMatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoAvsZipMatch(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The gcoAvsZipMatch 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->gcoAvsZipMatch[] = $item;
        return $this;
    }
    /**
     * Get gcoBuyerAccountAge value
     * @return \StructType\SearchColumnLongField[]|null
     */
    public function getGcoBuyerAccountAge()
    {
        return $this->gcoBuyerAccountAge;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoBuyerAccountAge method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoBuyerAccountAge method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoBuyerAccountAgeForArrayConstraintsFromSetGcoBuyerAccountAge(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoBuyerAccountAgeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoBuyerAccountAgeItem instanceof \StructType\SearchColumnLongField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoBuyerAccountAgeItem) ? get_class($transactionSearchRowBasicGcoBuyerAccountAgeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoBuyerAccountAgeItem), var_export($transactionSearchRowBasicGcoBuyerAccountAgeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoBuyerAccountAge 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 gcoBuyerAccountAge value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField[] $gcoBuyerAccountAge
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoBuyerAccountAge(array $gcoBuyerAccountAge = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoBuyerAccountAgeArrayErrorMessage = self::validateGcoBuyerAccountAgeForArrayConstraintsFromSetGcoBuyerAccountAge($gcoBuyerAccountAge))) {
            throw new \InvalidArgumentException($gcoBuyerAccountAgeArrayErrorMessage, __LINE__);
        }
        $this->gcoBuyerAccountAge = $gcoBuyerAccountAge;
        return $this;
    }
    /**
     * Add item to gcoBuyerAccountAge value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoBuyerAccountAge(\StructType\SearchColumnLongField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnLongField) {
            throw new \InvalidArgumentException(sprintf('The gcoBuyerAccountAge 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->gcoBuyerAccountAge[] = $item;
        return $this;
    }
    /**
     * Get gcoBuyerIp value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getGcoBuyerIp()
    {
        return $this->gcoBuyerIp;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoBuyerIp method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoBuyerIp method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoBuyerIpForArrayConstraintsFromSetGcoBuyerIp(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoBuyerIpItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoBuyerIpItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoBuyerIpItem) ? get_class($transactionSearchRowBasicGcoBuyerIpItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoBuyerIpItem), var_export($transactionSearchRowBasicGcoBuyerIpItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoBuyerIp 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 gcoBuyerIp value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $gcoBuyerIp
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoBuyerIp(array $gcoBuyerIp = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoBuyerIpArrayErrorMessage = self::validateGcoBuyerIpForArrayConstraintsFromSetGcoBuyerIp($gcoBuyerIp))) {
            throw new \InvalidArgumentException($gcoBuyerIpArrayErrorMessage, __LINE__);
        }
        $this->gcoBuyerIp = $gcoBuyerIp;
        return $this;
    }
    /**
     * Add item to gcoBuyerIp value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoBuyerIp(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The gcoBuyerIp 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->gcoBuyerIp[] = $item;
        return $this;
    }
    /**
     * Get gcoChargeAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getGcoChargeAmount()
    {
        return $this->gcoChargeAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoChargeAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoChargeAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoChargeAmountForArrayConstraintsFromSetGcoChargeAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoChargeAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoChargeAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoChargeAmountItem) ? get_class($transactionSearchRowBasicGcoChargeAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoChargeAmountItem), var_export($transactionSearchRowBasicGcoChargeAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoChargeAmount 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 gcoChargeAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $gcoChargeAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoChargeAmount(array $gcoChargeAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoChargeAmountArrayErrorMessage = self::validateGcoChargeAmountForArrayConstraintsFromSetGcoChargeAmount($gcoChargeAmount))) {
            throw new \InvalidArgumentException($gcoChargeAmountArrayErrorMessage, __LINE__);
        }
        $this->gcoChargeAmount = $gcoChargeAmount;
        return $this;
    }
    /**
     * Add item to gcoChargeAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoChargeAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The gcoChargeAmount 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->gcoChargeAmount[] = $item;
        return $this;
    }
    /**
     * Get gcoChargebackAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getGcoChargebackAmount()
    {
        return $this->gcoChargebackAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoChargebackAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoChargebackAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoChargebackAmountForArrayConstraintsFromSetGcoChargebackAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoChargebackAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoChargebackAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoChargebackAmountItem) ? get_class($transactionSearchRowBasicGcoChargebackAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoChargebackAmountItem), var_export($transactionSearchRowBasicGcoChargebackAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoChargebackAmount 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 gcoChargebackAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $gcoChargebackAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoChargebackAmount(array $gcoChargebackAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoChargebackAmountArrayErrorMessage = self::validateGcoChargebackAmountForArrayConstraintsFromSetGcoChargebackAmount($gcoChargebackAmount))) {
            throw new \InvalidArgumentException($gcoChargebackAmountArrayErrorMessage, __LINE__);
        }
        $this->gcoChargebackAmount = $gcoChargebackAmount;
        return $this;
    }
    /**
     * Add item to gcoChargebackAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoChargebackAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The gcoChargebackAmount 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->gcoChargebackAmount[] = $item;
        return $this;
    }
    /**
     * Get gcoConfirmedChargedTotal value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getGcoConfirmedChargedTotal()
    {
        return $this->gcoConfirmedChargedTotal;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoConfirmedChargedTotal method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoConfirmedChargedTotal method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoConfirmedChargedTotalForArrayConstraintsFromSetGcoConfirmedChargedTotal(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoConfirmedChargedTotalItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoConfirmedChargedTotalItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoConfirmedChargedTotalItem) ? get_class($transactionSearchRowBasicGcoConfirmedChargedTotalItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoConfirmedChargedTotalItem), var_export($transactionSearchRowBasicGcoConfirmedChargedTotalItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoConfirmedChargedTotal 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 gcoConfirmedChargedTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $gcoConfirmedChargedTotal
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoConfirmedChargedTotal(array $gcoConfirmedChargedTotal = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoConfirmedChargedTotalArrayErrorMessage = self::validateGcoConfirmedChargedTotalForArrayConstraintsFromSetGcoConfirmedChargedTotal($gcoConfirmedChargedTotal))) {
            throw new \InvalidArgumentException($gcoConfirmedChargedTotalArrayErrorMessage, __LINE__);
        }
        $this->gcoConfirmedChargedTotal = $gcoConfirmedChargedTotal;
        return $this;
    }
    /**
     * Add item to gcoConfirmedChargedTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoConfirmedChargedTotal(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The gcoConfirmedChargedTotal 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->gcoConfirmedChargedTotal[] = $item;
        return $this;
    }
    /**
     * Get gcoConfirmedRefundedTotal value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getGcoConfirmedRefundedTotal()
    {
        return $this->gcoConfirmedRefundedTotal;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoConfirmedRefundedTotal method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoConfirmedRefundedTotal method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoConfirmedRefundedTotalForArrayConstraintsFromSetGcoConfirmedRefundedTotal(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoConfirmedRefundedTotalItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoConfirmedRefundedTotalItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoConfirmedRefundedTotalItem) ? get_class($transactionSearchRowBasicGcoConfirmedRefundedTotalItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoConfirmedRefundedTotalItem), var_export($transactionSearchRowBasicGcoConfirmedRefundedTotalItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoConfirmedRefundedTotal 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 gcoConfirmedRefundedTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $gcoConfirmedRefundedTotal
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoConfirmedRefundedTotal(array $gcoConfirmedRefundedTotal = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoConfirmedRefundedTotalArrayErrorMessage = self::validateGcoConfirmedRefundedTotalForArrayConstraintsFromSetGcoConfirmedRefundedTotal($gcoConfirmedRefundedTotal))) {
            throw new \InvalidArgumentException($gcoConfirmedRefundedTotalArrayErrorMessage, __LINE__);
        }
        $this->gcoConfirmedRefundedTotal = $gcoConfirmedRefundedTotal;
        return $this;
    }
    /**
     * Add item to gcoConfirmedRefundedTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoConfirmedRefundedTotal(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The gcoConfirmedRefundedTotal 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->gcoConfirmedRefundedTotal[] = $item;
        return $this;
    }
    /**
     * Get gcoCreditcardNumber value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getGcoCreditcardNumber()
    {
        return $this->gcoCreditcardNumber;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoCreditcardNumber method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoCreditcardNumber method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoCreditcardNumberForArrayConstraintsFromSetGcoCreditcardNumber(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoCreditcardNumberItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoCreditcardNumberItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoCreditcardNumberItem) ? get_class($transactionSearchRowBasicGcoCreditcardNumberItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoCreditcardNumberItem), var_export($transactionSearchRowBasicGcoCreditcardNumberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoCreditcardNumber 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 gcoCreditcardNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $gcoCreditcardNumber
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoCreditcardNumber(array $gcoCreditcardNumber = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoCreditcardNumberArrayErrorMessage = self::validateGcoCreditcardNumberForArrayConstraintsFromSetGcoCreditcardNumber($gcoCreditcardNumber))) {
            throw new \InvalidArgumentException($gcoCreditcardNumberArrayErrorMessage, __LINE__);
        }
        $this->gcoCreditcardNumber = $gcoCreditcardNumber;
        return $this;
    }
    /**
     * Add item to gcoCreditcardNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoCreditcardNumber(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The gcoCreditcardNumber 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->gcoCreditcardNumber[] = $item;
        return $this;
    }
    /**
     * Get gcoCscMatch value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getGcoCscMatch()
    {
        return $this->gcoCscMatch;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoCscMatch method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoCscMatch method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoCscMatchForArrayConstraintsFromSetGcoCscMatch(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoCscMatchItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoCscMatchItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoCscMatchItem) ? get_class($transactionSearchRowBasicGcoCscMatchItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoCscMatchItem), var_export($transactionSearchRowBasicGcoCscMatchItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoCscMatch 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 gcoCscMatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $gcoCscMatch
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoCscMatch(array $gcoCscMatch = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoCscMatchArrayErrorMessage = self::validateGcoCscMatchForArrayConstraintsFromSetGcoCscMatch($gcoCscMatch))) {
            throw new \InvalidArgumentException($gcoCscMatchArrayErrorMessage, __LINE__);
        }
        $this->gcoCscMatch = $gcoCscMatch;
        return $this;
    }
    /**
     * Add item to gcoCscMatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoCscMatch(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The gcoCscMatch 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->gcoCscMatch[] = $item;
        return $this;
    }
    /**
     * Get gcoFinancialState value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getGcoFinancialState()
    {
        return $this->gcoFinancialState;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoFinancialState method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoFinancialState method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoFinancialStateForArrayConstraintsFromSetGcoFinancialState(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoFinancialStateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoFinancialStateItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoFinancialStateItem) ? get_class($transactionSearchRowBasicGcoFinancialStateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoFinancialStateItem), var_export($transactionSearchRowBasicGcoFinancialStateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoFinancialState 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 gcoFinancialState value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $gcoFinancialState
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoFinancialState(array $gcoFinancialState = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoFinancialStateArrayErrorMessage = self::validateGcoFinancialStateForArrayConstraintsFromSetGcoFinancialState($gcoFinancialState))) {
            throw new \InvalidArgumentException($gcoFinancialStateArrayErrorMessage, __LINE__);
        }
        $this->gcoFinancialState = $gcoFinancialState;
        return $this;
    }
    /**
     * Add item to gcoFinancialState value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoFinancialState(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The gcoFinancialState 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->gcoFinancialState[] = $item;
        return $this;
    }
    /**
     * Get gcoFulfillmentState value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getGcoFulfillmentState()
    {
        return $this->gcoFulfillmentState;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoFulfillmentState method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoFulfillmentState method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoFulfillmentStateForArrayConstraintsFromSetGcoFulfillmentState(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoFulfillmentStateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoFulfillmentStateItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoFulfillmentStateItem) ? get_class($transactionSearchRowBasicGcoFulfillmentStateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoFulfillmentStateItem), var_export($transactionSearchRowBasicGcoFulfillmentStateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoFulfillmentState 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 gcoFulfillmentState value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $gcoFulfillmentState
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoFulfillmentState(array $gcoFulfillmentState = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoFulfillmentStateArrayErrorMessage = self::validateGcoFulfillmentStateForArrayConstraintsFromSetGcoFulfillmentState($gcoFulfillmentState))) {
            throw new \InvalidArgumentException($gcoFulfillmentStateArrayErrorMessage, __LINE__);
        }
        $this->gcoFulfillmentState = $gcoFulfillmentState;
        return $this;
    }
    /**
     * Add item to gcoFulfillmentState value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoFulfillmentState(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The gcoFulfillmentState 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->gcoFulfillmentState[] = $item;
        return $this;
    }
    /**
     * Get gcoOrderId value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getGcoOrderId()
    {
        return $this->gcoOrderId;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoOrderId method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoOrderId method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoOrderIdForArrayConstraintsFromSetGcoOrderId(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoOrderIdItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoOrderIdItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoOrderIdItem) ? get_class($transactionSearchRowBasicGcoOrderIdItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoOrderIdItem), var_export($transactionSearchRowBasicGcoOrderIdItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoOrderId 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 gcoOrderId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $gcoOrderId
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoOrderId(array $gcoOrderId = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoOrderIdArrayErrorMessage = self::validateGcoOrderIdForArrayConstraintsFromSetGcoOrderId($gcoOrderId))) {
            throw new \InvalidArgumentException($gcoOrderIdArrayErrorMessage, __LINE__);
        }
        $this->gcoOrderId = $gcoOrderId;
        return $this;
    }
    /**
     * Add item to gcoOrderId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoOrderId(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The gcoOrderId 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->gcoOrderId[] = $item;
        return $this;
    }
    /**
     * Get gcoOrderTotal value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getGcoOrderTotal()
    {
        return $this->gcoOrderTotal;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoOrderTotal method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoOrderTotal method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoOrderTotalForArrayConstraintsFromSetGcoOrderTotal(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoOrderTotalItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoOrderTotalItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoOrderTotalItem) ? get_class($transactionSearchRowBasicGcoOrderTotalItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoOrderTotalItem), var_export($transactionSearchRowBasicGcoOrderTotalItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoOrderTotal 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 gcoOrderTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $gcoOrderTotal
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoOrderTotal(array $gcoOrderTotal = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoOrderTotalArrayErrorMessage = self::validateGcoOrderTotalForArrayConstraintsFromSetGcoOrderTotal($gcoOrderTotal))) {
            throw new \InvalidArgumentException($gcoOrderTotalArrayErrorMessage, __LINE__);
        }
        $this->gcoOrderTotal = $gcoOrderTotal;
        return $this;
    }
    /**
     * Add item to gcoOrderTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoOrderTotal(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The gcoOrderTotal 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->gcoOrderTotal[] = $item;
        return $this;
    }
    /**
     * Get gcoPromotionAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getGcoPromotionAmount()
    {
        return $this->gcoPromotionAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoPromotionAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoPromotionAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoPromotionAmountForArrayConstraintsFromSetGcoPromotionAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoPromotionAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoPromotionAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoPromotionAmountItem) ? get_class($transactionSearchRowBasicGcoPromotionAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoPromotionAmountItem), var_export($transactionSearchRowBasicGcoPromotionAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoPromotionAmount 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 gcoPromotionAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $gcoPromotionAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoPromotionAmount(array $gcoPromotionAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoPromotionAmountArrayErrorMessage = self::validateGcoPromotionAmountForArrayConstraintsFromSetGcoPromotionAmount($gcoPromotionAmount))) {
            throw new \InvalidArgumentException($gcoPromotionAmountArrayErrorMessage, __LINE__);
        }
        $this->gcoPromotionAmount = $gcoPromotionAmount;
        return $this;
    }
    /**
     * Add item to gcoPromotionAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoPromotionAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The gcoPromotionAmount 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->gcoPromotionAmount[] = $item;
        return $this;
    }
    /**
     * Get gcoPromotionName value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getGcoPromotionName()
    {
        return $this->gcoPromotionName;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoPromotionName method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoPromotionName method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoPromotionNameForArrayConstraintsFromSetGcoPromotionName(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoPromotionNameItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoPromotionNameItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoPromotionNameItem) ? get_class($transactionSearchRowBasicGcoPromotionNameItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoPromotionNameItem), var_export($transactionSearchRowBasicGcoPromotionNameItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoPromotionName 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 gcoPromotionName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $gcoPromotionName
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoPromotionName(array $gcoPromotionName = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoPromotionNameArrayErrorMessage = self::validateGcoPromotionNameForArrayConstraintsFromSetGcoPromotionName($gcoPromotionName))) {
            throw new \InvalidArgumentException($gcoPromotionNameArrayErrorMessage, __LINE__);
        }
        $this->gcoPromotionName = $gcoPromotionName;
        return $this;
    }
    /**
     * Add item to gcoPromotionName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoPromotionName(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The gcoPromotionName 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->gcoPromotionName[] = $item;
        return $this;
    }
    /**
     * Get gcoRefundAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getGcoRefundAmount()
    {
        return $this->gcoRefundAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoRefundAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoRefundAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoRefundAmountForArrayConstraintsFromSetGcoRefundAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoRefundAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoRefundAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoRefundAmountItem) ? get_class($transactionSearchRowBasicGcoRefundAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoRefundAmountItem), var_export($transactionSearchRowBasicGcoRefundAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoRefundAmount 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 gcoRefundAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $gcoRefundAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoRefundAmount(array $gcoRefundAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoRefundAmountArrayErrorMessage = self::validateGcoRefundAmountForArrayConstraintsFromSetGcoRefundAmount($gcoRefundAmount))) {
            throw new \InvalidArgumentException($gcoRefundAmountArrayErrorMessage, __LINE__);
        }
        $this->gcoRefundAmount = $gcoRefundAmount;
        return $this;
    }
    /**
     * Add item to gcoRefundAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoRefundAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The gcoRefundAmount 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->gcoRefundAmount[] = $item;
        return $this;
    }
    /**
     * Get gcoShippingTotal value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getGcoShippingTotal()
    {
        return $this->gcoShippingTotal;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoShippingTotal method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoShippingTotal method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoShippingTotalForArrayConstraintsFromSetGcoShippingTotal(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoShippingTotalItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoShippingTotalItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoShippingTotalItem) ? get_class($transactionSearchRowBasicGcoShippingTotalItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoShippingTotalItem), var_export($transactionSearchRowBasicGcoShippingTotalItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoShippingTotal 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 gcoShippingTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $gcoShippingTotal
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoShippingTotal(array $gcoShippingTotal = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoShippingTotalArrayErrorMessage = self::validateGcoShippingTotalForArrayConstraintsFromSetGcoShippingTotal($gcoShippingTotal))) {
            throw new \InvalidArgumentException($gcoShippingTotalArrayErrorMessage, __LINE__);
        }
        $this->gcoShippingTotal = $gcoShippingTotal;
        return $this;
    }
    /**
     * Add item to gcoShippingTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoShippingTotal(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The gcoShippingTotal 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->gcoShippingTotal[] = $item;
        return $this;
    }
    /**
     * Get gcoStateChangedDetail value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getGcoStateChangedDetail()
    {
        return $this->gcoStateChangedDetail;
    }
    /**
     * This method is responsible for validating the values passed to the setGcoStateChangedDetail method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGcoStateChangedDetail method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGcoStateChangedDetailForArrayConstraintsFromSetGcoStateChangedDetail(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGcoStateChangedDetailItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGcoStateChangedDetailItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGcoStateChangedDetailItem) ? get_class($transactionSearchRowBasicGcoStateChangedDetailItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGcoStateChangedDetailItem), var_export($transactionSearchRowBasicGcoStateChangedDetailItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The gcoStateChangedDetail 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 gcoStateChangedDetail value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $gcoStateChangedDetail
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGcoStateChangedDetail(array $gcoStateChangedDetail = array())
    {
        // validation for constraint: array
        if ('' !== ($gcoStateChangedDetailArrayErrorMessage = self::validateGcoStateChangedDetailForArrayConstraintsFromSetGcoStateChangedDetail($gcoStateChangedDetail))) {
            throw new \InvalidArgumentException($gcoStateChangedDetailArrayErrorMessage, __LINE__);
        }
        $this->gcoStateChangedDetail = $gcoStateChangedDetail;
        return $this;
    }
    /**
     * Add item to gcoStateChangedDetail value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGcoStateChangedDetail(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The gcoStateChangedDetail 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->gcoStateChangedDetail[] = $item;
        return $this;
    }
    /**
     * Get giftCert value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getGiftCert()
    {
        return $this->giftCert;
    }
    /**
     * This method is responsible for validating the values passed to the setGiftCert method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGiftCert method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGiftCertForArrayConstraintsFromSetGiftCert(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGiftCertItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGiftCertItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGiftCertItem) ? get_class($transactionSearchRowBasicGiftCertItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGiftCertItem), var_export($transactionSearchRowBasicGiftCertItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The giftCert 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 giftCert value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $giftCert
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGiftCert(array $giftCert = array())
    {
        // validation for constraint: array
        if ('' !== ($giftCertArrayErrorMessage = self::validateGiftCertForArrayConstraintsFromSetGiftCert($giftCert))) {
            throw new \InvalidArgumentException($giftCertArrayErrorMessage, __LINE__);
        }
        $this->giftCert = $giftCert;
        return $this;
    }
    /**
     * Add item to giftCert value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGiftCert(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The giftCert 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->giftCert[] = $item;
        return $this;
    }
    /**
     * Get grossAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getGrossAmount()
    {
        return $this->grossAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setGrossAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setGrossAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateGrossAmountForArrayConstraintsFromSetGrossAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicGrossAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicGrossAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicGrossAmountItem) ? get_class($transactionSearchRowBasicGrossAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicGrossAmountItem), var_export($transactionSearchRowBasicGrossAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The grossAmount 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 grossAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $grossAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setGrossAmount(array $grossAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($grossAmountArrayErrorMessage = self::validateGrossAmountForArrayConstraintsFromSetGrossAmount($grossAmount))) {
            throw new \InvalidArgumentException($grossAmountArrayErrorMessage, __LINE__);
        }
        $this->grossAmount = $grossAmount;
        return $this;
    }
    /**
     * Add item to grossAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToGrossAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The grossAmount 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->grossAmount[] = $item;
        return $this;
    }
    /**
     * Get includeInForecast value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIncludeInForecast()
    {
        return $this->includeInForecast;
    }
    /**
     * This method is responsible for validating the values passed to the setIncludeInForecast method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIncludeInForecast method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIncludeInForecastForArrayConstraintsFromSetIncludeInForecast(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIncludeInForecastItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIncludeInForecastItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIncludeInForecastItem) ? get_class($transactionSearchRowBasicIncludeInForecastItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIncludeInForecastItem), var_export($transactionSearchRowBasicIncludeInForecastItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The includeInForecast 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 includeInForecast value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $includeInForecast
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIncludeInForecast(array $includeInForecast = array())
    {
        // validation for constraint: array
        if ('' !== ($includeInForecastArrayErrorMessage = self::validateIncludeInForecastForArrayConstraintsFromSetIncludeInForecast($includeInForecast))) {
            throw new \InvalidArgumentException($includeInForecastArrayErrorMessage, __LINE__);
        }
        $this->includeInForecast = $includeInForecast;
        return $this;
    }
    /**
     * Add item to includeInForecast value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIncludeInForecast(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The includeInForecast 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->includeInForecast[] = $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 $transactionSearchRowBasicIncotermItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIncotermItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIncotermItem) ? get_class($transactionSearchRowBasicIncotermItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIncotermItem), var_export($transactionSearchRowBasicIncotermItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 intercoStatus value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getIntercoStatus()
    {
        return $this->intercoStatus;
    }
    /**
     * This method is responsible for validating the values passed to the setIntercoStatus method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIntercoStatus method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIntercoStatusForArrayConstraintsFromSetIntercoStatus(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIntercoStatusItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIntercoStatusItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIntercoStatusItem) ? get_class($transactionSearchRowBasicIntercoStatusItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIntercoStatusItem), var_export($transactionSearchRowBasicIntercoStatusItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The intercoStatus 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 intercoStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $intercoStatus
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIntercoStatus(array $intercoStatus = array())
    {
        // validation for constraint: array
        if ('' !== ($intercoStatusArrayErrorMessage = self::validateIntercoStatusForArrayConstraintsFromSetIntercoStatus($intercoStatus))) {
            throw new \InvalidArgumentException($intercoStatusArrayErrorMessage, __LINE__);
        }
        $this->intercoStatus = $intercoStatus;
        return $this;
    }
    /**
     * Add item to intercoStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIntercoStatus(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The intercoStatus 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->intercoStatus[] = $item;
        return $this;
    }
    /**
     * Get intercoTransaction value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getIntercoTransaction()
    {
        return $this->intercoTransaction;
    }
    /**
     * This method is responsible for validating the values passed to the setIntercoTransaction method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIntercoTransaction method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIntercoTransactionForArrayConstraintsFromSetIntercoTransaction(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIntercoTransactionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIntercoTransactionItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIntercoTransactionItem) ? get_class($transactionSearchRowBasicIntercoTransactionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIntercoTransactionItem), var_export($transactionSearchRowBasicIntercoTransactionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The intercoTransaction 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 intercoTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $intercoTransaction
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIntercoTransaction(array $intercoTransaction = array())
    {
        // validation for constraint: array
        if ('' !== ($intercoTransactionArrayErrorMessage = self::validateIntercoTransactionForArrayConstraintsFromSetIntercoTransaction($intercoTransaction))) {
            throw new \InvalidArgumentException($intercoTransactionArrayErrorMessage, __LINE__);
        }
        $this->intercoTransaction = $intercoTransaction;
        return $this;
    }
    /**
     * Add item to intercoTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIntercoTransaction(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The intercoTransaction 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->intercoTransaction[] = $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 $transactionSearchRowBasicInternalIdItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicInternalIdItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicInternalIdItem) ? get_class($transactionSearchRowBasicInternalIdItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicInternalIdItem), var_export($transactionSearchRowBasicInternalIdItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 inventoryLocation value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getInventoryLocation()
    {
        return $this->inventoryLocation;
    }
    /**
     * This method is responsible for validating the values passed to the setInventoryLocation method
     * This method is willingly generated in order to preserve the one-line inline validation within the setInventoryLocation method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateInventoryLocationForArrayConstraintsFromSetInventoryLocation(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicInventoryLocationItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicInventoryLocationItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicInventoryLocationItem) ? get_class($transactionSearchRowBasicInventoryLocationItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicInventoryLocationItem), var_export($transactionSearchRowBasicInventoryLocationItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The inventoryLocation 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 inventoryLocation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $inventoryLocation
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setInventoryLocation(array $inventoryLocation = array())
    {
        // validation for constraint: array
        if ('' !== ($inventoryLocationArrayErrorMessage = self::validateInventoryLocationForArrayConstraintsFromSetInventoryLocation($inventoryLocation))) {
            throw new \InvalidArgumentException($inventoryLocationArrayErrorMessage, __LINE__);
        }
        $this->inventoryLocation = $inventoryLocation;
        return $this;
    }
    /**
     * Add item to inventoryLocation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToInventoryLocation(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The inventoryLocation 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->inventoryLocation[] = $item;
        return $this;
    }
    /**
     * Get inventorySubsidiary value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getInventorySubsidiary()
    {
        return $this->inventorySubsidiary;
    }
    /**
     * This method is responsible for validating the values passed to the setInventorySubsidiary method
     * This method is willingly generated in order to preserve the one-line inline validation within the setInventorySubsidiary method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateInventorySubsidiaryForArrayConstraintsFromSetInventorySubsidiary(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicInventorySubsidiaryItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicInventorySubsidiaryItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicInventorySubsidiaryItem) ? get_class($transactionSearchRowBasicInventorySubsidiaryItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicInventorySubsidiaryItem), var_export($transactionSearchRowBasicInventorySubsidiaryItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The inventorySubsidiary 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 inventorySubsidiary value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $inventorySubsidiary
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setInventorySubsidiary(array $inventorySubsidiary = array())
    {
        // validation for constraint: array
        if ('' !== ($inventorySubsidiaryArrayErrorMessage = self::validateInventorySubsidiaryForArrayConstraintsFromSetInventorySubsidiary($inventorySubsidiary))) {
            throw new \InvalidArgumentException($inventorySubsidiaryArrayErrorMessage, __LINE__);
        }
        $this->inventorySubsidiary = $inventorySubsidiary;
        return $this;
    }
    /**
     * Add item to inventorySubsidiary value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToInventorySubsidiary(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The inventorySubsidiary 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->inventorySubsidiary[] = $item;
        return $this;
    }
    /**
     * Get inVsoeBundle value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getInVsoeBundle()
    {
        return $this->inVsoeBundle;
    }
    /**
     * This method is responsible for validating the values passed to the setInVsoeBundle method
     * This method is willingly generated in order to preserve the one-line inline validation within the setInVsoeBundle method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateInVsoeBundleForArrayConstraintsFromSetInVsoeBundle(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicInVsoeBundleItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicInVsoeBundleItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicInVsoeBundleItem) ? get_class($transactionSearchRowBasicInVsoeBundleItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicInVsoeBundleItem), var_export($transactionSearchRowBasicInVsoeBundleItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The inVsoeBundle 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 inVsoeBundle value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $inVsoeBundle
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setInVsoeBundle(array $inVsoeBundle = array())
    {
        // validation for constraint: array
        if ('' !== ($inVsoeBundleArrayErrorMessage = self::validateInVsoeBundleForArrayConstraintsFromSetInVsoeBundle($inVsoeBundle))) {
            throw new \InvalidArgumentException($inVsoeBundleArrayErrorMessage, __LINE__);
        }
        $this->inVsoeBundle = $inVsoeBundle;
        return $this;
    }
    /**
     * Add item to inVsoeBundle value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToInVsoeBundle(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The inVsoeBundle 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->inVsoeBundle[] = $item;
        return $this;
    }
    /**
     * Get isAllocation value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsAllocation()
    {
        return $this->isAllocation;
    }
    /**
     * This method is responsible for validating the values passed to the setIsAllocation method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsAllocation method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsAllocationForArrayConstraintsFromSetIsAllocation(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsAllocationItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsAllocationItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsAllocationItem) ? get_class($transactionSearchRowBasicIsAllocationItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsAllocationItem), var_export($transactionSearchRowBasicIsAllocationItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isAllocation 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 isAllocation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isAllocation
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsAllocation(array $isAllocation = array())
    {
        // validation for constraint: array
        if ('' !== ($isAllocationArrayErrorMessage = self::validateIsAllocationForArrayConstraintsFromSetIsAllocation($isAllocation))) {
            throw new \InvalidArgumentException($isAllocationArrayErrorMessage, __LINE__);
        }
        $this->isAllocation = $isAllocation;
        return $this;
    }
    /**
     * Add item to isAllocation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsAllocation(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isAllocation 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->isAllocation[] = $item;
        return $this;
    }
    /**
     * Get isBackflush value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsBackflush()
    {
        return $this->isBackflush;
    }
    /**
     * This method is responsible for validating the values passed to the setIsBackflush method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsBackflush method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsBackflushForArrayConstraintsFromSetIsBackflush(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsBackflushItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsBackflushItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsBackflushItem) ? get_class($transactionSearchRowBasicIsBackflushItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsBackflushItem), var_export($transactionSearchRowBasicIsBackflushItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isBackflush 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 isBackflush value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isBackflush
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsBackflush(array $isBackflush = array())
    {
        // validation for constraint: array
        if ('' !== ($isBackflushArrayErrorMessage = self::validateIsBackflushForArrayConstraintsFromSetIsBackflush($isBackflush))) {
            throw new \InvalidArgumentException($isBackflushArrayErrorMessage, __LINE__);
        }
        $this->isBackflush = $isBackflush;
        return $this;
    }
    /**
     * Add item to isBackflush value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsBackflush(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isBackflush 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->isBackflush[] = $item;
        return $this;
    }
    /**
     * Get isGcoChargeback value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsGcoChargeback()
    {
        return $this->isGcoChargeback;
    }
    /**
     * This method is responsible for validating the values passed to the setIsGcoChargeback method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsGcoChargeback method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsGcoChargebackForArrayConstraintsFromSetIsGcoChargeback(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsGcoChargebackItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsGcoChargebackItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsGcoChargebackItem) ? get_class($transactionSearchRowBasicIsGcoChargebackItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsGcoChargebackItem), var_export($transactionSearchRowBasicIsGcoChargebackItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isGcoChargeback 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 isGcoChargeback value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isGcoChargeback
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsGcoChargeback(array $isGcoChargeback = array())
    {
        // validation for constraint: array
        if ('' !== ($isGcoChargebackArrayErrorMessage = self::validateIsGcoChargebackForArrayConstraintsFromSetIsGcoChargeback($isGcoChargeback))) {
            throw new \InvalidArgumentException($isGcoChargebackArrayErrorMessage, __LINE__);
        }
        $this->isGcoChargeback = $isGcoChargeback;
        return $this;
    }
    /**
     * Add item to isGcoChargeback value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsGcoChargeback(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isGcoChargeback 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->isGcoChargeback[] = $item;
        return $this;
    }
    /**
     * Get isGcoChargeConfirmed value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsGcoChargeConfirmed()
    {
        return $this->isGcoChargeConfirmed;
    }
    /**
     * This method is responsible for validating the values passed to the setIsGcoChargeConfirmed method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsGcoChargeConfirmed method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsGcoChargeConfirmedForArrayConstraintsFromSetIsGcoChargeConfirmed(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsGcoChargeConfirmedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsGcoChargeConfirmedItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsGcoChargeConfirmedItem) ? get_class($transactionSearchRowBasicIsGcoChargeConfirmedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsGcoChargeConfirmedItem), var_export($transactionSearchRowBasicIsGcoChargeConfirmedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isGcoChargeConfirmed 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 isGcoChargeConfirmed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isGcoChargeConfirmed
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsGcoChargeConfirmed(array $isGcoChargeConfirmed = array())
    {
        // validation for constraint: array
        if ('' !== ($isGcoChargeConfirmedArrayErrorMessage = self::validateIsGcoChargeConfirmedForArrayConstraintsFromSetIsGcoChargeConfirmed($isGcoChargeConfirmed))) {
            throw new \InvalidArgumentException($isGcoChargeConfirmedArrayErrorMessage, __LINE__);
        }
        $this->isGcoChargeConfirmed = $isGcoChargeConfirmed;
        return $this;
    }
    /**
     * Add item to isGcoChargeConfirmed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsGcoChargeConfirmed(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isGcoChargeConfirmed 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->isGcoChargeConfirmed[] = $item;
        return $this;
    }
    /**
     * Get isGcoPaymentGuaranteed value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsGcoPaymentGuaranteed()
    {
        return $this->isGcoPaymentGuaranteed;
    }
    /**
     * This method is responsible for validating the values passed to the setIsGcoPaymentGuaranteed method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsGcoPaymentGuaranteed method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsGcoPaymentGuaranteedForArrayConstraintsFromSetIsGcoPaymentGuaranteed(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsGcoPaymentGuaranteedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsGcoPaymentGuaranteedItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsGcoPaymentGuaranteedItem) ? get_class($transactionSearchRowBasicIsGcoPaymentGuaranteedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsGcoPaymentGuaranteedItem), var_export($transactionSearchRowBasicIsGcoPaymentGuaranteedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isGcoPaymentGuaranteed 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 isGcoPaymentGuaranteed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isGcoPaymentGuaranteed
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsGcoPaymentGuaranteed(array $isGcoPaymentGuaranteed = array())
    {
        // validation for constraint: array
        if ('' !== ($isGcoPaymentGuaranteedArrayErrorMessage = self::validateIsGcoPaymentGuaranteedForArrayConstraintsFromSetIsGcoPaymentGuaranteed($isGcoPaymentGuaranteed))) {
            throw new \InvalidArgumentException($isGcoPaymentGuaranteedArrayErrorMessage, __LINE__);
        }
        $this->isGcoPaymentGuaranteed = $isGcoPaymentGuaranteed;
        return $this;
    }
    /**
     * Add item to isGcoPaymentGuaranteed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsGcoPaymentGuaranteed(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isGcoPaymentGuaranteed 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->isGcoPaymentGuaranteed[] = $item;
        return $this;
    }
    /**
     * Get isGcoRefundConfirmed value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsGcoRefundConfirmed()
    {
        return $this->isGcoRefundConfirmed;
    }
    /**
     * This method is responsible for validating the values passed to the setIsGcoRefundConfirmed method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsGcoRefundConfirmed method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsGcoRefundConfirmedForArrayConstraintsFromSetIsGcoRefundConfirmed(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsGcoRefundConfirmedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsGcoRefundConfirmedItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsGcoRefundConfirmedItem) ? get_class($transactionSearchRowBasicIsGcoRefundConfirmedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsGcoRefundConfirmedItem), var_export($transactionSearchRowBasicIsGcoRefundConfirmedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isGcoRefundConfirmed 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 isGcoRefundConfirmed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isGcoRefundConfirmed
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsGcoRefundConfirmed(array $isGcoRefundConfirmed = array())
    {
        // validation for constraint: array
        if ('' !== ($isGcoRefundConfirmedArrayErrorMessage = self::validateIsGcoRefundConfirmedForArrayConstraintsFromSetIsGcoRefundConfirmed($isGcoRefundConfirmed))) {
            throw new \InvalidArgumentException($isGcoRefundConfirmedArrayErrorMessage, __LINE__);
        }
        $this->isGcoRefundConfirmed = $isGcoRefundConfirmed;
        return $this;
    }
    /**
     * Add item to isGcoRefundConfirmed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsGcoRefundConfirmed(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isGcoRefundConfirmed 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->isGcoRefundConfirmed[] = $item;
        return $this;
    }
    /**
     * Get isInsideDelivery value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsInsideDelivery()
    {
        return $this->isInsideDelivery;
    }
    /**
     * This method is responsible for validating the values passed to the setIsInsideDelivery method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsInsideDelivery method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsInsideDeliveryForArrayConstraintsFromSetIsInsideDelivery(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsInsideDeliveryItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsInsideDeliveryItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsInsideDeliveryItem) ? get_class($transactionSearchRowBasicIsInsideDeliveryItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsInsideDeliveryItem), var_export($transactionSearchRowBasicIsInsideDeliveryItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isInsideDelivery 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 isInsideDelivery value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isInsideDelivery
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsInsideDelivery(array $isInsideDelivery = array())
    {
        // validation for constraint: array
        if ('' !== ($isInsideDeliveryArrayErrorMessage = self::validateIsInsideDeliveryForArrayConstraintsFromSetIsInsideDelivery($isInsideDelivery))) {
            throw new \InvalidArgumentException($isInsideDeliveryArrayErrorMessage, __LINE__);
        }
        $this->isInsideDelivery = $isInsideDelivery;
        return $this;
    }
    /**
     * Add item to isInsideDelivery value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsInsideDelivery(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isInsideDelivery 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->isInsideDelivery[] = $item;
        return $this;
    }
    /**
     * Get isInsidePickup value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsInsidePickup()
    {
        return $this->isInsidePickup;
    }
    /**
     * This method is responsible for validating the values passed to the setIsInsidePickup method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsInsidePickup method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsInsidePickupForArrayConstraintsFromSetIsInsidePickup(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsInsidePickupItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsInsidePickupItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsInsidePickupItem) ? get_class($transactionSearchRowBasicIsInsidePickupItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsInsidePickupItem), var_export($transactionSearchRowBasicIsInsidePickupItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isInsidePickup 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 isInsidePickup value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isInsidePickup
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsInsidePickup(array $isInsidePickup = array())
    {
        // validation for constraint: array
        if ('' !== ($isInsidePickupArrayErrorMessage = self::validateIsInsidePickupForArrayConstraintsFromSetIsInsidePickup($isInsidePickup))) {
            throw new \InvalidArgumentException($isInsidePickupArrayErrorMessage, __LINE__);
        }
        $this->isInsidePickup = $isInsidePickup;
        return $this;
    }
    /**
     * Add item to isInsidePickup value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsInsidePickup(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isInsidePickup 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->isInsidePickup[] = $item;
        return $this;
    }
    /**
     * Get isIntercompanyAdjustment value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsIntercompanyAdjustment()
    {
        return $this->isIntercompanyAdjustment;
    }
    /**
     * This method is responsible for validating the values passed to the setIsIntercompanyAdjustment method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsIntercompanyAdjustment method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsIntercompanyAdjustmentForArrayConstraintsFromSetIsIntercompanyAdjustment(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsIntercompanyAdjustmentItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsIntercompanyAdjustmentItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsIntercompanyAdjustmentItem) ? get_class($transactionSearchRowBasicIsIntercompanyAdjustmentItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsIntercompanyAdjustmentItem), var_export($transactionSearchRowBasicIsIntercompanyAdjustmentItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isIntercompanyAdjustment 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 isIntercompanyAdjustment value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isIntercompanyAdjustment
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsIntercompanyAdjustment(array $isIntercompanyAdjustment = array())
    {
        // validation for constraint: array
        if ('' !== ($isIntercompanyAdjustmentArrayErrorMessage = self::validateIsIntercompanyAdjustmentForArrayConstraintsFromSetIsIntercompanyAdjustment($isIntercompanyAdjustment))) {
            throw new \InvalidArgumentException($isIntercompanyAdjustmentArrayErrorMessage, __LINE__);
        }
        $this->isIntercompanyAdjustment = $isIntercompanyAdjustment;
        return $this;
    }
    /**
     * Add item to isIntercompanyAdjustment value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsIntercompanyAdjustment(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isIntercompanyAdjustment 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->isIntercompanyAdjustment[] = $item;
        return $this;
    }
    /**
     * Get isInTransitPayment value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsInTransitPayment()
    {
        return $this->isInTransitPayment;
    }
    /**
     * This method is responsible for validating the values passed to the setIsInTransitPayment method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsInTransitPayment method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsInTransitPaymentForArrayConstraintsFromSetIsInTransitPayment(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsInTransitPaymentItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsInTransitPaymentItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsInTransitPaymentItem) ? get_class($transactionSearchRowBasicIsInTransitPaymentItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsInTransitPaymentItem), var_export($transactionSearchRowBasicIsInTransitPaymentItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isInTransitPayment 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 isInTransitPayment value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isInTransitPayment
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsInTransitPayment(array $isInTransitPayment = array())
    {
        // validation for constraint: array
        if ('' !== ($isInTransitPaymentArrayErrorMessage = self::validateIsInTransitPaymentForArrayConstraintsFromSetIsInTransitPayment($isInTransitPayment))) {
            throw new \InvalidArgumentException($isInTransitPaymentArrayErrorMessage, __LINE__);
        }
        $this->isInTransitPayment = $isInTransitPayment;
        return $this;
    }
    /**
     * Add item to isInTransitPayment value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsInTransitPayment(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isInTransitPayment 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->isInTransitPayment[] = $item;
        return $this;
    }
    /**
     * Get isMultiShipTo value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsMultiShipTo()
    {
        return $this->isMultiShipTo;
    }
    /**
     * This method is responsible for validating the values passed to the setIsMultiShipTo method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsMultiShipTo method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsMultiShipToForArrayConstraintsFromSetIsMultiShipTo(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsMultiShipToItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsMultiShipToItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsMultiShipToItem) ? get_class($transactionSearchRowBasicIsMultiShipToItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsMultiShipToItem), var_export($transactionSearchRowBasicIsMultiShipToItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isMultiShipTo 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 isMultiShipTo value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isMultiShipTo
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsMultiShipTo(array $isMultiShipTo = array())
    {
        // validation for constraint: array
        if ('' !== ($isMultiShipToArrayErrorMessage = self::validateIsMultiShipToForArrayConstraintsFromSetIsMultiShipTo($isMultiShipTo))) {
            throw new \InvalidArgumentException($isMultiShipToArrayErrorMessage, __LINE__);
        }
        $this->isMultiShipTo = $isMultiShipTo;
        return $this;
    }
    /**
     * Add item to isMultiShipTo value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsMultiShipTo(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isMultiShipTo 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->isMultiShipTo[] = $item;
        return $this;
    }
    /**
     * Get isReversal value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsReversal()
    {
        return $this->isReversal;
    }
    /**
     * This method is responsible for validating the values passed to the setIsReversal method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsReversal method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsReversalForArrayConstraintsFromSetIsReversal(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsReversalItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsReversalItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsReversalItem) ? get_class($transactionSearchRowBasicIsReversalItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsReversalItem), var_export($transactionSearchRowBasicIsReversalItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isReversal 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 isReversal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isReversal
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsReversal(array $isReversal = array())
    {
        // validation for constraint: array
        if ('' !== ($isReversalArrayErrorMessage = self::validateIsReversalForArrayConstraintsFromSetIsReversal($isReversal))) {
            throw new \InvalidArgumentException($isReversalArrayErrorMessage, __LINE__);
        }
        $this->isReversal = $isReversal;
        return $this;
    }
    /**
     * Add item to isReversal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsReversal(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isReversal 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->isReversal[] = $item;
        return $this;
    }
    /**
     * Get isRevRecTransaction value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsRevRecTransaction()
    {
        return $this->isRevRecTransaction;
    }
    /**
     * This method is responsible for validating the values passed to the setIsRevRecTransaction method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsRevRecTransaction method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsRevRecTransactionForArrayConstraintsFromSetIsRevRecTransaction(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsRevRecTransactionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsRevRecTransactionItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsRevRecTransactionItem) ? get_class($transactionSearchRowBasicIsRevRecTransactionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsRevRecTransactionItem), var_export($transactionSearchRowBasicIsRevRecTransactionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isRevRecTransaction 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 isRevRecTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isRevRecTransaction
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsRevRecTransaction(array $isRevRecTransaction = array())
    {
        // validation for constraint: array
        if ('' !== ($isRevRecTransactionArrayErrorMessage = self::validateIsRevRecTransactionForArrayConstraintsFromSetIsRevRecTransaction($isRevRecTransaction))) {
            throw new \InvalidArgumentException($isRevRecTransactionArrayErrorMessage, __LINE__);
        }
        $this->isRevRecTransaction = $isRevRecTransaction;
        return $this;
    }
    /**
     * Add item to isRevRecTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsRevRecTransaction(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isRevRecTransaction 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->isRevRecTransaction[] = $item;
        return $this;
    }
    /**
     * Get isScrap value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsScrap()
    {
        return $this->isScrap;
    }
    /**
     * This method is responsible for validating the values passed to the setIsScrap method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsScrap method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsScrapForArrayConstraintsFromSetIsScrap(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsScrapItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsScrapItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsScrapItem) ? get_class($transactionSearchRowBasicIsScrapItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsScrapItem), var_export($transactionSearchRowBasicIsScrapItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isScrap 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 isScrap value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isScrap
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsScrap(array $isScrap = array())
    {
        // validation for constraint: array
        if ('' !== ($isScrapArrayErrorMessage = self::validateIsScrapForArrayConstraintsFromSetIsScrap($isScrap))) {
            throw new \InvalidArgumentException($isScrapArrayErrorMessage, __LINE__);
        }
        $this->isScrap = $isScrap;
        return $this;
    }
    /**
     * Add item to isScrap value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsScrap(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isScrap 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->isScrap[] = $item;
        return $this;
    }
    /**
     * Get isShipAddress value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsShipAddress()
    {
        return $this->isShipAddress;
    }
    /**
     * This method is responsible for validating the values passed to the setIsShipAddress method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsShipAddress method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsShipAddressForArrayConstraintsFromSetIsShipAddress(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsShipAddressItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsShipAddressItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsShipAddressItem) ? get_class($transactionSearchRowBasicIsShipAddressItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsShipAddressItem), var_export($transactionSearchRowBasicIsShipAddressItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isShipAddress 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 isShipAddress value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isShipAddress
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsShipAddress(array $isShipAddress = array())
    {
        // validation for constraint: array
        if ('' !== ($isShipAddressArrayErrorMessage = self::validateIsShipAddressForArrayConstraintsFromSetIsShipAddress($isShipAddress))) {
            throw new \InvalidArgumentException($isShipAddressArrayErrorMessage, __LINE__);
        }
        $this->isShipAddress = $isShipAddress;
        return $this;
    }
    /**
     * Add item to isShipAddress value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsShipAddress(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isShipAddress 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->isShipAddress[] = $item;
        return $this;
    }
    /**
     * Get isTransferPriceCosting value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsTransferPriceCosting()
    {
        return $this->isTransferPriceCosting;
    }
    /**
     * This method is responsible for validating the values passed to the setIsTransferPriceCosting method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsTransferPriceCosting method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsTransferPriceCostingForArrayConstraintsFromSetIsTransferPriceCosting(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsTransferPriceCostingItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsTransferPriceCostingItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsTransferPriceCostingItem) ? get_class($transactionSearchRowBasicIsTransferPriceCostingItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsTransferPriceCostingItem), var_export($transactionSearchRowBasicIsTransferPriceCostingItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isTransferPriceCosting 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 isTransferPriceCosting value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isTransferPriceCosting
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsTransferPriceCosting(array $isTransferPriceCosting = array())
    {
        // validation for constraint: array
        if ('' !== ($isTransferPriceCostingArrayErrorMessage = self::validateIsTransferPriceCostingForArrayConstraintsFromSetIsTransferPriceCosting($isTransferPriceCosting))) {
            throw new \InvalidArgumentException($isTransferPriceCostingArrayErrorMessage, __LINE__);
        }
        $this->isTransferPriceCosting = $isTransferPriceCosting;
        return $this;
    }
    /**
     * Add item to isTransferPriceCosting value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsTransferPriceCosting(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isTransferPriceCosting 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->isTransferPriceCosting[] = $item;
        return $this;
    }
    /**
     * Get isWip value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getIsWip()
    {
        return $this->isWip;
    }
    /**
     * This method is responsible for validating the values passed to the setIsWip method
     * This method is willingly generated in order to preserve the one-line inline validation within the setIsWip method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateIsWipForArrayConstraintsFromSetIsWip(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicIsWipItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicIsWipItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicIsWipItem) ? get_class($transactionSearchRowBasicIsWipItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicIsWipItem), var_export($transactionSearchRowBasicIsWipItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The isWip 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 isWip value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $isWip
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setIsWip(array $isWip = array())
    {
        // validation for constraint: array
        if ('' !== ($isWipArrayErrorMessage = self::validateIsWipForArrayConstraintsFromSetIsWip($isWip))) {
            throw new \InvalidArgumentException($isWipArrayErrorMessage, __LINE__);
        }
        $this->isWip = $isWip;
        return $this;
    }
    /**
     * Add item to isWip value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToIsWip(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The isWip 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->isWip[] = $item;
        return $this;
    }
    /**
     * Get item value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getItem()
    {
        return $this->item;
    }
    /**
     * This method is responsible for validating the values passed to the setItem method
     * This method is willingly generated in order to preserve the one-line inline validation within the setItem method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateItemForArrayConstraintsFromSetItem(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicItemItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicItemItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicItemItem) ? get_class($transactionSearchRowBasicItemItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicItemItem), var_export($transactionSearchRowBasicItemItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The item 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 item value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setItem(array $item = array())
    {
        // validation for constraint: array
        if ('' !== ($itemArrayErrorMessage = self::validateItemForArrayConstraintsFromSetItem($item))) {
            throw new \InvalidArgumentException($itemArrayErrorMessage, __LINE__);
        }
        $this->item = $item;
        return $this;
    }
    /**
     * Add item to item value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToItem(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The item 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->item[] = $item;
        return $this;
    }
    /**
     * Get itemFulfillmentChoice value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getItemFulfillmentChoice()
    {
        return $this->itemFulfillmentChoice;
    }
    /**
     * This method is responsible for validating the values passed to the setItemFulfillmentChoice method
     * This method is willingly generated in order to preserve the one-line inline validation within the setItemFulfillmentChoice method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateItemFulfillmentChoiceForArrayConstraintsFromSetItemFulfillmentChoice(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicItemFulfillmentChoiceItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicItemFulfillmentChoiceItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicItemFulfillmentChoiceItem) ? get_class($transactionSearchRowBasicItemFulfillmentChoiceItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicItemFulfillmentChoiceItem), var_export($transactionSearchRowBasicItemFulfillmentChoiceItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The itemFulfillmentChoice 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 itemFulfillmentChoice value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $itemFulfillmentChoice
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setItemFulfillmentChoice(array $itemFulfillmentChoice = array())
    {
        // validation for constraint: array
        if ('' !== ($itemFulfillmentChoiceArrayErrorMessage = self::validateItemFulfillmentChoiceForArrayConstraintsFromSetItemFulfillmentChoice($itemFulfillmentChoice))) {
            throw new \InvalidArgumentException($itemFulfillmentChoiceArrayErrorMessage, __LINE__);
        }
        $this->itemFulfillmentChoice = $itemFulfillmentChoice;
        return $this;
    }
    /**
     * Add item to itemFulfillmentChoice value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToItemFulfillmentChoice(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The itemFulfillmentChoice 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->itemFulfillmentChoice[] = $item;
        return $this;
    }
    /**
     * Get itemRevision value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getItemRevision()
    {
        return $this->itemRevision;
    }
    /**
     * This method is responsible for validating the values passed to the setItemRevision method
     * This method is willingly generated in order to preserve the one-line inline validation within the setItemRevision method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateItemRevisionForArrayConstraintsFromSetItemRevision(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicItemRevisionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicItemRevisionItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicItemRevisionItem) ? get_class($transactionSearchRowBasicItemRevisionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicItemRevisionItem), var_export($transactionSearchRowBasicItemRevisionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The itemRevision 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 itemRevision value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $itemRevision
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setItemRevision(array $itemRevision = array())
    {
        // validation for constraint: array
        if ('' !== ($itemRevisionArrayErrorMessage = self::validateItemRevisionForArrayConstraintsFromSetItemRevision($itemRevision))) {
            throw new \InvalidArgumentException($itemRevisionArrayErrorMessage, __LINE__);
        }
        $this->itemRevision = $itemRevision;
        return $this;
    }
    /**
     * Add item to itemRevision value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToItemRevision(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The itemRevision 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->itemRevision[] = $item;
        return $this;
    }
    /**
     * Get landedCostPerLine value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getLandedCostPerLine()
    {
        return $this->landedCostPerLine;
    }
    /**
     * This method is responsible for validating the values passed to the setLandedCostPerLine method
     * This method is willingly generated in order to preserve the one-line inline validation within the setLandedCostPerLine method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateLandedCostPerLineForArrayConstraintsFromSetLandedCostPerLine(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicLandedCostPerLineItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicLandedCostPerLineItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicLandedCostPerLineItem) ? get_class($transactionSearchRowBasicLandedCostPerLineItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicLandedCostPerLineItem), var_export($transactionSearchRowBasicLandedCostPerLineItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The landedCostPerLine 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 landedCostPerLine value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $landedCostPerLine
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setLandedCostPerLine(array $landedCostPerLine = array())
    {
        // validation for constraint: array
        if ('' !== ($landedCostPerLineArrayErrorMessage = self::validateLandedCostPerLineForArrayConstraintsFromSetLandedCostPerLine($landedCostPerLine))) {
            throw new \InvalidArgumentException($landedCostPerLineArrayErrorMessage, __LINE__);
        }
        $this->landedCostPerLine = $landedCostPerLine;
        return $this;
    }
    /**
     * Add item to landedCostPerLine value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToLandedCostPerLine(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The landedCostPerLine 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->landedCostPerLine[] = $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 $transactionSearchRowBasicLastModifiedDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicLastModifiedDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicLastModifiedDateItem) ? get_class($transactionSearchRowBasicLastModifiedDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicLastModifiedDateItem), var_export($transactionSearchRowBasicLastModifiedDateItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 leadSource value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getLeadSource()
    {
        return $this->leadSource;
    }
    /**
     * This method is responsible for validating the values passed to the setLeadSource method
     * This method is willingly generated in order to preserve the one-line inline validation within the setLeadSource method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateLeadSourceForArrayConstraintsFromSetLeadSource(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicLeadSourceItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicLeadSourceItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicLeadSourceItem) ? get_class($transactionSearchRowBasicLeadSourceItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicLeadSourceItem), var_export($transactionSearchRowBasicLeadSourceItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The leadSource 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 leadSource value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $leadSource
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setLeadSource(array $leadSource = array())
    {
        // validation for constraint: array
        if ('' !== ($leadSourceArrayErrorMessage = self::validateLeadSourceForArrayConstraintsFromSetLeadSource($leadSource))) {
            throw new \InvalidArgumentException($leadSourceArrayErrorMessage, __LINE__);
        }
        $this->leadSource = $leadSource;
        return $this;
    }
    /**
     * Add item to leadSource value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToLeadSource(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The leadSource 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->leadSource[] = $item;
        return $this;
    }
    /**
     * Get line value
     * @return \StructType\SearchColumnLongField[]|null
     */
    public function getLine()
    {
        return $this->line;
    }
    /**
     * This method is responsible for validating the values passed to the setLine method
     * This method is willingly generated in order to preserve the one-line inline validation within the setLine method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateLineForArrayConstraintsFromSetLine(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicLineItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicLineItem instanceof \StructType\SearchColumnLongField) {
                $invalidValues[] = is_object($transactionSearchRowBasicLineItem) ? get_class($transactionSearchRowBasicLineItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicLineItem), var_export($transactionSearchRowBasicLineItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The line 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 line value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField[] $line
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setLine(array $line = array())
    {
        // validation for constraint: array
        if ('' !== ($lineArrayErrorMessage = self::validateLineForArrayConstraintsFromSetLine($line))) {
            throw new \InvalidArgumentException($lineArrayErrorMessage, __LINE__);
        }
        $this->line = $line;
        return $this;
    }
    /**
     * Add item to line value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToLine(\StructType\SearchColumnLongField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnLongField) {
            throw new \InvalidArgumentException(sprintf('The line 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->line[] = $item;
        return $this;
    }
    /**
     * Get lineSequenceNumber value
     * @return \StructType\SearchColumnLongField[]|null
     */
    public function getLineSequenceNumber()
    {
        return $this->lineSequenceNumber;
    }
    /**
     * This method is responsible for validating the values passed to the setLineSequenceNumber method
     * This method is willingly generated in order to preserve the one-line inline validation within the setLineSequenceNumber method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateLineSequenceNumberForArrayConstraintsFromSetLineSequenceNumber(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicLineSequenceNumberItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicLineSequenceNumberItem instanceof \StructType\SearchColumnLongField) {
                $invalidValues[] = is_object($transactionSearchRowBasicLineSequenceNumberItem) ? get_class($transactionSearchRowBasicLineSequenceNumberItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicLineSequenceNumberItem), var_export($transactionSearchRowBasicLineSequenceNumberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The lineSequenceNumber 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 lineSequenceNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField[] $lineSequenceNumber
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setLineSequenceNumber(array $lineSequenceNumber = array())
    {
        // validation for constraint: array
        if ('' !== ($lineSequenceNumberArrayErrorMessage = self::validateLineSequenceNumberForArrayConstraintsFromSetLineSequenceNumber($lineSequenceNumber))) {
            throw new \InvalidArgumentException($lineSequenceNumberArrayErrorMessage, __LINE__);
        }
        $this->lineSequenceNumber = $lineSequenceNumber;
        return $this;
    }
    /**
     * Add item to lineSequenceNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToLineSequenceNumber(\StructType\SearchColumnLongField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnLongField) {
            throw new \InvalidArgumentException(sprintf('The lineSequenceNumber 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->lineSequenceNumber[] = $item;
        return $this;
    }
    /**
     * Get lineUniqueKey value
     * @return \StructType\SearchColumnLongField[]|null
     */
    public function getLineUniqueKey()
    {
        return $this->lineUniqueKey;
    }
    /**
     * This method is responsible for validating the values passed to the setLineUniqueKey method
     * This method is willingly generated in order to preserve the one-line inline validation within the setLineUniqueKey method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateLineUniqueKeyForArrayConstraintsFromSetLineUniqueKey(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicLineUniqueKeyItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicLineUniqueKeyItem instanceof \StructType\SearchColumnLongField) {
                $invalidValues[] = is_object($transactionSearchRowBasicLineUniqueKeyItem) ? get_class($transactionSearchRowBasicLineUniqueKeyItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicLineUniqueKeyItem), var_export($transactionSearchRowBasicLineUniqueKeyItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The lineUniqueKey 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 lineUniqueKey value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField[] $lineUniqueKey
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setLineUniqueKey(array $lineUniqueKey = array())
    {
        // validation for constraint: array
        if ('' !== ($lineUniqueKeyArrayErrorMessage = self::validateLineUniqueKeyForArrayConstraintsFromSetLineUniqueKey($lineUniqueKey))) {
            throw new \InvalidArgumentException($lineUniqueKeyArrayErrorMessage, __LINE__);
        }
        $this->lineUniqueKey = $lineUniqueKey;
        return $this;
    }
    /**
     * Add item to lineUniqueKey value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToLineUniqueKey(\StructType\SearchColumnLongField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnLongField) {
            throw new \InvalidArgumentException(sprintf('The lineUniqueKey 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->lineUniqueKey[] = $item;
        return $this;
    }
    /**
     * Get location value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getLocation()
    {
        return $this->location;
    }
    /**
     * This method is responsible for validating the values passed to the setLocation method
     * This method is willingly generated in order to preserve the one-line inline validation within the setLocation method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateLocationForArrayConstraintsFromSetLocation(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicLocationItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicLocationItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicLocationItem) ? get_class($transactionSearchRowBasicLocationItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicLocationItem), var_export($transactionSearchRowBasicLocationItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The location 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 location value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $location
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setLocation(array $location = array())
    {
        // validation for constraint: array
        if ('' !== ($locationArrayErrorMessage = self::validateLocationForArrayConstraintsFromSetLocation($location))) {
            throw new \InvalidArgumentException($locationArrayErrorMessage, __LINE__);
        }
        $this->location = $location;
        return $this;
    }
    /**
     * Add item to location value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToLocation(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The location 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->location[] = $item;
        return $this;
    }
    /**
     * Get locationAutoAssigned value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getLocationAutoAssigned()
    {
        return $this->locationAutoAssigned;
    }
    /**
     * This method is responsible for validating the values passed to the setLocationAutoAssigned method
     * This method is willingly generated in order to preserve the one-line inline validation within the setLocationAutoAssigned method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateLocationAutoAssignedForArrayConstraintsFromSetLocationAutoAssigned(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicLocationAutoAssignedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicLocationAutoAssignedItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicLocationAutoAssignedItem) ? get_class($transactionSearchRowBasicLocationAutoAssignedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicLocationAutoAssignedItem), var_export($transactionSearchRowBasicLocationAutoAssignedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The locationAutoAssigned 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 locationAutoAssigned value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $locationAutoAssigned
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setLocationAutoAssigned(array $locationAutoAssigned = array())
    {
        // validation for constraint: array
        if ('' !== ($locationAutoAssignedArrayErrorMessage = self::validateLocationAutoAssignedForArrayConstraintsFromSetLocationAutoAssigned($locationAutoAssigned))) {
            throw new \InvalidArgumentException($locationAutoAssignedArrayErrorMessage, __LINE__);
        }
        $this->locationAutoAssigned = $locationAutoAssigned;
        return $this;
    }
    /**
     * Add item to locationAutoAssigned value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToLocationAutoAssigned(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The locationAutoAssigned 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->locationAutoAssigned[] = $item;
        return $this;
    }
    /**
     * Get mainLine value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getMainLine()
    {
        return $this->mainLine;
    }
    /**
     * This method is responsible for validating the values passed to the setMainLine method
     * This method is willingly generated in order to preserve the one-line inline validation within the setMainLine method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateMainLineForArrayConstraintsFromSetMainLine(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicMainLineItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicMainLineItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicMainLineItem) ? get_class($transactionSearchRowBasicMainLineItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicMainLineItem), var_export($transactionSearchRowBasicMainLineItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The mainLine 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 mainLine value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $mainLine
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setMainLine(array $mainLine = array())
    {
        // validation for constraint: array
        if ('' !== ($mainLineArrayErrorMessage = self::validateMainLineForArrayConstraintsFromSetMainLine($mainLine))) {
            throw new \InvalidArgumentException($mainLineArrayErrorMessage, __LINE__);
        }
        $this->mainLine = $mainLine;
        return $this;
    }
    /**
     * Add item to mainLine value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToMainLine(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The mainLine 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->mainLine[] = $item;
        return $this;
    }
    /**
     * Get mainName value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getMainName()
    {
        return $this->mainName;
    }
    /**
     * This method is responsible for validating the values passed to the setMainName method
     * This method is willingly generated in order to preserve the one-line inline validation within the setMainName method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateMainNameForArrayConstraintsFromSetMainName(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicMainNameItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicMainNameItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicMainNameItem) ? get_class($transactionSearchRowBasicMainNameItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicMainNameItem), var_export($transactionSearchRowBasicMainNameItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The mainName 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 mainName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $mainName
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setMainName(array $mainName = array())
    {
        // validation for constraint: array
        if ('' !== ($mainNameArrayErrorMessage = self::validateMainNameForArrayConstraintsFromSetMainName($mainName))) {
            throw new \InvalidArgumentException($mainNameArrayErrorMessage, __LINE__);
        }
        $this->mainName = $mainName;
        return $this;
    }
    /**
     * Add item to mainName value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToMainName(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The mainName 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->mainName[] = $item;
        return $this;
    }
    /**
     * Get manufacturingRouting value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getManufacturingRouting()
    {
        return $this->manufacturingRouting;
    }
    /**
     * This method is responsible for validating the values passed to the setManufacturingRouting method
     * This method is willingly generated in order to preserve the one-line inline validation within the setManufacturingRouting method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateManufacturingRoutingForArrayConstraintsFromSetManufacturingRouting(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicManufacturingRoutingItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicManufacturingRoutingItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicManufacturingRoutingItem) ? get_class($transactionSearchRowBasicManufacturingRoutingItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicManufacturingRoutingItem), var_export($transactionSearchRowBasicManufacturingRoutingItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The manufacturingRouting 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 manufacturingRouting value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $manufacturingRouting
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setManufacturingRouting(array $manufacturingRouting = array())
    {
        // validation for constraint: array
        if ('' !== ($manufacturingRoutingArrayErrorMessage = self::validateManufacturingRoutingForArrayConstraintsFromSetManufacturingRouting($manufacturingRouting))) {
            throw new \InvalidArgumentException($manufacturingRoutingArrayErrorMessage, __LINE__);
        }
        $this->manufacturingRouting = $manufacturingRouting;
        return $this;
    }
    /**
     * Add item to manufacturingRouting value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToManufacturingRouting(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The manufacturingRouting 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->manufacturingRouting[] = $item;
        return $this;
    }
    /**
     * Get matchBillToReceipt value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getMatchBillToReceipt()
    {
        return $this->matchBillToReceipt;
    }
    /**
     * This method is responsible for validating the values passed to the setMatchBillToReceipt method
     * This method is willingly generated in order to preserve the one-line inline validation within the setMatchBillToReceipt method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateMatchBillToReceiptForArrayConstraintsFromSetMatchBillToReceipt(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicMatchBillToReceiptItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicMatchBillToReceiptItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicMatchBillToReceiptItem) ? get_class($transactionSearchRowBasicMatchBillToReceiptItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicMatchBillToReceiptItem), var_export($transactionSearchRowBasicMatchBillToReceiptItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The matchBillToReceipt 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 matchBillToReceipt value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $matchBillToReceipt
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setMatchBillToReceipt(array $matchBillToReceipt = array())
    {
        // validation for constraint: array
        if ('' !== ($matchBillToReceiptArrayErrorMessage = self::validateMatchBillToReceiptForArrayConstraintsFromSetMatchBillToReceipt($matchBillToReceipt))) {
            throw new \InvalidArgumentException($matchBillToReceiptArrayErrorMessage, __LINE__);
        }
        $this->matchBillToReceipt = $matchBillToReceipt;
        return $this;
    }
    /**
     * Add item to matchBillToReceipt value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToMatchBillToReceipt(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The matchBillToReceipt 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->matchBillToReceipt[] = $item;
        return $this;
    }
    /**
     * Get memo value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getMemo()
    {
        return $this->memo;
    }
    /**
     * This method is responsible for validating the values passed to the setMemo method
     * This method is willingly generated in order to preserve the one-line inline validation within the setMemo method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateMemoForArrayConstraintsFromSetMemo(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicMemoItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicMemoItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicMemoItem) ? get_class($transactionSearchRowBasicMemoItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicMemoItem), var_export($transactionSearchRowBasicMemoItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The memo 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 memo value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $memo
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setMemo(array $memo = array())
    {
        // validation for constraint: array
        if ('' !== ($memoArrayErrorMessage = self::validateMemoForArrayConstraintsFromSetMemo($memo))) {
            throw new \InvalidArgumentException($memoArrayErrorMessage, __LINE__);
        }
        $this->memo = $memo;
        return $this;
    }
    /**
     * Add item to memo value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToMemo(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The memo 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->memo[] = $item;
        return $this;
    }
    /**
     * Get memoMain value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getMemoMain()
    {
        return $this->memoMain;
    }
    /**
     * This method is responsible for validating the values passed to the setMemoMain method
     * This method is willingly generated in order to preserve the one-line inline validation within the setMemoMain method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateMemoMainForArrayConstraintsFromSetMemoMain(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicMemoMainItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicMemoMainItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicMemoMainItem) ? get_class($transactionSearchRowBasicMemoMainItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicMemoMainItem), var_export($transactionSearchRowBasicMemoMainItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The memoMain 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 memoMain value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $memoMain
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setMemoMain(array $memoMain = array())
    {
        // validation for constraint: array
        if ('' !== ($memoMainArrayErrorMessage = self::validateMemoMainForArrayConstraintsFromSetMemoMain($memoMain))) {
            throw new \InvalidArgumentException($memoMainArrayErrorMessage, __LINE__);
        }
        $this->memoMain = $memoMain;
        return $this;
    }
    /**
     * Add item to memoMain value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToMemoMain(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The memoMain 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->memoMain[] = $item;
        return $this;
    }
    /**
     * Get memorized value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getMemorized()
    {
        return $this->memorized;
    }
    /**
     * This method is responsible for validating the values passed to the setMemorized method
     * This method is willingly generated in order to preserve the one-line inline validation within the setMemorized method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateMemorizedForArrayConstraintsFromSetMemorized(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicMemorizedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicMemorizedItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicMemorizedItem) ? get_class($transactionSearchRowBasicMemorizedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicMemorizedItem), var_export($transactionSearchRowBasicMemorizedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The memorized 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 memorized value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $memorized
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setMemorized(array $memorized = array())
    {
        // validation for constraint: array
        if ('' !== ($memorizedArrayErrorMessage = self::validateMemorizedForArrayConstraintsFromSetMemorized($memorized))) {
            throw new \InvalidArgumentException($memorizedArrayErrorMessage, __LINE__);
        }
        $this->memorized = $memorized;
        return $this;
    }
    /**
     * Add item to memorized value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToMemorized(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The memorized 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->memorized[] = $item;
        return $this;
    }
    /**
     * Get merchantAccount value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getMerchantAccount()
    {
        return $this->merchantAccount;
    }
    /**
     * This method is responsible for validating the values passed to the setMerchantAccount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setMerchantAccount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateMerchantAccountForArrayConstraintsFromSetMerchantAccount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicMerchantAccountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicMerchantAccountItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicMerchantAccountItem) ? get_class($transactionSearchRowBasicMerchantAccountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicMerchantAccountItem), var_export($transactionSearchRowBasicMerchantAccountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The merchantAccount 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 merchantAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $merchantAccount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setMerchantAccount(array $merchantAccount = array())
    {
        // validation for constraint: array
        if ('' !== ($merchantAccountArrayErrorMessage = self::validateMerchantAccountForArrayConstraintsFromSetMerchantAccount($merchantAccount))) {
            throw new \InvalidArgumentException($merchantAccountArrayErrorMessage, __LINE__);
        }
        $this->merchantAccount = $merchantAccount;
        return $this;
    }
    /**
     * Add item to merchantAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToMerchantAccount(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The merchantAccount 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->merchantAccount[] = $item;
        return $this;
    }
    /**
     * Get message value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getMessage()
    {
        return $this->message;
    }
    /**
     * This method is responsible for validating the values passed to the setMessage method
     * This method is willingly generated in order to preserve the one-line inline validation within the setMessage method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateMessageForArrayConstraintsFromSetMessage(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicMessageItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicMessageItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicMessageItem) ? get_class($transactionSearchRowBasicMessageItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicMessageItem), var_export($transactionSearchRowBasicMessageItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The message 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 message value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $message
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setMessage(array $message = array())
    {
        // validation for constraint: array
        if ('' !== ($messageArrayErrorMessage = self::validateMessageForArrayConstraintsFromSetMessage($message))) {
            throw new \InvalidArgumentException($messageArrayErrorMessage, __LINE__);
        }
        $this->message = $message;
        return $this;
    }
    /**
     * Add item to message value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToMessage(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The message 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->message[] = $item;
        return $this;
    }
    /**
     * Get multiSubsidiary value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getMultiSubsidiary()
    {
        return $this->multiSubsidiary;
    }
    /**
     * This method is responsible for validating the values passed to the setMultiSubsidiary method
     * This method is willingly generated in order to preserve the one-line inline validation within the setMultiSubsidiary method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateMultiSubsidiaryForArrayConstraintsFromSetMultiSubsidiary(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicMultiSubsidiaryItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicMultiSubsidiaryItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicMultiSubsidiaryItem) ? get_class($transactionSearchRowBasicMultiSubsidiaryItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicMultiSubsidiaryItem), var_export($transactionSearchRowBasicMultiSubsidiaryItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The multiSubsidiary 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 multiSubsidiary value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $multiSubsidiary
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setMultiSubsidiary(array $multiSubsidiary = array())
    {
        // validation for constraint: array
        if ('' !== ($multiSubsidiaryArrayErrorMessage = self::validateMultiSubsidiaryForArrayConstraintsFromSetMultiSubsidiary($multiSubsidiary))) {
            throw new \InvalidArgumentException($multiSubsidiaryArrayErrorMessage, __LINE__);
        }
        $this->multiSubsidiary = $multiSubsidiary;
        return $this;
    }
    /**
     * Add item to multiSubsidiary value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToMultiSubsidiary(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The multiSubsidiary 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->multiSubsidiary[] = $item;
        return $this;
    }
    /**
     * Get netAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getNetAmount()
    {
        return $this->netAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setNetAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setNetAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateNetAmountForArrayConstraintsFromSetNetAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicNetAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicNetAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicNetAmountItem) ? get_class($transactionSearchRowBasicNetAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicNetAmountItem), var_export($transactionSearchRowBasicNetAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The netAmount 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 netAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $netAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setNetAmount(array $netAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($netAmountArrayErrorMessage = self::validateNetAmountForArrayConstraintsFromSetNetAmount($netAmount))) {
            throw new \InvalidArgumentException($netAmountArrayErrorMessage, __LINE__);
        }
        $this->netAmount = $netAmount;
        return $this;
    }
    /**
     * Add item to netAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToNetAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The netAmount 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->netAmount[] = $item;
        return $this;
    }
    /**
     * Get netAmountNoTax value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getNetAmountNoTax()
    {
        return $this->netAmountNoTax;
    }
    /**
     * This method is responsible for validating the values passed to the setNetAmountNoTax method
     * This method is willingly generated in order to preserve the one-line inline validation within the setNetAmountNoTax method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateNetAmountNoTaxForArrayConstraintsFromSetNetAmountNoTax(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicNetAmountNoTaxItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicNetAmountNoTaxItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicNetAmountNoTaxItem) ? get_class($transactionSearchRowBasicNetAmountNoTaxItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicNetAmountNoTaxItem), var_export($transactionSearchRowBasicNetAmountNoTaxItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The netAmountNoTax 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 netAmountNoTax value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $netAmountNoTax
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setNetAmountNoTax(array $netAmountNoTax = array())
    {
        // validation for constraint: array
        if ('' !== ($netAmountNoTaxArrayErrorMessage = self::validateNetAmountNoTaxForArrayConstraintsFromSetNetAmountNoTax($netAmountNoTax))) {
            throw new \InvalidArgumentException($netAmountNoTaxArrayErrorMessage, __LINE__);
        }
        $this->netAmountNoTax = $netAmountNoTax;
        return $this;
    }
    /**
     * Add item to netAmountNoTax value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToNetAmountNoTax(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The netAmountNoTax 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->netAmountNoTax[] = $item;
        return $this;
    }
    /**
     * Get nextApprover value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getNextApprover()
    {
        return $this->nextApprover;
    }
    /**
     * This method is responsible for validating the values passed to the setNextApprover method
     * This method is willingly generated in order to preserve the one-line inline validation within the setNextApprover method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateNextApproverForArrayConstraintsFromSetNextApprover(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicNextApproverItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicNextApproverItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicNextApproverItem) ? get_class($transactionSearchRowBasicNextApproverItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicNextApproverItem), var_export($transactionSearchRowBasicNextApproverItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The nextApprover 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 nextApprover value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $nextApprover
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setNextApprover(array $nextApprover = array())
    {
        // validation for constraint: array
        if ('' !== ($nextApproverArrayErrorMessage = self::validateNextApproverForArrayConstraintsFromSetNextApprover($nextApprover))) {
            throw new \InvalidArgumentException($nextApproverArrayErrorMessage, __LINE__);
        }
        $this->nextApprover = $nextApprover;
        return $this;
    }
    /**
     * Add item to nextApprover value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToNextApprover(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The nextApprover 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->nextApprover[] = $item;
        return $this;
    }
    /**
     * Get nextBillDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getNextBillDate()
    {
        return $this->nextBillDate;
    }
    /**
     * This method is responsible for validating the values passed to the setNextBillDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setNextBillDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateNextBillDateForArrayConstraintsFromSetNextBillDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicNextBillDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicNextBillDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicNextBillDateItem) ? get_class($transactionSearchRowBasicNextBillDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicNextBillDateItem), var_export($transactionSearchRowBasicNextBillDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The nextBillDate 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 nextBillDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $nextBillDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setNextBillDate(array $nextBillDate = array())
    {
        // validation for constraint: array
        if ('' !== ($nextBillDateArrayErrorMessage = self::validateNextBillDateForArrayConstraintsFromSetNextBillDate($nextBillDate))) {
            throw new \InvalidArgumentException($nextBillDateArrayErrorMessage, __LINE__);
        }
        $this->nextBillDate = $nextBillDate;
        return $this;
    }
    /**
     * Add item to nextBillDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToNextBillDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The nextBillDate 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->nextBillDate[] = $item;
        return $this;
    }
    /**
     * Get nexus value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getNexus()
    {
        return $this->nexus;
    }
    /**
     * This method is responsible for validating the values passed to the setNexus method
     * This method is willingly generated in order to preserve the one-line inline validation within the setNexus method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateNexusForArrayConstraintsFromSetNexus(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicNexusItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicNexusItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicNexusItem) ? get_class($transactionSearchRowBasicNexusItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicNexusItem), var_export($transactionSearchRowBasicNexusItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The nexus 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 nexus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $nexus
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setNexus(array $nexus = array())
    {
        // validation for constraint: array
        if ('' !== ($nexusArrayErrorMessage = self::validateNexusForArrayConstraintsFromSetNexus($nexus))) {
            throw new \InvalidArgumentException($nexusArrayErrorMessage, __LINE__);
        }
        $this->nexus = $nexus;
        return $this;
    }
    /**
     * Add item to nexus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToNexus(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The nexus 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->nexus[] = $item;
        return $this;
    }
    /**
     * Get noAutoAssignLocation value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getNoAutoAssignLocation()
    {
        return $this->noAutoAssignLocation;
    }
    /**
     * This method is responsible for validating the values passed to the setNoAutoAssignLocation method
     * This method is willingly generated in order to preserve the one-line inline validation within the setNoAutoAssignLocation method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateNoAutoAssignLocationForArrayConstraintsFromSetNoAutoAssignLocation(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicNoAutoAssignLocationItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicNoAutoAssignLocationItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicNoAutoAssignLocationItem) ? get_class($transactionSearchRowBasicNoAutoAssignLocationItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicNoAutoAssignLocationItem), var_export($transactionSearchRowBasicNoAutoAssignLocationItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The noAutoAssignLocation 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 noAutoAssignLocation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $noAutoAssignLocation
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setNoAutoAssignLocation(array $noAutoAssignLocation = array())
    {
        // validation for constraint: array
        if ('' !== ($noAutoAssignLocationArrayErrorMessage = self::validateNoAutoAssignLocationForArrayConstraintsFromSetNoAutoAssignLocation($noAutoAssignLocation))) {
            throw new \InvalidArgumentException($noAutoAssignLocationArrayErrorMessage, __LINE__);
        }
        $this->noAutoAssignLocation = $noAutoAssignLocation;
        return $this;
    }
    /**
     * Add item to noAutoAssignLocation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToNoAutoAssignLocation(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The noAutoAssignLocation 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->noAutoAssignLocation[] = $item;
        return $this;
    }
    /**
     * Get nonReimbursable value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getNonReimbursable()
    {
        return $this->nonReimbursable;
    }
    /**
     * This method is responsible for validating the values passed to the setNonReimbursable method
     * This method is willingly generated in order to preserve the one-line inline validation within the setNonReimbursable method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateNonReimbursableForArrayConstraintsFromSetNonReimbursable(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicNonReimbursableItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicNonReimbursableItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicNonReimbursableItem) ? get_class($transactionSearchRowBasicNonReimbursableItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicNonReimbursableItem), var_export($transactionSearchRowBasicNonReimbursableItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The nonReimbursable 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 nonReimbursable value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $nonReimbursable
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setNonReimbursable(array $nonReimbursable = array())
    {
        // validation for constraint: array
        if ('' !== ($nonReimbursableArrayErrorMessage = self::validateNonReimbursableForArrayConstraintsFromSetNonReimbursable($nonReimbursable))) {
            throw new \InvalidArgumentException($nonReimbursableArrayErrorMessage, __LINE__);
        }
        $this->nonReimbursable = $nonReimbursable;
        return $this;
    }
    /**
     * Add item to nonReimbursable value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToNonReimbursable(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The nonReimbursable 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->nonReimbursable[] = $item;
        return $this;
    }
    /**
     * Get oneTimeTotal value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getOneTimeTotal()
    {
        return $this->oneTimeTotal;
    }
    /**
     * This method is responsible for validating the values passed to the setOneTimeTotal method
     * This method is willingly generated in order to preserve the one-line inline validation within the setOneTimeTotal method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateOneTimeTotalForArrayConstraintsFromSetOneTimeTotal(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicOneTimeTotalItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicOneTimeTotalItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicOneTimeTotalItem) ? get_class($transactionSearchRowBasicOneTimeTotalItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicOneTimeTotalItem), var_export($transactionSearchRowBasicOneTimeTotalItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The oneTimeTotal 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 oneTimeTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $oneTimeTotal
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setOneTimeTotal(array $oneTimeTotal = array())
    {
        // validation for constraint: array
        if ('' !== ($oneTimeTotalArrayErrorMessage = self::validateOneTimeTotalForArrayConstraintsFromSetOneTimeTotal($oneTimeTotal))) {
            throw new \InvalidArgumentException($oneTimeTotalArrayErrorMessage, __LINE__);
        }
        $this->oneTimeTotal = $oneTimeTotal;
        return $this;
    }
    /**
     * Add item to oneTimeTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToOneTimeTotal(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The oneTimeTotal 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->oneTimeTotal[] = $item;
        return $this;
    }
    /**
     * Get opportunity value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getOpportunity()
    {
        return $this->opportunity;
    }
    /**
     * This method is responsible for validating the values passed to the setOpportunity method
     * This method is willingly generated in order to preserve the one-line inline validation within the setOpportunity method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateOpportunityForArrayConstraintsFromSetOpportunity(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicOpportunityItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicOpportunityItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicOpportunityItem) ? get_class($transactionSearchRowBasicOpportunityItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicOpportunityItem), var_export($transactionSearchRowBasicOpportunityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The opportunity 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 opportunity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $opportunity
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setOpportunity(array $opportunity = array())
    {
        // validation for constraint: array
        if ('' !== ($opportunityArrayErrorMessage = self::validateOpportunityForArrayConstraintsFromSetOpportunity($opportunity))) {
            throw new \InvalidArgumentException($opportunityArrayErrorMessage, __LINE__);
        }
        $this->opportunity = $opportunity;
        return $this;
    }
    /**
     * Add item to opportunity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToOpportunity(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The opportunity 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->opportunity[] = $item;
        return $this;
    }
    /**
     * Get options value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getOptions()
    {
        return $this->options;
    }
    /**
     * This method is responsible for validating the values passed to the setOptions method
     * This method is willingly generated in order to preserve the one-line inline validation within the setOptions method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateOptionsForArrayConstraintsFromSetOptions(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicOptionsItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicOptionsItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicOptionsItem) ? get_class($transactionSearchRowBasicOptionsItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicOptionsItem), var_export($transactionSearchRowBasicOptionsItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The options 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 options value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $options
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setOptions(array $options = array())
    {
        // validation for constraint: array
        if ('' !== ($optionsArrayErrorMessage = self::validateOptionsForArrayConstraintsFromSetOptions($options))) {
            throw new \InvalidArgumentException($optionsArrayErrorMessage, __LINE__);
        }
        $this->options = $options;
        return $this;
    }
    /**
     * Add item to options value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToOptions(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The options 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->options[] = $item;
        return $this;
    }
    /**
     * Get orderAllocationStrategy value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getOrderAllocationStrategy()
    {
        return $this->orderAllocationStrategy;
    }
    /**
     * This method is responsible for validating the values passed to the setOrderAllocationStrategy method
     * This method is willingly generated in order to preserve the one-line inline validation within the setOrderAllocationStrategy method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateOrderAllocationStrategyForArrayConstraintsFromSetOrderAllocationStrategy(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicOrderAllocationStrategyItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicOrderAllocationStrategyItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicOrderAllocationStrategyItem) ? get_class($transactionSearchRowBasicOrderAllocationStrategyItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicOrderAllocationStrategyItem), var_export($transactionSearchRowBasicOrderAllocationStrategyItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The orderAllocationStrategy 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 orderAllocationStrategy value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $orderAllocationStrategy
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setOrderAllocationStrategy(array $orderAllocationStrategy = array())
    {
        // validation for constraint: array
        if ('' !== ($orderAllocationStrategyArrayErrorMessage = self::validateOrderAllocationStrategyForArrayConstraintsFromSetOrderAllocationStrategy($orderAllocationStrategy))) {
            throw new \InvalidArgumentException($orderAllocationStrategyArrayErrorMessage, __LINE__);
        }
        $this->orderAllocationStrategy = $orderAllocationStrategy;
        return $this;
    }
    /**
     * Add item to orderAllocationStrategy value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToOrderAllocationStrategy(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The orderAllocationStrategy 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->orderAllocationStrategy[] = $item;
        return $this;
    }
    /**
     * Get orderPriority value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getOrderPriority()
    {
        return $this->orderPriority;
    }
    /**
     * This method is responsible for validating the values passed to the setOrderPriority method
     * This method is willingly generated in order to preserve the one-line inline validation within the setOrderPriority method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateOrderPriorityForArrayConstraintsFromSetOrderPriority(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicOrderPriorityItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicOrderPriorityItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicOrderPriorityItem) ? get_class($transactionSearchRowBasicOrderPriorityItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicOrderPriorityItem), var_export($transactionSearchRowBasicOrderPriorityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The orderPriority 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 orderPriority value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $orderPriority
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setOrderPriority(array $orderPriority = array())
    {
        // validation for constraint: array
        if ('' !== ($orderPriorityArrayErrorMessage = self::validateOrderPriorityForArrayConstraintsFromSetOrderPriority($orderPriority))) {
            throw new \InvalidArgumentException($orderPriorityArrayErrorMessage, __LINE__);
        }
        $this->orderPriority = $orderPriority;
        return $this;
    }
    /**
     * Add item to orderPriority value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToOrderPriority(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The orderPriority 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->orderPriority[] = $item;
        return $this;
    }
    /**
     * Get originator value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getOriginator()
    {
        return $this->originator;
    }
    /**
     * This method is responsible for validating the values passed to the setOriginator method
     * This method is willingly generated in order to preserve the one-line inline validation within the setOriginator method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateOriginatorForArrayConstraintsFromSetOriginator(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicOriginatorItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicOriginatorItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicOriginatorItem) ? get_class($transactionSearchRowBasicOriginatorItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicOriginatorItem), var_export($transactionSearchRowBasicOriginatorItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The originator 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 originator value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $originator
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setOriginator(array $originator = array())
    {
        // validation for constraint: array
        if ('' !== ($originatorArrayErrorMessage = self::validateOriginatorForArrayConstraintsFromSetOriginator($originator))) {
            throw new \InvalidArgumentException($originatorArrayErrorMessage, __LINE__);
        }
        $this->originator = $originator;
        return $this;
    }
    /**
     * Add item to originator value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToOriginator(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The originator 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->originator[] = $item;
        return $this;
    }
    /**
     * Get otherRefNum value
     * @return \StructType\SearchColumnTextNumberField[]|null
     */
    public function getOtherRefNum()
    {
        return $this->otherRefNum;
    }
    /**
     * This method is responsible for validating the values passed to the setOtherRefNum method
     * This method is willingly generated in order to preserve the one-line inline validation within the setOtherRefNum method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateOtherRefNumForArrayConstraintsFromSetOtherRefNum(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicOtherRefNumItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicOtherRefNumItem instanceof \StructType\SearchColumnTextNumberField) {
                $invalidValues[] = is_object($transactionSearchRowBasicOtherRefNumItem) ? get_class($transactionSearchRowBasicOtherRefNumItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicOtherRefNumItem), var_export($transactionSearchRowBasicOtherRefNumItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The otherRefNum property can only contain items of type \StructType\SearchColumnTextNumberField, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
        }
        unset($invalidValues);
        return $message;
    }
    /**
     * Set otherRefNum value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnTextNumberField[] $otherRefNum
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setOtherRefNum(array $otherRefNum = array())
    {
        // validation for constraint: array
        if ('' !== ($otherRefNumArrayErrorMessage = self::validateOtherRefNumForArrayConstraintsFromSetOtherRefNum($otherRefNum))) {
            throw new \InvalidArgumentException($otherRefNumArrayErrorMessage, __LINE__);
        }
        $this->otherRefNum = $otherRefNum;
        return $this;
    }
    /**
     * Add item to otherRefNum value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnTextNumberField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToOtherRefNum(\StructType\SearchColumnTextNumberField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnTextNumberField) {
            throw new \InvalidArgumentException(sprintf('The otherRefNum property can only contain items of type \StructType\SearchColumnTextNumberField, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
        }
        $this->otherRefNum[] = $item;
        return $this;
    }
    /**
     * Get overheadParentItem value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getOverheadParentItem()
    {
        return $this->overheadParentItem;
    }
    /**
     * This method is responsible for validating the values passed to the setOverheadParentItem method
     * This method is willingly generated in order to preserve the one-line inline validation within the setOverheadParentItem method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateOverheadParentItemForArrayConstraintsFromSetOverheadParentItem(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicOverheadParentItemItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicOverheadParentItemItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicOverheadParentItemItem) ? get_class($transactionSearchRowBasicOverheadParentItemItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicOverheadParentItemItem), var_export($transactionSearchRowBasicOverheadParentItemItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The overheadParentItem 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 overheadParentItem value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $overheadParentItem
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setOverheadParentItem(array $overheadParentItem = array())
    {
        // validation for constraint: array
        if ('' !== ($overheadParentItemArrayErrorMessage = self::validateOverheadParentItemForArrayConstraintsFromSetOverheadParentItem($overheadParentItem))) {
            throw new \InvalidArgumentException($overheadParentItemArrayErrorMessage, __LINE__);
        }
        $this->overheadParentItem = $overheadParentItem;
        return $this;
    }
    /**
     * Add item to overheadParentItem value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToOverheadParentItem(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The overheadParentItem 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->overheadParentItem[] = $item;
        return $this;
    }
    /**
     * Get overrideInstallments value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getOverrideInstallments()
    {
        return $this->overrideInstallments;
    }
    /**
     * This method is responsible for validating the values passed to the setOverrideInstallments method
     * This method is willingly generated in order to preserve the one-line inline validation within the setOverrideInstallments method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateOverrideInstallmentsForArrayConstraintsFromSetOverrideInstallments(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicOverrideInstallmentsItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicOverrideInstallmentsItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicOverrideInstallmentsItem) ? get_class($transactionSearchRowBasicOverrideInstallmentsItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicOverrideInstallmentsItem), var_export($transactionSearchRowBasicOverrideInstallmentsItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The overrideInstallments 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 overrideInstallments value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $overrideInstallments
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setOverrideInstallments(array $overrideInstallments = array())
    {
        // validation for constraint: array
        if ('' !== ($overrideInstallmentsArrayErrorMessage = self::validateOverrideInstallmentsForArrayConstraintsFromSetOverrideInstallments($overrideInstallments))) {
            throw new \InvalidArgumentException($overrideInstallmentsArrayErrorMessage, __LINE__);
        }
        $this->overrideInstallments = $overrideInstallments;
        return $this;
    }
    /**
     * Add item to overrideInstallments value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToOverrideInstallments(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The overrideInstallments 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->overrideInstallments[] = $item;
        return $this;
    }
    /**
     * Get packageCount value
     * @return \StructType\SearchColumnLongField[]|null
     */
    public function getPackageCount()
    {
        return $this->packageCount;
    }
    /**
     * This method is responsible for validating the values passed to the setPackageCount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPackageCount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePackageCountForArrayConstraintsFromSetPackageCount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPackageCountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPackageCountItem instanceof \StructType\SearchColumnLongField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPackageCountItem) ? get_class($transactionSearchRowBasicPackageCountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPackageCountItem), var_export($transactionSearchRowBasicPackageCountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The packageCount 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 packageCount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField[] $packageCount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPackageCount(array $packageCount = array())
    {
        // validation for constraint: array
        if ('' !== ($packageCountArrayErrorMessage = self::validatePackageCountForArrayConstraintsFromSetPackageCount($packageCount))) {
            throw new \InvalidArgumentException($packageCountArrayErrorMessage, __LINE__);
        }
        $this->packageCount = $packageCount;
        return $this;
    }
    /**
     * Add item to packageCount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPackageCount(\StructType\SearchColumnLongField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnLongField) {
            throw new \InvalidArgumentException(sprintf('The packageCount 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->packageCount[] = $item;
        return $this;
    }
    /**
     * Get paidAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getPaidAmount()
    {
        return $this->paidAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setPaidAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPaidAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePaidAmountForArrayConstraintsFromSetPaidAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPaidAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPaidAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPaidAmountItem) ? get_class($transactionSearchRowBasicPaidAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPaidAmountItem), var_export($transactionSearchRowBasicPaidAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The paidAmount 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 paidAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $paidAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPaidAmount(array $paidAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($paidAmountArrayErrorMessage = self::validatePaidAmountForArrayConstraintsFromSetPaidAmount($paidAmount))) {
            throw new \InvalidArgumentException($paidAmountArrayErrorMessage, __LINE__);
        }
        $this->paidAmount = $paidAmount;
        return $this;
    }
    /**
     * Add item to paidAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPaidAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The paidAmount 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->paidAmount[] = $item;
        return $this;
    }
    /**
     * Get paidTransaction value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getPaidTransaction()
    {
        return $this->paidTransaction;
    }
    /**
     * This method is responsible for validating the values passed to the setPaidTransaction method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPaidTransaction method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePaidTransactionForArrayConstraintsFromSetPaidTransaction(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPaidTransactionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPaidTransactionItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPaidTransactionItem) ? get_class($transactionSearchRowBasicPaidTransactionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPaidTransactionItem), var_export($transactionSearchRowBasicPaidTransactionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The paidTransaction 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 paidTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $paidTransaction
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPaidTransaction(array $paidTransaction = array())
    {
        // validation for constraint: array
        if ('' !== ($paidTransactionArrayErrorMessage = self::validatePaidTransactionForArrayConstraintsFromSetPaidTransaction($paidTransaction))) {
            throw new \InvalidArgumentException($paidTransactionArrayErrorMessage, __LINE__);
        }
        $this->paidTransaction = $paidTransaction;
        return $this;
    }
    /**
     * Add item to paidTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPaidTransaction(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The paidTransaction 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->paidTransaction[] = $item;
        return $this;
    }
    /**
     * Get partner value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getPartner()
    {
        return $this->partner;
    }
    /**
     * This method is responsible for validating the values passed to the setPartner method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPartner method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePartnerForArrayConstraintsFromSetPartner(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPartnerItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPartnerItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPartnerItem) ? get_class($transactionSearchRowBasicPartnerItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPartnerItem), var_export($transactionSearchRowBasicPartnerItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The partner 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 partner value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $partner
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPartner(array $partner = array())
    {
        // validation for constraint: array
        if ('' !== ($partnerArrayErrorMessage = self::validatePartnerForArrayConstraintsFromSetPartner($partner))) {
            throw new \InvalidArgumentException($partnerArrayErrorMessage, __LINE__);
        }
        $this->partner = $partner;
        return $this;
    }
    /**
     * Add item to partner value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPartner(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The partner 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->partner[] = $item;
        return $this;
    }
    /**
     * Get partnerContribution value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getPartnerContribution()
    {
        return $this->partnerContribution;
    }
    /**
     * This method is responsible for validating the values passed to the setPartnerContribution method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPartnerContribution method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePartnerContributionForArrayConstraintsFromSetPartnerContribution(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPartnerContributionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPartnerContributionItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPartnerContributionItem) ? get_class($transactionSearchRowBasicPartnerContributionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPartnerContributionItem), var_export($transactionSearchRowBasicPartnerContributionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The partnerContribution 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 partnerContribution value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $partnerContribution
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPartnerContribution(array $partnerContribution = array())
    {
        // validation for constraint: array
        if ('' !== ($partnerContributionArrayErrorMessage = self::validatePartnerContributionForArrayConstraintsFromSetPartnerContribution($partnerContribution))) {
            throw new \InvalidArgumentException($partnerContributionArrayErrorMessage, __LINE__);
        }
        $this->partnerContribution = $partnerContribution;
        return $this;
    }
    /**
     * Add item to partnerContribution value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPartnerContribution(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The partnerContribution 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->partnerContribution[] = $item;
        return $this;
    }
    /**
     * Get partnerRole value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getPartnerRole()
    {
        return $this->partnerRole;
    }
    /**
     * This method is responsible for validating the values passed to the setPartnerRole method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPartnerRole method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePartnerRoleForArrayConstraintsFromSetPartnerRole(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPartnerRoleItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPartnerRoleItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPartnerRoleItem) ? get_class($transactionSearchRowBasicPartnerRoleItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPartnerRoleItem), var_export($transactionSearchRowBasicPartnerRoleItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The partnerRole 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 partnerRole value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $partnerRole
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPartnerRole(array $partnerRole = array())
    {
        // validation for constraint: array
        if ('' !== ($partnerRoleArrayErrorMessage = self::validatePartnerRoleForArrayConstraintsFromSetPartnerRole($partnerRole))) {
            throw new \InvalidArgumentException($partnerRoleArrayErrorMessage, __LINE__);
        }
        $this->partnerRole = $partnerRole;
        return $this;
    }
    /**
     * Add item to partnerRole value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPartnerRole(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The partnerRole 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->partnerRole[] = $item;
        return $this;
    }
    /**
     * Get partnerTeamMember value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getPartnerTeamMember()
    {
        return $this->partnerTeamMember;
    }
    /**
     * This method is responsible for validating the values passed to the setPartnerTeamMember method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPartnerTeamMember method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePartnerTeamMemberForArrayConstraintsFromSetPartnerTeamMember(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPartnerTeamMemberItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPartnerTeamMemberItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPartnerTeamMemberItem) ? get_class($transactionSearchRowBasicPartnerTeamMemberItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPartnerTeamMemberItem), var_export($transactionSearchRowBasicPartnerTeamMemberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The partnerTeamMember 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 partnerTeamMember value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $partnerTeamMember
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPartnerTeamMember(array $partnerTeamMember = array())
    {
        // validation for constraint: array
        if ('' !== ($partnerTeamMemberArrayErrorMessage = self::validatePartnerTeamMemberForArrayConstraintsFromSetPartnerTeamMember($partnerTeamMember))) {
            throw new \InvalidArgumentException($partnerTeamMemberArrayErrorMessage, __LINE__);
        }
        $this->partnerTeamMember = $partnerTeamMember;
        return $this;
    }
    /**
     * Add item to partnerTeamMember value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPartnerTeamMember(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The partnerTeamMember 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->partnerTeamMember[] = $item;
        return $this;
    }
    /**
     * Get payingAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getPayingAmount()
    {
        return $this->payingAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setPayingAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPayingAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePayingAmountForArrayConstraintsFromSetPayingAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPayingAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPayingAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPayingAmountItem) ? get_class($transactionSearchRowBasicPayingAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPayingAmountItem), var_export($transactionSearchRowBasicPayingAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The payingAmount 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 payingAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $payingAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPayingAmount(array $payingAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($payingAmountArrayErrorMessage = self::validatePayingAmountForArrayConstraintsFromSetPayingAmount($payingAmount))) {
            throw new \InvalidArgumentException($payingAmountArrayErrorMessage, __LINE__);
        }
        $this->payingAmount = $payingAmount;
        return $this;
    }
    /**
     * Add item to payingAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPayingAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The payingAmount 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->payingAmount[] = $item;
        return $this;
    }
    /**
     * Get payingTransaction value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getPayingTransaction()
    {
        return $this->payingTransaction;
    }
    /**
     * This method is responsible for validating the values passed to the setPayingTransaction method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPayingTransaction method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePayingTransactionForArrayConstraintsFromSetPayingTransaction(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPayingTransactionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPayingTransactionItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPayingTransactionItem) ? get_class($transactionSearchRowBasicPayingTransactionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPayingTransactionItem), var_export($transactionSearchRowBasicPayingTransactionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The payingTransaction 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 payingTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $payingTransaction
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPayingTransaction(array $payingTransaction = array())
    {
        // validation for constraint: array
        if ('' !== ($payingTransactionArrayErrorMessage = self::validatePayingTransactionForArrayConstraintsFromSetPayingTransaction($payingTransaction))) {
            throw new \InvalidArgumentException($payingTransactionArrayErrorMessage, __LINE__);
        }
        $this->payingTransaction = $payingTransaction;
        return $this;
    }
    /**
     * Add item to payingTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPayingTransaction(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The payingTransaction 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->payingTransaction[] = $item;
        return $this;
    }
    /**
     * Get paymentApproved value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getPaymentApproved()
    {
        return $this->paymentApproved;
    }
    /**
     * This method is responsible for validating the values passed to the setPaymentApproved method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPaymentApproved method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePaymentApprovedForArrayConstraintsFromSetPaymentApproved(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPaymentApprovedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPaymentApprovedItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPaymentApprovedItem) ? get_class($transactionSearchRowBasicPaymentApprovedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPaymentApprovedItem), var_export($transactionSearchRowBasicPaymentApprovedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The paymentApproved 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 paymentApproved value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $paymentApproved
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPaymentApproved(array $paymentApproved = array())
    {
        // validation for constraint: array
        if ('' !== ($paymentApprovedArrayErrorMessage = self::validatePaymentApprovedForArrayConstraintsFromSetPaymentApproved($paymentApproved))) {
            throw new \InvalidArgumentException($paymentApprovedArrayErrorMessage, __LINE__);
        }
        $this->paymentApproved = $paymentApproved;
        return $this;
    }
    /**
     * Add item to paymentApproved value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPaymentApproved(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The paymentApproved 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->paymentApproved[] = $item;
        return $this;
    }
    /**
     * Get paymentEventDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getPaymentEventDate()
    {
        return $this->paymentEventDate;
    }
    /**
     * This method is responsible for validating the values passed to the setPaymentEventDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPaymentEventDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePaymentEventDateForArrayConstraintsFromSetPaymentEventDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPaymentEventDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPaymentEventDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPaymentEventDateItem) ? get_class($transactionSearchRowBasicPaymentEventDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPaymentEventDateItem), var_export($transactionSearchRowBasicPaymentEventDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The paymentEventDate 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 paymentEventDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $paymentEventDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPaymentEventDate(array $paymentEventDate = array())
    {
        // validation for constraint: array
        if ('' !== ($paymentEventDateArrayErrorMessage = self::validatePaymentEventDateForArrayConstraintsFromSetPaymentEventDate($paymentEventDate))) {
            throw new \InvalidArgumentException($paymentEventDateArrayErrorMessage, __LINE__);
        }
        $this->paymentEventDate = $paymentEventDate;
        return $this;
    }
    /**
     * Add item to paymentEventDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPaymentEventDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The paymentEventDate 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->paymentEventDate[] = $item;
        return $this;
    }
    /**
     * Get paymentEventHoldReason value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getPaymentEventHoldReason()
    {
        return $this->paymentEventHoldReason;
    }
    /**
     * This method is responsible for validating the values passed to the setPaymentEventHoldReason method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPaymentEventHoldReason method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePaymentEventHoldReasonForArrayConstraintsFromSetPaymentEventHoldReason(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPaymentEventHoldReasonItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPaymentEventHoldReasonItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPaymentEventHoldReasonItem) ? get_class($transactionSearchRowBasicPaymentEventHoldReasonItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPaymentEventHoldReasonItem), var_export($transactionSearchRowBasicPaymentEventHoldReasonItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The paymentEventHoldReason 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 paymentEventHoldReason value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $paymentEventHoldReason
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPaymentEventHoldReason(array $paymentEventHoldReason = array())
    {
        // validation for constraint: array
        if ('' !== ($paymentEventHoldReasonArrayErrorMessage = self::validatePaymentEventHoldReasonForArrayConstraintsFromSetPaymentEventHoldReason($paymentEventHoldReason))) {
            throw new \InvalidArgumentException($paymentEventHoldReasonArrayErrorMessage, __LINE__);
        }
        $this->paymentEventHoldReason = $paymentEventHoldReason;
        return $this;
    }
    /**
     * Add item to paymentEventHoldReason value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPaymentEventHoldReason(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The paymentEventHoldReason 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->paymentEventHoldReason[] = $item;
        return $this;
    }
    /**
     * Get paymentEventPurchaseCardUsed value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getPaymentEventPurchaseCardUsed()
    {
        return $this->paymentEventPurchaseCardUsed;
    }
    /**
     * This method is responsible for validating the values passed to the setPaymentEventPurchaseCardUsed method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPaymentEventPurchaseCardUsed method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePaymentEventPurchaseCardUsedForArrayConstraintsFromSetPaymentEventPurchaseCardUsed(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPaymentEventPurchaseCardUsedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPaymentEventPurchaseCardUsedItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPaymentEventPurchaseCardUsedItem) ? get_class($transactionSearchRowBasicPaymentEventPurchaseCardUsedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPaymentEventPurchaseCardUsedItem), var_export($transactionSearchRowBasicPaymentEventPurchaseCardUsedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The paymentEventPurchaseCardUsed 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 paymentEventPurchaseCardUsed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $paymentEventPurchaseCardUsed
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPaymentEventPurchaseCardUsed(array $paymentEventPurchaseCardUsed = array())
    {
        // validation for constraint: array
        if ('' !== ($paymentEventPurchaseCardUsedArrayErrorMessage = self::validatePaymentEventPurchaseCardUsedForArrayConstraintsFromSetPaymentEventPurchaseCardUsed($paymentEventPurchaseCardUsed))) {
            throw new \InvalidArgumentException($paymentEventPurchaseCardUsedArrayErrorMessage, __LINE__);
        }
        $this->paymentEventPurchaseCardUsed = $paymentEventPurchaseCardUsed;
        return $this;
    }
    /**
     * Add item to paymentEventPurchaseCardUsed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPaymentEventPurchaseCardUsed(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The paymentEventPurchaseCardUsed 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->paymentEventPurchaseCardUsed[] = $item;
        return $this;
    }
    /**
     * Get paymentEventPurchaseDataSent value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getPaymentEventPurchaseDataSent()
    {
        return $this->paymentEventPurchaseDataSent;
    }
    /**
     * This method is responsible for validating the values passed to the setPaymentEventPurchaseDataSent method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPaymentEventPurchaseDataSent method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePaymentEventPurchaseDataSentForArrayConstraintsFromSetPaymentEventPurchaseDataSent(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPaymentEventPurchaseDataSentItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPaymentEventPurchaseDataSentItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPaymentEventPurchaseDataSentItem) ? get_class($transactionSearchRowBasicPaymentEventPurchaseDataSentItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPaymentEventPurchaseDataSentItem), var_export($transactionSearchRowBasicPaymentEventPurchaseDataSentItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The paymentEventPurchaseDataSent 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 paymentEventPurchaseDataSent value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $paymentEventPurchaseDataSent
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPaymentEventPurchaseDataSent(array $paymentEventPurchaseDataSent = array())
    {
        // validation for constraint: array
        if ('' !== ($paymentEventPurchaseDataSentArrayErrorMessage = self::validatePaymentEventPurchaseDataSentForArrayConstraintsFromSetPaymentEventPurchaseDataSent($paymentEventPurchaseDataSent))) {
            throw new \InvalidArgumentException($paymentEventPurchaseDataSentArrayErrorMessage, __LINE__);
        }
        $this->paymentEventPurchaseDataSent = $paymentEventPurchaseDataSent;
        return $this;
    }
    /**
     * Add item to paymentEventPurchaseDataSent value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPaymentEventPurchaseDataSent(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The paymentEventPurchaseDataSent 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->paymentEventPurchaseDataSent[] = $item;
        return $this;
    }
    /**
     * Get paymentEventResult value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getPaymentEventResult()
    {
        return $this->paymentEventResult;
    }
    /**
     * This method is responsible for validating the values passed to the setPaymentEventResult method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPaymentEventResult method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePaymentEventResultForArrayConstraintsFromSetPaymentEventResult(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPaymentEventResultItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPaymentEventResultItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPaymentEventResultItem) ? get_class($transactionSearchRowBasicPaymentEventResultItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPaymentEventResultItem), var_export($transactionSearchRowBasicPaymentEventResultItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The paymentEventResult 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 paymentEventResult value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $paymentEventResult
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPaymentEventResult(array $paymentEventResult = array())
    {
        // validation for constraint: array
        if ('' !== ($paymentEventResultArrayErrorMessage = self::validatePaymentEventResultForArrayConstraintsFromSetPaymentEventResult($paymentEventResult))) {
            throw new \InvalidArgumentException($paymentEventResultArrayErrorMessage, __LINE__);
        }
        $this->paymentEventResult = $paymentEventResult;
        return $this;
    }
    /**
     * Add item to paymentEventResult value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPaymentEventResult(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The paymentEventResult 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->paymentEventResult[] = $item;
        return $this;
    }
    /**
     * Get paymentEventType value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getPaymentEventType()
    {
        return $this->paymentEventType;
    }
    /**
     * This method is responsible for validating the values passed to the setPaymentEventType method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPaymentEventType method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePaymentEventTypeForArrayConstraintsFromSetPaymentEventType(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPaymentEventTypeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPaymentEventTypeItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPaymentEventTypeItem) ? get_class($transactionSearchRowBasicPaymentEventTypeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPaymentEventTypeItem), var_export($transactionSearchRowBasicPaymentEventTypeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The paymentEventType 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 paymentEventType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $paymentEventType
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPaymentEventType(array $paymentEventType = array())
    {
        // validation for constraint: array
        if ('' !== ($paymentEventTypeArrayErrorMessage = self::validatePaymentEventTypeForArrayConstraintsFromSetPaymentEventType($paymentEventType))) {
            throw new \InvalidArgumentException($paymentEventTypeArrayErrorMessage, __LINE__);
        }
        $this->paymentEventType = $paymentEventType;
        return $this;
    }
    /**
     * Add item to paymentEventType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPaymentEventType(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The paymentEventType 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->paymentEventType[] = $item;
        return $this;
    }
    /**
     * Get paymentHold value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getPaymentHold()
    {
        return $this->paymentHold;
    }
    /**
     * This method is responsible for validating the values passed to the setPaymentHold method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPaymentHold method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePaymentHoldForArrayConstraintsFromSetPaymentHold(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPaymentHoldItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPaymentHoldItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPaymentHoldItem) ? get_class($transactionSearchRowBasicPaymentHoldItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPaymentHoldItem), var_export($transactionSearchRowBasicPaymentHoldItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The paymentHold 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 paymentHold value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $paymentHold
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPaymentHold(array $paymentHold = array())
    {
        // validation for constraint: array
        if ('' !== ($paymentHoldArrayErrorMessage = self::validatePaymentHoldForArrayConstraintsFromSetPaymentHold($paymentHold))) {
            throw new \InvalidArgumentException($paymentHoldArrayErrorMessage, __LINE__);
        }
        $this->paymentHold = $paymentHold;
        return $this;
    }
    /**
     * Add item to paymentHold value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPaymentHold(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The paymentHold 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->paymentHold[] = $item;
        return $this;
    }
    /**
     * Get paymentMethod value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getPaymentMethod()
    {
        return $this->paymentMethod;
    }
    /**
     * This method is responsible for validating the values passed to the setPaymentMethod method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPaymentMethod method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePaymentMethodForArrayConstraintsFromSetPaymentMethod(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPaymentMethodItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPaymentMethodItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPaymentMethodItem) ? get_class($transactionSearchRowBasicPaymentMethodItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPaymentMethodItem), var_export($transactionSearchRowBasicPaymentMethodItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The paymentMethod 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 paymentMethod value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $paymentMethod
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPaymentMethod(array $paymentMethod = array())
    {
        // validation for constraint: array
        if ('' !== ($paymentMethodArrayErrorMessage = self::validatePaymentMethodForArrayConstraintsFromSetPaymentMethod($paymentMethod))) {
            throw new \InvalidArgumentException($paymentMethodArrayErrorMessage, __LINE__);
        }
        $this->paymentMethod = $paymentMethod;
        return $this;
    }
    /**
     * Add item to paymentMethod value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPaymentMethod(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The paymentMethod 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->paymentMethod[] = $item;
        return $this;
    }
    /**
     * Get paymentOption value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getPaymentOption()
    {
        return $this->paymentOption;
    }
    /**
     * This method is responsible for validating the values passed to the setPaymentOption method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPaymentOption method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePaymentOptionForArrayConstraintsFromSetPaymentOption(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPaymentOptionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPaymentOptionItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPaymentOptionItem) ? get_class($transactionSearchRowBasicPaymentOptionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPaymentOptionItem), var_export($transactionSearchRowBasicPaymentOptionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The paymentOption 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 paymentOption value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $paymentOption
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPaymentOption(array $paymentOption = array())
    {
        // validation for constraint: array
        if ('' !== ($paymentOptionArrayErrorMessage = self::validatePaymentOptionForArrayConstraintsFromSetPaymentOption($paymentOption))) {
            throw new \InvalidArgumentException($paymentOptionArrayErrorMessage, __LINE__);
        }
        $this->paymentOption = $paymentOption;
        return $this;
    }
    /**
     * Add item to paymentOption value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPaymentOption(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The paymentOption 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->paymentOption[] = $item;
        return $this;
    }
    /**
     * Get payPalPending value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getPayPalPending()
    {
        return $this->payPalPending;
    }
    /**
     * This method is responsible for validating the values passed to the setPayPalPending method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPayPalPending method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePayPalPendingForArrayConstraintsFromSetPayPalPending(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPayPalPendingItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPayPalPendingItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPayPalPendingItem) ? get_class($transactionSearchRowBasicPayPalPendingItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPayPalPendingItem), var_export($transactionSearchRowBasicPayPalPendingItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The payPalPending 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 payPalPending value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $payPalPending
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPayPalPending(array $payPalPending = array())
    {
        // validation for constraint: array
        if ('' !== ($payPalPendingArrayErrorMessage = self::validatePayPalPendingForArrayConstraintsFromSetPayPalPending($payPalPending))) {
            throw new \InvalidArgumentException($payPalPendingArrayErrorMessage, __LINE__);
        }
        $this->payPalPending = $payPalPending;
        return $this;
    }
    /**
     * Add item to payPalPending value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPayPalPending(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The payPalPending 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->payPalPending[] = $item;
        return $this;
    }
    /**
     * Get payPalStatus value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getPayPalStatus()
    {
        return $this->payPalStatus;
    }
    /**
     * This method is responsible for validating the values passed to the setPayPalStatus method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPayPalStatus method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePayPalStatusForArrayConstraintsFromSetPayPalStatus(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPayPalStatusItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPayPalStatusItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPayPalStatusItem) ? get_class($transactionSearchRowBasicPayPalStatusItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPayPalStatusItem), var_export($transactionSearchRowBasicPayPalStatusItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The payPalStatus 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 payPalStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $payPalStatus
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPayPalStatus(array $payPalStatus = array())
    {
        // validation for constraint: array
        if ('' !== ($payPalStatusArrayErrorMessage = self::validatePayPalStatusForArrayConstraintsFromSetPayPalStatus($payPalStatus))) {
            throw new \InvalidArgumentException($payPalStatusArrayErrorMessage, __LINE__);
        }
        $this->payPalStatus = $payPalStatus;
        return $this;
    }
    /**
     * Add item to payPalStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPayPalStatus(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The payPalStatus 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->payPalStatus[] = $item;
        return $this;
    }
    /**
     * Get payPalTranId value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getPayPalTranId()
    {
        return $this->payPalTranId;
    }
    /**
     * This method is responsible for validating the values passed to the setPayPalTranId method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPayPalTranId method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePayPalTranIdForArrayConstraintsFromSetPayPalTranId(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPayPalTranIdItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPayPalTranIdItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPayPalTranIdItem) ? get_class($transactionSearchRowBasicPayPalTranIdItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPayPalTranIdItem), var_export($transactionSearchRowBasicPayPalTranIdItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The payPalTranId 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 payPalTranId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $payPalTranId
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPayPalTranId(array $payPalTranId = array())
    {
        // validation for constraint: array
        if ('' !== ($payPalTranIdArrayErrorMessage = self::validatePayPalTranIdForArrayConstraintsFromSetPayPalTranId($payPalTranId))) {
            throw new \InvalidArgumentException($payPalTranIdArrayErrorMessage, __LINE__);
        }
        $this->payPalTranId = $payPalTranId;
        return $this;
    }
    /**
     * Add item to payPalTranId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPayPalTranId(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The payPalTranId 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->payPalTranId[] = $item;
        return $this;
    }
    /**
     * Get payrollBatch value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getPayrollBatch()
    {
        return $this->payrollBatch;
    }
    /**
     * This method is responsible for validating the values passed to the setPayrollBatch method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPayrollBatch method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePayrollBatchForArrayConstraintsFromSetPayrollBatch(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPayrollBatchItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPayrollBatchItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPayrollBatchItem) ? get_class($transactionSearchRowBasicPayrollBatchItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPayrollBatchItem), var_export($transactionSearchRowBasicPayrollBatchItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The payrollBatch 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 payrollBatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $payrollBatch
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPayrollBatch(array $payrollBatch = array())
    {
        // validation for constraint: array
        if ('' !== ($payrollBatchArrayErrorMessage = self::validatePayrollBatchForArrayConstraintsFromSetPayrollBatch($payrollBatch))) {
            throw new \InvalidArgumentException($payrollBatchArrayErrorMessage, __LINE__);
        }
        $this->payrollBatch = $payrollBatch;
        return $this;
    }
    /**
     * Add item to payrollBatch value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPayrollBatch(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The payrollBatch 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->payrollBatch[] = $item;
        return $this;
    }
    /**
     * Get pnRefNum value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getPnRefNum()
    {
        return $this->pnRefNum;
    }
    /**
     * This method is responsible for validating the values passed to the setPnRefNum method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPnRefNum method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePnRefNumForArrayConstraintsFromSetPnRefNum(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPnRefNumItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPnRefNumItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPnRefNumItem) ? get_class($transactionSearchRowBasicPnRefNumItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPnRefNumItem), var_export($transactionSearchRowBasicPnRefNumItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The pnRefNum 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 pnRefNum value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $pnRefNum
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPnRefNum(array $pnRefNum = array())
    {
        // validation for constraint: array
        if ('' !== ($pnRefNumArrayErrorMessage = self::validatePnRefNumForArrayConstraintsFromSetPnRefNum($pnRefNum))) {
            throw new \InvalidArgumentException($pnRefNumArrayErrorMessage, __LINE__);
        }
        $this->pnRefNum = $pnRefNum;
        return $this;
    }
    /**
     * Add item to pnRefNum value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPnRefNum(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The pnRefNum 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->pnRefNum[] = $item;
        return $this;
    }
    /**
     * Get poRate value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getPoRate()
    {
        return $this->poRate;
    }
    /**
     * This method is responsible for validating the values passed to the setPoRate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPoRate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePoRateForArrayConstraintsFromSetPoRate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPoRateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPoRateItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPoRateItem) ? get_class($transactionSearchRowBasicPoRateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPoRateItem), var_export($transactionSearchRowBasicPoRateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The poRate 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 poRate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $poRate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPoRate(array $poRate = array())
    {
        // validation for constraint: array
        if ('' !== ($poRateArrayErrorMessage = self::validatePoRateForArrayConstraintsFromSetPoRate($poRate))) {
            throw new \InvalidArgumentException($poRateArrayErrorMessage, __LINE__);
        }
        $this->poRate = $poRate;
        return $this;
    }
    /**
     * Add item to poRate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPoRate(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The poRate 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->poRate[] = $item;
        return $this;
    }
    /**
     * Get posting value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getPosting()
    {
        return $this->posting;
    }
    /**
     * This method is responsible for validating the values passed to the setPosting method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPosting method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePostingForArrayConstraintsFromSetPosting(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPostingItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPostingItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPostingItem) ? get_class($transactionSearchRowBasicPostingItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPostingItem), var_export($transactionSearchRowBasicPostingItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The posting 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 posting value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $posting
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPosting(array $posting = array())
    {
        // validation for constraint: array
        if ('' !== ($postingArrayErrorMessage = self::validatePostingForArrayConstraintsFromSetPosting($posting))) {
            throw new \InvalidArgumentException($postingArrayErrorMessage, __LINE__);
        }
        $this->posting = $posting;
        return $this;
    }
    /**
     * Add item to posting value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPosting(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The posting 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->posting[] = $item;
        return $this;
    }
    /**
     * Get postingPeriod value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getPostingPeriod()
    {
        return $this->postingPeriod;
    }
    /**
     * This method is responsible for validating the values passed to the setPostingPeriod method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPostingPeriod method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePostingPeriodForArrayConstraintsFromSetPostingPeriod(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPostingPeriodItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPostingPeriodItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPostingPeriodItem) ? get_class($transactionSearchRowBasicPostingPeriodItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPostingPeriodItem), var_export($transactionSearchRowBasicPostingPeriodItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The postingPeriod 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 postingPeriod value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $postingPeriod
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPostingPeriod(array $postingPeriod = array())
    {
        // validation for constraint: array
        if ('' !== ($postingPeriodArrayErrorMessage = self::validatePostingPeriodForArrayConstraintsFromSetPostingPeriod($postingPeriod))) {
            throw new \InvalidArgumentException($postingPeriodArrayErrorMessage, __LINE__);
        }
        $this->postingPeriod = $postingPeriod;
        return $this;
    }
    /**
     * Add item to postingPeriod value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPostingPeriod(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The postingPeriod 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->postingPeriod[] = $item;
        return $this;
    }
    /**
     * Get priceLevel value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getPriceLevel()
    {
        return $this->priceLevel;
    }
    /**
     * This method is responsible for validating the values passed to the setPriceLevel method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPriceLevel method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePriceLevelForArrayConstraintsFromSetPriceLevel(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPriceLevelItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPriceLevelItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPriceLevelItem) ? get_class($transactionSearchRowBasicPriceLevelItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPriceLevelItem), var_export($transactionSearchRowBasicPriceLevelItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The priceLevel 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 priceLevel value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $priceLevel
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPriceLevel(array $priceLevel = array())
    {
        // validation for constraint: array
        if ('' !== ($priceLevelArrayErrorMessage = self::validatePriceLevelForArrayConstraintsFromSetPriceLevel($priceLevel))) {
            throw new \InvalidArgumentException($priceLevelArrayErrorMessage, __LINE__);
        }
        $this->priceLevel = $priceLevel;
        return $this;
    }
    /**
     * Add item to priceLevel value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPriceLevel(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The priceLevel 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->priceLevel[] = $item;
        return $this;
    }
    /**
     * Get print value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getPrint()
    {
        return $this->print;
    }
    /**
     * This method is responsible for validating the values passed to the setPrint method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPrint method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePrintForArrayConstraintsFromSetPrint(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPrintItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPrintItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPrintItem) ? get_class($transactionSearchRowBasicPrintItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPrintItem), var_export($transactionSearchRowBasicPrintItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The print 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 print value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $print
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPrint(array $print = array())
    {
        // validation for constraint: array
        if ('' !== ($printArrayErrorMessage = self::validatePrintForArrayConstraintsFromSetPrint($print))) {
            throw new \InvalidArgumentException($printArrayErrorMessage, __LINE__);
        }
        $this->print = $print;
        return $this;
    }
    /**
     * Add item to print value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPrint(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The print 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->print[] = $item;
        return $this;
    }
    /**
     * Get probability value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getProbability()
    {
        return $this->probability;
    }
    /**
     * This method is responsible for validating the values passed to the setProbability method
     * This method is willingly generated in order to preserve the one-line inline validation within the setProbability method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateProbabilityForArrayConstraintsFromSetProbability(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicProbabilityItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicProbabilityItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicProbabilityItem) ? get_class($transactionSearchRowBasicProbabilityItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicProbabilityItem), var_export($transactionSearchRowBasicProbabilityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The probability 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 probability value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $probability
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setProbability(array $probability = array())
    {
        // validation for constraint: array
        if ('' !== ($probabilityArrayErrorMessage = self::validateProbabilityForArrayConstraintsFromSetProbability($probability))) {
            throw new \InvalidArgumentException($probabilityArrayErrorMessage, __LINE__);
        }
        $this->probability = $probability;
        return $this;
    }
    /**
     * Add item to probability value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToProbability(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The probability 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->probability[] = $item;
        return $this;
    }
    /**
     * Get projectedAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getProjectedAmount()
    {
        return $this->projectedAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setProjectedAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setProjectedAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateProjectedAmountForArrayConstraintsFromSetProjectedAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicProjectedAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicProjectedAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicProjectedAmountItem) ? get_class($transactionSearchRowBasicProjectedAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicProjectedAmountItem), var_export($transactionSearchRowBasicProjectedAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The projectedAmount 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 projectedAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $projectedAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setProjectedAmount(array $projectedAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($projectedAmountArrayErrorMessage = self::validateProjectedAmountForArrayConstraintsFromSetProjectedAmount($projectedAmount))) {
            throw new \InvalidArgumentException($projectedAmountArrayErrorMessage, __LINE__);
        }
        $this->projectedAmount = $projectedAmount;
        return $this;
    }
    /**
     * Add item to projectedAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToProjectedAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The projectedAmount 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->projectedAmount[] = $item;
        return $this;
    }
    /**
     * Get projectTask value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getProjectTask()
    {
        return $this->projectTask;
    }
    /**
     * This method is responsible for validating the values passed to the setProjectTask method
     * This method is willingly generated in order to preserve the one-line inline validation within the setProjectTask method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateProjectTaskForArrayConstraintsFromSetProjectTask(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicProjectTaskItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicProjectTaskItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicProjectTaskItem) ? get_class($transactionSearchRowBasicProjectTaskItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicProjectTaskItem), var_export($transactionSearchRowBasicProjectTaskItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The projectTask 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 projectTask value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $projectTask
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setProjectTask(array $projectTask = array())
    {
        // validation for constraint: array
        if ('' !== ($projectTaskArrayErrorMessage = self::validateProjectTaskForArrayConstraintsFromSetProjectTask($projectTask))) {
            throw new \InvalidArgumentException($projectTaskArrayErrorMessage, __LINE__);
        }
        $this->projectTask = $projectTask;
        return $this;
    }
    /**
     * Add item to projectTask value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToProjectTask(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The projectTask 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->projectTask[] = $item;
        return $this;
    }
    /**
     * Get promoCode value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getPromoCode()
    {
        return $this->promoCode;
    }
    /**
     * This method is responsible for validating the values passed to the setPromoCode method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPromoCode method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePromoCodeForArrayConstraintsFromSetPromoCode(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPromoCodeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPromoCodeItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPromoCodeItem) ? get_class($transactionSearchRowBasicPromoCodeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPromoCodeItem), var_export($transactionSearchRowBasicPromoCodeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The promoCode 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 promoCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $promoCode
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPromoCode(array $promoCode = array())
    {
        // validation for constraint: array
        if ('' !== ($promoCodeArrayErrorMessage = self::validatePromoCodeForArrayConstraintsFromSetPromoCode($promoCode))) {
            throw new \InvalidArgumentException($promoCodeArrayErrorMessage, __LINE__);
        }
        $this->promoCode = $promoCode;
        return $this;
    }
    /**
     * Add item to promoCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPromoCode(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The promoCode 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->promoCode[] = $item;
        return $this;
    }
    /**
     * Get purchaseOrder value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getPurchaseOrder()
    {
        return $this->purchaseOrder;
    }
    /**
     * This method is responsible for validating the values passed to the setPurchaseOrder method
     * This method is willingly generated in order to preserve the one-line inline validation within the setPurchaseOrder method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validatePurchaseOrderForArrayConstraintsFromSetPurchaseOrder(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicPurchaseOrderItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicPurchaseOrderItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicPurchaseOrderItem) ? get_class($transactionSearchRowBasicPurchaseOrderItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicPurchaseOrderItem), var_export($transactionSearchRowBasicPurchaseOrderItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The purchaseOrder 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 purchaseOrder value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $purchaseOrder
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setPurchaseOrder(array $purchaseOrder = array())
    {
        // validation for constraint: array
        if ('' !== ($purchaseOrderArrayErrorMessage = self::validatePurchaseOrderForArrayConstraintsFromSetPurchaseOrder($purchaseOrder))) {
            throw new \InvalidArgumentException($purchaseOrderArrayErrorMessage, __LINE__);
        }
        $this->purchaseOrder = $purchaseOrder;
        return $this;
    }
    /**
     * Add item to purchaseOrder value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToPurchaseOrder(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The purchaseOrder 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->purchaseOrder[] = $item;
        return $this;
    }
    /**
     * Get quantity value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getQuantity()
    {
        return $this->quantity;
    }
    /**
     * This method is responsible for validating the values passed to the setQuantity method
     * This method is willingly generated in order to preserve the one-line inline validation within the setQuantity method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateQuantityForArrayConstraintsFromSetQuantity(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicQuantityItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicQuantityItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicQuantityItem) ? get_class($transactionSearchRowBasicQuantityItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicQuantityItem), var_export($transactionSearchRowBasicQuantityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The quantity 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 quantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $quantity
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setQuantity(array $quantity = array())
    {
        // validation for constraint: array
        if ('' !== ($quantityArrayErrorMessage = self::validateQuantityForArrayConstraintsFromSetQuantity($quantity))) {
            throw new \InvalidArgumentException($quantityArrayErrorMessage, __LINE__);
        }
        $this->quantity = $quantity;
        return $this;
    }
    /**
     * Add item to quantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToQuantity(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The quantity 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->quantity[] = $item;
        return $this;
    }
    /**
     * Get quantityBilled value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getQuantityBilled()
    {
        return $this->quantityBilled;
    }
    /**
     * This method is responsible for validating the values passed to the setQuantityBilled method
     * This method is willingly generated in order to preserve the one-line inline validation within the setQuantityBilled method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateQuantityBilledForArrayConstraintsFromSetQuantityBilled(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicQuantityBilledItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicQuantityBilledItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicQuantityBilledItem) ? get_class($transactionSearchRowBasicQuantityBilledItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicQuantityBilledItem), var_export($transactionSearchRowBasicQuantityBilledItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The quantityBilled 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 quantityBilled value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $quantityBilled
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setQuantityBilled(array $quantityBilled = array())
    {
        // validation for constraint: array
        if ('' !== ($quantityBilledArrayErrorMessage = self::validateQuantityBilledForArrayConstraintsFromSetQuantityBilled($quantityBilled))) {
            throw new \InvalidArgumentException($quantityBilledArrayErrorMessage, __LINE__);
        }
        $this->quantityBilled = $quantityBilled;
        return $this;
    }
    /**
     * Add item to quantityBilled value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToQuantityBilled(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The quantityBilled 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->quantityBilled[] = $item;
        return $this;
    }
    /**
     * Get quantityCommitted value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getQuantityCommitted()
    {
        return $this->quantityCommitted;
    }
    /**
     * This method is responsible for validating the values passed to the setQuantityCommitted method
     * This method is willingly generated in order to preserve the one-line inline validation within the setQuantityCommitted method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateQuantityCommittedForArrayConstraintsFromSetQuantityCommitted(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicQuantityCommittedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicQuantityCommittedItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicQuantityCommittedItem) ? get_class($transactionSearchRowBasicQuantityCommittedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicQuantityCommittedItem), var_export($transactionSearchRowBasicQuantityCommittedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The quantityCommitted 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 quantityCommitted value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $quantityCommitted
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setQuantityCommitted(array $quantityCommitted = array())
    {
        // validation for constraint: array
        if ('' !== ($quantityCommittedArrayErrorMessage = self::validateQuantityCommittedForArrayConstraintsFromSetQuantityCommitted($quantityCommitted))) {
            throw new \InvalidArgumentException($quantityCommittedArrayErrorMessage, __LINE__);
        }
        $this->quantityCommitted = $quantityCommitted;
        return $this;
    }
    /**
     * Add item to quantityCommitted value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToQuantityCommitted(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The quantityCommitted 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->quantityCommitted[] = $item;
        return $this;
    }
    /**
     * Get quantityPacked value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getQuantityPacked()
    {
        return $this->quantityPacked;
    }
    /**
     * This method is responsible for validating the values passed to the setQuantityPacked method
     * This method is willingly generated in order to preserve the one-line inline validation within the setQuantityPacked method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateQuantityPackedForArrayConstraintsFromSetQuantityPacked(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicQuantityPackedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicQuantityPackedItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicQuantityPackedItem) ? get_class($transactionSearchRowBasicQuantityPackedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicQuantityPackedItem), var_export($transactionSearchRowBasicQuantityPackedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The quantityPacked 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 quantityPacked value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $quantityPacked
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setQuantityPacked(array $quantityPacked = array())
    {
        // validation for constraint: array
        if ('' !== ($quantityPackedArrayErrorMessage = self::validateQuantityPackedForArrayConstraintsFromSetQuantityPacked($quantityPacked))) {
            throw new \InvalidArgumentException($quantityPackedArrayErrorMessage, __LINE__);
        }
        $this->quantityPacked = $quantityPacked;
        return $this;
    }
    /**
     * Add item to quantityPacked value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToQuantityPacked(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The quantityPacked 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->quantityPacked[] = $item;
        return $this;
    }
    /**
     * Get quantityPicked value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getQuantityPicked()
    {
        return $this->quantityPicked;
    }
    /**
     * This method is responsible for validating the values passed to the setQuantityPicked method
     * This method is willingly generated in order to preserve the one-line inline validation within the setQuantityPicked method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateQuantityPickedForArrayConstraintsFromSetQuantityPicked(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicQuantityPickedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicQuantityPickedItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicQuantityPickedItem) ? get_class($transactionSearchRowBasicQuantityPickedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicQuantityPickedItem), var_export($transactionSearchRowBasicQuantityPickedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The quantityPicked 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 quantityPicked value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $quantityPicked
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setQuantityPicked(array $quantityPicked = array())
    {
        // validation for constraint: array
        if ('' !== ($quantityPickedArrayErrorMessage = self::validateQuantityPickedForArrayConstraintsFromSetQuantityPicked($quantityPicked))) {
            throw new \InvalidArgumentException($quantityPickedArrayErrorMessage, __LINE__);
        }
        $this->quantityPicked = $quantityPicked;
        return $this;
    }
    /**
     * Add item to quantityPicked value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToQuantityPicked(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The quantityPicked 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->quantityPicked[] = $item;
        return $this;
    }
    /**
     * Get quantityRevCommitted value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getQuantityRevCommitted()
    {
        return $this->quantityRevCommitted;
    }
    /**
     * This method is responsible for validating the values passed to the setQuantityRevCommitted method
     * This method is willingly generated in order to preserve the one-line inline validation within the setQuantityRevCommitted method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateQuantityRevCommittedForArrayConstraintsFromSetQuantityRevCommitted(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicQuantityRevCommittedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicQuantityRevCommittedItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicQuantityRevCommittedItem) ? get_class($transactionSearchRowBasicQuantityRevCommittedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicQuantityRevCommittedItem), var_export($transactionSearchRowBasicQuantityRevCommittedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The quantityRevCommitted 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 quantityRevCommitted value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $quantityRevCommitted
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setQuantityRevCommitted(array $quantityRevCommitted = array())
    {
        // validation for constraint: array
        if ('' !== ($quantityRevCommittedArrayErrorMessage = self::validateQuantityRevCommittedForArrayConstraintsFromSetQuantityRevCommitted($quantityRevCommitted))) {
            throw new \InvalidArgumentException($quantityRevCommittedArrayErrorMessage, __LINE__);
        }
        $this->quantityRevCommitted = $quantityRevCommitted;
        return $this;
    }
    /**
     * Add item to quantityRevCommitted value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToQuantityRevCommitted(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The quantityRevCommitted 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->quantityRevCommitted[] = $item;
        return $this;
    }
    /**
     * Get quantityShipRecv value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getQuantityShipRecv()
    {
        return $this->quantityShipRecv;
    }
    /**
     * This method is responsible for validating the values passed to the setQuantityShipRecv method
     * This method is willingly generated in order to preserve the one-line inline validation within the setQuantityShipRecv method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateQuantityShipRecvForArrayConstraintsFromSetQuantityShipRecv(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicQuantityShipRecvItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicQuantityShipRecvItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicQuantityShipRecvItem) ? get_class($transactionSearchRowBasicQuantityShipRecvItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicQuantityShipRecvItem), var_export($transactionSearchRowBasicQuantityShipRecvItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The quantityShipRecv 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 quantityShipRecv value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $quantityShipRecv
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setQuantityShipRecv(array $quantityShipRecv = array())
    {
        // validation for constraint: array
        if ('' !== ($quantityShipRecvArrayErrorMessage = self::validateQuantityShipRecvForArrayConstraintsFromSetQuantityShipRecv($quantityShipRecv))) {
            throw new \InvalidArgumentException($quantityShipRecvArrayErrorMessage, __LINE__);
        }
        $this->quantityShipRecv = $quantityShipRecv;
        return $this;
    }
    /**
     * Add item to quantityShipRecv value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToQuantityShipRecv(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The quantityShipRecv 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->quantityShipRecv[] = $item;
        return $this;
    }
    /**
     * Get quantityUom value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getQuantityUom()
    {
        return $this->quantityUom;
    }
    /**
     * This method is responsible for validating the values passed to the setQuantityUom method
     * This method is willingly generated in order to preserve the one-line inline validation within the setQuantityUom method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateQuantityUomForArrayConstraintsFromSetQuantityUom(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicQuantityUomItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicQuantityUomItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicQuantityUomItem) ? get_class($transactionSearchRowBasicQuantityUomItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicQuantityUomItem), var_export($transactionSearchRowBasicQuantityUomItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The quantityUom 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 quantityUom value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $quantityUom
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setQuantityUom(array $quantityUom = array())
    {
        // validation for constraint: array
        if ('' !== ($quantityUomArrayErrorMessage = self::validateQuantityUomForArrayConstraintsFromSetQuantityUom($quantityUom))) {
            throw new \InvalidArgumentException($quantityUomArrayErrorMessage, __LINE__);
        }
        $this->quantityUom = $quantityUom;
        return $this;
    }
    /**
     * Add item to quantityUom value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToQuantityUom(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The quantityUom 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->quantityUom[] = $item;
        return $this;
    }
    /**
     * Get rate value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getRate()
    {
        return $this->rate;
    }
    /**
     * This method is responsible for validating the values passed to the setRate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRateForArrayConstraintsFromSetRate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRateItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRateItem) ? get_class($transactionSearchRowBasicRateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRateItem), var_export($transactionSearchRowBasicRateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The rate 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 rate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $rate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRate(array $rate = array())
    {
        // validation for constraint: array
        if ('' !== ($rateArrayErrorMessage = self::validateRateForArrayConstraintsFromSetRate($rate))) {
            throw new \InvalidArgumentException($rateArrayErrorMessage, __LINE__);
        }
        $this->rate = $rate;
        return $this;
    }
    /**
     * Add item to rate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRate(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The rate 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->rate[] = $item;
        return $this;
    }
    /**
     * Get realizedGainPostingTransaction value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getRealizedGainPostingTransaction()
    {
        return $this->realizedGainPostingTransaction;
    }
    /**
     * This method is responsible for validating the values passed to the setRealizedGainPostingTransaction method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRealizedGainPostingTransaction method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRealizedGainPostingTransactionForArrayConstraintsFromSetRealizedGainPostingTransaction(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRealizedGainPostingTransactionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRealizedGainPostingTransactionItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRealizedGainPostingTransactionItem) ? get_class($transactionSearchRowBasicRealizedGainPostingTransactionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRealizedGainPostingTransactionItem), var_export($transactionSearchRowBasicRealizedGainPostingTransactionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The realizedGainPostingTransaction 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 realizedGainPostingTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $realizedGainPostingTransaction
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRealizedGainPostingTransaction(array $realizedGainPostingTransaction = array())
    {
        // validation for constraint: array
        if ('' !== ($realizedGainPostingTransactionArrayErrorMessage = self::validateRealizedGainPostingTransactionForArrayConstraintsFromSetRealizedGainPostingTransaction($realizedGainPostingTransaction))) {
            throw new \InvalidArgumentException($realizedGainPostingTransactionArrayErrorMessage, __LINE__);
        }
        $this->realizedGainPostingTransaction = $realizedGainPostingTransaction;
        return $this;
    }
    /**
     * Add item to realizedGainPostingTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRealizedGainPostingTransaction(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The realizedGainPostingTransaction 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->realizedGainPostingTransaction[] = $item;
        return $this;
    }
    /**
     * Get recognizedRevenue value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getRecognizedRevenue()
    {
        return $this->recognizedRevenue;
    }
    /**
     * This method is responsible for validating the values passed to the setRecognizedRevenue method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRecognizedRevenue method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRecognizedRevenueForArrayConstraintsFromSetRecognizedRevenue(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRecognizedRevenueItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRecognizedRevenueItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRecognizedRevenueItem) ? get_class($transactionSearchRowBasicRecognizedRevenueItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRecognizedRevenueItem), var_export($transactionSearchRowBasicRecognizedRevenueItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The recognizedRevenue 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 recognizedRevenue value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $recognizedRevenue
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRecognizedRevenue(array $recognizedRevenue = array())
    {
        // validation for constraint: array
        if ('' !== ($recognizedRevenueArrayErrorMessage = self::validateRecognizedRevenueForArrayConstraintsFromSetRecognizedRevenue($recognizedRevenue))) {
            throw new \InvalidArgumentException($recognizedRevenueArrayErrorMessage, __LINE__);
        }
        $this->recognizedRevenue = $recognizedRevenue;
        return $this;
    }
    /**
     * Add item to recognizedRevenue value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRecognizedRevenue(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The recognizedRevenue 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->recognizedRevenue[] = $item;
        return $this;
    }
    /**
     * Get recordType value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getRecordType()
    {
        return $this->recordType;
    }
    /**
     * This method is responsible for validating the values passed to the setRecordType method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRecordType method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRecordTypeForArrayConstraintsFromSetRecordType(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRecordTypeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRecordTypeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRecordTypeItem) ? get_class($transactionSearchRowBasicRecordTypeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRecordTypeItem), var_export($transactionSearchRowBasicRecordTypeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The recordType 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 recordType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $recordType
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRecordType(array $recordType = array())
    {
        // validation for constraint: array
        if ('' !== ($recordTypeArrayErrorMessage = self::validateRecordTypeForArrayConstraintsFromSetRecordType($recordType))) {
            throw new \InvalidArgumentException($recordTypeArrayErrorMessage, __LINE__);
        }
        $this->recordType = $recordType;
        return $this;
    }
    /**
     * Add item to recordType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRecordType(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The recordType 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->recordType[] = $item;
        return $this;
    }
    /**
     * Get recurAnnuallyTotal value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getRecurAnnuallyTotal()
    {
        return $this->recurAnnuallyTotal;
    }
    /**
     * This method is responsible for validating the values passed to the setRecurAnnuallyTotal method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRecurAnnuallyTotal method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRecurAnnuallyTotalForArrayConstraintsFromSetRecurAnnuallyTotal(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRecurAnnuallyTotalItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRecurAnnuallyTotalItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRecurAnnuallyTotalItem) ? get_class($transactionSearchRowBasicRecurAnnuallyTotalItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRecurAnnuallyTotalItem), var_export($transactionSearchRowBasicRecurAnnuallyTotalItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The recurAnnuallyTotal 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 recurAnnuallyTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $recurAnnuallyTotal
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRecurAnnuallyTotal(array $recurAnnuallyTotal = array())
    {
        // validation for constraint: array
        if ('' !== ($recurAnnuallyTotalArrayErrorMessage = self::validateRecurAnnuallyTotalForArrayConstraintsFromSetRecurAnnuallyTotal($recurAnnuallyTotal))) {
            throw new \InvalidArgumentException($recurAnnuallyTotalArrayErrorMessage, __LINE__);
        }
        $this->recurAnnuallyTotal = $recurAnnuallyTotal;
        return $this;
    }
    /**
     * Add item to recurAnnuallyTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRecurAnnuallyTotal(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The recurAnnuallyTotal 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->recurAnnuallyTotal[] = $item;
        return $this;
    }
    /**
     * Get recurMonthlyTotal value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getRecurMonthlyTotal()
    {
        return $this->recurMonthlyTotal;
    }
    /**
     * This method is responsible for validating the values passed to the setRecurMonthlyTotal method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRecurMonthlyTotal method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRecurMonthlyTotalForArrayConstraintsFromSetRecurMonthlyTotal(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRecurMonthlyTotalItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRecurMonthlyTotalItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRecurMonthlyTotalItem) ? get_class($transactionSearchRowBasicRecurMonthlyTotalItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRecurMonthlyTotalItem), var_export($transactionSearchRowBasicRecurMonthlyTotalItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The recurMonthlyTotal 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 recurMonthlyTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $recurMonthlyTotal
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRecurMonthlyTotal(array $recurMonthlyTotal = array())
    {
        // validation for constraint: array
        if ('' !== ($recurMonthlyTotalArrayErrorMessage = self::validateRecurMonthlyTotalForArrayConstraintsFromSetRecurMonthlyTotal($recurMonthlyTotal))) {
            throw new \InvalidArgumentException($recurMonthlyTotalArrayErrorMessage, __LINE__);
        }
        $this->recurMonthlyTotal = $recurMonthlyTotal;
        return $this;
    }
    /**
     * Add item to recurMonthlyTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRecurMonthlyTotal(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The recurMonthlyTotal 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->recurMonthlyTotal[] = $item;
        return $this;
    }
    /**
     * Get recurQuarterlyTotal value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getRecurQuarterlyTotal()
    {
        return $this->recurQuarterlyTotal;
    }
    /**
     * This method is responsible for validating the values passed to the setRecurQuarterlyTotal method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRecurQuarterlyTotal method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRecurQuarterlyTotalForArrayConstraintsFromSetRecurQuarterlyTotal(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRecurQuarterlyTotalItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRecurQuarterlyTotalItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRecurQuarterlyTotalItem) ? get_class($transactionSearchRowBasicRecurQuarterlyTotalItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRecurQuarterlyTotalItem), var_export($transactionSearchRowBasicRecurQuarterlyTotalItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The recurQuarterlyTotal 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 recurQuarterlyTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $recurQuarterlyTotal
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRecurQuarterlyTotal(array $recurQuarterlyTotal = array())
    {
        // validation for constraint: array
        if ('' !== ($recurQuarterlyTotalArrayErrorMessage = self::validateRecurQuarterlyTotalForArrayConstraintsFromSetRecurQuarterlyTotal($recurQuarterlyTotal))) {
            throw new \InvalidArgumentException($recurQuarterlyTotalArrayErrorMessage, __LINE__);
        }
        $this->recurQuarterlyTotal = $recurQuarterlyTotal;
        return $this;
    }
    /**
     * Add item to recurQuarterlyTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRecurQuarterlyTotal(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The recurQuarterlyTotal 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->recurQuarterlyTotal[] = $item;
        return $this;
    }
    /**
     * Get recurringBill value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getRecurringBill()
    {
        return $this->recurringBill;
    }
    /**
     * This method is responsible for validating the values passed to the setRecurringBill method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRecurringBill method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRecurringBillForArrayConstraintsFromSetRecurringBill(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRecurringBillItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRecurringBillItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRecurringBillItem) ? get_class($transactionSearchRowBasicRecurringBillItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRecurringBillItem), var_export($transactionSearchRowBasicRecurringBillItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The recurringBill 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 recurringBill value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $recurringBill
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRecurringBill(array $recurringBill = array())
    {
        // validation for constraint: array
        if ('' !== ($recurringBillArrayErrorMessage = self::validateRecurringBillForArrayConstraintsFromSetRecurringBill($recurringBill))) {
            throw new \InvalidArgumentException($recurringBillArrayErrorMessage, __LINE__);
        }
        $this->recurringBill = $recurringBill;
        return $this;
    }
    /**
     * Add item to recurringBill value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRecurringBill(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The recurringBill 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->recurringBill[] = $item;
        return $this;
    }
    /**
     * Get recurWeeklyTotal value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getRecurWeeklyTotal()
    {
        return $this->recurWeeklyTotal;
    }
    /**
     * This method is responsible for validating the values passed to the setRecurWeeklyTotal method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRecurWeeklyTotal method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRecurWeeklyTotalForArrayConstraintsFromSetRecurWeeklyTotal(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRecurWeeklyTotalItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRecurWeeklyTotalItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRecurWeeklyTotalItem) ? get_class($transactionSearchRowBasicRecurWeeklyTotalItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRecurWeeklyTotalItem), var_export($transactionSearchRowBasicRecurWeeklyTotalItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The recurWeeklyTotal 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 recurWeeklyTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $recurWeeklyTotal
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRecurWeeklyTotal(array $recurWeeklyTotal = array())
    {
        // validation for constraint: array
        if ('' !== ($recurWeeklyTotalArrayErrorMessage = self::validateRecurWeeklyTotalForArrayConstraintsFromSetRecurWeeklyTotal($recurWeeklyTotal))) {
            throw new \InvalidArgumentException($recurWeeklyTotalArrayErrorMessage, __LINE__);
        }
        $this->recurWeeklyTotal = $recurWeeklyTotal;
        return $this;
    }
    /**
     * Add item to recurWeeklyTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRecurWeeklyTotal(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The recurWeeklyTotal 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->recurWeeklyTotal[] = $item;
        return $this;
    }
    /**
     * Get refNumber value
     * @return \StructType\SearchColumnLongField[]|null
     */
    public function getRefNumber()
    {
        return $this->refNumber;
    }
    /**
     * This method is responsible for validating the values passed to the setRefNumber method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRefNumber method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRefNumberForArrayConstraintsFromSetRefNumber(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRefNumberItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRefNumberItem instanceof \StructType\SearchColumnLongField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRefNumberItem) ? get_class($transactionSearchRowBasicRefNumberItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRefNumberItem), var_export($transactionSearchRowBasicRefNumberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The refNumber 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 refNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField[] $refNumber
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRefNumber(array $refNumber = array())
    {
        // validation for constraint: array
        if ('' !== ($refNumberArrayErrorMessage = self::validateRefNumberForArrayConstraintsFromSetRefNumber($refNumber))) {
            throw new \InvalidArgumentException($refNumberArrayErrorMessage, __LINE__);
        }
        $this->refNumber = $refNumber;
        return $this;
    }
    /**
     * Add item to refNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRefNumber(\StructType\SearchColumnLongField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnLongField) {
            throw new \InvalidArgumentException(sprintf('The refNumber 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->refNumber[] = $item;
        return $this;
    }
    /**
     * Get requestedDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getRequestedDate()
    {
        return $this->requestedDate;
    }
    /**
     * This method is responsible for validating the values passed to the setRequestedDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRequestedDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRequestedDateForArrayConstraintsFromSetRequestedDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRequestedDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRequestedDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRequestedDateItem) ? get_class($transactionSearchRowBasicRequestedDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRequestedDateItem), var_export($transactionSearchRowBasicRequestedDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The requestedDate 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 requestedDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $requestedDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRequestedDate(array $requestedDate = array())
    {
        // validation for constraint: array
        if ('' !== ($requestedDateArrayErrorMessage = self::validateRequestedDateForArrayConstraintsFromSetRequestedDate($requestedDate))) {
            throw new \InvalidArgumentException($requestedDateArrayErrorMessage, __LINE__);
        }
        $this->requestedDate = $requestedDate;
        return $this;
    }
    /**
     * Add item to requestedDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRequestedDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The requestedDate 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->requestedDate[] = $item;
        return $this;
    }
    /**
     * Get revCommitStatus value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getRevCommitStatus()
    {
        return $this->revCommitStatus;
    }
    /**
     * This method is responsible for validating the values passed to the setRevCommitStatus method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRevCommitStatus method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRevCommitStatusForArrayConstraintsFromSetRevCommitStatus(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRevCommitStatusItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRevCommitStatusItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRevCommitStatusItem) ? get_class($transactionSearchRowBasicRevCommitStatusItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRevCommitStatusItem), var_export($transactionSearchRowBasicRevCommitStatusItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The revCommitStatus 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 revCommitStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $revCommitStatus
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRevCommitStatus(array $revCommitStatus = array())
    {
        // validation for constraint: array
        if ('' !== ($revCommitStatusArrayErrorMessage = self::validateRevCommitStatusForArrayConstraintsFromSetRevCommitStatus($revCommitStatus))) {
            throw new \InvalidArgumentException($revCommitStatusArrayErrorMessage, __LINE__);
        }
        $this->revCommitStatus = $revCommitStatus;
        return $this;
    }
    /**
     * Add item to revCommitStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRevCommitStatus(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The revCommitStatus 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->revCommitStatus[] = $item;
        return $this;
    }
    /**
     * Get revCommittingTransaction value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getRevCommittingTransaction()
    {
        return $this->revCommittingTransaction;
    }
    /**
     * This method is responsible for validating the values passed to the setRevCommittingTransaction method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRevCommittingTransaction method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRevCommittingTransactionForArrayConstraintsFromSetRevCommittingTransaction(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRevCommittingTransactionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRevCommittingTransactionItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRevCommittingTransactionItem) ? get_class($transactionSearchRowBasicRevCommittingTransactionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRevCommittingTransactionItem), var_export($transactionSearchRowBasicRevCommittingTransactionItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The revCommittingTransaction 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 revCommittingTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $revCommittingTransaction
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRevCommittingTransaction(array $revCommittingTransaction = array())
    {
        // validation for constraint: array
        if ('' !== ($revCommittingTransactionArrayErrorMessage = self::validateRevCommittingTransactionForArrayConstraintsFromSetRevCommittingTransaction($revCommittingTransaction))) {
            throw new \InvalidArgumentException($revCommittingTransactionArrayErrorMessage, __LINE__);
        }
        $this->revCommittingTransaction = $revCommittingTransaction;
        return $this;
    }
    /**
     * Add item to revCommittingTransaction value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRevCommittingTransaction(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The revCommittingTransaction 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->revCommittingTransaction[] = $item;
        return $this;
    }
    /**
     * Get revenueStatus value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getRevenueStatus()
    {
        return $this->revenueStatus;
    }
    /**
     * This method is responsible for validating the values passed to the setRevenueStatus method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRevenueStatus method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRevenueStatusForArrayConstraintsFromSetRevenueStatus(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRevenueStatusItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRevenueStatusItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRevenueStatusItem) ? get_class($transactionSearchRowBasicRevenueStatusItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRevenueStatusItem), var_export($transactionSearchRowBasicRevenueStatusItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The revenueStatus 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 revenueStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $revenueStatus
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRevenueStatus(array $revenueStatus = array())
    {
        // validation for constraint: array
        if ('' !== ($revenueStatusArrayErrorMessage = self::validateRevenueStatusForArrayConstraintsFromSetRevenueStatus($revenueStatus))) {
            throw new \InvalidArgumentException($revenueStatusArrayErrorMessage, __LINE__);
        }
        $this->revenueStatus = $revenueStatus;
        return $this;
    }
    /**
     * Add item to revenueStatus value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRevenueStatus(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The revenueStatus 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->revenueStatus[] = $item;
        return $this;
    }
    /**
     * Get reversalDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getReversalDate()
    {
        return $this->reversalDate;
    }
    /**
     * This method is responsible for validating the values passed to the setReversalDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setReversalDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateReversalDateForArrayConstraintsFromSetReversalDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicReversalDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicReversalDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicReversalDateItem) ? get_class($transactionSearchRowBasicReversalDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicReversalDateItem), var_export($transactionSearchRowBasicReversalDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The reversalDate 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 reversalDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $reversalDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setReversalDate(array $reversalDate = array())
    {
        // validation for constraint: array
        if ('' !== ($reversalDateArrayErrorMessage = self::validateReversalDateForArrayConstraintsFromSetReversalDate($reversalDate))) {
            throw new \InvalidArgumentException($reversalDateArrayErrorMessage, __LINE__);
        }
        $this->reversalDate = $reversalDate;
        return $this;
    }
    /**
     * Add item to reversalDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToReversalDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The reversalDate 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->reversalDate[] = $item;
        return $this;
    }
    /**
     * Get reversalNumber value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getReversalNumber()
    {
        return $this->reversalNumber;
    }
    /**
     * This method is responsible for validating the values passed to the setReversalNumber method
     * This method is willingly generated in order to preserve the one-line inline validation within the setReversalNumber method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateReversalNumberForArrayConstraintsFromSetReversalNumber(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicReversalNumberItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicReversalNumberItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicReversalNumberItem) ? get_class($transactionSearchRowBasicReversalNumberItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicReversalNumberItem), var_export($transactionSearchRowBasicReversalNumberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The reversalNumber 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 reversalNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $reversalNumber
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setReversalNumber(array $reversalNumber = array())
    {
        // validation for constraint: array
        if ('' !== ($reversalNumberArrayErrorMessage = self::validateReversalNumberForArrayConstraintsFromSetReversalNumber($reversalNumber))) {
            throw new \InvalidArgumentException($reversalNumberArrayErrorMessage, __LINE__);
        }
        $this->reversalNumber = $reversalNumber;
        return $this;
    }
    /**
     * Add item to reversalNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToReversalNumber(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The reversalNumber 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->reversalNumber[] = $item;
        return $this;
    }
    /**
     * Get revRecEndDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getRevRecEndDate()
    {
        return $this->revRecEndDate;
    }
    /**
     * This method is responsible for validating the values passed to the setRevRecEndDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRevRecEndDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRevRecEndDateForArrayConstraintsFromSetRevRecEndDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRevRecEndDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRevRecEndDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRevRecEndDateItem) ? get_class($transactionSearchRowBasicRevRecEndDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRevRecEndDateItem), var_export($transactionSearchRowBasicRevRecEndDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The revRecEndDate 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 revRecEndDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $revRecEndDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRevRecEndDate(array $revRecEndDate = array())
    {
        // validation for constraint: array
        if ('' !== ($revRecEndDateArrayErrorMessage = self::validateRevRecEndDateForArrayConstraintsFromSetRevRecEndDate($revRecEndDate))) {
            throw new \InvalidArgumentException($revRecEndDateArrayErrorMessage, __LINE__);
        }
        $this->revRecEndDate = $revRecEndDate;
        return $this;
    }
    /**
     * Add item to revRecEndDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRevRecEndDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The revRecEndDate 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->revRecEndDate[] = $item;
        return $this;
    }
    /**
     * Get revRecOnRevCommitment value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getRevRecOnRevCommitment()
    {
        return $this->revRecOnRevCommitment;
    }
    /**
     * This method is responsible for validating the values passed to the setRevRecOnRevCommitment method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRevRecOnRevCommitment method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRevRecOnRevCommitmentForArrayConstraintsFromSetRevRecOnRevCommitment(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRevRecOnRevCommitmentItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRevRecOnRevCommitmentItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRevRecOnRevCommitmentItem) ? get_class($transactionSearchRowBasicRevRecOnRevCommitmentItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRevRecOnRevCommitmentItem), var_export($transactionSearchRowBasicRevRecOnRevCommitmentItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The revRecOnRevCommitment 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 revRecOnRevCommitment value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $revRecOnRevCommitment
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRevRecOnRevCommitment(array $revRecOnRevCommitment = array())
    {
        // validation for constraint: array
        if ('' !== ($revRecOnRevCommitmentArrayErrorMessage = self::validateRevRecOnRevCommitmentForArrayConstraintsFromSetRevRecOnRevCommitment($revRecOnRevCommitment))) {
            throw new \InvalidArgumentException($revRecOnRevCommitmentArrayErrorMessage, __LINE__);
        }
        $this->revRecOnRevCommitment = $revRecOnRevCommitment;
        return $this;
    }
    /**
     * Add item to revRecOnRevCommitment value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRevRecOnRevCommitment(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The revRecOnRevCommitment 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->revRecOnRevCommitment[] = $item;
        return $this;
    }
    /**
     * Get revRecStartDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getRevRecStartDate()
    {
        return $this->revRecStartDate;
    }
    /**
     * This method is responsible for validating the values passed to the setRevRecStartDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRevRecStartDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRevRecStartDateForArrayConstraintsFromSetRevRecStartDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRevRecStartDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRevRecStartDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRevRecStartDateItem) ? get_class($transactionSearchRowBasicRevRecStartDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRevRecStartDateItem), var_export($transactionSearchRowBasicRevRecStartDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The revRecStartDate 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 revRecStartDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $revRecStartDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRevRecStartDate(array $revRecStartDate = array())
    {
        // validation for constraint: array
        if ('' !== ($revRecStartDateArrayErrorMessage = self::validateRevRecStartDateForArrayConstraintsFromSetRevRecStartDate($revRecStartDate))) {
            throw new \InvalidArgumentException($revRecStartDateArrayErrorMessage, __LINE__);
        }
        $this->revRecStartDate = $revRecStartDate;
        return $this;
    }
    /**
     * Add item to revRecStartDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRevRecStartDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The revRecStartDate 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->revRecStartDate[] = $item;
        return $this;
    }
    /**
     * Get rgAccount value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getRgAccount()
    {
        return $this->rgAccount;
    }
    /**
     * This method is responsible for validating the values passed to the setRgAccount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRgAccount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRgAccountForArrayConstraintsFromSetRgAccount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRgAccountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRgAccountItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRgAccountItem) ? get_class($transactionSearchRowBasicRgAccountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRgAccountItem), var_export($transactionSearchRowBasicRgAccountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The rgAccount 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 rgAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $rgAccount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRgAccount(array $rgAccount = array())
    {
        // validation for constraint: array
        if ('' !== ($rgAccountArrayErrorMessage = self::validateRgAccountForArrayConstraintsFromSetRgAccount($rgAccount))) {
            throw new \InvalidArgumentException($rgAccountArrayErrorMessage, __LINE__);
        }
        $this->rgAccount = $rgAccount;
        return $this;
    }
    /**
     * Add item to rgAccount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRgAccount(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The rgAccount 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->rgAccount[] = $item;
        return $this;
    }
    /**
     * Get rgAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getRgAmount()
    {
        return $this->rgAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setRgAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setRgAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateRgAmountForArrayConstraintsFromSetRgAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicRgAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicRgAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicRgAmountItem) ? get_class($transactionSearchRowBasicRgAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicRgAmountItem), var_export($transactionSearchRowBasicRgAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The rgAmount 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 rgAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $rgAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setRgAmount(array $rgAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($rgAmountArrayErrorMessage = self::validateRgAmountForArrayConstraintsFromSetRgAmount($rgAmount))) {
            throw new \InvalidArgumentException($rgAmountArrayErrorMessage, __LINE__);
        }
        $this->rgAmount = $rgAmount;
        return $this;
    }
    /**
     * Add item to rgAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToRgAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The rgAmount 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->rgAmount[] = $item;
        return $this;
    }
    /**
     * Get salesEffectiveDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getSalesEffectiveDate()
    {
        return $this->salesEffectiveDate;
    }
    /**
     * This method is responsible for validating the values passed to the setSalesEffectiveDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSalesEffectiveDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSalesEffectiveDateForArrayConstraintsFromSetSalesEffectiveDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSalesEffectiveDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSalesEffectiveDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSalesEffectiveDateItem) ? get_class($transactionSearchRowBasicSalesEffectiveDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSalesEffectiveDateItem), var_export($transactionSearchRowBasicSalesEffectiveDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The salesEffectiveDate 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 salesEffectiveDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $salesEffectiveDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSalesEffectiveDate(array $salesEffectiveDate = array())
    {
        // validation for constraint: array
        if ('' !== ($salesEffectiveDateArrayErrorMessage = self::validateSalesEffectiveDateForArrayConstraintsFromSetSalesEffectiveDate($salesEffectiveDate))) {
            throw new \InvalidArgumentException($salesEffectiveDateArrayErrorMessage, __LINE__);
        }
        $this->salesEffectiveDate = $salesEffectiveDate;
        return $this;
    }
    /**
     * Add item to salesEffectiveDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSalesEffectiveDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The salesEffectiveDate 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->salesEffectiveDate[] = $item;
        return $this;
    }
    /**
     * Get salesOrder value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getSalesOrder()
    {
        return $this->salesOrder;
    }
    /**
     * This method is responsible for validating the values passed to the setSalesOrder method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSalesOrder method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSalesOrderForArrayConstraintsFromSetSalesOrder(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSalesOrderItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSalesOrderItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSalesOrderItem) ? get_class($transactionSearchRowBasicSalesOrderItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSalesOrderItem), var_export($transactionSearchRowBasicSalesOrderItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The salesOrder 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 salesOrder value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $salesOrder
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSalesOrder(array $salesOrder = array())
    {
        // validation for constraint: array
        if ('' !== ($salesOrderArrayErrorMessage = self::validateSalesOrderForArrayConstraintsFromSetSalesOrder($salesOrder))) {
            throw new \InvalidArgumentException($salesOrderArrayErrorMessage, __LINE__);
        }
        $this->salesOrder = $salesOrder;
        return $this;
    }
    /**
     * Add item to salesOrder value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSalesOrder(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The salesOrder 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->salesOrder[] = $item;
        return $this;
    }
    /**
     * Get salesRep value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getSalesRep()
    {
        return $this->salesRep;
    }
    /**
     * This method is responsible for validating the values passed to the setSalesRep method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSalesRep method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSalesRepForArrayConstraintsFromSetSalesRep(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSalesRepItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSalesRepItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSalesRepItem) ? get_class($transactionSearchRowBasicSalesRepItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSalesRepItem), var_export($transactionSearchRowBasicSalesRepItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The salesRep 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 salesRep value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $salesRep
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSalesRep(array $salesRep = array())
    {
        // validation for constraint: array
        if ('' !== ($salesRepArrayErrorMessage = self::validateSalesRepForArrayConstraintsFromSetSalesRep($salesRep))) {
            throw new \InvalidArgumentException($salesRepArrayErrorMessage, __LINE__);
        }
        $this->salesRep = $salesRep;
        return $this;
    }
    /**
     * Add item to salesRep value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSalesRep(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The salesRep 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->salesRep[] = $item;
        return $this;
    }
    /**
     * Get salesTeamMember value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getSalesTeamMember()
    {
        return $this->salesTeamMember;
    }
    /**
     * This method is responsible for validating the values passed to the setSalesTeamMember method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSalesTeamMember method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSalesTeamMemberForArrayConstraintsFromSetSalesTeamMember(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSalesTeamMemberItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSalesTeamMemberItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSalesTeamMemberItem) ? get_class($transactionSearchRowBasicSalesTeamMemberItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSalesTeamMemberItem), var_export($transactionSearchRowBasicSalesTeamMemberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The salesTeamMember 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 salesTeamMember value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $salesTeamMember
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSalesTeamMember(array $salesTeamMember = array())
    {
        // validation for constraint: array
        if ('' !== ($salesTeamMemberArrayErrorMessage = self::validateSalesTeamMemberForArrayConstraintsFromSetSalesTeamMember($salesTeamMember))) {
            throw new \InvalidArgumentException($salesTeamMemberArrayErrorMessage, __LINE__);
        }
        $this->salesTeamMember = $salesTeamMember;
        return $this;
    }
    /**
     * Add item to salesTeamMember value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSalesTeamMember(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The salesTeamMember 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->salesTeamMember[] = $item;
        return $this;
    }
    /**
     * Get salesTeamRole value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getSalesTeamRole()
    {
        return $this->salesTeamRole;
    }
    /**
     * This method is responsible for validating the values passed to the setSalesTeamRole method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSalesTeamRole method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSalesTeamRoleForArrayConstraintsFromSetSalesTeamRole(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSalesTeamRoleItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSalesTeamRoleItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSalesTeamRoleItem) ? get_class($transactionSearchRowBasicSalesTeamRoleItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSalesTeamRoleItem), var_export($transactionSearchRowBasicSalesTeamRoleItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The salesTeamRole 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 salesTeamRole value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $salesTeamRole
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSalesTeamRole(array $salesTeamRole = array())
    {
        // validation for constraint: array
        if ('' !== ($salesTeamRoleArrayErrorMessage = self::validateSalesTeamRoleForArrayConstraintsFromSetSalesTeamRole($salesTeamRole))) {
            throw new \InvalidArgumentException($salesTeamRoleArrayErrorMessage, __LINE__);
        }
        $this->salesTeamRole = $salesTeamRole;
        return $this;
    }
    /**
     * Add item to salesTeamRole value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSalesTeamRole(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The salesTeamRole 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->salesTeamRole[] = $item;
        return $this;
    }
    /**
     * Get schedulingMethod value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getSchedulingMethod()
    {
        return $this->schedulingMethod;
    }
    /**
     * This method is responsible for validating the values passed to the setSchedulingMethod method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSchedulingMethod method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSchedulingMethodForArrayConstraintsFromSetSchedulingMethod(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSchedulingMethodItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSchedulingMethodItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSchedulingMethodItem) ? get_class($transactionSearchRowBasicSchedulingMethodItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSchedulingMethodItem), var_export($transactionSearchRowBasicSchedulingMethodItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The schedulingMethod 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 schedulingMethod value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $schedulingMethod
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSchedulingMethod(array $schedulingMethod = array())
    {
        // validation for constraint: array
        if ('' !== ($schedulingMethodArrayErrorMessage = self::validateSchedulingMethodForArrayConstraintsFromSetSchedulingMethod($schedulingMethod))) {
            throw new \InvalidArgumentException($schedulingMethodArrayErrorMessage, __LINE__);
        }
        $this->schedulingMethod = $schedulingMethod;
        return $this;
    }
    /**
     * Add item to schedulingMethod value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSchedulingMethod(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The schedulingMethod 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->schedulingMethod[] = $item;
        return $this;
    }
    /**
     * Get serialNumber value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getSerialNumber()
    {
        return $this->serialNumber;
    }
    /**
     * This method is responsible for validating the values passed to the setSerialNumber method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSerialNumber method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSerialNumberForArrayConstraintsFromSetSerialNumber(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSerialNumberItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSerialNumberItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSerialNumberItem) ? get_class($transactionSearchRowBasicSerialNumberItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSerialNumberItem), var_export($transactionSearchRowBasicSerialNumberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The serialNumber 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 serialNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $serialNumber
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSerialNumber(array $serialNumber = array())
    {
        // validation for constraint: array
        if ('' !== ($serialNumberArrayErrorMessage = self::validateSerialNumberForArrayConstraintsFromSetSerialNumber($serialNumber))) {
            throw new \InvalidArgumentException($serialNumberArrayErrorMessage, __LINE__);
        }
        $this->serialNumber = $serialNumber;
        return $this;
    }
    /**
     * Add item to serialNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSerialNumber(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The serialNumber 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->serialNumber[] = $item;
        return $this;
    }
    /**
     * Get serialNumberCost value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getSerialNumberCost()
    {
        return $this->serialNumberCost;
    }
    /**
     * This method is responsible for validating the values passed to the setSerialNumberCost method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSerialNumberCost method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSerialNumberCostForArrayConstraintsFromSetSerialNumberCost(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSerialNumberCostItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSerialNumberCostItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSerialNumberCostItem) ? get_class($transactionSearchRowBasicSerialNumberCostItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSerialNumberCostItem), var_export($transactionSearchRowBasicSerialNumberCostItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The serialNumberCost 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 serialNumberCost value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $serialNumberCost
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSerialNumberCost(array $serialNumberCost = array())
    {
        // validation for constraint: array
        if ('' !== ($serialNumberCostArrayErrorMessage = self::validateSerialNumberCostForArrayConstraintsFromSetSerialNumberCost($serialNumberCost))) {
            throw new \InvalidArgumentException($serialNumberCostArrayErrorMessage, __LINE__);
        }
        $this->serialNumberCost = $serialNumberCost;
        return $this;
    }
    /**
     * Add item to serialNumberCost value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSerialNumberCost(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The serialNumberCost 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->serialNumberCost[] = $item;
        return $this;
    }
    /**
     * Get serialNumberCostAdjustment value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getSerialNumberCostAdjustment()
    {
        return $this->serialNumberCostAdjustment;
    }
    /**
     * This method is responsible for validating the values passed to the setSerialNumberCostAdjustment method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSerialNumberCostAdjustment method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSerialNumberCostAdjustmentForArrayConstraintsFromSetSerialNumberCostAdjustment(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSerialNumberCostAdjustmentItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSerialNumberCostAdjustmentItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSerialNumberCostAdjustmentItem) ? get_class($transactionSearchRowBasicSerialNumberCostAdjustmentItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSerialNumberCostAdjustmentItem), var_export($transactionSearchRowBasicSerialNumberCostAdjustmentItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The serialNumberCostAdjustment 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 serialNumberCostAdjustment value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $serialNumberCostAdjustment
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSerialNumberCostAdjustment(array $serialNumberCostAdjustment = array())
    {
        // validation for constraint: array
        if ('' !== ($serialNumberCostAdjustmentArrayErrorMessage = self::validateSerialNumberCostAdjustmentForArrayConstraintsFromSetSerialNumberCostAdjustment($serialNumberCostAdjustment))) {
            throw new \InvalidArgumentException($serialNumberCostAdjustmentArrayErrorMessage, __LINE__);
        }
        $this->serialNumberCostAdjustment = $serialNumberCostAdjustment;
        return $this;
    }
    /**
     * Add item to serialNumberCostAdjustment value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSerialNumberCostAdjustment(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The serialNumberCostAdjustment 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->serialNumberCostAdjustment[] = $item;
        return $this;
    }
    /**
     * Get serialNumberQuantity value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getSerialNumberQuantity()
    {
        return $this->serialNumberQuantity;
    }
    /**
     * This method is responsible for validating the values passed to the setSerialNumberQuantity method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSerialNumberQuantity method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSerialNumberQuantityForArrayConstraintsFromSetSerialNumberQuantity(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSerialNumberQuantityItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSerialNumberQuantityItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSerialNumberQuantityItem) ? get_class($transactionSearchRowBasicSerialNumberQuantityItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSerialNumberQuantityItem), var_export($transactionSearchRowBasicSerialNumberQuantityItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The serialNumberQuantity 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 serialNumberQuantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $serialNumberQuantity
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSerialNumberQuantity(array $serialNumberQuantity = array())
    {
        // validation for constraint: array
        if ('' !== ($serialNumberQuantityArrayErrorMessage = self::validateSerialNumberQuantityForArrayConstraintsFromSetSerialNumberQuantity($serialNumberQuantity))) {
            throw new \InvalidArgumentException($serialNumberQuantityArrayErrorMessage, __LINE__);
        }
        $this->serialNumberQuantity = $serialNumberQuantity;
        return $this;
    }
    /**
     * Add item to serialNumberQuantity value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSerialNumberQuantity(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The serialNumberQuantity 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->serialNumberQuantity[] = $item;
        return $this;
    }
    /**
     * Get serialNumbers value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getSerialNumbers()
    {
        return $this->serialNumbers;
    }
    /**
     * This method is responsible for validating the values passed to the setSerialNumbers method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSerialNumbers method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSerialNumbersForArrayConstraintsFromSetSerialNumbers(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSerialNumbersItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSerialNumbersItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSerialNumbersItem) ? get_class($transactionSearchRowBasicSerialNumbersItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSerialNumbersItem), var_export($transactionSearchRowBasicSerialNumbersItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The serialNumbers 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 serialNumbers value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $serialNumbers
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSerialNumbers(array $serialNumbers = array())
    {
        // validation for constraint: array
        if ('' !== ($serialNumbersArrayErrorMessage = self::validateSerialNumbersForArrayConstraintsFromSetSerialNumbers($serialNumbers))) {
            throw new \InvalidArgumentException($serialNumbersArrayErrorMessage, __LINE__);
        }
        $this->serialNumbers = $serialNumbers;
        return $this;
    }
    /**
     * Add item to serialNumbers value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSerialNumbers(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The serialNumbers 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->serialNumbers[] = $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 $transactionSearchRowBasicShipAddressItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipAddressItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipAddressItem) ? get_class($transactionSearchRowBasicShipAddressItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipAddressItem), var_export($transactionSearchRowBasicShipAddressItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicShipAddress1Item) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipAddress1Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipAddress1Item) ? get_class($transactionSearchRowBasicShipAddress1Item) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipAddress1Item), var_export($transactionSearchRowBasicShipAddress1Item, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicShipAddress2Item) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipAddress2Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipAddress2Item) ? get_class($transactionSearchRowBasicShipAddress2Item) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipAddress2Item), var_export($transactionSearchRowBasicShipAddress2Item, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicShipAddress3Item) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipAddress3Item instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipAddress3Item) ? get_class($transactionSearchRowBasicShipAddress3Item) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipAddress3Item), var_export($transactionSearchRowBasicShipAddress3Item, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicShipAddresseeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipAddresseeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipAddresseeItem) ? get_class($transactionSearchRowBasicShipAddresseeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipAddresseeItem), var_export($transactionSearchRowBasicShipAddresseeItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicShipAttentionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipAttentionItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipAttentionItem) ? get_class($transactionSearchRowBasicShipAttentionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipAttentionItem), var_export($transactionSearchRowBasicShipAttentionItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 shipCarrier value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getShipCarrier()
    {
        return $this->shipCarrier;
    }
    /**
     * This method is responsible for validating the values passed to the setShipCarrier method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipCarrier method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipCarrierForArrayConstraintsFromSetShipCarrier(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicShipCarrierItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipCarrierItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipCarrierItem) ? get_class($transactionSearchRowBasicShipCarrierItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipCarrierItem), var_export($transactionSearchRowBasicShipCarrierItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipCarrier 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 shipCarrier value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $shipCarrier
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setShipCarrier(array $shipCarrier = array())
    {
        // validation for constraint: array
        if ('' !== ($shipCarrierArrayErrorMessage = self::validateShipCarrierForArrayConstraintsFromSetShipCarrier($shipCarrier))) {
            throw new \InvalidArgumentException($shipCarrierArrayErrorMessage, __LINE__);
        }
        $this->shipCarrier = $shipCarrier;
        return $this;
    }
    /**
     * Add item to shipCarrier value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToShipCarrier(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The shipCarrier 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->shipCarrier[] = $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 $transactionSearchRowBasicShipCityItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipCityItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipCityItem) ? get_class($transactionSearchRowBasicShipCityItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipCityItem), var_export($transactionSearchRowBasicShipCityItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 shipComplete value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getShipComplete()
    {
        return $this->shipComplete;
    }
    /**
     * This method is responsible for validating the values passed to the setShipComplete method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipComplete method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipCompleteForArrayConstraintsFromSetShipComplete(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicShipCompleteItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipCompleteItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipCompleteItem) ? get_class($transactionSearchRowBasicShipCompleteItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipCompleteItem), var_export($transactionSearchRowBasicShipCompleteItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipComplete 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 shipComplete value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $shipComplete
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setShipComplete(array $shipComplete = array())
    {
        // validation for constraint: array
        if ('' !== ($shipCompleteArrayErrorMessage = self::validateShipCompleteForArrayConstraintsFromSetShipComplete($shipComplete))) {
            throw new \InvalidArgumentException($shipCompleteArrayErrorMessage, __LINE__);
        }
        $this->shipComplete = $shipComplete;
        return $this;
    }
    /**
     * Add item to shipComplete value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToShipComplete(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The shipComplete 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->shipComplete[] = $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 $transactionSearchRowBasicShipCountryItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipCountryItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipCountryItem) ? get_class($transactionSearchRowBasicShipCountryItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipCountryItem), var_export($transactionSearchRowBasicShipCountryItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 $transactionSearchRowBasicShipCountryCodeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipCountryCodeItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipCountryCodeItem) ? get_class($transactionSearchRowBasicShipCountryCodeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipCountryCodeItem), var_export($transactionSearchRowBasicShipCountryCodeItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 shipDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getShipDate()
    {
        return $this->shipDate;
    }
    /**
     * This method is responsible for validating the values passed to the setShipDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipDateForArrayConstraintsFromSetShipDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicShipDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipDateItem) ? get_class($transactionSearchRowBasicShipDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipDateItem), var_export($transactionSearchRowBasicShipDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipDate 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 shipDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $shipDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setShipDate(array $shipDate = array())
    {
        // validation for constraint: array
        if ('' !== ($shipDateArrayErrorMessage = self::validateShipDateForArrayConstraintsFromSetShipDate($shipDate))) {
            throw new \InvalidArgumentException($shipDateArrayErrorMessage, __LINE__);
        }
        $this->shipDate = $shipDate;
        return $this;
    }
    /**
     * Add item to shipDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToShipDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The shipDate 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->shipDate[] = $item;
        return $this;
    }
    /**
     * Get shipGroup value
     * @return \StructType\SearchColumnLongField[]|null
     */
    public function getShipGroup()
    {
        return $this->shipGroup;
    }
    /**
     * This method is responsible for validating the values passed to the setShipGroup method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipGroup method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipGroupForArrayConstraintsFromSetShipGroup(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicShipGroupItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipGroupItem instanceof \StructType\SearchColumnLongField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipGroupItem) ? get_class($transactionSearchRowBasicShipGroupItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipGroupItem), var_export($transactionSearchRowBasicShipGroupItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipGroup 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 shipGroup value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField[] $shipGroup
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setShipGroup(array $shipGroup = array())
    {
        // validation for constraint: array
        if ('' !== ($shipGroupArrayErrorMessage = self::validateShipGroupForArrayConstraintsFromSetShipGroup($shipGroup))) {
            throw new \InvalidArgumentException($shipGroupArrayErrorMessage, __LINE__);
        }
        $this->shipGroup = $shipGroup;
        return $this;
    }
    /**
     * Add item to shipGroup value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToShipGroup(\StructType\SearchColumnLongField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnLongField) {
            throw new \InvalidArgumentException(sprintf('The shipGroup 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->shipGroup[] = $item;
        return $this;
    }
    /**
     * Get shipMethod value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getShipMethod()
    {
        return $this->shipMethod;
    }
    /**
     * This method is responsible for validating the values passed to the setShipMethod method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipMethod method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipMethodForArrayConstraintsFromSetShipMethod(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicShipMethodItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipMethodItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipMethodItem) ? get_class($transactionSearchRowBasicShipMethodItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipMethodItem), var_export($transactionSearchRowBasicShipMethodItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipMethod 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 shipMethod value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $shipMethod
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setShipMethod(array $shipMethod = array())
    {
        // validation for constraint: array
        if ('' !== ($shipMethodArrayErrorMessage = self::validateShipMethodForArrayConstraintsFromSetShipMethod($shipMethod))) {
            throw new \InvalidArgumentException($shipMethodArrayErrorMessage, __LINE__);
        }
        $this->shipMethod = $shipMethod;
        return $this;
    }
    /**
     * Add item to shipMethod value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToShipMethod(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The shipMethod 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->shipMethod[] = $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 $transactionSearchRowBasicShipPhoneItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipPhoneItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipPhoneItem) ? get_class($transactionSearchRowBasicShipPhoneItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipPhoneItem), var_export($transactionSearchRowBasicShipPhoneItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 shippingAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getShippingAmount()
    {
        return $this->shippingAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setShippingAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShippingAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShippingAmountForArrayConstraintsFromSetShippingAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicShippingAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShippingAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShippingAmountItem) ? get_class($transactionSearchRowBasicShippingAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShippingAmountItem), var_export($transactionSearchRowBasicShippingAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shippingAmount 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 shippingAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $shippingAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setShippingAmount(array $shippingAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($shippingAmountArrayErrorMessage = self::validateShippingAmountForArrayConstraintsFromSetShippingAmount($shippingAmount))) {
            throw new \InvalidArgumentException($shippingAmountArrayErrorMessage, __LINE__);
        }
        $this->shippingAmount = $shippingAmount;
        return $this;
    }
    /**
     * Add item to shippingAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToShippingAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The shippingAmount 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->shippingAmount[] = $item;
        return $this;
    }
    /**
     * Get shipRecvStatusLine value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getShipRecvStatusLine()
    {
        return $this->shipRecvStatusLine;
    }
    /**
     * This method is responsible for validating the values passed to the setShipRecvStatusLine method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipRecvStatusLine method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipRecvStatusLineForArrayConstraintsFromSetShipRecvStatusLine(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicShipRecvStatusLineItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipRecvStatusLineItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipRecvStatusLineItem) ? get_class($transactionSearchRowBasicShipRecvStatusLineItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipRecvStatusLineItem), var_export($transactionSearchRowBasicShipRecvStatusLineItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipRecvStatusLine 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 shipRecvStatusLine value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $shipRecvStatusLine
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setShipRecvStatusLine(array $shipRecvStatusLine = array())
    {
        // validation for constraint: array
        if ('' !== ($shipRecvStatusLineArrayErrorMessage = self::validateShipRecvStatusLineForArrayConstraintsFromSetShipRecvStatusLine($shipRecvStatusLine))) {
            throw new \InvalidArgumentException($shipRecvStatusLineArrayErrorMessage, __LINE__);
        }
        $this->shipRecvStatusLine = $shipRecvStatusLine;
        return $this;
    }
    /**
     * Add item to shipRecvStatusLine value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToShipRecvStatusLine(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The shipRecvStatusLine 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->shipRecvStatusLine[] = $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 $transactionSearchRowBasicShipStateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipStateItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipStateItem) ? get_class($transactionSearchRowBasicShipStateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipStateItem), var_export($transactionSearchRowBasicShipStateItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 shipTo value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getShipTo()
    {
        return $this->shipTo;
    }
    /**
     * This method is responsible for validating the values passed to the setShipTo method
     * This method is willingly generated in order to preserve the one-line inline validation within the setShipTo method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateShipToForArrayConstraintsFromSetShipTo(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicShipToItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipToItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipToItem) ? get_class($transactionSearchRowBasicShipToItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipToItem), var_export($transactionSearchRowBasicShipToItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The shipTo 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 shipTo value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $shipTo
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setShipTo(array $shipTo = array())
    {
        // validation for constraint: array
        if ('' !== ($shipToArrayErrorMessage = self::validateShipToForArrayConstraintsFromSetShipTo($shipTo))) {
            throw new \InvalidArgumentException($shipToArrayErrorMessage, __LINE__);
        }
        $this->shipTo = $shipTo;
        return $this;
    }
    /**
     * Add item to shipTo value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToShipTo(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The shipTo 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->shipTo[] = $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 $transactionSearchRowBasicShipZipItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicShipZipItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicShipZipItem) ? get_class($transactionSearchRowBasicShipZipItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicShipZipItem), var_export($transactionSearchRowBasicShipZipItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 signedAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getSignedAmount()
    {
        return $this->signedAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setSignedAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSignedAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSignedAmountForArrayConstraintsFromSetSignedAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSignedAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSignedAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSignedAmountItem) ? get_class($transactionSearchRowBasicSignedAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSignedAmountItem), var_export($transactionSearchRowBasicSignedAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The signedAmount 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 signedAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $signedAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSignedAmount(array $signedAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($signedAmountArrayErrorMessage = self::validateSignedAmountForArrayConstraintsFromSetSignedAmount($signedAmount))) {
            throw new \InvalidArgumentException($signedAmountArrayErrorMessage, __LINE__);
        }
        $this->signedAmount = $signedAmount;
        return $this;
    }
    /**
     * Add item to signedAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSignedAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The signedAmount 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->signedAmount[] = $item;
        return $this;
    }
    /**
     * Get source value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getSource()
    {
        return $this->source;
    }
    /**
     * This method is responsible for validating the values passed to the setSource method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSource method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSourceForArrayConstraintsFromSetSource(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSourceItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSourceItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSourceItem) ? get_class($transactionSearchRowBasicSourceItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSourceItem), var_export($transactionSearchRowBasicSourceItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The source 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 source value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $source
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSource(array $source = array())
    {
        // validation for constraint: array
        if ('' !== ($sourceArrayErrorMessage = self::validateSourceForArrayConstraintsFromSetSource($source))) {
            throw new \InvalidArgumentException($sourceArrayErrorMessage, __LINE__);
        }
        $this->source = $source;
        return $this;
    }
    /**
     * Add item to source value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSource(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The source 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->source[] = $item;
        return $this;
    }
    /**
     * Get startDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getStartDate()
    {
        return $this->startDate;
    }
    /**
     * This method is responsible for validating the values passed to the setStartDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setStartDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateStartDateForArrayConstraintsFromSetStartDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicStartDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicStartDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicStartDateItem) ? get_class($transactionSearchRowBasicStartDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicStartDateItem), var_export($transactionSearchRowBasicStartDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The startDate 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 startDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $startDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setStartDate(array $startDate = array())
    {
        // validation for constraint: array
        if ('' !== ($startDateArrayErrorMessage = self::validateStartDateForArrayConstraintsFromSetStartDate($startDate))) {
            throw new \InvalidArgumentException($startDateArrayErrorMessage, __LINE__);
        }
        $this->startDate = $startDate;
        return $this;
    }
    /**
     * Add item to startDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToStartDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The startDate 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->startDate[] = $item;
        return $this;
    }
    /**
     * Get status value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getStatus()
    {
        return $this->status;
    }
    /**
     * This method is responsible for validating the values passed to the setStatus method
     * This method is willingly generated in order to preserve the one-line inline validation within the setStatus method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateStatusForArrayConstraintsFromSetStatus(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicStatusItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicStatusItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicStatusItem) ? get_class($transactionSearchRowBasicStatusItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicStatusItem), var_export($transactionSearchRowBasicStatusItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The status 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 status value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $status
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setStatus(array $status = array())
    {
        // validation for constraint: array
        if ('' !== ($statusArrayErrorMessage = self::validateStatusForArrayConstraintsFromSetStatus($status))) {
            throw new \InvalidArgumentException($statusArrayErrorMessage, __LINE__);
        }
        $this->status = $status;
        return $this;
    }
    /**
     * Add item to status value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToStatus(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The status 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->status[] = $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 $transactionSearchRowBasicSubscriptionItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSubscriptionItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSubscriptionItem) ? get_class($transactionSearchRowBasicSubscriptionItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSubscriptionItem), var_export($transactionSearchRowBasicSubscriptionItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 subscriptionLine value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getSubscriptionLine()
    {
        return $this->subscriptionLine;
    }
    /**
     * This method is responsible for validating the values passed to the setSubscriptionLine method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSubscriptionLine method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSubscriptionLineForArrayConstraintsFromSetSubscriptionLine(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSubscriptionLineItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSubscriptionLineItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSubscriptionLineItem) ? get_class($transactionSearchRowBasicSubscriptionLineItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSubscriptionLineItem), var_export($transactionSearchRowBasicSubscriptionLineItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The subscriptionLine 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 subscriptionLine value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $subscriptionLine
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSubscriptionLine(array $subscriptionLine = array())
    {
        // validation for constraint: array
        if ('' !== ($subscriptionLineArrayErrorMessage = self::validateSubscriptionLineForArrayConstraintsFromSetSubscriptionLine($subscriptionLine))) {
            throw new \InvalidArgumentException($subscriptionLineArrayErrorMessage, __LINE__);
        }
        $this->subscriptionLine = $subscriptionLine;
        return $this;
    }
    /**
     * Add item to subscriptionLine value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSubscriptionLine(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The subscriptionLine 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->subscriptionLine[] = $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 $transactionSearchRowBasicSubsidiaryItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSubsidiaryItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSubsidiaryItem) ? get_class($transactionSearchRowBasicSubsidiaryItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSubsidiaryItem), var_export($transactionSearchRowBasicSubsidiaryItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 subsidiaryTaxRegNum value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getSubsidiaryTaxRegNum()
    {
        return $this->subsidiaryTaxRegNum;
    }
    /**
     * This method is responsible for validating the values passed to the setSubsidiaryTaxRegNum method
     * This method is willingly generated in order to preserve the one-line inline validation within the setSubsidiaryTaxRegNum method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateSubsidiaryTaxRegNumForArrayConstraintsFromSetSubsidiaryTaxRegNum(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicSubsidiaryTaxRegNumItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicSubsidiaryTaxRegNumItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicSubsidiaryTaxRegNumItem) ? get_class($transactionSearchRowBasicSubsidiaryTaxRegNumItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicSubsidiaryTaxRegNumItem), var_export($transactionSearchRowBasicSubsidiaryTaxRegNumItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The subsidiaryTaxRegNum 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 subsidiaryTaxRegNum value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $subsidiaryTaxRegNum
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setSubsidiaryTaxRegNum(array $subsidiaryTaxRegNum = array())
    {
        // validation for constraint: array
        if ('' !== ($subsidiaryTaxRegNumArrayErrorMessage = self::validateSubsidiaryTaxRegNumForArrayConstraintsFromSetSubsidiaryTaxRegNum($subsidiaryTaxRegNum))) {
            throw new \InvalidArgumentException($subsidiaryTaxRegNumArrayErrorMessage, __LINE__);
        }
        $this->subsidiaryTaxRegNum = $subsidiaryTaxRegNum;
        return $this;
    }
    /**
     * Add item to subsidiaryTaxRegNum value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToSubsidiaryTaxRegNum(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The subsidiaryTaxRegNum 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->subsidiaryTaxRegNum[] = $item;
        return $this;
    }
    /**
     * Get taxAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getTaxAmount()
    {
        return $this->taxAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setTaxAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTaxAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTaxAmountForArrayConstraintsFromSetTaxAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTaxAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTaxAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTaxAmountItem) ? get_class($transactionSearchRowBasicTaxAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTaxAmountItem), var_export($transactionSearchRowBasicTaxAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The taxAmount 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 taxAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $taxAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTaxAmount(array $taxAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($taxAmountArrayErrorMessage = self::validateTaxAmountForArrayConstraintsFromSetTaxAmount($taxAmount))) {
            throw new \InvalidArgumentException($taxAmountArrayErrorMessage, __LINE__);
        }
        $this->taxAmount = $taxAmount;
        return $this;
    }
    /**
     * Add item to taxAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTaxAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The taxAmount 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->taxAmount[] = $item;
        return $this;
    }
    /**
     * Get taxCode value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getTaxCode()
    {
        return $this->taxCode;
    }
    /**
     * This method is responsible for validating the values passed to the setTaxCode method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTaxCode method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTaxCodeForArrayConstraintsFromSetTaxCode(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTaxCodeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTaxCodeItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTaxCodeItem) ? get_class($transactionSearchRowBasicTaxCodeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTaxCodeItem), var_export($transactionSearchRowBasicTaxCodeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The taxCode 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 taxCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $taxCode
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTaxCode(array $taxCode = array())
    {
        // validation for constraint: array
        if ('' !== ($taxCodeArrayErrorMessage = self::validateTaxCodeForArrayConstraintsFromSetTaxCode($taxCode))) {
            throw new \InvalidArgumentException($taxCodeArrayErrorMessage, __LINE__);
        }
        $this->taxCode = $taxCode;
        return $this;
    }
    /**
     * Add item to taxCode value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTaxCode(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The taxCode 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->taxCode[] = $item;
        return $this;
    }
    /**
     * Get taxLine value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getTaxLine()
    {
        return $this->taxLine;
    }
    /**
     * This method is responsible for validating the values passed to the setTaxLine method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTaxLine method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTaxLineForArrayConstraintsFromSetTaxLine(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTaxLineItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTaxLineItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTaxLineItem) ? get_class($transactionSearchRowBasicTaxLineItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTaxLineItem), var_export($transactionSearchRowBasicTaxLineItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The taxLine 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 taxLine value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $taxLine
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTaxLine(array $taxLine = array())
    {
        // validation for constraint: array
        if ('' !== ($taxLineArrayErrorMessage = self::validateTaxLineForArrayConstraintsFromSetTaxLine($taxLine))) {
            throw new \InvalidArgumentException($taxLineArrayErrorMessage, __LINE__);
        }
        $this->taxLine = $taxLine;
        return $this;
    }
    /**
     * Add item to taxLine value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTaxLine(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The taxLine 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->taxLine[] = $item;
        return $this;
    }
    /**
     * Get taxPeriod value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getTaxPeriod()
    {
        return $this->taxPeriod;
    }
    /**
     * This method is responsible for validating the values passed to the setTaxPeriod method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTaxPeriod method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTaxPeriodForArrayConstraintsFromSetTaxPeriod(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTaxPeriodItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTaxPeriodItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTaxPeriodItem) ? get_class($transactionSearchRowBasicTaxPeriodItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTaxPeriodItem), var_export($transactionSearchRowBasicTaxPeriodItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The taxPeriod 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 taxPeriod value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $taxPeriod
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTaxPeriod(array $taxPeriod = array())
    {
        // validation for constraint: array
        if ('' !== ($taxPeriodArrayErrorMessage = self::validateTaxPeriodForArrayConstraintsFromSetTaxPeriod($taxPeriod))) {
            throw new \InvalidArgumentException($taxPeriodArrayErrorMessage, __LINE__);
        }
        $this->taxPeriod = $taxPeriod;
        return $this;
    }
    /**
     * Add item to taxPeriod value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTaxPeriod(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The taxPeriod 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->taxPeriod[] = $item;
        return $this;
    }
    /**
     * Get taxPointDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getTaxPointDate()
    {
        return $this->taxPointDate;
    }
    /**
     * This method is responsible for validating the values passed to the setTaxPointDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTaxPointDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTaxPointDateForArrayConstraintsFromSetTaxPointDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTaxPointDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTaxPointDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTaxPointDateItem) ? get_class($transactionSearchRowBasicTaxPointDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTaxPointDateItem), var_export($transactionSearchRowBasicTaxPointDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The taxPointDate 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 taxPointDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $taxPointDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTaxPointDate(array $taxPointDate = array())
    {
        // validation for constraint: array
        if ('' !== ($taxPointDateArrayErrorMessage = self::validateTaxPointDateForArrayConstraintsFromSetTaxPointDate($taxPointDate))) {
            throw new \InvalidArgumentException($taxPointDateArrayErrorMessage, __LINE__);
        }
        $this->taxPointDate = $taxPointDate;
        return $this;
    }
    /**
     * Add item to taxPointDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTaxPointDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The taxPointDate 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->taxPointDate[] = $item;
        return $this;
    }
    /**
     * Get taxTotal value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getTaxTotal()
    {
        return $this->taxTotal;
    }
    /**
     * This method is responsible for validating the values passed to the setTaxTotal method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTaxTotal method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTaxTotalForArrayConstraintsFromSetTaxTotal(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTaxTotalItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTaxTotalItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTaxTotalItem) ? get_class($transactionSearchRowBasicTaxTotalItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTaxTotalItem), var_export($transactionSearchRowBasicTaxTotalItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The taxTotal 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 taxTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $taxTotal
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTaxTotal(array $taxTotal = array())
    {
        // validation for constraint: array
        if ('' !== ($taxTotalArrayErrorMessage = self::validateTaxTotalForArrayConstraintsFromSetTaxTotal($taxTotal))) {
            throw new \InvalidArgumentException($taxTotalArrayErrorMessage, __LINE__);
        }
        $this->taxTotal = $taxTotal;
        return $this;
    }
    /**
     * Add item to taxTotal value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTaxTotal(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The taxTotal 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->taxTotal[] = $item;
        return $this;
    }
    /**
     * Get termInMonths value
     * @return \StructType\SearchColumnLongField[]|null
     */
    public function getTermInMonths()
    {
        return $this->termInMonths;
    }
    /**
     * This method is responsible for validating the values passed to the setTermInMonths method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTermInMonths method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTermInMonthsForArrayConstraintsFromSetTermInMonths(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTermInMonthsItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTermInMonthsItem instanceof \StructType\SearchColumnLongField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTermInMonthsItem) ? get_class($transactionSearchRowBasicTermInMonthsItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTermInMonthsItem), var_export($transactionSearchRowBasicTermInMonthsItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The termInMonths 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 termInMonths value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField[] $termInMonths
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTermInMonths(array $termInMonths = array())
    {
        // validation for constraint: array
        if ('' !== ($termInMonthsArrayErrorMessage = self::validateTermInMonthsForArrayConstraintsFromSetTermInMonths($termInMonths))) {
            throw new \InvalidArgumentException($termInMonthsArrayErrorMessage, __LINE__);
        }
        $this->termInMonths = $termInMonths;
        return $this;
    }
    /**
     * Add item to termInMonths value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnLongField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTermInMonths(\StructType\SearchColumnLongField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnLongField) {
            throw new \InvalidArgumentException(sprintf('The termInMonths 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->termInMonths[] = $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 $transactionSearchRowBasicTermsItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTermsItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTermsItem) ? get_class($transactionSearchRowBasicTermsItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTermsItem), var_export($transactionSearchRowBasicTermsItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 termsOfSale value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getTermsOfSale()
    {
        return $this->termsOfSale;
    }
    /**
     * This method is responsible for validating the values passed to the setTermsOfSale method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTermsOfSale method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTermsOfSaleForArrayConstraintsFromSetTermsOfSale(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTermsOfSaleItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTermsOfSaleItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTermsOfSaleItem) ? get_class($transactionSearchRowBasicTermsOfSaleItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTermsOfSaleItem), var_export($transactionSearchRowBasicTermsOfSaleItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The termsOfSale 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 termsOfSale value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $termsOfSale
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTermsOfSale(array $termsOfSale = array())
    {
        // validation for constraint: array
        if ('' !== ($termsOfSaleArrayErrorMessage = self::validateTermsOfSaleForArrayConstraintsFromSetTermsOfSale($termsOfSale))) {
            throw new \InvalidArgumentException($termsOfSaleArrayErrorMessage, __LINE__);
        }
        $this->termsOfSale = $termsOfSale;
        return $this;
    }
    /**
     * Add item to termsOfSale value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTermsOfSale(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The termsOfSale 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->termsOfSale[] = $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 $transactionSearchRowBasicTitleItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTitleItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTitleItem) ? get_class($transactionSearchRowBasicTitleItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTitleItem), var_export($transactionSearchRowBasicTitleItem, 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\TransactionSearchRowBasic
     */
    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\TransactionSearchRowBasic
     */
    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 toBeEmailed value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getToBeEmailed()
    {
        return $this->toBeEmailed;
    }
    /**
     * This method is responsible for validating the values passed to the setToBeEmailed method
     * This method is willingly generated in order to preserve the one-line inline validation within the setToBeEmailed method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateToBeEmailedForArrayConstraintsFromSetToBeEmailed(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicToBeEmailedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicToBeEmailedItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicToBeEmailedItem) ? get_class($transactionSearchRowBasicToBeEmailedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicToBeEmailedItem), var_export($transactionSearchRowBasicToBeEmailedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The toBeEmailed 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 toBeEmailed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $toBeEmailed
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setToBeEmailed(array $toBeEmailed = array())
    {
        // validation for constraint: array
        if ('' !== ($toBeEmailedArrayErrorMessage = self::validateToBeEmailedForArrayConstraintsFromSetToBeEmailed($toBeEmailed))) {
            throw new \InvalidArgumentException($toBeEmailedArrayErrorMessage, __LINE__);
        }
        $this->toBeEmailed = $toBeEmailed;
        return $this;
    }
    /**
     * Add item to toBeEmailed value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToToBeEmailed(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The toBeEmailed 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->toBeEmailed[] = $item;
        return $this;
    }
    /**
     * Get toBePrinted value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getToBePrinted()
    {
        return $this->toBePrinted;
    }
    /**
     * This method is responsible for validating the values passed to the setToBePrinted method
     * This method is willingly generated in order to preserve the one-line inline validation within the setToBePrinted method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateToBePrintedForArrayConstraintsFromSetToBePrinted(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicToBePrintedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicToBePrintedItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicToBePrintedItem) ? get_class($transactionSearchRowBasicToBePrintedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicToBePrintedItem), var_export($transactionSearchRowBasicToBePrintedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The toBePrinted 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 toBePrinted value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $toBePrinted
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setToBePrinted(array $toBePrinted = array())
    {
        // validation for constraint: array
        if ('' !== ($toBePrintedArrayErrorMessage = self::validateToBePrintedForArrayConstraintsFromSetToBePrinted($toBePrinted))) {
            throw new \InvalidArgumentException($toBePrintedArrayErrorMessage, __LINE__);
        }
        $this->toBePrinted = $toBePrinted;
        return $this;
    }
    /**
     * Add item to toBePrinted value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToToBePrinted(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The toBePrinted 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->toBePrinted[] = $item;
        return $this;
    }
    /**
     * Get toSubsidiary value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getToSubsidiary()
    {
        return $this->toSubsidiary;
    }
    /**
     * This method is responsible for validating the values passed to the setToSubsidiary method
     * This method is willingly generated in order to preserve the one-line inline validation within the setToSubsidiary method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateToSubsidiaryForArrayConstraintsFromSetToSubsidiary(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicToSubsidiaryItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicToSubsidiaryItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicToSubsidiaryItem) ? get_class($transactionSearchRowBasicToSubsidiaryItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicToSubsidiaryItem), var_export($transactionSearchRowBasicToSubsidiaryItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The toSubsidiary 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 toSubsidiary value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $toSubsidiary
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setToSubsidiary(array $toSubsidiary = array())
    {
        // validation for constraint: array
        if ('' !== ($toSubsidiaryArrayErrorMessage = self::validateToSubsidiaryForArrayConstraintsFromSetToSubsidiary($toSubsidiary))) {
            throw new \InvalidArgumentException($toSubsidiaryArrayErrorMessage, __LINE__);
        }
        $this->toSubsidiary = $toSubsidiary;
        return $this;
    }
    /**
     * Add item to toSubsidiary value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToToSubsidiary(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The toSubsidiary 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->toSubsidiary[] = $item;
        return $this;
    }
    /**
     * Get total value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getTotal()
    {
        return $this->total;
    }
    /**
     * This method is responsible for validating the values passed to the setTotal method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTotal method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTotalForArrayConstraintsFromSetTotal(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTotalItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTotalItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTotalItem) ? get_class($transactionSearchRowBasicTotalItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTotalItem), var_export($transactionSearchRowBasicTotalItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The total 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 total value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $total
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTotal(array $total = array())
    {
        // validation for constraint: array
        if ('' !== ($totalArrayErrorMessage = self::validateTotalForArrayConstraintsFromSetTotal($total))) {
            throw new \InvalidArgumentException($totalArrayErrorMessage, __LINE__);
        }
        $this->total = $total;
        return $this;
    }
    /**
     * Add item to total value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTotal(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The total 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->total[] = $item;
        return $this;
    }
    /**
     * Get totalCostEstimate value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getTotalCostEstimate()
    {
        return $this->totalCostEstimate;
    }
    /**
     * This method is responsible for validating the values passed to the setTotalCostEstimate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTotalCostEstimate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTotalCostEstimateForArrayConstraintsFromSetTotalCostEstimate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTotalCostEstimateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTotalCostEstimateItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTotalCostEstimateItem) ? get_class($transactionSearchRowBasicTotalCostEstimateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTotalCostEstimateItem), var_export($transactionSearchRowBasicTotalCostEstimateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The totalCostEstimate 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 totalCostEstimate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $totalCostEstimate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTotalCostEstimate(array $totalCostEstimate = array())
    {
        // validation for constraint: array
        if ('' !== ($totalCostEstimateArrayErrorMessage = self::validateTotalCostEstimateForArrayConstraintsFromSetTotalCostEstimate($totalCostEstimate))) {
            throw new \InvalidArgumentException($totalCostEstimateArrayErrorMessage, __LINE__);
        }
        $this->totalCostEstimate = $totalCostEstimate;
        return $this;
    }
    /**
     * Add item to totalCostEstimate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTotalCostEstimate(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The totalCostEstimate 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->totalCostEstimate[] = $item;
        return $this;
    }
    /**
     * Get trackingNumbers value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getTrackingNumbers()
    {
        return $this->trackingNumbers;
    }
    /**
     * This method is responsible for validating the values passed to the setTrackingNumbers method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTrackingNumbers method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTrackingNumbersForArrayConstraintsFromSetTrackingNumbers(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTrackingNumbersItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTrackingNumbersItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTrackingNumbersItem) ? get_class($transactionSearchRowBasicTrackingNumbersItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTrackingNumbersItem), var_export($transactionSearchRowBasicTrackingNumbersItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The trackingNumbers 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 trackingNumbers value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $trackingNumbers
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTrackingNumbers(array $trackingNumbers = array())
    {
        // validation for constraint: array
        if ('' !== ($trackingNumbersArrayErrorMessage = self::validateTrackingNumbersForArrayConstraintsFromSetTrackingNumbers($trackingNumbers))) {
            throw new \InvalidArgumentException($trackingNumbersArrayErrorMessage, __LINE__);
        }
        $this->trackingNumbers = $trackingNumbers;
        return $this;
    }
    /**
     * Add item to trackingNumbers value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTrackingNumbers(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The trackingNumbers 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->trackingNumbers[] = $item;
        return $this;
    }
    /**
     * Get tranDate value
     * @return \StructType\SearchColumnDateField[]|null
     */
    public function getTranDate()
    {
        return $this->tranDate;
    }
    /**
     * This method is responsible for validating the values passed to the setTranDate method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTranDate method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTranDateForArrayConstraintsFromSetTranDate(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTranDateItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTranDateItem instanceof \StructType\SearchColumnDateField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTranDateItem) ? get_class($transactionSearchRowBasicTranDateItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTranDateItem), var_export($transactionSearchRowBasicTranDateItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The tranDate 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 tranDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField[] $tranDate
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTranDate(array $tranDate = array())
    {
        // validation for constraint: array
        if ('' !== ($tranDateArrayErrorMessage = self::validateTranDateForArrayConstraintsFromSetTranDate($tranDate))) {
            throw new \InvalidArgumentException($tranDateArrayErrorMessage, __LINE__);
        }
        $this->tranDate = $tranDate;
        return $this;
    }
    /**
     * Add item to tranDate value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDateField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTranDate(\StructType\SearchColumnDateField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDateField) {
            throw new \InvalidArgumentException(sprintf('The tranDate 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->tranDate[] = $item;
        return $this;
    }
    /**
     * Get tranEstGrossProfit value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getTranEstGrossProfit()
    {
        return $this->tranEstGrossProfit;
    }
    /**
     * This method is responsible for validating the values passed to the setTranEstGrossProfit method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTranEstGrossProfit method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTranEstGrossProfitForArrayConstraintsFromSetTranEstGrossProfit(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTranEstGrossProfitItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTranEstGrossProfitItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTranEstGrossProfitItem) ? get_class($transactionSearchRowBasicTranEstGrossProfitItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTranEstGrossProfitItem), var_export($transactionSearchRowBasicTranEstGrossProfitItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The tranEstGrossProfit 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 tranEstGrossProfit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $tranEstGrossProfit
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTranEstGrossProfit(array $tranEstGrossProfit = array())
    {
        // validation for constraint: array
        if ('' !== ($tranEstGrossProfitArrayErrorMessage = self::validateTranEstGrossProfitForArrayConstraintsFromSetTranEstGrossProfit($tranEstGrossProfit))) {
            throw new \InvalidArgumentException($tranEstGrossProfitArrayErrorMessage, __LINE__);
        }
        $this->tranEstGrossProfit = $tranEstGrossProfit;
        return $this;
    }
    /**
     * Add item to tranEstGrossProfit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTranEstGrossProfit(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The tranEstGrossProfit 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->tranEstGrossProfit[] = $item;
        return $this;
    }
    /**
     * Get tranFxEstGrossProfit value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getTranFxEstGrossProfit()
    {
        return $this->tranFxEstGrossProfit;
    }
    /**
     * This method is responsible for validating the values passed to the setTranFxEstGrossProfit method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTranFxEstGrossProfit method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTranFxEstGrossProfitForArrayConstraintsFromSetTranFxEstGrossProfit(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTranFxEstGrossProfitItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTranFxEstGrossProfitItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTranFxEstGrossProfitItem) ? get_class($transactionSearchRowBasicTranFxEstGrossProfitItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTranFxEstGrossProfitItem), var_export($transactionSearchRowBasicTranFxEstGrossProfitItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The tranFxEstGrossProfit 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 tranFxEstGrossProfit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $tranFxEstGrossProfit
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTranFxEstGrossProfit(array $tranFxEstGrossProfit = array())
    {
        // validation for constraint: array
        if ('' !== ($tranFxEstGrossProfitArrayErrorMessage = self::validateTranFxEstGrossProfitForArrayConstraintsFromSetTranFxEstGrossProfit($tranFxEstGrossProfit))) {
            throw new \InvalidArgumentException($tranFxEstGrossProfitArrayErrorMessage, __LINE__);
        }
        $this->tranFxEstGrossProfit = $tranFxEstGrossProfit;
        return $this;
    }
    /**
     * Add item to tranFxEstGrossProfit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTranFxEstGrossProfit(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The tranFxEstGrossProfit 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->tranFxEstGrossProfit[] = $item;
        return $this;
    }
    /**
     * Get tranId value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getTranId()
    {
        return $this->tranId;
    }
    /**
     * This method is responsible for validating the values passed to the setTranId method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTranId method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTranIdForArrayConstraintsFromSetTranId(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTranIdItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTranIdItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTranIdItem) ? get_class($transactionSearchRowBasicTranIdItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTranIdItem), var_export($transactionSearchRowBasicTranIdItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The tranId 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 tranId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $tranId
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTranId(array $tranId = array())
    {
        // validation for constraint: array
        if ('' !== ($tranIdArrayErrorMessage = self::validateTranIdForArrayConstraintsFromSetTranId($tranId))) {
            throw new \InvalidArgumentException($tranIdArrayErrorMessage, __LINE__);
        }
        $this->tranId = $tranId;
        return $this;
    }
    /**
     * Add item to tranId value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTranId(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The tranId 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->tranId[] = $item;
        return $this;
    }
    /**
     * Get tranIsVsoeBundle value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getTranIsVsoeBundle()
    {
        return $this->tranIsVsoeBundle;
    }
    /**
     * This method is responsible for validating the values passed to the setTranIsVsoeBundle method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTranIsVsoeBundle method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTranIsVsoeBundleForArrayConstraintsFromSetTranIsVsoeBundle(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTranIsVsoeBundleItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTranIsVsoeBundleItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTranIsVsoeBundleItem) ? get_class($transactionSearchRowBasicTranIsVsoeBundleItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTranIsVsoeBundleItem), var_export($transactionSearchRowBasicTranIsVsoeBundleItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The tranIsVsoeBundle 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 tranIsVsoeBundle value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $tranIsVsoeBundle
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTranIsVsoeBundle(array $tranIsVsoeBundle = array())
    {
        // validation for constraint: array
        if ('' !== ($tranIsVsoeBundleArrayErrorMessage = self::validateTranIsVsoeBundleForArrayConstraintsFromSetTranIsVsoeBundle($tranIsVsoeBundle))) {
            throw new \InvalidArgumentException($tranIsVsoeBundleArrayErrorMessage, __LINE__);
        }
        $this->tranIsVsoeBundle = $tranIsVsoeBundle;
        return $this;
    }
    /**
     * Add item to tranIsVsoeBundle value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTranIsVsoeBundle(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The tranIsVsoeBundle 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->tranIsVsoeBundle[] = $item;
        return $this;
    }
    /**
     * Get transactionDiscount value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getTransactionDiscount()
    {
        return $this->transactionDiscount;
    }
    /**
     * This method is responsible for validating the values passed to the setTransactionDiscount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTransactionDiscount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTransactionDiscountForArrayConstraintsFromSetTransactionDiscount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTransactionDiscountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTransactionDiscountItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTransactionDiscountItem) ? get_class($transactionSearchRowBasicTransactionDiscountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTransactionDiscountItem), var_export($transactionSearchRowBasicTransactionDiscountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The transactionDiscount 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 transactionDiscount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $transactionDiscount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTransactionDiscount(array $transactionDiscount = array())
    {
        // validation for constraint: array
        if ('' !== ($transactionDiscountArrayErrorMessage = self::validateTransactionDiscountForArrayConstraintsFromSetTransactionDiscount($transactionDiscount))) {
            throw new \InvalidArgumentException($transactionDiscountArrayErrorMessage, __LINE__);
        }
        $this->transactionDiscount = $transactionDiscount;
        return $this;
    }
    /**
     * Add item to transactionDiscount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTransactionDiscount(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The transactionDiscount 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->transactionDiscount[] = $item;
        return $this;
    }
    /**
     * Get transactionLineType value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getTransactionLineType()
    {
        return $this->transactionLineType;
    }
    /**
     * This method is responsible for validating the values passed to the setTransactionLineType method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTransactionLineType method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTransactionLineTypeForArrayConstraintsFromSetTransactionLineType(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTransactionLineTypeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTransactionLineTypeItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTransactionLineTypeItem) ? get_class($transactionSearchRowBasicTransactionLineTypeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTransactionLineTypeItem), var_export($transactionSearchRowBasicTransactionLineTypeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The transactionLineType 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 transactionLineType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $transactionLineType
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTransactionLineType(array $transactionLineType = array())
    {
        // validation for constraint: array
        if ('' !== ($transactionLineTypeArrayErrorMessage = self::validateTransactionLineTypeForArrayConstraintsFromSetTransactionLineType($transactionLineType))) {
            throw new \InvalidArgumentException($transactionLineTypeArrayErrorMessage, __LINE__);
        }
        $this->transactionLineType = $transactionLineType;
        return $this;
    }
    /**
     * Add item to transactionLineType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTransactionLineType(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The transactionLineType 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->transactionLineType[] = $item;
        return $this;
    }
    /**
     * Get transactionNumber value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getTransactionNumber()
    {
        return $this->transactionNumber;
    }
    /**
     * This method is responsible for validating the values passed to the setTransactionNumber method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTransactionNumber method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTransactionNumberForArrayConstraintsFromSetTransactionNumber(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTransactionNumberItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTransactionNumberItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTransactionNumberItem) ? get_class($transactionSearchRowBasicTransactionNumberItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTransactionNumberItem), var_export($transactionSearchRowBasicTransactionNumberItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The transactionNumber 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 transactionNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $transactionNumber
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTransactionNumber(array $transactionNumber = array())
    {
        // validation for constraint: array
        if ('' !== ($transactionNumberArrayErrorMessage = self::validateTransactionNumberForArrayConstraintsFromSetTransactionNumber($transactionNumber))) {
            throw new \InvalidArgumentException($transactionNumberArrayErrorMessage, __LINE__);
        }
        $this->transactionNumber = $transactionNumber;
        return $this;
    }
    /**
     * Add item to transactionNumber value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTransactionNumber(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The transactionNumber 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->transactionNumber[] = $item;
        return $this;
    }
    /**
     * Get transferLocation value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getTransferLocation()
    {
        return $this->transferLocation;
    }
    /**
     * This method is responsible for validating the values passed to the setTransferLocation method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTransferLocation method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTransferLocationForArrayConstraintsFromSetTransferLocation(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTransferLocationItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTransferLocationItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTransferLocationItem) ? get_class($transactionSearchRowBasicTransferLocationItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTransferLocationItem), var_export($transactionSearchRowBasicTransferLocationItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The transferLocation 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 transferLocation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $transferLocation
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTransferLocation(array $transferLocation = array())
    {
        // validation for constraint: array
        if ('' !== ($transferLocationArrayErrorMessage = self::validateTransferLocationForArrayConstraintsFromSetTransferLocation($transferLocation))) {
            throw new \InvalidArgumentException($transferLocationArrayErrorMessage, __LINE__);
        }
        $this->transferLocation = $transferLocation;
        return $this;
    }
    /**
     * Add item to transferLocation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTransferLocation(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The transferLocation 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->transferLocation[] = $item;
        return $this;
    }
    /**
     * Get transferOrderItemLine value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getTransferOrderItemLine()
    {
        return $this->transferOrderItemLine;
    }
    /**
     * This method is responsible for validating the values passed to the setTransferOrderItemLine method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTransferOrderItemLine method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTransferOrderItemLineForArrayConstraintsFromSetTransferOrderItemLine(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTransferOrderItemLineItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTransferOrderItemLineItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTransferOrderItemLineItem) ? get_class($transactionSearchRowBasicTransferOrderItemLineItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTransferOrderItemLineItem), var_export($transactionSearchRowBasicTransferOrderItemLineItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The transferOrderItemLine 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 transferOrderItemLine value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $transferOrderItemLine
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTransferOrderItemLine(array $transferOrderItemLine = array())
    {
        // validation for constraint: array
        if ('' !== ($transferOrderItemLineArrayErrorMessage = self::validateTransferOrderItemLineForArrayConstraintsFromSetTransferOrderItemLine($transferOrderItemLine))) {
            throw new \InvalidArgumentException($transferOrderItemLineArrayErrorMessage, __LINE__);
        }
        $this->transferOrderItemLine = $transferOrderItemLine;
        return $this;
    }
    /**
     * Add item to transferOrderItemLine value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTransferOrderItemLine(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The transferOrderItemLine 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->transferOrderItemLine[] = $item;
        return $this;
    }
    /**
     * Get transferOrderQuantityCommitted value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getTransferOrderQuantityCommitted()
    {
        return $this->transferOrderQuantityCommitted;
    }
    /**
     * This method is responsible for validating the values passed to the setTransferOrderQuantityCommitted method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTransferOrderQuantityCommitted method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTransferOrderQuantityCommittedForArrayConstraintsFromSetTransferOrderQuantityCommitted(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTransferOrderQuantityCommittedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTransferOrderQuantityCommittedItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTransferOrderQuantityCommittedItem) ? get_class($transactionSearchRowBasicTransferOrderQuantityCommittedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTransferOrderQuantityCommittedItem), var_export($transactionSearchRowBasicTransferOrderQuantityCommittedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The transferOrderQuantityCommitted 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 transferOrderQuantityCommitted value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $transferOrderQuantityCommitted
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTransferOrderQuantityCommitted(array $transferOrderQuantityCommitted = array())
    {
        // validation for constraint: array
        if ('' !== ($transferOrderQuantityCommittedArrayErrorMessage = self::validateTransferOrderQuantityCommittedForArrayConstraintsFromSetTransferOrderQuantityCommitted($transferOrderQuantityCommitted))) {
            throw new \InvalidArgumentException($transferOrderQuantityCommittedArrayErrorMessage, __LINE__);
        }
        $this->transferOrderQuantityCommitted = $transferOrderQuantityCommitted;
        return $this;
    }
    /**
     * Add item to transferOrderQuantityCommitted value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTransferOrderQuantityCommitted(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The transferOrderQuantityCommitted 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->transferOrderQuantityCommitted[] = $item;
        return $this;
    }
    /**
     * Get transferOrderQuantityPacked value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getTransferOrderQuantityPacked()
    {
        return $this->transferOrderQuantityPacked;
    }
    /**
     * This method is responsible for validating the values passed to the setTransferOrderQuantityPacked method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTransferOrderQuantityPacked method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTransferOrderQuantityPackedForArrayConstraintsFromSetTransferOrderQuantityPacked(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTransferOrderQuantityPackedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTransferOrderQuantityPackedItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTransferOrderQuantityPackedItem) ? get_class($transactionSearchRowBasicTransferOrderQuantityPackedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTransferOrderQuantityPackedItem), var_export($transactionSearchRowBasicTransferOrderQuantityPackedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The transferOrderQuantityPacked 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 transferOrderQuantityPacked value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $transferOrderQuantityPacked
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTransferOrderQuantityPacked(array $transferOrderQuantityPacked = array())
    {
        // validation for constraint: array
        if ('' !== ($transferOrderQuantityPackedArrayErrorMessage = self::validateTransferOrderQuantityPackedForArrayConstraintsFromSetTransferOrderQuantityPacked($transferOrderQuantityPacked))) {
            throw new \InvalidArgumentException($transferOrderQuantityPackedArrayErrorMessage, __LINE__);
        }
        $this->transferOrderQuantityPacked = $transferOrderQuantityPacked;
        return $this;
    }
    /**
     * Add item to transferOrderQuantityPacked value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTransferOrderQuantityPacked(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The transferOrderQuantityPacked 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->transferOrderQuantityPacked[] = $item;
        return $this;
    }
    /**
     * Get transferOrderQuantityPicked value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getTransferOrderQuantityPicked()
    {
        return $this->transferOrderQuantityPicked;
    }
    /**
     * This method is responsible for validating the values passed to the setTransferOrderQuantityPicked method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTransferOrderQuantityPicked method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTransferOrderQuantityPickedForArrayConstraintsFromSetTransferOrderQuantityPicked(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTransferOrderQuantityPickedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTransferOrderQuantityPickedItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTransferOrderQuantityPickedItem) ? get_class($transactionSearchRowBasicTransferOrderQuantityPickedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTransferOrderQuantityPickedItem), var_export($transactionSearchRowBasicTransferOrderQuantityPickedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The transferOrderQuantityPicked 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 transferOrderQuantityPicked value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $transferOrderQuantityPicked
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTransferOrderQuantityPicked(array $transferOrderQuantityPicked = array())
    {
        // validation for constraint: array
        if ('' !== ($transferOrderQuantityPickedArrayErrorMessage = self::validateTransferOrderQuantityPickedForArrayConstraintsFromSetTransferOrderQuantityPicked($transferOrderQuantityPicked))) {
            throw new \InvalidArgumentException($transferOrderQuantityPickedArrayErrorMessage, __LINE__);
        }
        $this->transferOrderQuantityPicked = $transferOrderQuantityPicked;
        return $this;
    }
    /**
     * Add item to transferOrderQuantityPicked value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTransferOrderQuantityPicked(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The transferOrderQuantityPicked 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->transferOrderQuantityPicked[] = $item;
        return $this;
    }
    /**
     * Get transferOrderQuantityReceived value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getTransferOrderQuantityReceived()
    {
        return $this->transferOrderQuantityReceived;
    }
    /**
     * This method is responsible for validating the values passed to the setTransferOrderQuantityReceived method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTransferOrderQuantityReceived method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTransferOrderQuantityReceivedForArrayConstraintsFromSetTransferOrderQuantityReceived(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTransferOrderQuantityReceivedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTransferOrderQuantityReceivedItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTransferOrderQuantityReceivedItem) ? get_class($transactionSearchRowBasicTransferOrderQuantityReceivedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTransferOrderQuantityReceivedItem), var_export($transactionSearchRowBasicTransferOrderQuantityReceivedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The transferOrderQuantityReceived 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 transferOrderQuantityReceived value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $transferOrderQuantityReceived
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTransferOrderQuantityReceived(array $transferOrderQuantityReceived = array())
    {
        // validation for constraint: array
        if ('' !== ($transferOrderQuantityReceivedArrayErrorMessage = self::validateTransferOrderQuantityReceivedForArrayConstraintsFromSetTransferOrderQuantityReceived($transferOrderQuantityReceived))) {
            throw new \InvalidArgumentException($transferOrderQuantityReceivedArrayErrorMessage, __LINE__);
        }
        $this->transferOrderQuantityReceived = $transferOrderQuantityReceived;
        return $this;
    }
    /**
     * Add item to transferOrderQuantityReceived value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTransferOrderQuantityReceived(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The transferOrderQuantityReceived 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->transferOrderQuantityReceived[] = $item;
        return $this;
    }
    /**
     * Get transferOrderQuantityShipped value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getTransferOrderQuantityShipped()
    {
        return $this->transferOrderQuantityShipped;
    }
    /**
     * This method is responsible for validating the values passed to the setTransferOrderQuantityShipped method
     * This method is willingly generated in order to preserve the one-line inline validation within the setTransferOrderQuantityShipped method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTransferOrderQuantityShippedForArrayConstraintsFromSetTransferOrderQuantityShipped(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTransferOrderQuantityShippedItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTransferOrderQuantityShippedItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTransferOrderQuantityShippedItem) ? get_class($transactionSearchRowBasicTransferOrderQuantityShippedItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTransferOrderQuantityShippedItem), var_export($transactionSearchRowBasicTransferOrderQuantityShippedItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The transferOrderQuantityShipped 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 transferOrderQuantityShipped value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $transferOrderQuantityShipped
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setTransferOrderQuantityShipped(array $transferOrderQuantityShipped = array())
    {
        // validation for constraint: array
        if ('' !== ($transferOrderQuantityShippedArrayErrorMessage = self::validateTransferOrderQuantityShippedForArrayConstraintsFromSetTransferOrderQuantityShipped($transferOrderQuantityShipped))) {
            throw new \InvalidArgumentException($transferOrderQuantityShippedArrayErrorMessage, __LINE__);
        }
        $this->transferOrderQuantityShipped = $transferOrderQuantityShipped;
        return $this;
    }
    /**
     * Add item to transferOrderQuantityShipped value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToTransferOrderQuantityShipped(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The transferOrderQuantityShipped 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->transferOrderQuantityShipped[] = $item;
        return $this;
    }
    /**
     * Get type value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getType()
    {
        return $this->type;
    }
    /**
     * This method is responsible for validating the values passed to the setType method
     * This method is willingly generated in order to preserve the one-line inline validation within the setType method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateTypeForArrayConstraintsFromSetType(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicTypeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicTypeItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicTypeItem) ? get_class($transactionSearchRowBasicTypeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicTypeItem), var_export($transactionSearchRowBasicTypeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The type 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 type value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $type
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setType(array $type = array())
    {
        // validation for constraint: array
        if ('' !== ($typeArrayErrorMessage = self::validateTypeForArrayConstraintsFromSetType($type))) {
            throw new \InvalidArgumentException($typeArrayErrorMessage, __LINE__);
        }
        $this->type = $type;
        return $this;
    }
    /**
     * Add item to type value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToType(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The type 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->type[] = $item;
        return $this;
    }
    /**
     * Get unit value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getUnit()
    {
        return $this->unit;
    }
    /**
     * This method is responsible for validating the values passed to the setUnit method
     * This method is willingly generated in order to preserve the one-line inline validation within the setUnit method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateUnitForArrayConstraintsFromSetUnit(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicUnitItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicUnitItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicUnitItem) ? get_class($transactionSearchRowBasicUnitItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicUnitItem), var_export($transactionSearchRowBasicUnitItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The unit 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 unit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $unit
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setUnit(array $unit = array())
    {
        // validation for constraint: array
        if ('' !== ($unitArrayErrorMessage = self::validateUnitForArrayConstraintsFromSetUnit($unit))) {
            throw new \InvalidArgumentException($unitArrayErrorMessage, __LINE__);
        }
        $this->unit = $unit;
        return $this;
    }
    /**
     * Add item to unit value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToUnit(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The unit 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->unit[] = $item;
        return $this;
    }
    /**
     * Get unitCostOverride value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getUnitCostOverride()
    {
        return $this->unitCostOverride;
    }
    /**
     * This method is responsible for validating the values passed to the setUnitCostOverride method
     * This method is willingly generated in order to preserve the one-line inline validation within the setUnitCostOverride method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateUnitCostOverrideForArrayConstraintsFromSetUnitCostOverride(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicUnitCostOverrideItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicUnitCostOverrideItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicUnitCostOverrideItem) ? get_class($transactionSearchRowBasicUnitCostOverrideItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicUnitCostOverrideItem), var_export($transactionSearchRowBasicUnitCostOverrideItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The unitCostOverride 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 unitCostOverride value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $unitCostOverride
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setUnitCostOverride(array $unitCostOverride = array())
    {
        // validation for constraint: array
        if ('' !== ($unitCostOverrideArrayErrorMessage = self::validateUnitCostOverrideForArrayConstraintsFromSetUnitCostOverride($unitCostOverride))) {
            throw new \InvalidArgumentException($unitCostOverrideArrayErrorMessage, __LINE__);
        }
        $this->unitCostOverride = $unitCostOverride;
        return $this;
    }
    /**
     * Add item to unitCostOverride value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToUnitCostOverride(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The unitCostOverride 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->unitCostOverride[] = $item;
        return $this;
    }
    /**
     * Get vendType value
     * @return \StructType\SearchColumnSelectField[]|null
     */
    public function getVendType()
    {
        return $this->vendType;
    }
    /**
     * This method is responsible for validating the values passed to the setVendType method
     * This method is willingly generated in order to preserve the one-line inline validation within the setVendType method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateVendTypeForArrayConstraintsFromSetVendType(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicVendTypeItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicVendTypeItem instanceof \StructType\SearchColumnSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicVendTypeItem) ? get_class($transactionSearchRowBasicVendTypeItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicVendTypeItem), var_export($transactionSearchRowBasicVendTypeItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The vendType 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 vendType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField[] $vendType
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setVendType(array $vendType = array())
    {
        // validation for constraint: array
        if ('' !== ($vendTypeArrayErrorMessage = self::validateVendTypeForArrayConstraintsFromSetVendType($vendType))) {
            throw new \InvalidArgumentException($vendTypeArrayErrorMessage, __LINE__);
        }
        $this->vendType = $vendType;
        return $this;
    }
    /**
     * Add item to vendType value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToVendType(\StructType\SearchColumnSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnSelectField) {
            throw new \InvalidArgumentException(sprintf('The vendType 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->vendType[] = $item;
        return $this;
    }
    /**
     * Get visibleToCustomer value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getVisibleToCustomer()
    {
        return $this->visibleToCustomer;
    }
    /**
     * This method is responsible for validating the values passed to the setVisibleToCustomer method
     * This method is willingly generated in order to preserve the one-line inline validation within the setVisibleToCustomer method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateVisibleToCustomerForArrayConstraintsFromSetVisibleToCustomer(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicVisibleToCustomerItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicVisibleToCustomerItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicVisibleToCustomerItem) ? get_class($transactionSearchRowBasicVisibleToCustomerItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicVisibleToCustomerItem), var_export($transactionSearchRowBasicVisibleToCustomerItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The visibleToCustomer 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 visibleToCustomer value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $visibleToCustomer
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setVisibleToCustomer(array $visibleToCustomer = array())
    {
        // validation for constraint: array
        if ('' !== ($visibleToCustomerArrayErrorMessage = self::validateVisibleToCustomerForArrayConstraintsFromSetVisibleToCustomer($visibleToCustomer))) {
            throw new \InvalidArgumentException($visibleToCustomerArrayErrorMessage, __LINE__);
        }
        $this->visibleToCustomer = $visibleToCustomer;
        return $this;
    }
    /**
     * Add item to visibleToCustomer value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToVisibleToCustomer(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The visibleToCustomer 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->visibleToCustomer[] = $item;
        return $this;
    }
    /**
     * Get vsoeAllocation value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getVsoeAllocation()
    {
        return $this->vsoeAllocation;
    }
    /**
     * This method is responsible for validating the values passed to the setVsoeAllocation method
     * This method is willingly generated in order to preserve the one-line inline validation within the setVsoeAllocation method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateVsoeAllocationForArrayConstraintsFromSetVsoeAllocation(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicVsoeAllocationItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicVsoeAllocationItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicVsoeAllocationItem) ? get_class($transactionSearchRowBasicVsoeAllocationItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicVsoeAllocationItem), var_export($transactionSearchRowBasicVsoeAllocationItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The vsoeAllocation 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 vsoeAllocation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $vsoeAllocation
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setVsoeAllocation(array $vsoeAllocation = array())
    {
        // validation for constraint: array
        if ('' !== ($vsoeAllocationArrayErrorMessage = self::validateVsoeAllocationForArrayConstraintsFromSetVsoeAllocation($vsoeAllocation))) {
            throw new \InvalidArgumentException($vsoeAllocationArrayErrorMessage, __LINE__);
        }
        $this->vsoeAllocation = $vsoeAllocation;
        return $this;
    }
    /**
     * Add item to vsoeAllocation value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToVsoeAllocation(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The vsoeAllocation 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->vsoeAllocation[] = $item;
        return $this;
    }
    /**
     * Get vsoeAmount value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getVsoeAmount()
    {
        return $this->vsoeAmount;
    }
    /**
     * This method is responsible for validating the values passed to the setVsoeAmount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setVsoeAmount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateVsoeAmountForArrayConstraintsFromSetVsoeAmount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicVsoeAmountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicVsoeAmountItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicVsoeAmountItem) ? get_class($transactionSearchRowBasicVsoeAmountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicVsoeAmountItem), var_export($transactionSearchRowBasicVsoeAmountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The vsoeAmount 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 vsoeAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $vsoeAmount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setVsoeAmount(array $vsoeAmount = array())
    {
        // validation for constraint: array
        if ('' !== ($vsoeAmountArrayErrorMessage = self::validateVsoeAmountForArrayConstraintsFromSetVsoeAmount($vsoeAmount))) {
            throw new \InvalidArgumentException($vsoeAmountArrayErrorMessage, __LINE__);
        }
        $this->vsoeAmount = $vsoeAmount;
        return $this;
    }
    /**
     * Add item to vsoeAmount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToVsoeAmount(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The vsoeAmount 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->vsoeAmount[] = $item;
        return $this;
    }
    /**
     * Get vsoeDeferral value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getVsoeDeferral()
    {
        return $this->vsoeDeferral;
    }
    /**
     * This method is responsible for validating the values passed to the setVsoeDeferral method
     * This method is willingly generated in order to preserve the one-line inline validation within the setVsoeDeferral method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateVsoeDeferralForArrayConstraintsFromSetVsoeDeferral(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicVsoeDeferralItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicVsoeDeferralItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicVsoeDeferralItem) ? get_class($transactionSearchRowBasicVsoeDeferralItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicVsoeDeferralItem), var_export($transactionSearchRowBasicVsoeDeferralItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The vsoeDeferral 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 vsoeDeferral value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $vsoeDeferral
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setVsoeDeferral(array $vsoeDeferral = array())
    {
        // validation for constraint: array
        if ('' !== ($vsoeDeferralArrayErrorMessage = self::validateVsoeDeferralForArrayConstraintsFromSetVsoeDeferral($vsoeDeferral))) {
            throw new \InvalidArgumentException($vsoeDeferralArrayErrorMessage, __LINE__);
        }
        $this->vsoeDeferral = $vsoeDeferral;
        return $this;
    }
    /**
     * Add item to vsoeDeferral value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToVsoeDeferral(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The vsoeDeferral 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->vsoeDeferral[] = $item;
        return $this;
    }
    /**
     * Get vsoeDelivered value
     * @return \StructType\SearchColumnBooleanField[]|null
     */
    public function getVsoeDelivered()
    {
        return $this->vsoeDelivered;
    }
    /**
     * This method is responsible for validating the values passed to the setVsoeDelivered method
     * This method is willingly generated in order to preserve the one-line inline validation within the setVsoeDelivered method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateVsoeDeliveredForArrayConstraintsFromSetVsoeDelivered(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicVsoeDeliveredItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicVsoeDeliveredItem instanceof \StructType\SearchColumnBooleanField) {
                $invalidValues[] = is_object($transactionSearchRowBasicVsoeDeliveredItem) ? get_class($transactionSearchRowBasicVsoeDeliveredItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicVsoeDeliveredItem), var_export($transactionSearchRowBasicVsoeDeliveredItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The vsoeDelivered 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 vsoeDelivered value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField[] $vsoeDelivered
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setVsoeDelivered(array $vsoeDelivered = array())
    {
        // validation for constraint: array
        if ('' !== ($vsoeDeliveredArrayErrorMessage = self::validateVsoeDeliveredForArrayConstraintsFromSetVsoeDelivered($vsoeDelivered))) {
            throw new \InvalidArgumentException($vsoeDeliveredArrayErrorMessage, __LINE__);
        }
        $this->vsoeDelivered = $vsoeDelivered;
        return $this;
    }
    /**
     * Add item to vsoeDelivered value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnBooleanField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToVsoeDelivered(\StructType\SearchColumnBooleanField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnBooleanField) {
            throw new \InvalidArgumentException(sprintf('The vsoeDelivered 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->vsoeDelivered[] = $item;
        return $this;
    }
    /**
     * Get vsoePermitDiscount value
     * @return \StructType\SearchColumnEnumSelectField[]|null
     */
    public function getVsoePermitDiscount()
    {
        return $this->vsoePermitDiscount;
    }
    /**
     * This method is responsible for validating the values passed to the setVsoePermitDiscount method
     * This method is willingly generated in order to preserve the one-line inline validation within the setVsoePermitDiscount method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateVsoePermitDiscountForArrayConstraintsFromSetVsoePermitDiscount(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicVsoePermitDiscountItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicVsoePermitDiscountItem instanceof \StructType\SearchColumnEnumSelectField) {
                $invalidValues[] = is_object($transactionSearchRowBasicVsoePermitDiscountItem) ? get_class($transactionSearchRowBasicVsoePermitDiscountItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicVsoePermitDiscountItem), var_export($transactionSearchRowBasicVsoePermitDiscountItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The vsoePermitDiscount 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 vsoePermitDiscount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField[] $vsoePermitDiscount
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setVsoePermitDiscount(array $vsoePermitDiscount = array())
    {
        // validation for constraint: array
        if ('' !== ($vsoePermitDiscountArrayErrorMessage = self::validateVsoePermitDiscountForArrayConstraintsFromSetVsoePermitDiscount($vsoePermitDiscount))) {
            throw new \InvalidArgumentException($vsoePermitDiscountArrayErrorMessage, __LINE__);
        }
        $this->vsoePermitDiscount = $vsoePermitDiscount;
        return $this;
    }
    /**
     * Add item to vsoePermitDiscount value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnEnumSelectField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToVsoePermitDiscount(\StructType\SearchColumnEnumSelectField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnEnumSelectField) {
            throw new \InvalidArgumentException(sprintf('The vsoePermitDiscount 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->vsoePermitDiscount[] = $item;
        return $this;
    }
    /**
     * Get vsoePrice value
     * @return \StructType\SearchColumnDoubleField[]|null
     */
    public function getVsoePrice()
    {
        return $this->vsoePrice;
    }
    /**
     * This method is responsible for validating the values passed to the setVsoePrice method
     * This method is willingly generated in order to preserve the one-line inline validation within the setVsoePrice method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateVsoePriceForArrayConstraintsFromSetVsoePrice(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicVsoePriceItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicVsoePriceItem instanceof \StructType\SearchColumnDoubleField) {
                $invalidValues[] = is_object($transactionSearchRowBasicVsoePriceItem) ? get_class($transactionSearchRowBasicVsoePriceItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicVsoePriceItem), var_export($transactionSearchRowBasicVsoePriceItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The vsoePrice 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 vsoePrice value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField[] $vsoePrice
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setVsoePrice(array $vsoePrice = array())
    {
        // validation for constraint: array
        if ('' !== ($vsoePriceArrayErrorMessage = self::validateVsoePriceForArrayConstraintsFromSetVsoePrice($vsoePrice))) {
            throw new \InvalidArgumentException($vsoePriceArrayErrorMessage, __LINE__);
        }
        $this->vsoePrice = $vsoePrice;
        return $this;
    }
    /**
     * Add item to vsoePrice value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnDoubleField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToVsoePrice(\StructType\SearchColumnDoubleField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnDoubleField) {
            throw new \InvalidArgumentException(sprintf('The vsoePrice 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->vsoePrice[] = $item;
        return $this;
    }
    /**
     * Get webSite value
     * @return \StructType\SearchColumnStringField[]|null
     */
    public function getWebSite()
    {
        return $this->webSite;
    }
    /**
     * This method is responsible for validating the values passed to the setWebSite method
     * This method is willingly generated in order to preserve the one-line inline validation within the setWebSite method
     * @param array $values
     * @return string A non-empty message if the values does not match the validation rules
     */
    public static function validateWebSiteForArrayConstraintsFromSetWebSite(array $values = array())
    {
        $message = '';
        $invalidValues = [];
        foreach ($values as $transactionSearchRowBasicWebSiteItem) {
            // validation for constraint: itemType
            if (!$transactionSearchRowBasicWebSiteItem instanceof \StructType\SearchColumnStringField) {
                $invalidValues[] = is_object($transactionSearchRowBasicWebSiteItem) ? get_class($transactionSearchRowBasicWebSiteItem) : sprintf('%s(%s)', gettype($transactionSearchRowBasicWebSiteItem), var_export($transactionSearchRowBasicWebSiteItem, true));
            }
        }
        if (!empty($invalidValues)) {
            $message = sprintf('The webSite 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 webSite value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField[] $webSite
     * @return \StructType\TransactionSearchRowBasic
     */
    public function setWebSite(array $webSite = array())
    {
        // validation for constraint: array
        if ('' !== ($webSiteArrayErrorMessage = self::validateWebSiteForArrayConstraintsFromSetWebSite($webSite))) {
            throw new \InvalidArgumentException($webSiteArrayErrorMessage, __LINE__);
        }
        $this->webSite = $webSite;
        return $this;
    }
    /**
     * Add item to webSite value
     * @throws \InvalidArgumentException
     * @param \StructType\SearchColumnStringField $item
     * @return \StructType\TransactionSearchRowBasic
     */
    public function addToWebSite(\StructType\SearchColumnStringField $item)
    {
        // validation for constraint: itemType
        if (!$item instanceof \StructType\SearchColumnStringField) {
            throw new \InvalidArgumentException(sprintf('The webSite 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->webSite[] = $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\TransactionSearchRowBasic
     */
    public function setCustomFieldList(\StructType\SearchColumnCustomFieldList $customFieldList = null)
    {
        $this->customFieldList = $customFieldList;
        return $this;
    }
}
