<?php

namespace dgsoft\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for APISRules StructType
 * @package Dg
 * @subpackage Structs
 */
class DgAPISRules extends AbstractStructBase
{
    /**
     * The APISRuleDocs
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgAPISRuleDocs
     */
    public $APISRuleDocs;
    /**
     * The APISRuleDoco
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgAPISRuleDoco
     */
    public $APISRuleDoco;
    /**
     * The APISRuleDoca
     * Meta informations extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \dgsoft\StructType\DgAPISRuleDoca
     */
    public $APISRuleDoca;
    /**
     * Constructor method for APISRules
     * @uses DgAPISRules::setAPISRuleDocs()
     * @uses DgAPISRules::setAPISRuleDoco()
     * @uses DgAPISRules::setAPISRuleDoca()
     * @param \dgsoft\StructType\DgAPISRuleDocs $aPISRuleDocs
     * @param \dgsoft\StructType\DgAPISRuleDoco $aPISRuleDoco
     * @param \dgsoft\StructType\DgAPISRuleDoca $aPISRuleDoca
     */
    public function __construct(\dgsoft\StructType\DgAPISRuleDocs $aPISRuleDocs = null, \dgsoft\StructType\DgAPISRuleDoco $aPISRuleDoco = null, \dgsoft\StructType\DgAPISRuleDoca $aPISRuleDoca = null)
    {
        $this
            ->setAPISRuleDocs($aPISRuleDocs)
            ->setAPISRuleDoco($aPISRuleDoco)
            ->setAPISRuleDoca($aPISRuleDoca);
    }
    /**
     * Get APISRuleDocs value
     * @return \dgsoft\StructType\DgAPISRuleDocs|null
     */
    public function getAPISRuleDocs()
    {
        return $this->APISRuleDocs;
    }
    /**
     * Set APISRuleDocs value
     * @param \dgsoft\StructType\DgAPISRuleDocs $aPISRuleDocs
     * @return \dgsoft\StructType\DgAPISRules
     */
    public function setAPISRuleDocs(\dgsoft\StructType\DgAPISRuleDocs $aPISRuleDocs = null)
    {
        $this->APISRuleDocs = $aPISRuleDocs;
        return $this;
    }
    /**
     * Get APISRuleDoco value
     * @return \dgsoft\StructType\DgAPISRuleDoco|null
     */
    public function getAPISRuleDoco()
    {
        return $this->APISRuleDoco;
    }
    /**
     * Set APISRuleDoco value
     * @param \dgsoft\StructType\DgAPISRuleDoco $aPISRuleDoco
     * @return \dgsoft\StructType\DgAPISRules
     */
    public function setAPISRuleDoco(\dgsoft\StructType\DgAPISRuleDoco $aPISRuleDoco = null)
    {
        $this->APISRuleDoco = $aPISRuleDoco;
        return $this;
    }
    /**
     * Get APISRuleDoca value
     * @return \dgsoft\StructType\DgAPISRuleDoca|null
     */
    public function getAPISRuleDoca()
    {
        return $this->APISRuleDoca;
    }
    /**
     * Set APISRuleDoca value
     * @param \dgsoft\StructType\DgAPISRuleDoca $aPISRuleDoca
     * @return \dgsoft\StructType\DgAPISRules
     */
    public function setAPISRuleDoca(\dgsoft\StructType\DgAPISRuleDoca $aPISRuleDoca = null)
    {
        $this->APISRuleDoca = $aPISRuleDoca;
        return $this;
    }
    /**
     * Method called when an object has been exported with var_export() functions
     * It allows to return an object instantiated with the values
     * @see AbstractStructBase::__set_state()
     * @uses AbstractStructBase::__set_state()
     * @param array $array the exported values
     * @return \dgsoft\StructType\DgAPISRules
     */
    public static function __set_state(array $array)
    {
        return parent::__set_state($array);
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
