<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for sendEnvelope StructType
 * @subpackage Structs
 */
class SendEnvelope extends AbstractStructBase
{
    /**
     * The urzadNadania
     * Meta information extracted from the WSDL
     * - base: xsd:int
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var int
     */
    public $urzadNadania;
    /**
     * The pakiet
     * Meta information extracted from the WSDL
     * - maxOccurs: unbounded
     * - minOccurs: 0
     * @var PakietType[]
     */
    public $pakiet;
    /**
     * The idBufor
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var int
     */
    public $idBufor;
    /**
     * The profil
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var ProfilType
     */
    public $profil;
    /**
     * Constructor method for sendEnvelope
     * @uses SendEnvelope::setUrzadNadania()
     * @uses SendEnvelope::setPakiet()
     * @uses SendEnvelope::setIdBufor()
     * @uses SendEnvelope::setProfil()
     * @param int $urzadNadania
     * @param PakietType[] $pakiet
     * @param int $idBufor
     * @param ProfilType $profil
     */
    public function __construct($urzadNadania = null, array $pakiet = array(), $idBufor = null, ProfilType $profil = null)
    {
        $this
            ->setUrzadNadania($urzadNadania)
            ->setPakiet($pakiet)
            ->setIdBufor($idBufor)
            ->setProfil($profil);
    }
    /**
     * Get urzadNadania value
     * @return int|null
     */
    public function getUrzadNadania()
    {
        return $this->urzadNadania;
    }
    /**
     * Set urzadNadania value
     * @param int $urzadNadania
     * @return SendEnvelope
     */
    public function setUrzadNadania($urzadNadania = null)
    {
        $this->urzadNadania = $urzadNadania;
        return $this;
    }
    /**
     * Get pakiet value
     * @return PakietType[]|null
     */
    public function getPakiet()
    {
        return $this->pakiet;
    }
    /**
     * Set pakiet value
     * @param PakietType[] $pakiet
     * @return SendEnvelope
     */
    public function setPakiet(array $pakiet = array())
    {
        $this->pakiet = $pakiet;
        return $this;
    }
    /**
     * Add item to pakiet value
     * @throws \InvalidArgumentException
     * @param PakietType $item
     * @return SendEnvelope
     */
    public function addToPakiet(PakietType $item)
    {
        $this->pakiet[] = $item;
        return $this;
    }
    /**
     * Get idBufor value
     * @return int|null
     */
    public function getIdBufor()
    {
        return $this->idBufor;
    }
    /**
     * Set idBufor value
     * @param int $idBufor
     * @return SendEnvelope
     */
    public function setIdBufor($idBufor = null)
    {
        $this->idBufor = $idBufor;
        return $this;
    }
    /**
     * Get profil value
     * @return ProfilType|null
     */
    public function getProfil()
    {
        return $this->profil;
    }
    /**
     * Set profil value
     * @param ProfilType $profil
     * @return SendEnvelope
     */
    public function setProfil(ProfilType $profil = null)
    {
        $this->profil = $profil;
        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 SendEnvelope
     */
    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__;
    }
}
