<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for BizAction.Foundation.RulesOverview.RuleSetBase StructType
 * @subpackage Structs
 */
class BizAction_Foundation_RulesOverview_RuleSetBase extends AnyEntity
{
    /**
     * The ContextEntityId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ContextEntityId;
    /**
     * The ContextEntityName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ContextEntityName;
    /**
     * The Items
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\RecordSetOfBizAction_Foundation_RulesOverview_Rule
     */
    public $Items;
    /**
     * The RuleActionPrefix
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RuleActionPrefix;
    /**
     * The RuleLevel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RuleLevel;
    /**
     * The RulesAffect
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RulesAffect;
    /**
     * The RuleSetName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RuleSetName;
    /**
     * The RuleSystemName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $RuleSystemName;
    /**
     * The ShowRulesActionDescriptionsSummary
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $ShowRulesActionDescriptionsSummary;
    /**
     * The Title
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Title;
    /**
     * The UIEntity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UIEntity;
    /**
     * The UIViewNameRule
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UIViewNameRule;
    /**
     * The UIViewNameRuleSet
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UIViewNameRuleSet;
    /**
     * Constructor method for BizAction.Foundation.RulesOverview.RuleSetBase
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setContextEntityId()
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setContextEntityName()
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setItems()
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setRuleActionPrefix()
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setRuleLevel()
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setRulesAffect()
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setRuleSetName()
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setRuleSystemName()
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setShowRulesActionDescriptionsSummary()
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setTitle()
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setUIEntity()
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setUIViewNameRule()
     * @uses BizAction_Foundation_RulesOverview_RuleSetBase::setUIViewNameRuleSet()
     * @param string $contextEntityId
     * @param string $contextEntityName
     * @param \patest\StructType\RecordSetOfBizAction_Foundation_RulesOverview_Rule $items
     * @param string $ruleActionPrefix
     * @param string $ruleLevel
     * @param string $rulesAffect
     * @param string $ruleSetName
     * @param string $ruleSystemName
     * @param bool $showRulesActionDescriptionsSummary
     * @param string $title
     * @param string $uIEntity
     * @param string $uIViewNameRule
     * @param string $uIViewNameRuleSet
     */
    public function __construct($contextEntityId = null, $contextEntityName = null, \patest\StructType\RecordSetOfBizAction_Foundation_RulesOverview_Rule $items = null, $ruleActionPrefix = null, $ruleLevel = null, $rulesAffect = null, $ruleSetName = null, $ruleSystemName = null, $showRulesActionDescriptionsSummary = null, $title = null, $uIEntity = null, $uIViewNameRule = null, $uIViewNameRuleSet = null)
    {
        $this
            ->setContextEntityId($contextEntityId)
            ->setContextEntityName($contextEntityName)
            ->setItems($items)
            ->setRuleActionPrefix($ruleActionPrefix)
            ->setRuleLevel($ruleLevel)
            ->setRulesAffect($rulesAffect)
            ->setRuleSetName($ruleSetName)
            ->setRuleSystemName($ruleSystemName)
            ->setShowRulesActionDescriptionsSummary($showRulesActionDescriptionsSummary)
            ->setTitle($title)
            ->setUIEntity($uIEntity)
            ->setUIViewNameRule($uIViewNameRule)
            ->setUIViewNameRuleSet($uIViewNameRuleSet);
    }
    /**
     * Get ContextEntityId 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 getContextEntityId()
    {
        return isset($this->ContextEntityId) ? $this->ContextEntityId : null;
    }
    /**
     * Set ContextEntityId 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 $contextEntityId
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setContextEntityId($contextEntityId = null)
    {
        // validation for constraint: string
        if (!is_null($contextEntityId) && !is_string($contextEntityId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($contextEntityId, true), gettype($contextEntityId)), __LINE__);
        }
        if (is_null($contextEntityId) || (is_array($contextEntityId) && empty($contextEntityId))) {
            unset($this->ContextEntityId);
        } else {
            $this->ContextEntityId = $contextEntityId;
        }
        return $this;
    }
    /**
     * Get ContextEntityName 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 getContextEntityName()
    {
        return isset($this->ContextEntityName) ? $this->ContextEntityName : null;
    }
    /**
     * Set ContextEntityName 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 $contextEntityName
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setContextEntityName($contextEntityName = null)
    {
        // validation for constraint: string
        if (!is_null($contextEntityName) && !is_string($contextEntityName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($contextEntityName, true), gettype($contextEntityName)), __LINE__);
        }
        if (is_null($contextEntityName) || (is_array($contextEntityName) && empty($contextEntityName))) {
            unset($this->ContextEntityName);
        } else {
            $this->ContextEntityName = $contextEntityName;
        }
        return $this;
    }
    /**
     * Get Items value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\RecordSetOfBizAction_Foundation_RulesOverview_Rule|null
     */
    public function getItems()
    {
        return isset($this->Items) ? $this->Items : null;
    }
    /**
     * Set Items value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\RecordSetOfBizAction_Foundation_RulesOverview_Rule $items
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setItems(\patest\StructType\RecordSetOfBizAction_Foundation_RulesOverview_Rule $items = null)
    {
        if (is_null($items) || (is_array($items) && empty($items))) {
            unset($this->Items);
        } else {
            $this->Items = $items;
        }
        return $this;
    }
    /**
     * Get RuleActionPrefix 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 getRuleActionPrefix()
    {
        return isset($this->RuleActionPrefix) ? $this->RuleActionPrefix : null;
    }
    /**
     * Set RuleActionPrefix 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 $ruleActionPrefix
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setRuleActionPrefix($ruleActionPrefix = null)
    {
        // validation for constraint: string
        if (!is_null($ruleActionPrefix) && !is_string($ruleActionPrefix)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ruleActionPrefix, true), gettype($ruleActionPrefix)), __LINE__);
        }
        if (is_null($ruleActionPrefix) || (is_array($ruleActionPrefix) && empty($ruleActionPrefix))) {
            unset($this->RuleActionPrefix);
        } else {
            $this->RuleActionPrefix = $ruleActionPrefix;
        }
        return $this;
    }
    /**
     * Get RuleLevel 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 getRuleLevel()
    {
        return isset($this->RuleLevel) ? $this->RuleLevel : null;
    }
    /**
     * Set RuleLevel 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 $ruleLevel
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setRuleLevel($ruleLevel = null)
    {
        // validation for constraint: string
        if (!is_null($ruleLevel) && !is_string($ruleLevel)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ruleLevel, true), gettype($ruleLevel)), __LINE__);
        }
        if (is_null($ruleLevel) || (is_array($ruleLevel) && empty($ruleLevel))) {
            unset($this->RuleLevel);
        } else {
            $this->RuleLevel = $ruleLevel;
        }
        return $this;
    }
    /**
     * Get RulesAffect 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 getRulesAffect()
    {
        return isset($this->RulesAffect) ? $this->RulesAffect : null;
    }
    /**
     * Set RulesAffect 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 $rulesAffect
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setRulesAffect($rulesAffect = null)
    {
        // validation for constraint: string
        if (!is_null($rulesAffect) && !is_string($rulesAffect)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($rulesAffect, true), gettype($rulesAffect)), __LINE__);
        }
        if (is_null($rulesAffect) || (is_array($rulesAffect) && empty($rulesAffect))) {
            unset($this->RulesAffect);
        } else {
            $this->RulesAffect = $rulesAffect;
        }
        return $this;
    }
    /**
     * Get RuleSetName 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 getRuleSetName()
    {
        return isset($this->RuleSetName) ? $this->RuleSetName : null;
    }
    /**
     * Set RuleSetName 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 $ruleSetName
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setRuleSetName($ruleSetName = null)
    {
        // validation for constraint: string
        if (!is_null($ruleSetName) && !is_string($ruleSetName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ruleSetName, true), gettype($ruleSetName)), __LINE__);
        }
        if (is_null($ruleSetName) || (is_array($ruleSetName) && empty($ruleSetName))) {
            unset($this->RuleSetName);
        } else {
            $this->RuleSetName = $ruleSetName;
        }
        return $this;
    }
    /**
     * Get RuleSystemName 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 getRuleSystemName()
    {
        return isset($this->RuleSystemName) ? $this->RuleSystemName : null;
    }
    /**
     * Set RuleSystemName 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 $ruleSystemName
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setRuleSystemName($ruleSystemName = null)
    {
        // validation for constraint: string
        if (!is_null($ruleSystemName) && !is_string($ruleSystemName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ruleSystemName, true), gettype($ruleSystemName)), __LINE__);
        }
        if (is_null($ruleSystemName) || (is_array($ruleSystemName) && empty($ruleSystemName))) {
            unset($this->RuleSystemName);
        } else {
            $this->RuleSystemName = $ruleSystemName;
        }
        return $this;
    }
    /**
     * Get ShowRulesActionDescriptionsSummary 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 bool|null
     */
    public function getShowRulesActionDescriptionsSummary()
    {
        return isset($this->ShowRulesActionDescriptionsSummary) ? $this->ShowRulesActionDescriptionsSummary : null;
    }
    /**
     * Set ShowRulesActionDescriptionsSummary 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 bool $showRulesActionDescriptionsSummary
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setShowRulesActionDescriptionsSummary($showRulesActionDescriptionsSummary = null)
    {
        // validation for constraint: boolean
        if (!is_null($showRulesActionDescriptionsSummary) && !is_bool($showRulesActionDescriptionsSummary)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($showRulesActionDescriptionsSummary, true), gettype($showRulesActionDescriptionsSummary)), __LINE__);
        }
        if (is_null($showRulesActionDescriptionsSummary) || (is_array($showRulesActionDescriptionsSummary) && empty($showRulesActionDescriptionsSummary))) {
            unset($this->ShowRulesActionDescriptionsSummary);
        } else {
            $this->ShowRulesActionDescriptionsSummary = $showRulesActionDescriptionsSummary;
        }
        return $this;
    }
    /**
     * Get Title 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 getTitle()
    {
        return isset($this->Title) ? $this->Title : null;
    }
    /**
     * Set Title 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 $title
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setTitle($title = null)
    {
        // validation for constraint: string
        if (!is_null($title) && !is_string($title)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($title, true), gettype($title)), __LINE__);
        }
        if (is_null($title) || (is_array($title) && empty($title))) {
            unset($this->Title);
        } else {
            $this->Title = $title;
        }
        return $this;
    }
    /**
     * Get UIEntity 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 getUIEntity()
    {
        return isset($this->UIEntity) ? $this->UIEntity : null;
    }
    /**
     * Set UIEntity 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 $uIEntity
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setUIEntity($uIEntity = null)
    {
        // validation for constraint: string
        if (!is_null($uIEntity) && !is_string($uIEntity)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($uIEntity, true), gettype($uIEntity)), __LINE__);
        }
        if (is_null($uIEntity) || (is_array($uIEntity) && empty($uIEntity))) {
            unset($this->UIEntity);
        } else {
            $this->UIEntity = $uIEntity;
        }
        return $this;
    }
    /**
     * Get UIViewNameRule 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 getUIViewNameRule()
    {
        return isset($this->UIViewNameRule) ? $this->UIViewNameRule : null;
    }
    /**
     * Set UIViewNameRule 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 $uIViewNameRule
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setUIViewNameRule($uIViewNameRule = null)
    {
        // validation for constraint: string
        if (!is_null($uIViewNameRule) && !is_string($uIViewNameRule)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($uIViewNameRule, true), gettype($uIViewNameRule)), __LINE__);
        }
        if (is_null($uIViewNameRule) || (is_array($uIViewNameRule) && empty($uIViewNameRule))) {
            unset($this->UIViewNameRule);
        } else {
            $this->UIViewNameRule = $uIViewNameRule;
        }
        return $this;
    }
    /**
     * Get UIViewNameRuleSet 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 getUIViewNameRuleSet()
    {
        return isset($this->UIViewNameRuleSet) ? $this->UIViewNameRuleSet : null;
    }
    /**
     * Set UIViewNameRuleSet 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 $uIViewNameRuleSet
     * @return \patest\StructType\BizAction_Foundation_RulesOverview_RuleSetBase
     */
    public function setUIViewNameRuleSet($uIViewNameRuleSet = null)
    {
        // validation for constraint: string
        if (!is_null($uIViewNameRuleSet) && !is_string($uIViewNameRuleSet)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($uIViewNameRuleSet, true), gettype($uIViewNameRuleSet)), __LINE__);
        }
        if (is_null($uIViewNameRuleSet) || (is_array($uIViewNameRuleSet) && empty($uIViewNameRuleSet))) {
            unset($this->UIViewNameRuleSet);
        } else {
            $this->UIViewNameRuleSet = $uIViewNameRuleSet;
        }
        return $this;
    }
}
