<?php

namespace \NineDotMedia\viapost-php;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for GenerateMappingWithDefaultNameAndMergeFieldsWithID
 * StructType
 * @subpackage Structs
 */
class GenerateMappingWithDefaultNameAndMergeFieldsWithID extends AbstractStructBase
{
    /**
     * The blnHeaderRow
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var bool
     */
    public $blnHeaderRow;
    /**
     * The intNameColumn
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $intNameColumn;
    /**
     * The intOrganisationColumn
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $intOrganisationColumn;
    /**
     * The intStreet1Column
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $intStreet1Column;
    /**
     * The intStreet2Column
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $intStreet2Column;
    /**
     * The intStreet3Column
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $intStreet3Column;
    /**
     * The intPostTownColumn
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $intPostTownColumn;
    /**
     * The intPostcodeColumn
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $intPostcodeColumn;
    /**
     * The mappingID
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $mappingID;
    /**
     * The strLoginToken
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strLoginToken;
    /**
     * The strDescription
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strDescription;
    /**
     * The strArrVariables
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \\NineDotMedia\viapost-php\ArrayOfString
     */
    public $strArrVariables;
    /**
     * The strDefaultName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strDefaultName;
    /**
     * The mergeFields
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \\NineDotMedia\viapost-php\ArrayOfMergeField
     */
    public $mergeFields;
    /**
     * The isSharedStr
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $isSharedStr;
    /**
     * The strReturnMessage
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strReturnMessage;
    /**
     * Constructor method for GenerateMappingWithDefaultNameAndMergeFieldsWithID
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setBlnHeaderRow()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setIntNameColumn()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setIntOrganisationColumn()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setIntStreet1Column()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setIntStreet2Column()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setIntStreet3Column()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setIntPostTownColumn()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setIntPostcodeColumn()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setMappingID()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setStrLoginToken()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setStrDescription()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setStrArrVariables()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setStrDefaultName()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setMergeFields()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setIsSharedStr()
     * @uses GenerateMappingWithDefaultNameAndMergeFieldsWithID::setStrReturnMessage()
     * @param bool $blnHeaderRow
     * @param int $intNameColumn
     * @param int $intOrganisationColumn
     * @param int $intStreet1Column
     * @param int $intStreet2Column
     * @param int $intStreet3Column
     * @param int $intPostTownColumn
     * @param int $intPostcodeColumn
     * @param int $mappingID
     * @param string $strLoginToken
     * @param string $strDescription
     * @param \\NineDotMedia\viapost-php\ArrayOfString $strArrVariables
     * @param string $strDefaultName
     * @param \\NineDotMedia\viapost-php\ArrayOfMergeField $mergeFields
     * @param string $isSharedStr
     * @param string $strReturnMessage
     */
    public function __construct($blnHeaderRow = null, $intNameColumn = null, $intOrganisationColumn = null, $intStreet1Column = null, $intStreet2Column = null, $intStreet3Column = null, $intPostTownColumn = null, $intPostcodeColumn = null, $mappingID = null, $strLoginToken = null, $strDescription = null, \\NineDotMedia\viapost-php\ArrayOfString $strArrVariables = null, $strDefaultName = null, \\NineDotMedia\viapost-php\ArrayOfMergeField $mergeFields = null, $isSharedStr = null, $strReturnMessage = null)
    {
        $this
            ->setBlnHeaderRow($blnHeaderRow)
            ->setIntNameColumn($intNameColumn)
            ->setIntOrganisationColumn($intOrganisationColumn)
            ->setIntStreet1Column($intStreet1Column)
            ->setIntStreet2Column($intStreet2Column)
            ->setIntStreet3Column($intStreet3Column)
            ->setIntPostTownColumn($intPostTownColumn)
            ->setIntPostcodeColumn($intPostcodeColumn)
            ->setMappingID($mappingID)
            ->setStrLoginToken($strLoginToken)
            ->setStrDescription($strDescription)
            ->setStrArrVariables($strArrVariables)
            ->setStrDefaultName($strDefaultName)
            ->setMergeFields($mergeFields)
            ->setIsSharedStr($isSharedStr)
            ->setStrReturnMessage($strReturnMessage);
    }
    /**
     * Get blnHeaderRow value
     * @return bool
     */
    public function getBlnHeaderRow()
    {
        return $this->blnHeaderRow;
    }
    /**
     * Set blnHeaderRow value
     * @param bool $blnHeaderRow
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setBlnHeaderRow($blnHeaderRow = null)
    {
        // validation for constraint: boolean
        if (!is_null($blnHeaderRow) && !is_bool($blnHeaderRow)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($blnHeaderRow, true), gettype($blnHeaderRow)), __LINE__);
        }
        $this->blnHeaderRow = $blnHeaderRow;
        return $this;
    }
    /**
     * Get intNameColumn value
     * @return int
     */
    public function getIntNameColumn()
    {
        return $this->intNameColumn;
    }
    /**
     * Set intNameColumn value
     * @param int $intNameColumn
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setIntNameColumn($intNameColumn = null)
    {
        // validation for constraint: int
        if (!is_null($intNameColumn) && !(is_int($intNameColumn) || ctype_digit($intNameColumn))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($intNameColumn, true), gettype($intNameColumn)), __LINE__);
        }
        $this->intNameColumn = $intNameColumn;
        return $this;
    }
    /**
     * Get intOrganisationColumn value
     * @return int
     */
    public function getIntOrganisationColumn()
    {
        return $this->intOrganisationColumn;
    }
    /**
     * Set intOrganisationColumn value
     * @param int $intOrganisationColumn
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setIntOrganisationColumn($intOrganisationColumn = null)
    {
        // validation for constraint: int
        if (!is_null($intOrganisationColumn) && !(is_int($intOrganisationColumn) || ctype_digit($intOrganisationColumn))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($intOrganisationColumn, true), gettype($intOrganisationColumn)), __LINE__);
        }
        $this->intOrganisationColumn = $intOrganisationColumn;
        return $this;
    }
    /**
     * Get intStreet1Column value
     * @return int
     */
    public function getIntStreet1Column()
    {
        return $this->intStreet1Column;
    }
    /**
     * Set intStreet1Column value
     * @param int $intStreet1Column
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setIntStreet1Column($intStreet1Column = null)
    {
        // validation for constraint: int
        if (!is_null($intStreet1Column) && !(is_int($intStreet1Column) || ctype_digit($intStreet1Column))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($intStreet1Column, true), gettype($intStreet1Column)), __LINE__);
        }
        $this->intStreet1Column = $intStreet1Column;
        return $this;
    }
    /**
     * Get intStreet2Column value
     * @return int
     */
    public function getIntStreet2Column()
    {
        return $this->intStreet2Column;
    }
    /**
     * Set intStreet2Column value
     * @param int $intStreet2Column
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setIntStreet2Column($intStreet2Column = null)
    {
        // validation for constraint: int
        if (!is_null($intStreet2Column) && !(is_int($intStreet2Column) || ctype_digit($intStreet2Column))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($intStreet2Column, true), gettype($intStreet2Column)), __LINE__);
        }
        $this->intStreet2Column = $intStreet2Column;
        return $this;
    }
    /**
     * Get intStreet3Column value
     * @return int
     */
    public function getIntStreet3Column()
    {
        return $this->intStreet3Column;
    }
    /**
     * Set intStreet3Column value
     * @param int $intStreet3Column
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setIntStreet3Column($intStreet3Column = null)
    {
        // validation for constraint: int
        if (!is_null($intStreet3Column) && !(is_int($intStreet3Column) || ctype_digit($intStreet3Column))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($intStreet3Column, true), gettype($intStreet3Column)), __LINE__);
        }
        $this->intStreet3Column = $intStreet3Column;
        return $this;
    }
    /**
     * Get intPostTownColumn value
     * @return int
     */
    public function getIntPostTownColumn()
    {
        return $this->intPostTownColumn;
    }
    /**
     * Set intPostTownColumn value
     * @param int $intPostTownColumn
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setIntPostTownColumn($intPostTownColumn = null)
    {
        // validation for constraint: int
        if (!is_null($intPostTownColumn) && !(is_int($intPostTownColumn) || ctype_digit($intPostTownColumn))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($intPostTownColumn, true), gettype($intPostTownColumn)), __LINE__);
        }
        $this->intPostTownColumn = $intPostTownColumn;
        return $this;
    }
    /**
     * Get intPostcodeColumn value
     * @return int
     */
    public function getIntPostcodeColumn()
    {
        return $this->intPostcodeColumn;
    }
    /**
     * Set intPostcodeColumn value
     * @param int $intPostcodeColumn
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setIntPostcodeColumn($intPostcodeColumn = null)
    {
        // validation for constraint: int
        if (!is_null($intPostcodeColumn) && !(is_int($intPostcodeColumn) || ctype_digit($intPostcodeColumn))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($intPostcodeColumn, true), gettype($intPostcodeColumn)), __LINE__);
        }
        $this->intPostcodeColumn = $intPostcodeColumn;
        return $this;
    }
    /**
     * Get mappingID value
     * @return int
     */
    public function getMappingID()
    {
        return $this->mappingID;
    }
    /**
     * Set mappingID value
     * @param int $mappingID
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setMappingID($mappingID = null)
    {
        // validation for constraint: int
        if (!is_null($mappingID) && !(is_int($mappingID) || ctype_digit($mappingID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($mappingID, true), gettype($mappingID)), __LINE__);
        }
        $this->mappingID = $mappingID;
        return $this;
    }
    /**
     * Get strLoginToken value
     * @return string|null
     */
    public function getStrLoginToken()
    {
        return $this->strLoginToken;
    }
    /**
     * Set strLoginToken value
     * @param string $strLoginToken
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setStrLoginToken($strLoginToken = null)
    {
        // validation for constraint: string
        if (!is_null($strLoginToken) && !is_string($strLoginToken)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strLoginToken, true), gettype($strLoginToken)), __LINE__);
        }
        $this->strLoginToken = $strLoginToken;
        return $this;
    }
    /**
     * Get strDescription value
     * @return string|null
     */
    public function getStrDescription()
    {
        return $this->strDescription;
    }
    /**
     * Set strDescription value
     * @param string $strDescription
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setStrDescription($strDescription = null)
    {
        // validation for constraint: string
        if (!is_null($strDescription) && !is_string($strDescription)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strDescription, true), gettype($strDescription)), __LINE__);
        }
        $this->strDescription = $strDescription;
        return $this;
    }
    /**
     * Get strArrVariables value
     * @return \\NineDotMedia\viapost-php\ArrayOfString|null
     */
    public function getStrArrVariables()
    {
        return $this->strArrVariables;
    }
    /**
     * Set strArrVariables value
     * @param \\NineDotMedia\viapost-php\ArrayOfString $strArrVariables
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setStrArrVariables(\\NineDotMedia\viapost-php\ArrayOfString $strArrVariables = null)
    {
        $this->strArrVariables = $strArrVariables;
        return $this;
    }
    /**
     * Get strDefaultName value
     * @return string|null
     */
    public function getStrDefaultName()
    {
        return $this->strDefaultName;
    }
    /**
     * Set strDefaultName value
     * @param string $strDefaultName
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setStrDefaultName($strDefaultName = null)
    {
        // validation for constraint: string
        if (!is_null($strDefaultName) && !is_string($strDefaultName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strDefaultName, true), gettype($strDefaultName)), __LINE__);
        }
        $this->strDefaultName = $strDefaultName;
        return $this;
    }
    /**
     * Get mergeFields value
     * @return \\NineDotMedia\viapost-php\ArrayOfMergeField|null
     */
    public function getMergeFields()
    {
        return $this->mergeFields;
    }
    /**
     * Set mergeFields value
     * @param \\NineDotMedia\viapost-php\ArrayOfMergeField $mergeFields
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setMergeFields(\\NineDotMedia\viapost-php\ArrayOfMergeField $mergeFields = null)
    {
        $this->mergeFields = $mergeFields;
        return $this;
    }
    /**
     * Get isSharedStr value
     * @return string|null
     */
    public function getIsSharedStr()
    {
        return $this->isSharedStr;
    }
    /**
     * Set isSharedStr value
     * @param string $isSharedStr
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setIsSharedStr($isSharedStr = null)
    {
        // validation for constraint: string
        if (!is_null($isSharedStr) && !is_string($isSharedStr)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($isSharedStr, true), gettype($isSharedStr)), __LINE__);
        }
        $this->isSharedStr = $isSharedStr;
        return $this;
    }
    /**
     * Get strReturnMessage value
     * @return string|null
     */
    public function getStrReturnMessage()
    {
        return $this->strReturnMessage;
    }
    /**
     * Set strReturnMessage value
     * @param string $strReturnMessage
     * @return \\NineDotMedia\viapost-php\GenerateMappingWithDefaultNameAndMergeFieldsWithID
     */
    public function setStrReturnMessage($strReturnMessage = null)
    {
        // validation for constraint: string
        if (!is_null($strReturnMessage) && !is_string($strReturnMessage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strReturnMessage, true), gettype($strReturnMessage)), __LINE__);
        }
        $this->strReturnMessage = $strReturnMessage;
        return $this;
    }
}
