<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ItemOptionCustomField StructType
 * Meta information extracted from the WSDL
 * - type: setupCustom:ItemOptionCustomField
 * @subpackage Structs
 */
class ItemOptionCustomField extends CustomFieldType
{
    /**
     * The label
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $label;
    /**
     * The owner
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $owner;
    /**
     * The description
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $description;
    /**
     * The selectRecordType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $selectRecordType;
    /**
     * The storeValue
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $storeValue;
    /**
     * The insertBefore
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $insertBefore;
    /**
     * The displayType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $displayType;
    /**
     * The displayWidth
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $displayWidth;
    /**
     * The displayHeight
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $displayHeight;
    /**
     * The help
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $help;
    /**
     * The linkText
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $linkText;
    /**
     * The isMandatory
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isMandatory;
    /**
     * The maxLength
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $maxLength;
    /**
     * The minValue
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $minValue;
    /**
     * The maxValue
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $maxValue;
    /**
     * The defaultChecked
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $defaultChecked;
    /**
     * The defaultValue
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $defaultValue;
    /**
     * The isFormula
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isFormula;
    /**
     * The defaultSelection
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $defaultSelection;
    /**
     * The dynamicDefault
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dynamicDefault;
    /**
     * The searchDefault
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $searchDefault;
    /**
     * The searchCompareField
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $searchCompareField;
    /**
     * The sourceList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $sourceList;
    /**
     * The sourceFrom
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $sourceFrom;
    /**
     * The sourceFilterBy
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $sourceFilterBy;
    /**
     * The colPurchase
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $colPurchase;
    /**
     * The colSale
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $colSale;
    /**
     * The colOpportunity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $colOpportunity;
    /**
     * The colStore
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $colStore;
    /**
     * The colStoreHidden
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $colStoreHidden;
    /**
     * The colTransferOrder
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $colTransferOrder;
    /**
     * The colAllItems
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $colAllItems;
    /**
     * The itemsList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\ItemsList
     */
    public $itemsList;
    /**
     * The colKitItem
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $colKitItem;
    /**
     * The filterList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\ItemOptionCustomFieldFilterList
     */
    public $filterList;
    /**
     * The colOptionLabel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $colOptionLabel;
    /**
     * The accessLevel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $accessLevel;
    /**
     * The searchLevel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $searchLevel;
    /**
     * The roleAccessList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomFieldRoleAccessList
     */
    public $roleAccessList;
    /**
     * The deptAccessList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomFieldDepartmentAccessList
     */
    public $deptAccessList;
    /**
     * The subAccessList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomFieldSubAccessList
     */
    public $subAccessList;
    /**
     * The translationsList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomFieldTranslationsList
     */
    public $translationsList;
    /**
     * The internalId
     * @var string
     */
    public $internalId;
    /**
     * Constructor method for ItemOptionCustomField
     * @uses ItemOptionCustomField::setLabel()
     * @uses ItemOptionCustomField::setOwner()
     * @uses ItemOptionCustomField::setDescription()
     * @uses ItemOptionCustomField::setSelectRecordType()
     * @uses ItemOptionCustomField::setStoreValue()
     * @uses ItemOptionCustomField::setInsertBefore()
     * @uses ItemOptionCustomField::setDisplayType()
     * @uses ItemOptionCustomField::setDisplayWidth()
     * @uses ItemOptionCustomField::setDisplayHeight()
     * @uses ItemOptionCustomField::setHelp()
     * @uses ItemOptionCustomField::setLinkText()
     * @uses ItemOptionCustomField::setIsMandatory()
     * @uses ItemOptionCustomField::setMaxLength()
     * @uses ItemOptionCustomField::setMinValue()
     * @uses ItemOptionCustomField::setMaxValue()
     * @uses ItemOptionCustomField::setDefaultChecked()
     * @uses ItemOptionCustomField::setDefaultValue()
     * @uses ItemOptionCustomField::setIsFormula()
     * @uses ItemOptionCustomField::setDefaultSelection()
     * @uses ItemOptionCustomField::setDynamicDefault()
     * @uses ItemOptionCustomField::setSearchDefault()
     * @uses ItemOptionCustomField::setSearchCompareField()
     * @uses ItemOptionCustomField::setSourceList()
     * @uses ItemOptionCustomField::setSourceFrom()
     * @uses ItemOptionCustomField::setSourceFilterBy()
     * @uses ItemOptionCustomField::setColPurchase()
     * @uses ItemOptionCustomField::setColSale()
     * @uses ItemOptionCustomField::setColOpportunity()
     * @uses ItemOptionCustomField::setColStore()
     * @uses ItemOptionCustomField::setColStoreHidden()
     * @uses ItemOptionCustomField::setColTransferOrder()
     * @uses ItemOptionCustomField::setColAllItems()
     * @uses ItemOptionCustomField::setItemsList()
     * @uses ItemOptionCustomField::setColKitItem()
     * @uses ItemOptionCustomField::setFilterList()
     * @uses ItemOptionCustomField::setColOptionLabel()
     * @uses ItemOptionCustomField::setAccessLevel()
     * @uses ItemOptionCustomField::setSearchLevel()
     * @uses ItemOptionCustomField::setRoleAccessList()
     * @uses ItemOptionCustomField::setDeptAccessList()
     * @uses ItemOptionCustomField::setSubAccessList()
     * @uses ItemOptionCustomField::setTranslationsList()
     * @uses ItemOptionCustomField::setInternalId()
     * @param string $label
     * @param \StructType\RecordRef $owner
     * @param string $description
     * @param \StructType\RecordRef $selectRecordType
     * @param bool $storeValue
     * @param \StructType\RecordRef $insertBefore
     * @param string $displayType
     * @param int $displayWidth
     * @param int $displayHeight
     * @param string $help
     * @param string $linkText
     * @param bool $isMandatory
     * @param int $maxLength
     * @param float $minValue
     * @param float $maxValue
     * @param bool $defaultChecked
     * @param string $defaultValue
     * @param bool $isFormula
     * @param \StructType\RecordRef $defaultSelection
     * @param string $dynamicDefault
     * @param \StructType\RecordRef $searchDefault
     * @param \StructType\RecordRef $searchCompareField
     * @param \StructType\RecordRef $sourceList
     * @param \StructType\RecordRef $sourceFrom
     * @param \StructType\RecordRef $sourceFilterBy
     * @param bool $colPurchase
     * @param bool $colSale
     * @param bool $colOpportunity
     * @param bool $colStore
     * @param bool $colStoreHidden
     * @param bool $colTransferOrder
     * @param bool $colAllItems
     * @param \StructType\ItemsList $itemsList
     * @param bool $colKitItem
     * @param \StructType\ItemOptionCustomFieldFilterList $filterList
     * @param string $colOptionLabel
     * @param string $accessLevel
     * @param string $searchLevel
     * @param \StructType\CustomFieldRoleAccessList $roleAccessList
     * @param \StructType\CustomFieldDepartmentAccessList $deptAccessList
     * @param \StructType\CustomFieldSubAccessList $subAccessList
     * @param \StructType\CustomFieldTranslationsList $translationsList
     * @param string $internalId
     */
    public function __construct($label = null, \StructType\RecordRef $owner = null, $description = null, \StructType\RecordRef $selectRecordType = null, $storeValue = null, \StructType\RecordRef $insertBefore = null, $displayType = null, $displayWidth = null, $displayHeight = null, $help = null, $linkText = null, $isMandatory = null, $maxLength = null, $minValue = null, $maxValue = null, $defaultChecked = null, $defaultValue = null, $isFormula = null, \StructType\RecordRef $defaultSelection = null, $dynamicDefault = null, \StructType\RecordRef $searchDefault = null, \StructType\RecordRef $searchCompareField = null, \StructType\RecordRef $sourceList = null, \StructType\RecordRef $sourceFrom = null, \StructType\RecordRef $sourceFilterBy = null, $colPurchase = null, $colSale = null, $colOpportunity = null, $colStore = null, $colStoreHidden = null, $colTransferOrder = null, $colAllItems = null, \StructType\ItemsList $itemsList = null, $colKitItem = null, \StructType\ItemOptionCustomFieldFilterList $filterList = null, $colOptionLabel = null, $accessLevel = null, $searchLevel = null, \StructType\CustomFieldRoleAccessList $roleAccessList = null, \StructType\CustomFieldDepartmentAccessList $deptAccessList = null, \StructType\CustomFieldSubAccessList $subAccessList = null, \StructType\CustomFieldTranslationsList $translationsList = null, $internalId = null)
    {
        $this
            ->setLabel($label)
            ->setOwner($owner)
            ->setDescription($description)
            ->setSelectRecordType($selectRecordType)
            ->setStoreValue($storeValue)
            ->setInsertBefore($insertBefore)
            ->setDisplayType($displayType)
            ->setDisplayWidth($displayWidth)
            ->setDisplayHeight($displayHeight)
            ->setHelp($help)
            ->setLinkText($linkText)
            ->setIsMandatory($isMandatory)
            ->setMaxLength($maxLength)
            ->setMinValue($minValue)
            ->setMaxValue($maxValue)
            ->setDefaultChecked($defaultChecked)
            ->setDefaultValue($defaultValue)
            ->setIsFormula($isFormula)
            ->setDefaultSelection($defaultSelection)
            ->setDynamicDefault($dynamicDefault)
            ->setSearchDefault($searchDefault)
            ->setSearchCompareField($searchCompareField)
            ->setSourceList($sourceList)
            ->setSourceFrom($sourceFrom)
            ->setSourceFilterBy($sourceFilterBy)
            ->setColPurchase($colPurchase)
            ->setColSale($colSale)
            ->setColOpportunity($colOpportunity)
            ->setColStore($colStore)
            ->setColStoreHidden($colStoreHidden)
            ->setColTransferOrder($colTransferOrder)
            ->setColAllItems($colAllItems)
            ->setItemsList($itemsList)
            ->setColKitItem($colKitItem)
            ->setFilterList($filterList)
            ->setColOptionLabel($colOptionLabel)
            ->setAccessLevel($accessLevel)
            ->setSearchLevel($searchLevel)
            ->setRoleAccessList($roleAccessList)
            ->setDeptAccessList($deptAccessList)
            ->setSubAccessList($subAccessList)
            ->setTranslationsList($translationsList)
            ->setInternalId($internalId);
    }
    /**
     * Get label value
     * @return string|null
     */
    public function getLabel()
    {
        return $this->label;
    }
    /**
     * Set label value
     * @param string $label
     * @return \StructType\ItemOptionCustomField
     */
    public function setLabel($label = null)
    {
        // validation for constraint: string
        if (!is_null($label) && !is_string($label)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($label, true), gettype($label)), __LINE__);
        }
        $this->label = $label;
        return $this;
    }
    /**
     * Get owner value
     * @return \StructType\RecordRef|null
     */
    public function getOwner()
    {
        return $this->owner;
    }
    /**
     * Set owner value
     * @param \StructType\RecordRef $owner
     * @return \StructType\ItemOptionCustomField
     */
    public function setOwner(\StructType\RecordRef $owner = null)
    {
        $this->owner = $owner;
        return $this;
    }
    /**
     * Get description value
     * @return string|null
     */
    public function getDescription()
    {
        return $this->description;
    }
    /**
     * Set description value
     * @param string $description
     * @return \StructType\ItemOptionCustomField
     */
    public function setDescription($description = null)
    {
        // validation for constraint: string
        if (!is_null($description) && !is_string($description)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($description, true), gettype($description)), __LINE__);
        }
        $this->description = $description;
        return $this;
    }
    /**
     * Get selectRecordType value
     * @return \StructType\RecordRef|null
     */
    public function getSelectRecordType()
    {
        return $this->selectRecordType;
    }
    /**
     * Set selectRecordType value
     * @param \StructType\RecordRef $selectRecordType
     * @return \StructType\ItemOptionCustomField
     */
    public function setSelectRecordType(\StructType\RecordRef $selectRecordType = null)
    {
        $this->selectRecordType = $selectRecordType;
        return $this;
    }
    /**
     * Get storeValue value
     * @return bool|null
     */
    public function getStoreValue()
    {
        return $this->storeValue;
    }
    /**
     * Set storeValue value
     * @param bool $storeValue
     * @return \StructType\ItemOptionCustomField
     */
    public function setStoreValue($storeValue = null)
    {
        // validation for constraint: boolean
        if (!is_null($storeValue) && !is_bool($storeValue)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($storeValue, true), gettype($storeValue)), __LINE__);
        }
        $this->storeValue = $storeValue;
        return $this;
    }
    /**
     * Get insertBefore value
     * @return \StructType\RecordRef|null
     */
    public function getInsertBefore()
    {
        return $this->insertBefore;
    }
    /**
     * Set insertBefore value
     * @param \StructType\RecordRef $insertBefore
     * @return \StructType\ItemOptionCustomField
     */
    public function setInsertBefore(\StructType\RecordRef $insertBefore = null)
    {
        $this->insertBefore = $insertBefore;
        return $this;
    }
    /**
     * Get displayType value
     * @return string|null
     */
    public function getDisplayType()
    {
        return $this->displayType;
    }
    /**
     * Set displayType value
     * @uses \EnumType\CustomizationDisplayType::valueIsValid()
     * @uses \EnumType\CustomizationDisplayType::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $displayType
     * @return \StructType\ItemOptionCustomField
     */
    public function setDisplayType($displayType = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\CustomizationDisplayType::valueIsValid($displayType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\CustomizationDisplayType', is_array($displayType) ? implode(', ', $displayType) : var_export($displayType, true), implode(', ', \EnumType\CustomizationDisplayType::getValidValues())), __LINE__);
        }
        $this->displayType = $displayType;
        return $this;
    }
    /**
     * Get displayWidth value
     * @return int|null
     */
    public function getDisplayWidth()
    {
        return $this->displayWidth;
    }
    /**
     * Set displayWidth value
     * @param int $displayWidth
     * @return \StructType\ItemOptionCustomField
     */
    public function setDisplayWidth($displayWidth = null)
    {
        // validation for constraint: int
        if (!is_null($displayWidth) && !(is_int($displayWidth) || ctype_digit($displayWidth))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($displayWidth, true), gettype($displayWidth)), __LINE__);
        }
        $this->displayWidth = $displayWidth;
        return $this;
    }
    /**
     * Get displayHeight value
     * @return int|null
     */
    public function getDisplayHeight()
    {
        return $this->displayHeight;
    }
    /**
     * Set displayHeight value
     * @param int $displayHeight
     * @return \StructType\ItemOptionCustomField
     */
    public function setDisplayHeight($displayHeight = null)
    {
        // validation for constraint: int
        if (!is_null($displayHeight) && !(is_int($displayHeight) || ctype_digit($displayHeight))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($displayHeight, true), gettype($displayHeight)), __LINE__);
        }
        $this->displayHeight = $displayHeight;
        return $this;
    }
    /**
     * Get help value
     * @return string|null
     */
    public function getHelp()
    {
        return $this->help;
    }
    /**
     * Set help value
     * @param string $help
     * @return \StructType\ItemOptionCustomField
     */
    public function setHelp($help = null)
    {
        // validation for constraint: string
        if (!is_null($help) && !is_string($help)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($help, true), gettype($help)), __LINE__);
        }
        $this->help = $help;
        return $this;
    }
    /**
     * Get linkText value
     * @return string|null
     */
    public function getLinkText()
    {
        return $this->linkText;
    }
    /**
     * Set linkText value
     * @param string $linkText
     * @return \StructType\ItemOptionCustomField
     */
    public function setLinkText($linkText = null)
    {
        // validation for constraint: string
        if (!is_null($linkText) && !is_string($linkText)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($linkText, true), gettype($linkText)), __LINE__);
        }
        $this->linkText = $linkText;
        return $this;
    }
    /**
     * Get isMandatory value
     * @return bool|null
     */
    public function getIsMandatory()
    {
        return $this->isMandatory;
    }
    /**
     * Set isMandatory value
     * @param bool $isMandatory
     * @return \StructType\ItemOptionCustomField
     */
    public function setIsMandatory($isMandatory = null)
    {
        // validation for constraint: boolean
        if (!is_null($isMandatory) && !is_bool($isMandatory)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isMandatory, true), gettype($isMandatory)), __LINE__);
        }
        $this->isMandatory = $isMandatory;
        return $this;
    }
    /**
     * Get maxLength value
     * @return int|null
     */
    public function getMaxLength()
    {
        return $this->maxLength;
    }
    /**
     * Set maxLength value
     * @param int $maxLength
     * @return \StructType\ItemOptionCustomField
     */
    public function setMaxLength($maxLength = null)
    {
        // validation for constraint: int
        if (!is_null($maxLength) && !(is_int($maxLength) || ctype_digit($maxLength))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($maxLength, true), gettype($maxLength)), __LINE__);
        }
        $this->maxLength = $maxLength;
        return $this;
    }
    /**
     * Get minValue value
     * @return float|null
     */
    public function getMinValue()
    {
        return $this->minValue;
    }
    /**
     * Set minValue value
     * @param float $minValue
     * @return \StructType\ItemOptionCustomField
     */
    public function setMinValue($minValue = null)
    {
        // validation for constraint: float
        if (!is_null($minValue) && !(is_float($minValue) || is_numeric($minValue))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($minValue, true), gettype($minValue)), __LINE__);
        }
        $this->minValue = $minValue;
        return $this;
    }
    /**
     * Get maxValue value
     * @return float|null
     */
    public function getMaxValue()
    {
        return $this->maxValue;
    }
    /**
     * Set maxValue value
     * @param float $maxValue
     * @return \StructType\ItemOptionCustomField
     */
    public function setMaxValue($maxValue = null)
    {
        // validation for constraint: float
        if (!is_null($maxValue) && !(is_float($maxValue) || is_numeric($maxValue))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($maxValue, true), gettype($maxValue)), __LINE__);
        }
        $this->maxValue = $maxValue;
        return $this;
    }
    /**
     * Get defaultChecked value
     * @return bool|null
     */
    public function getDefaultChecked()
    {
        return $this->defaultChecked;
    }
    /**
     * Set defaultChecked value
     * @param bool $defaultChecked
     * @return \StructType\ItemOptionCustomField
     */
    public function setDefaultChecked($defaultChecked = null)
    {
        // validation for constraint: boolean
        if (!is_null($defaultChecked) && !is_bool($defaultChecked)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($defaultChecked, true), gettype($defaultChecked)), __LINE__);
        }
        $this->defaultChecked = $defaultChecked;
        return $this;
    }
    /**
     * Get defaultValue value
     * @return string|null
     */
    public function getDefaultValue()
    {
        return $this->defaultValue;
    }
    /**
     * Set defaultValue value
     * @param string $defaultValue
     * @return \StructType\ItemOptionCustomField
     */
    public function setDefaultValue($defaultValue = null)
    {
        // validation for constraint: string
        if (!is_null($defaultValue) && !is_string($defaultValue)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($defaultValue, true), gettype($defaultValue)), __LINE__);
        }
        $this->defaultValue = $defaultValue;
        return $this;
    }
    /**
     * Get isFormula value
     * @return bool|null
     */
    public function getIsFormula()
    {
        return $this->isFormula;
    }
    /**
     * Set isFormula value
     * @param bool $isFormula
     * @return \StructType\ItemOptionCustomField
     */
    public function setIsFormula($isFormula = null)
    {
        // validation for constraint: boolean
        if (!is_null($isFormula) && !is_bool($isFormula)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isFormula, true), gettype($isFormula)), __LINE__);
        }
        $this->isFormula = $isFormula;
        return $this;
    }
    /**
     * Get defaultSelection value
     * @return \StructType\RecordRef|null
     */
    public function getDefaultSelection()
    {
        return $this->defaultSelection;
    }
    /**
     * Set defaultSelection value
     * @param \StructType\RecordRef $defaultSelection
     * @return \StructType\ItemOptionCustomField
     */
    public function setDefaultSelection(\StructType\RecordRef $defaultSelection = null)
    {
        $this->defaultSelection = $defaultSelection;
        return $this;
    }
    /**
     * Get dynamicDefault value
     * @return string|null
     */
    public function getDynamicDefault()
    {
        return $this->dynamicDefault;
    }
    /**
     * Set dynamicDefault value
     * @uses \EnumType\CustomizationDynamicDefault::valueIsValid()
     * @uses \EnumType\CustomizationDynamicDefault::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $dynamicDefault
     * @return \StructType\ItemOptionCustomField
     */
    public function setDynamicDefault($dynamicDefault = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\CustomizationDynamicDefault::valueIsValid($dynamicDefault)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\CustomizationDynamicDefault', is_array($dynamicDefault) ? implode(', ', $dynamicDefault) : var_export($dynamicDefault, true), implode(', ', \EnumType\CustomizationDynamicDefault::getValidValues())), __LINE__);
        }
        $this->dynamicDefault = $dynamicDefault;
        return $this;
    }
    /**
     * Get searchDefault value
     * @return \StructType\RecordRef|null
     */
    public function getSearchDefault()
    {
        return $this->searchDefault;
    }
    /**
     * Set searchDefault value
     * @param \StructType\RecordRef $searchDefault
     * @return \StructType\ItemOptionCustomField
     */
    public function setSearchDefault(\StructType\RecordRef $searchDefault = null)
    {
        $this->searchDefault = $searchDefault;
        return $this;
    }
    /**
     * Get searchCompareField value
     * @return \StructType\RecordRef|null
     */
    public function getSearchCompareField()
    {
        return $this->searchCompareField;
    }
    /**
     * Set searchCompareField value
     * @param \StructType\RecordRef $searchCompareField
     * @return \StructType\ItemOptionCustomField
     */
    public function setSearchCompareField(\StructType\RecordRef $searchCompareField = null)
    {
        $this->searchCompareField = $searchCompareField;
        return $this;
    }
    /**
     * Get sourceList value
     * @return \StructType\RecordRef|null
     */
    public function getSourceList()
    {
        return $this->sourceList;
    }
    /**
     * Set sourceList value
     * @param \StructType\RecordRef $sourceList
     * @return \StructType\ItemOptionCustomField
     */
    public function setSourceList(\StructType\RecordRef $sourceList = null)
    {
        $this->sourceList = $sourceList;
        return $this;
    }
    /**
     * Get sourceFrom value
     * @return \StructType\RecordRef|null
     */
    public function getSourceFrom()
    {
        return $this->sourceFrom;
    }
    /**
     * Set sourceFrom value
     * @param \StructType\RecordRef $sourceFrom
     * @return \StructType\ItemOptionCustomField
     */
    public function setSourceFrom(\StructType\RecordRef $sourceFrom = null)
    {
        $this->sourceFrom = $sourceFrom;
        return $this;
    }
    /**
     * Get sourceFilterBy value
     * @return \StructType\RecordRef|null
     */
    public function getSourceFilterBy()
    {
        return $this->sourceFilterBy;
    }
    /**
     * Set sourceFilterBy value
     * @param \StructType\RecordRef $sourceFilterBy
     * @return \StructType\ItemOptionCustomField
     */
    public function setSourceFilterBy(\StructType\RecordRef $sourceFilterBy = null)
    {
        $this->sourceFilterBy = $sourceFilterBy;
        return $this;
    }
    /**
     * Get colPurchase value
     * @return bool|null
     */
    public function getColPurchase()
    {
        return $this->colPurchase;
    }
    /**
     * Set colPurchase value
     * @param bool $colPurchase
     * @return \StructType\ItemOptionCustomField
     */
    public function setColPurchase($colPurchase = null)
    {
        // validation for constraint: boolean
        if (!is_null($colPurchase) && !is_bool($colPurchase)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($colPurchase, true), gettype($colPurchase)), __LINE__);
        }
        $this->colPurchase = $colPurchase;
        return $this;
    }
    /**
     * Get colSale value
     * @return bool|null
     */
    public function getColSale()
    {
        return $this->colSale;
    }
    /**
     * Set colSale value
     * @param bool $colSale
     * @return \StructType\ItemOptionCustomField
     */
    public function setColSale($colSale = null)
    {
        // validation for constraint: boolean
        if (!is_null($colSale) && !is_bool($colSale)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($colSale, true), gettype($colSale)), __LINE__);
        }
        $this->colSale = $colSale;
        return $this;
    }
    /**
     * Get colOpportunity value
     * @return bool|null
     */
    public function getColOpportunity()
    {
        return $this->colOpportunity;
    }
    /**
     * Set colOpportunity value
     * @param bool $colOpportunity
     * @return \StructType\ItemOptionCustomField
     */
    public function setColOpportunity($colOpportunity = null)
    {
        // validation for constraint: boolean
        if (!is_null($colOpportunity) && !is_bool($colOpportunity)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($colOpportunity, true), gettype($colOpportunity)), __LINE__);
        }
        $this->colOpportunity = $colOpportunity;
        return $this;
    }
    /**
     * Get colStore value
     * @return bool|null
     */
    public function getColStore()
    {
        return $this->colStore;
    }
    /**
     * Set colStore value
     * @param bool $colStore
     * @return \StructType\ItemOptionCustomField
     */
    public function setColStore($colStore = null)
    {
        // validation for constraint: boolean
        if (!is_null($colStore) && !is_bool($colStore)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($colStore, true), gettype($colStore)), __LINE__);
        }
        $this->colStore = $colStore;
        return $this;
    }
    /**
     * Get colStoreHidden value
     * @return bool|null
     */
    public function getColStoreHidden()
    {
        return $this->colStoreHidden;
    }
    /**
     * Set colStoreHidden value
     * @param bool $colStoreHidden
     * @return \StructType\ItemOptionCustomField
     */
    public function setColStoreHidden($colStoreHidden = null)
    {
        // validation for constraint: boolean
        if (!is_null($colStoreHidden) && !is_bool($colStoreHidden)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($colStoreHidden, true), gettype($colStoreHidden)), __LINE__);
        }
        $this->colStoreHidden = $colStoreHidden;
        return $this;
    }
    /**
     * Get colTransferOrder value
     * @return bool|null
     */
    public function getColTransferOrder()
    {
        return $this->colTransferOrder;
    }
    /**
     * Set colTransferOrder value
     * @param bool $colTransferOrder
     * @return \StructType\ItemOptionCustomField
     */
    public function setColTransferOrder($colTransferOrder = null)
    {
        // validation for constraint: boolean
        if (!is_null($colTransferOrder) && !is_bool($colTransferOrder)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($colTransferOrder, true), gettype($colTransferOrder)), __LINE__);
        }
        $this->colTransferOrder = $colTransferOrder;
        return $this;
    }
    /**
     * Get colAllItems value
     * @return bool|null
     */
    public function getColAllItems()
    {
        return $this->colAllItems;
    }
    /**
     * Set colAllItems value
     * @param bool $colAllItems
     * @return \StructType\ItemOptionCustomField
     */
    public function setColAllItems($colAllItems = null)
    {
        // validation for constraint: boolean
        if (!is_null($colAllItems) && !is_bool($colAllItems)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($colAllItems, true), gettype($colAllItems)), __LINE__);
        }
        $this->colAllItems = $colAllItems;
        return $this;
    }
    /**
     * Get itemsList value
     * @return \StructType\ItemsList|null
     */
    public function getItemsList()
    {
        return $this->itemsList;
    }
    /**
     * Set itemsList value
     * @param \StructType\ItemsList $itemsList
     * @return \StructType\ItemOptionCustomField
     */
    public function setItemsList(\StructType\ItemsList $itemsList = null)
    {
        $this->itemsList = $itemsList;
        return $this;
    }
    /**
     * Get colKitItem value
     * @return bool|null
     */
    public function getColKitItem()
    {
        return $this->colKitItem;
    }
    /**
     * Set colKitItem value
     * @param bool $colKitItem
     * @return \StructType\ItemOptionCustomField
     */
    public function setColKitItem($colKitItem = null)
    {
        // validation for constraint: boolean
        if (!is_null($colKitItem) && !is_bool($colKitItem)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($colKitItem, true), gettype($colKitItem)), __LINE__);
        }
        $this->colKitItem = $colKitItem;
        return $this;
    }
    /**
     * Get filterList value
     * @return \StructType\ItemOptionCustomFieldFilterList|null
     */
    public function getFilterList()
    {
        return $this->filterList;
    }
    /**
     * Set filterList value
     * @param \StructType\ItemOptionCustomFieldFilterList $filterList
     * @return \StructType\ItemOptionCustomField
     */
    public function setFilterList(\StructType\ItemOptionCustomFieldFilterList $filterList = null)
    {
        $this->filterList = $filterList;
        return $this;
    }
    /**
     * Get colOptionLabel value
     * @return string|null
     */
    public function getColOptionLabel()
    {
        return $this->colOptionLabel;
    }
    /**
     * Set colOptionLabel value
     * @param string $colOptionLabel
     * @return \StructType\ItemOptionCustomField
     */
    public function setColOptionLabel($colOptionLabel = null)
    {
        // validation for constraint: string
        if (!is_null($colOptionLabel) && !is_string($colOptionLabel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($colOptionLabel, true), gettype($colOptionLabel)), __LINE__);
        }
        $this->colOptionLabel = $colOptionLabel;
        return $this;
    }
    /**
     * Get accessLevel value
     * @return string|null
     */
    public function getAccessLevel()
    {
        return $this->accessLevel;
    }
    /**
     * Set accessLevel value
     * @uses \EnumType\CustomizationAccessLevel::valueIsValid()
     * @uses \EnumType\CustomizationAccessLevel::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $accessLevel
     * @return \StructType\ItemOptionCustomField
     */
    public function setAccessLevel($accessLevel = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\CustomizationAccessLevel::valueIsValid($accessLevel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\CustomizationAccessLevel', is_array($accessLevel) ? implode(', ', $accessLevel) : var_export($accessLevel, true), implode(', ', \EnumType\CustomizationAccessLevel::getValidValues())), __LINE__);
        }
        $this->accessLevel = $accessLevel;
        return $this;
    }
    /**
     * Get searchLevel value
     * @return string|null
     */
    public function getSearchLevel()
    {
        return $this->searchLevel;
    }
    /**
     * Set searchLevel value
     * @uses \EnumType\CustomizationSearchLevel::valueIsValid()
     * @uses \EnumType\CustomizationSearchLevel::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $searchLevel
     * @return \StructType\ItemOptionCustomField
     */
    public function setSearchLevel($searchLevel = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\CustomizationSearchLevel::valueIsValid($searchLevel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\CustomizationSearchLevel', is_array($searchLevel) ? implode(', ', $searchLevel) : var_export($searchLevel, true), implode(', ', \EnumType\CustomizationSearchLevel::getValidValues())), __LINE__);
        }
        $this->searchLevel = $searchLevel;
        return $this;
    }
    /**
     * Get roleAccessList value
     * @return \StructType\CustomFieldRoleAccessList|null
     */
    public function getRoleAccessList()
    {
        return $this->roleAccessList;
    }
    /**
     * Set roleAccessList value
     * @param \StructType\CustomFieldRoleAccessList $roleAccessList
     * @return \StructType\ItemOptionCustomField
     */
    public function setRoleAccessList(\StructType\CustomFieldRoleAccessList $roleAccessList = null)
    {
        $this->roleAccessList = $roleAccessList;
        return $this;
    }
    /**
     * Get deptAccessList value
     * @return \StructType\CustomFieldDepartmentAccessList|null
     */
    public function getDeptAccessList()
    {
        return $this->deptAccessList;
    }
    /**
     * Set deptAccessList value
     * @param \StructType\CustomFieldDepartmentAccessList $deptAccessList
     * @return \StructType\ItemOptionCustomField
     */
    public function setDeptAccessList(\StructType\CustomFieldDepartmentAccessList $deptAccessList = null)
    {
        $this->deptAccessList = $deptAccessList;
        return $this;
    }
    /**
     * Get subAccessList value
     * @return \StructType\CustomFieldSubAccessList|null
     */
    public function getSubAccessList()
    {
        return $this->subAccessList;
    }
    /**
     * Set subAccessList value
     * @param \StructType\CustomFieldSubAccessList $subAccessList
     * @return \StructType\ItemOptionCustomField
     */
    public function setSubAccessList(\StructType\CustomFieldSubAccessList $subAccessList = null)
    {
        $this->subAccessList = $subAccessList;
        return $this;
    }
    /**
     * Get translationsList value
     * @return \StructType\CustomFieldTranslationsList|null
     */
    public function getTranslationsList()
    {
        return $this->translationsList;
    }
    /**
     * Set translationsList value
     * @param \StructType\CustomFieldTranslationsList $translationsList
     * @return \StructType\ItemOptionCustomField
     */
    public function setTranslationsList(\StructType\CustomFieldTranslationsList $translationsList = null)
    {
        $this->translationsList = $translationsList;
        return $this;
    }
    /**
     * Get internalId value
     * @return string|null
     */
    public function getInternalId()
    {
        return $this->internalId;
    }
    /**
     * Set internalId value
     * @param string $internalId
     * @return \StructType\ItemOptionCustomField
     */
    public function setInternalId($internalId = null)
    {
        // validation for constraint: string
        if (!is_null($internalId) && !is_string($internalId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($internalId, true), gettype($internalId)), __LINE__);
        }
        $this->internalId = $internalId;
        return $this;
    }
}
