<?php

namespace NineDotMedia\viapost-php\Struct;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for MergeField Struct
 * @subpackage Structs
 */
class MergeField extends AbstractStructBase
{
    /**
     * The intColumn1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $intColumn1;
    /**
     * The intColumn2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $intColumn2;
    /**
     * The strType1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strType1;
    /**
     * The strType2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strType2;
    /**
     * The strCondition1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strCondition1;
    /**
     * The strCondition2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strCondition2;
    /**
     * The strValue1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strValue1;
    /**
     * The strValue2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strValue2;
    /**
     * The strSeperator
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $strSeperator;
    /**
     * Constructor method for MergeField
     * @uses MergeField::setIntColumn1()
     * @uses MergeField::setIntColumn2()
     * @uses MergeField::setStrType1()
     * @uses MergeField::setStrType2()
     * @uses MergeField::setStrCondition1()
     * @uses MergeField::setStrCondition2()
     * @uses MergeField::setStrValue1()
     * @uses MergeField::setStrValue2()
     * @uses MergeField::setStrSeperator()
     * @param int $intColumn1
     * @param int $intColumn2
     * @param string $strType1
     * @param string $strType2
     * @param string $strCondition1
     * @param string $strCondition2
     * @param string $strValue1
     * @param string $strValue2
     * @param string $strSeperator
     */
    public function __construct($intColumn1 = null, $intColumn2 = null, $strType1 = null, $strType2 = null, $strCondition1 = null, $strCondition2 = null, $strValue1 = null, $strValue2 = null, $strSeperator = null)
    {
        $this
            ->setIntColumn1($intColumn1)
            ->setIntColumn2($intColumn2)
            ->setStrType1($strType1)
            ->setStrType2($strType2)
            ->setStrCondition1($strCondition1)
            ->setStrCondition2($strCondition2)
            ->setStrValue1($strValue1)
            ->setStrValue2($strValue2)
            ->setStrSeperator($strSeperator);
    }
    /**
     * Get intColumn1 value
     * @return int
     */
    public function getIntColumn1()
    {
        return $this->intColumn1;
    }
    /**
     * Set intColumn1 value
     * @param int $intColumn1
     * @return \NineDotMedia\viapost-php\Struct\MergeField
     */
    public function setIntColumn1($intColumn1 = null)
    {
        // validation for constraint: int
        if (!is_null($intColumn1) && !(is_int($intColumn1) || ctype_digit($intColumn1))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($intColumn1, true), gettype($intColumn1)), __LINE__);
        }
        $this->intColumn1 = $intColumn1;
        return $this;
    }
    /**
     * Get intColumn2 value
     * @return int
     */
    public function getIntColumn2()
    {
        return $this->intColumn2;
    }
    /**
     * Set intColumn2 value
     * @param int $intColumn2
     * @return \NineDotMedia\viapost-php\Struct\MergeField
     */
    public function setIntColumn2($intColumn2 = null)
    {
        // validation for constraint: int
        if (!is_null($intColumn2) && !(is_int($intColumn2) || ctype_digit($intColumn2))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($intColumn2, true), gettype($intColumn2)), __LINE__);
        }
        $this->intColumn2 = $intColumn2;
        return $this;
    }
    /**
     * Get strType1 value
     * @return string|null
     */
    public function getStrType1()
    {
        return $this->strType1;
    }
    /**
     * Set strType1 value
     * @param string $strType1
     * @return \NineDotMedia\viapost-php\Struct\MergeField
     */
    public function setStrType1($strType1 = null)
    {
        // validation for constraint: string
        if (!is_null($strType1) && !is_string($strType1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strType1, true), gettype($strType1)), __LINE__);
        }
        $this->strType1 = $strType1;
        return $this;
    }
    /**
     * Get strType2 value
     * @return string|null
     */
    public function getStrType2()
    {
        return $this->strType2;
    }
    /**
     * Set strType2 value
     * @param string $strType2
     * @return \NineDotMedia\viapost-php\Struct\MergeField
     */
    public function setStrType2($strType2 = null)
    {
        // validation for constraint: string
        if (!is_null($strType2) && !is_string($strType2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strType2, true), gettype($strType2)), __LINE__);
        }
        $this->strType2 = $strType2;
        return $this;
    }
    /**
     * Get strCondition1 value
     * @return string|null
     */
    public function getStrCondition1()
    {
        return $this->strCondition1;
    }
    /**
     * Set strCondition1 value
     * @param string $strCondition1
     * @return \NineDotMedia\viapost-php\Struct\MergeField
     */
    public function setStrCondition1($strCondition1 = null)
    {
        // validation for constraint: string
        if (!is_null($strCondition1) && !is_string($strCondition1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strCondition1, true), gettype($strCondition1)), __LINE__);
        }
        $this->strCondition1 = $strCondition1;
        return $this;
    }
    /**
     * Get strCondition2 value
     * @return string|null
     */
    public function getStrCondition2()
    {
        return $this->strCondition2;
    }
    /**
     * Set strCondition2 value
     * @param string $strCondition2
     * @return \NineDotMedia\viapost-php\Struct\MergeField
     */
    public function setStrCondition2($strCondition2 = null)
    {
        // validation for constraint: string
        if (!is_null($strCondition2) && !is_string($strCondition2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strCondition2, true), gettype($strCondition2)), __LINE__);
        }
        $this->strCondition2 = $strCondition2;
        return $this;
    }
    /**
     * Get strValue1 value
     * @return string|null
     */
    public function getStrValue1()
    {
        return $this->strValue1;
    }
    /**
     * Set strValue1 value
     * @param string $strValue1
     * @return \NineDotMedia\viapost-php\Struct\MergeField
     */
    public function setStrValue1($strValue1 = null)
    {
        // validation for constraint: string
        if (!is_null($strValue1) && !is_string($strValue1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strValue1, true), gettype($strValue1)), __LINE__);
        }
        $this->strValue1 = $strValue1;
        return $this;
    }
    /**
     * Get strValue2 value
     * @return string|null
     */
    public function getStrValue2()
    {
        return $this->strValue2;
    }
    /**
     * Set strValue2 value
     * @param string $strValue2
     * @return \NineDotMedia\viapost-php\Struct\MergeField
     */
    public function setStrValue2($strValue2 = null)
    {
        // validation for constraint: string
        if (!is_null($strValue2) && !is_string($strValue2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strValue2, true), gettype($strValue2)), __LINE__);
        }
        $this->strValue2 = $strValue2;
        return $this;
    }
    /**
     * Get strSeperator value
     * @return string|null
     */
    public function getStrSeperator()
    {
        return $this->strSeperator;
    }
    /**
     * Set strSeperator value
     * @param string $strSeperator
     * @return \NineDotMedia\viapost-php\Struct\MergeField
     */
    public function setStrSeperator($strSeperator = null)
    {
        // validation for constraint: string
        if (!is_null($strSeperator) && !is_string($strSeperator)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($strSeperator, true), gettype($strSeperator)), __LINE__);
        }
        $this->strSeperator = $strSeperator;
        return $this;
    }
}
