<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for DonationCriteria StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:DonationCriteria
 * @subpackage Structs
 */
class DonationCriteria extends AbstractCriteria
{
    /**
     * The AmountFrom
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfdouble
     */
    public $AmountFrom;
    /**
     * The AmountTo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfdouble
     */
    public $AmountTo;
    /**
     * The AmountType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfAmountType8Q8HnG_P7
     */
    public $AmountType;
    /**
     * The AppealId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $AppealId;
    /**
     * The CampaignId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $CampaignId;
    /**
     * The DonationId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $DonationId;
    /**
     * The DonationKindForSearch
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $DonationKindForSearch;
    /**
     * The DonationProductItem
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $DonationProductItem;
    /**
     * The FundId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $FundId;
    /**
     * The FundsList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $FundsList;
    /**
     * The CharityId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $CharityId;
    /**
     * The DonationsList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $DonationsList;
    /**
     * Constructor method for DonationCriteria
     * @uses DonationCriteria::setAmountFrom()
     * @uses DonationCriteria::setAmountTo()
     * @uses DonationCriteria::setAmountType()
     * @uses DonationCriteria::setAppealId()
     * @uses DonationCriteria::setCampaignId()
     * @uses DonationCriteria::setDonationId()
     * @uses DonationCriteria::setDonationKindForSearch()
     * @uses DonationCriteria::setDonationProductItem()
     * @uses DonationCriteria::setFundId()
     * @uses DonationCriteria::setFundsList()
     * @uses DonationCriteria::setCharityId()
     * @uses DonationCriteria::setDonationsList()
     * @param \patest\StructType\SinglePropertyCriteriaOfdouble $amountFrom
     * @param \patest\StructType\SinglePropertyCriteriaOfdouble $amountTo
     * @param \patest\StructType\SinglePropertyCriteriaOfAmountType8Q8HnG_P7 $amountType
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $appealId
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $campaignId
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $donationId
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $donationKindForSearch
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $donationProductItem
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $fundId
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $fundsList
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $charityId
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $donationsList
     */
    public function __construct(\patest\StructType\SinglePropertyCriteriaOfdouble $amountFrom = null, \patest\StructType\SinglePropertyCriteriaOfdouble $amountTo = null, \patest\StructType\SinglePropertyCriteriaOfAmountType8Q8HnG_P7 $amountType = null, \patest\StructType\SinglePropertyCriteriaOfguid $appealId = null, \patest\StructType\SinglePropertyCriteriaOfguid $campaignId = null, \patest\StructType\SinglePropertyCriteriaOfguid $donationId = null, \patest\StructType\SinglePropertyCriteriaOfstring $donationKindForSearch = null, \patest\StructType\SinglePropertyCriteriaOfguid $donationProductItem = null, \patest\StructType\SinglePropertyCriteriaOfguid $fundId = null, \patest\StructType\SinglePropertyCriteriaOfstring $fundsList = null, \patest\StructType\SinglePropertyCriteriaOfguid $charityId = null, \patest\StructType\SinglePropertyCriteriaOfstring $donationsList = null)
    {
        $this
            ->setAmountFrom($amountFrom)
            ->setAmountTo($amountTo)
            ->setAmountType($amountType)
            ->setAppealId($appealId)
            ->setCampaignId($campaignId)
            ->setDonationId($donationId)
            ->setDonationKindForSearch($donationKindForSearch)
            ->setDonationProductItem($donationProductItem)
            ->setFundId($fundId)
            ->setFundsList($fundsList)
            ->setCharityId($charityId)
            ->setDonationsList($donationsList);
    }
    /**
     * Get AmountFrom value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfdouble|null
     */
    public function getAmountFrom()
    {
        return isset($this->AmountFrom) ? $this->AmountFrom : null;
    }
    /**
     * Set AmountFrom value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfdouble $amountFrom
     * @return \patest\StructType\DonationCriteria
     */
    public function setAmountFrom(\patest\StructType\SinglePropertyCriteriaOfdouble $amountFrom = null)
    {
        if (is_null($amountFrom) || (is_array($amountFrom) && empty($amountFrom))) {
            unset($this->AmountFrom);
        } else {
            $this->AmountFrom = $amountFrom;
        }
        return $this;
    }
    /**
     * Get AmountTo value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfdouble|null
     */
    public function getAmountTo()
    {
        return isset($this->AmountTo) ? $this->AmountTo : null;
    }
    /**
     * Set AmountTo value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfdouble $amountTo
     * @return \patest\StructType\DonationCriteria
     */
    public function setAmountTo(\patest\StructType\SinglePropertyCriteriaOfdouble $amountTo = null)
    {
        if (is_null($amountTo) || (is_array($amountTo) && empty($amountTo))) {
            unset($this->AmountTo);
        } else {
            $this->AmountTo = $amountTo;
        }
        return $this;
    }
    /**
     * Get AmountType value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfAmountType8Q8HnG_P7|null
     */
    public function getAmountType()
    {
        return isset($this->AmountType) ? $this->AmountType : null;
    }
    /**
     * Set AmountType value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfAmountType8Q8HnG_P7 $amountType
     * @return \patest\StructType\DonationCriteria
     */
    public function setAmountType(\patest\StructType\SinglePropertyCriteriaOfAmountType8Q8HnG_P7 $amountType = null)
    {
        if (is_null($amountType) || (is_array($amountType) && empty($amountType))) {
            unset($this->AmountType);
        } else {
            $this->AmountType = $amountType;
        }
        return $this;
    }
    /**
     * Get AppealId value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getAppealId()
    {
        return isset($this->AppealId) ? $this->AppealId : null;
    }
    /**
     * Set AppealId value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $appealId
     * @return \patest\StructType\DonationCriteria
     */
    public function setAppealId(\patest\StructType\SinglePropertyCriteriaOfguid $appealId = null)
    {
        if (is_null($appealId) || (is_array($appealId) && empty($appealId))) {
            unset($this->AppealId);
        } else {
            $this->AppealId = $appealId;
        }
        return $this;
    }
    /**
     * Get CampaignId value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getCampaignId()
    {
        return isset($this->CampaignId) ? $this->CampaignId : null;
    }
    /**
     * Set CampaignId value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $campaignId
     * @return \patest\StructType\DonationCriteria
     */
    public function setCampaignId(\patest\StructType\SinglePropertyCriteriaOfguid $campaignId = null)
    {
        if (is_null($campaignId) || (is_array($campaignId) && empty($campaignId))) {
            unset($this->CampaignId);
        } else {
            $this->CampaignId = $campaignId;
        }
        return $this;
    }
    /**
     * Get DonationId value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getDonationId()
    {
        return isset($this->DonationId) ? $this->DonationId : null;
    }
    /**
     * Set DonationId value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $donationId
     * @return \patest\StructType\DonationCriteria
     */
    public function setDonationId(\patest\StructType\SinglePropertyCriteriaOfguid $donationId = null)
    {
        if (is_null($donationId) || (is_array($donationId) && empty($donationId))) {
            unset($this->DonationId);
        } else {
            $this->DonationId = $donationId;
        }
        return $this;
    }
    /**
     * Get DonationKindForSearch value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfstring|null
     */
    public function getDonationKindForSearch()
    {
        return isset($this->DonationKindForSearch) ? $this->DonationKindForSearch : null;
    }
    /**
     * Set DonationKindForSearch value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $donationKindForSearch
     * @return \patest\StructType\DonationCriteria
     */
    public function setDonationKindForSearch(\patest\StructType\SinglePropertyCriteriaOfstring $donationKindForSearch = null)
    {
        if (is_null($donationKindForSearch) || (is_array($donationKindForSearch) && empty($donationKindForSearch))) {
            unset($this->DonationKindForSearch);
        } else {
            $this->DonationKindForSearch = $donationKindForSearch;
        }
        return $this;
    }
    /**
     * Get DonationProductItem value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getDonationProductItem()
    {
        return isset($this->DonationProductItem) ? $this->DonationProductItem : null;
    }
    /**
     * Set DonationProductItem value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $donationProductItem
     * @return \patest\StructType\DonationCriteria
     */
    public function setDonationProductItem(\patest\StructType\SinglePropertyCriteriaOfguid $donationProductItem = null)
    {
        if (is_null($donationProductItem) || (is_array($donationProductItem) && empty($donationProductItem))) {
            unset($this->DonationProductItem);
        } else {
            $this->DonationProductItem = $donationProductItem;
        }
        return $this;
    }
    /**
     * Get FundId value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getFundId()
    {
        return isset($this->FundId) ? $this->FundId : null;
    }
    /**
     * Set FundId value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $fundId
     * @return \patest\StructType\DonationCriteria
     */
    public function setFundId(\patest\StructType\SinglePropertyCriteriaOfguid $fundId = null)
    {
        if (is_null($fundId) || (is_array($fundId) && empty($fundId))) {
            unset($this->FundId);
        } else {
            $this->FundId = $fundId;
        }
        return $this;
    }
    /**
     * Get FundsList value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfstring|null
     */
    public function getFundsList()
    {
        return isset($this->FundsList) ? $this->FundsList : null;
    }
    /**
     * Set FundsList value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $fundsList
     * @return \patest\StructType\DonationCriteria
     */
    public function setFundsList(\patest\StructType\SinglePropertyCriteriaOfstring $fundsList = null)
    {
        if (is_null($fundsList) || (is_array($fundsList) && empty($fundsList))) {
            unset($this->FundsList);
        } else {
            $this->FundsList = $fundsList;
        }
        return $this;
    }
    /**
     * Get CharityId value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getCharityId()
    {
        return isset($this->CharityId) ? $this->CharityId : null;
    }
    /**
     * Set CharityId value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $charityId
     * @return \patest\StructType\DonationCriteria
     */
    public function setCharityId(\patest\StructType\SinglePropertyCriteriaOfguid $charityId = null)
    {
        if (is_null($charityId) || (is_array($charityId) && empty($charityId))) {
            unset($this->CharityId);
        } else {
            $this->CharityId = $charityId;
        }
        return $this;
    }
    /**
     * Get DonationsList value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfstring|null
     */
    public function getDonationsList()
    {
        return isset($this->DonationsList) ? $this->DonationsList : null;
    }
    /**
     * Set DonationsList value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $donationsList
     * @return \patest\StructType\DonationCriteria
     */
    public function setDonationsList(\patest\StructType\SinglePropertyCriteriaOfstring $donationsList = null)
    {
        if (is_null($donationsList) || (is_array($donationsList) && empty($donationsList))) {
            unset($this->DonationsList);
        } else {
            $this->DonationsList = $donationsList;
        }
        return $this;
    }
}
