<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Sales.AccountingJournalExtended StructType
 * @subpackage Structs
 */
class Sales_AccountingJournalExtended extends Sales_AccountingJournal
{
    /**
     * The LedgerName
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $LedgerName;
    /**
     * The OwnerName
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $OwnerName;
    /**
     * The _FloatAttribute1
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_FloatAttribute1;
    /**
     * The _FloatAttribute2
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_FloatAttribute2;
    /**
     * The _FloatAttribute3
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_FloatAttribute3;
    /**
     * The _GuidAttribute1
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_GuidAttribute1;
    /**
     * The _GuidAttribute2
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_GuidAttribute2;
    /**
     * The _GuidAttribute3
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_GuidAttribute3;
    /**
     * The _IntegerAttribute1
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_IntegerAttribute1;
    /**
     * The _IntegerAttribute2
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_IntegerAttribute2;
    /**
     * The _IntegerAttribute3
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_IntegerAttribute3;
    /**
     * The _MoneyAttribute1
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_MoneyAttribute1;
    /**
     * The _MoneyAttribute2
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_MoneyAttribute2;
    /**
     * The _MoneyAttribute3
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_MoneyAttribute3;
    /**
     * The _StringAttribute1
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_StringAttribute1;
    /**
     * The _StringAttribute2
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_StringAttribute2;
    /**
     * The _StringAttribute3
     * Meta information extracted from the WSDL
     * - documentation: Calculated.
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $_StringAttribute3;
    /**
     * Constructor method for Sales.AccountingJournalExtended
     * @uses Sales_AccountingJournalExtended::setLedgerName()
     * @uses Sales_AccountingJournalExtended::setOwnerName()
     * @uses Sales_AccountingJournalExtended::set_FloatAttribute1()
     * @uses Sales_AccountingJournalExtended::set_FloatAttribute2()
     * @uses Sales_AccountingJournalExtended::set_FloatAttribute3()
     * @uses Sales_AccountingJournalExtended::set_GuidAttribute1()
     * @uses Sales_AccountingJournalExtended::set_GuidAttribute2()
     * @uses Sales_AccountingJournalExtended::set_GuidAttribute3()
     * @uses Sales_AccountingJournalExtended::set_IntegerAttribute1()
     * @uses Sales_AccountingJournalExtended::set_IntegerAttribute2()
     * @uses Sales_AccountingJournalExtended::set_IntegerAttribute3()
     * @uses Sales_AccountingJournalExtended::set_MoneyAttribute1()
     * @uses Sales_AccountingJournalExtended::set_MoneyAttribute2()
     * @uses Sales_AccountingJournalExtended::set_MoneyAttribute3()
     * @uses Sales_AccountingJournalExtended::set_StringAttribute1()
     * @uses Sales_AccountingJournalExtended::set_StringAttribute2()
     * @uses Sales_AccountingJournalExtended::set_StringAttribute3()
     * @param string $ledgerName
     * @param string $ownerName
     * @param string $_FloatAttribute1
     * @param string $_FloatAttribute2
     * @param string $_FloatAttribute3
     * @param string $_GuidAttribute1
     * @param string $_GuidAttribute2
     * @param string $_GuidAttribute3
     * @param string $_IntegerAttribute1
     * @param string $_IntegerAttribute2
     * @param string $_IntegerAttribute3
     * @param string $_MoneyAttribute1
     * @param string $_MoneyAttribute2
     * @param string $_MoneyAttribute3
     * @param string $_StringAttribute1
     * @param string $_StringAttribute2
     * @param string $_StringAttribute3
     */
    public function __construct($ledgerName = null, $ownerName = null, $_FloatAttribute1 = null, $_FloatAttribute2 = null, $_FloatAttribute3 = null, $_GuidAttribute1 = null, $_GuidAttribute2 = null, $_GuidAttribute3 = null, $_IntegerAttribute1 = null, $_IntegerAttribute2 = null, $_IntegerAttribute3 = null, $_MoneyAttribute1 = null, $_MoneyAttribute2 = null, $_MoneyAttribute3 = null, $_StringAttribute1 = null, $_StringAttribute2 = null, $_StringAttribute3 = null)
    {
        $this
            ->setLedgerName($ledgerName)
            ->setOwnerName($ownerName)
            ->set_FloatAttribute1($_FloatAttribute1)
            ->set_FloatAttribute2($_FloatAttribute2)
            ->set_FloatAttribute3($_FloatAttribute3)
            ->set_GuidAttribute1($_GuidAttribute1)
            ->set_GuidAttribute2($_GuidAttribute2)
            ->set_GuidAttribute3($_GuidAttribute3)
            ->set_IntegerAttribute1($_IntegerAttribute1)
            ->set_IntegerAttribute2($_IntegerAttribute2)
            ->set_IntegerAttribute3($_IntegerAttribute3)
            ->set_MoneyAttribute1($_MoneyAttribute1)
            ->set_MoneyAttribute2($_MoneyAttribute2)
            ->set_MoneyAttribute3($_MoneyAttribute3)
            ->set_StringAttribute1($_StringAttribute1)
            ->set_StringAttribute2($_StringAttribute2)
            ->set_StringAttribute3($_StringAttribute3);
    }
    /**
     * Get LedgerName 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 string|null
     */
    public function getLedgerName()
    {
        return isset($this->LedgerName) ? $this->LedgerName : null;
    }
    /**
     * Set LedgerName 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 string $ledgerName
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function setLedgerName($ledgerName = null)
    {
        // validation for constraint: string
        if (!is_null($ledgerName) && !is_string($ledgerName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ledgerName, true), gettype($ledgerName)), __LINE__);
        }
        if (is_null($ledgerName) || (is_array($ledgerName) && empty($ledgerName))) {
            unset($this->LedgerName);
        } else {
            $this->LedgerName = $ledgerName;
        }
        return $this;
    }
    /**
     * Get OwnerName 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 string|null
     */
    public function getOwnerName()
    {
        return isset($this->OwnerName) ? $this->OwnerName : null;
    }
    /**
     * Set OwnerName 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 string $ownerName
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function setOwnerName($ownerName = null)
    {
        // validation for constraint: string
        if (!is_null($ownerName) && !is_string($ownerName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ownerName, true), gettype($ownerName)), __LINE__);
        }
        if (is_null($ownerName) || (is_array($ownerName) && empty($ownerName))) {
            unset($this->OwnerName);
        } else {
            $this->OwnerName = $ownerName;
        }
        return $this;
    }
    /**
     * Get _FloatAttribute1 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 string|null
     */
    public function get_FloatAttribute1()
    {
        return isset($this->_FloatAttribute1) ? $this->_FloatAttribute1 : null;
    }
    /**
     * Set _FloatAttribute1 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 string $_FloatAttribute1
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_FloatAttribute1($_FloatAttribute1 = null)
    {
        // validation for constraint: string
        if (!is_null($_FloatAttribute1) && !is_string($_FloatAttribute1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_FloatAttribute1, true), gettype($_FloatAttribute1)), __LINE__);
        }
        if (is_null($_FloatAttribute1) || (is_array($_FloatAttribute1) && empty($_FloatAttribute1))) {
            unset($this->_FloatAttribute1);
        } else {
            $this->_FloatAttribute1 = $_FloatAttribute1;
        }
        return $this;
    }
    /**
     * Get _FloatAttribute2 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 string|null
     */
    public function get_FloatAttribute2()
    {
        return isset($this->_FloatAttribute2) ? $this->_FloatAttribute2 : null;
    }
    /**
     * Set _FloatAttribute2 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 string $_FloatAttribute2
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_FloatAttribute2($_FloatAttribute2 = null)
    {
        // validation for constraint: string
        if (!is_null($_FloatAttribute2) && !is_string($_FloatAttribute2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_FloatAttribute2, true), gettype($_FloatAttribute2)), __LINE__);
        }
        if (is_null($_FloatAttribute2) || (is_array($_FloatAttribute2) && empty($_FloatAttribute2))) {
            unset($this->_FloatAttribute2);
        } else {
            $this->_FloatAttribute2 = $_FloatAttribute2;
        }
        return $this;
    }
    /**
     * Get _FloatAttribute3 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 string|null
     */
    public function get_FloatAttribute3()
    {
        return isset($this->_FloatAttribute3) ? $this->_FloatAttribute3 : null;
    }
    /**
     * Set _FloatAttribute3 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 string $_FloatAttribute3
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_FloatAttribute3($_FloatAttribute3 = null)
    {
        // validation for constraint: string
        if (!is_null($_FloatAttribute3) && !is_string($_FloatAttribute3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_FloatAttribute3, true), gettype($_FloatAttribute3)), __LINE__);
        }
        if (is_null($_FloatAttribute3) || (is_array($_FloatAttribute3) && empty($_FloatAttribute3))) {
            unset($this->_FloatAttribute3);
        } else {
            $this->_FloatAttribute3 = $_FloatAttribute3;
        }
        return $this;
    }
    /**
     * Get _GuidAttribute1 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 string|null
     */
    public function get_GuidAttribute1()
    {
        return isset($this->_GuidAttribute1) ? $this->_GuidAttribute1 : null;
    }
    /**
     * Set _GuidAttribute1 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 string $_GuidAttribute1
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_GuidAttribute1($_GuidAttribute1 = null)
    {
        // validation for constraint: string
        if (!is_null($_GuidAttribute1) && !is_string($_GuidAttribute1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_GuidAttribute1, true), gettype($_GuidAttribute1)), __LINE__);
        }
        if (is_null($_GuidAttribute1) || (is_array($_GuidAttribute1) && empty($_GuidAttribute1))) {
            unset($this->_GuidAttribute1);
        } else {
            $this->_GuidAttribute1 = $_GuidAttribute1;
        }
        return $this;
    }
    /**
     * Get _GuidAttribute2 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 string|null
     */
    public function get_GuidAttribute2()
    {
        return isset($this->_GuidAttribute2) ? $this->_GuidAttribute2 : null;
    }
    /**
     * Set _GuidAttribute2 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 string $_GuidAttribute2
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_GuidAttribute2($_GuidAttribute2 = null)
    {
        // validation for constraint: string
        if (!is_null($_GuidAttribute2) && !is_string($_GuidAttribute2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_GuidAttribute2, true), gettype($_GuidAttribute2)), __LINE__);
        }
        if (is_null($_GuidAttribute2) || (is_array($_GuidAttribute2) && empty($_GuidAttribute2))) {
            unset($this->_GuidAttribute2);
        } else {
            $this->_GuidAttribute2 = $_GuidAttribute2;
        }
        return $this;
    }
    /**
     * Get _GuidAttribute3 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 string|null
     */
    public function get_GuidAttribute3()
    {
        return isset($this->_GuidAttribute3) ? $this->_GuidAttribute3 : null;
    }
    /**
     * Set _GuidAttribute3 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 string $_GuidAttribute3
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_GuidAttribute3($_GuidAttribute3 = null)
    {
        // validation for constraint: string
        if (!is_null($_GuidAttribute3) && !is_string($_GuidAttribute3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_GuidAttribute3, true), gettype($_GuidAttribute3)), __LINE__);
        }
        if (is_null($_GuidAttribute3) || (is_array($_GuidAttribute3) && empty($_GuidAttribute3))) {
            unset($this->_GuidAttribute3);
        } else {
            $this->_GuidAttribute3 = $_GuidAttribute3;
        }
        return $this;
    }
    /**
     * Get _IntegerAttribute1 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 string|null
     */
    public function get_IntegerAttribute1()
    {
        return isset($this->_IntegerAttribute1) ? $this->_IntegerAttribute1 : null;
    }
    /**
     * Set _IntegerAttribute1 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 string $_IntegerAttribute1
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_IntegerAttribute1($_IntegerAttribute1 = null)
    {
        // validation for constraint: string
        if (!is_null($_IntegerAttribute1) && !is_string($_IntegerAttribute1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_IntegerAttribute1, true), gettype($_IntegerAttribute1)), __LINE__);
        }
        if (is_null($_IntegerAttribute1) || (is_array($_IntegerAttribute1) && empty($_IntegerAttribute1))) {
            unset($this->_IntegerAttribute1);
        } else {
            $this->_IntegerAttribute1 = $_IntegerAttribute1;
        }
        return $this;
    }
    /**
     * Get _IntegerAttribute2 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 string|null
     */
    public function get_IntegerAttribute2()
    {
        return isset($this->_IntegerAttribute2) ? $this->_IntegerAttribute2 : null;
    }
    /**
     * Set _IntegerAttribute2 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 string $_IntegerAttribute2
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_IntegerAttribute2($_IntegerAttribute2 = null)
    {
        // validation for constraint: string
        if (!is_null($_IntegerAttribute2) && !is_string($_IntegerAttribute2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_IntegerAttribute2, true), gettype($_IntegerAttribute2)), __LINE__);
        }
        if (is_null($_IntegerAttribute2) || (is_array($_IntegerAttribute2) && empty($_IntegerAttribute2))) {
            unset($this->_IntegerAttribute2);
        } else {
            $this->_IntegerAttribute2 = $_IntegerAttribute2;
        }
        return $this;
    }
    /**
     * Get _IntegerAttribute3 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 string|null
     */
    public function get_IntegerAttribute3()
    {
        return isset($this->_IntegerAttribute3) ? $this->_IntegerAttribute3 : null;
    }
    /**
     * Set _IntegerAttribute3 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 string $_IntegerAttribute3
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_IntegerAttribute3($_IntegerAttribute3 = null)
    {
        // validation for constraint: string
        if (!is_null($_IntegerAttribute3) && !is_string($_IntegerAttribute3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_IntegerAttribute3, true), gettype($_IntegerAttribute3)), __LINE__);
        }
        if (is_null($_IntegerAttribute3) || (is_array($_IntegerAttribute3) && empty($_IntegerAttribute3))) {
            unset($this->_IntegerAttribute3);
        } else {
            $this->_IntegerAttribute3 = $_IntegerAttribute3;
        }
        return $this;
    }
    /**
     * Get _MoneyAttribute1 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 string|null
     */
    public function get_MoneyAttribute1()
    {
        return isset($this->_MoneyAttribute1) ? $this->_MoneyAttribute1 : null;
    }
    /**
     * Set _MoneyAttribute1 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 string $_MoneyAttribute1
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_MoneyAttribute1($_MoneyAttribute1 = null)
    {
        // validation for constraint: string
        if (!is_null($_MoneyAttribute1) && !is_string($_MoneyAttribute1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_MoneyAttribute1, true), gettype($_MoneyAttribute1)), __LINE__);
        }
        if (is_null($_MoneyAttribute1) || (is_array($_MoneyAttribute1) && empty($_MoneyAttribute1))) {
            unset($this->_MoneyAttribute1);
        } else {
            $this->_MoneyAttribute1 = $_MoneyAttribute1;
        }
        return $this;
    }
    /**
     * Get _MoneyAttribute2 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 string|null
     */
    public function get_MoneyAttribute2()
    {
        return isset($this->_MoneyAttribute2) ? $this->_MoneyAttribute2 : null;
    }
    /**
     * Set _MoneyAttribute2 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 string $_MoneyAttribute2
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_MoneyAttribute2($_MoneyAttribute2 = null)
    {
        // validation for constraint: string
        if (!is_null($_MoneyAttribute2) && !is_string($_MoneyAttribute2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_MoneyAttribute2, true), gettype($_MoneyAttribute2)), __LINE__);
        }
        if (is_null($_MoneyAttribute2) || (is_array($_MoneyAttribute2) && empty($_MoneyAttribute2))) {
            unset($this->_MoneyAttribute2);
        } else {
            $this->_MoneyAttribute2 = $_MoneyAttribute2;
        }
        return $this;
    }
    /**
     * Get _MoneyAttribute3 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 string|null
     */
    public function get_MoneyAttribute3()
    {
        return isset($this->_MoneyAttribute3) ? $this->_MoneyAttribute3 : null;
    }
    /**
     * Set _MoneyAttribute3 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 string $_MoneyAttribute3
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_MoneyAttribute3($_MoneyAttribute3 = null)
    {
        // validation for constraint: string
        if (!is_null($_MoneyAttribute3) && !is_string($_MoneyAttribute3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_MoneyAttribute3, true), gettype($_MoneyAttribute3)), __LINE__);
        }
        if (is_null($_MoneyAttribute3) || (is_array($_MoneyAttribute3) && empty($_MoneyAttribute3))) {
            unset($this->_MoneyAttribute3);
        } else {
            $this->_MoneyAttribute3 = $_MoneyAttribute3;
        }
        return $this;
    }
    /**
     * Get _StringAttribute1 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 string|null
     */
    public function get_StringAttribute1()
    {
        return isset($this->_StringAttribute1) ? $this->_StringAttribute1 : null;
    }
    /**
     * Set _StringAttribute1 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 string $_StringAttribute1
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_StringAttribute1($_StringAttribute1 = null)
    {
        // validation for constraint: string
        if (!is_null($_StringAttribute1) && !is_string($_StringAttribute1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_StringAttribute1, true), gettype($_StringAttribute1)), __LINE__);
        }
        if (is_null($_StringAttribute1) || (is_array($_StringAttribute1) && empty($_StringAttribute1))) {
            unset($this->_StringAttribute1);
        } else {
            $this->_StringAttribute1 = $_StringAttribute1;
        }
        return $this;
    }
    /**
     * Get _StringAttribute2 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 string|null
     */
    public function get_StringAttribute2()
    {
        return isset($this->_StringAttribute2) ? $this->_StringAttribute2 : null;
    }
    /**
     * Set _StringAttribute2 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 string $_StringAttribute2
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_StringAttribute2($_StringAttribute2 = null)
    {
        // validation for constraint: string
        if (!is_null($_StringAttribute2) && !is_string($_StringAttribute2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_StringAttribute2, true), gettype($_StringAttribute2)), __LINE__);
        }
        if (is_null($_StringAttribute2) || (is_array($_StringAttribute2) && empty($_StringAttribute2))) {
            unset($this->_StringAttribute2);
        } else {
            $this->_StringAttribute2 = $_StringAttribute2;
        }
        return $this;
    }
    /**
     * Get _StringAttribute3 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 string|null
     */
    public function get_StringAttribute3()
    {
        return isset($this->_StringAttribute3) ? $this->_StringAttribute3 : null;
    }
    /**
     * Set _StringAttribute3 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 string $_StringAttribute3
     * @return \patest\StructType\Sales_AccountingJournalExtended
     */
    public function set_StringAttribute3($_StringAttribute3 = null)
    {
        // validation for constraint: string
        if (!is_null($_StringAttribute3) && !is_string($_StringAttribute3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($_StringAttribute3, true), gettype($_StringAttribute3)), __LINE__);
        }
        if (is_null($_StringAttribute3) || (is_array($_StringAttribute3) && empty($_StringAttribute3))) {
            unset($this->_StringAttribute3);
        } else {
            $this->_StringAttribute3 = $_StringAttribute3;
        }
        return $this;
    }
}
