<?php

namespace TRIBUNALWS;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for DocumentoPN TRIBUNALWS
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: ns1:DocumentoPN
 * @subpackage Structs
 */
class DocumentoPN extends AbstractStructBase
{
    /**
     * The Descricao
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Descricao;
    /**
     * The DocumentoByte
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $DocumentoByte;
    /**
     * The Extensao
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Extensao;
    /**
     * The IdProcesso
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $IdProcesso;
    /**
     * The NomeComExtensao
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $NomeComExtensao;
    /**
     * The Titulo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Titulo;
    /**
     * Constructor method for DocumentoPN
     * @uses DocumentoPN::setDescricao()
     * @uses DocumentoPN::setDocumentoByte()
     * @uses DocumentoPN::setExtensao()
     * @uses DocumentoPN::setIdProcesso()
     * @uses DocumentoPN::setNomeComExtensao()
     * @uses DocumentoPN::setTitulo()
     * @param string $descricao
     * @param string $documentoByte
     * @param string $extensao
     * @param string $idProcesso
     * @param string $nomeComExtensao
     * @param string $titulo
     */
    public function __construct($descricao = null, $documentoByte = null, $extensao = null, $idProcesso = null, $nomeComExtensao = null, $titulo = null)
    {
        $this
            ->setDescricao($descricao)
            ->setDocumentoByte($documentoByte)
            ->setExtensao($extensao)
            ->setIdProcesso($idProcesso)
            ->setNomeComExtensao($nomeComExtensao)
            ->setTitulo($titulo);
    }
    /**
     * Get Descricao 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 getDescricao()
    {
        return isset($this->Descricao) ? $this->Descricao : null;
    }
    /**
     * Set Descricao 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 $descricao
     * @return \TRIBUNALWS\DocumentoPN
     */
    public function setDescricao($descricao = null)
    {
        if (is_null($descricao) || (is_array($descricao) && empty($descricao))) {
            unset($this->Descricao);
        } else {
            $this->Descricao = $descricao;
        }
        return $this;
    }
    /**
     * Get DocumentoByte 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 getDocumentoByte()
    {
        return isset($this->DocumentoByte) ? $this->DocumentoByte : null;
    }
    /**
     * Set DocumentoByte 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 $documentoByte
     * @return \TRIBUNALWS\DocumentoPN
     */
    public function setDocumentoByte($documentoByte = null)
    {
        if (is_null($documentoByte) || (is_array($documentoByte) && empty($documentoByte))) {
            unset($this->DocumentoByte);
        } else {
            $this->DocumentoByte = $documentoByte;
        }
        return $this;
    }
    /**
     * Get Extensao 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 getExtensao()
    {
        return isset($this->Extensao) ? $this->Extensao : null;
    }
    /**
     * Set Extensao 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 $extensao
     * @return \TRIBUNALWS\DocumentoPN
     */
    public function setExtensao($extensao = null)
    {
        if (is_null($extensao) || (is_array($extensao) && empty($extensao))) {
            unset($this->Extensao);
        } else {
            $this->Extensao = $extensao;
        }
        return $this;
    }
    /**
     * Get IdProcesso 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 getIdProcesso()
    {
        return isset($this->IdProcesso) ? $this->IdProcesso : null;
    }
    /**
     * Set IdProcesso 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 $idProcesso
     * @return \TRIBUNALWS\DocumentoPN
     */
    public function setIdProcesso($idProcesso = null)
    {
        if (is_null($idProcesso) || (is_array($idProcesso) && empty($idProcesso))) {
            unset($this->IdProcesso);
        } else {
            $this->IdProcesso = $idProcesso;
        }
        return $this;
    }
    /**
     * Get NomeComExtensao 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 getNomeComExtensao()
    {
        return isset($this->NomeComExtensao) ? $this->NomeComExtensao : null;
    }
    /**
     * Set NomeComExtensao 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 $nomeComExtensao
     * @return \TRIBUNALWS\DocumentoPN
     */
    public function setNomeComExtensao($nomeComExtensao = null)
    {
        if (is_null($nomeComExtensao) || (is_array($nomeComExtensao) && empty($nomeComExtensao))) {
            unset($this->NomeComExtensao);
        } else {
            $this->NomeComExtensao = $nomeComExtensao;
        }
        return $this;
    }
    /**
     * Get Titulo 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 getTitulo()
    {
        return isset($this->Titulo) ? $this->Titulo : null;
    }
    /**
     * Set Titulo 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 $titulo
     * @return \TRIBUNALWS\DocumentoPN
     */
    public function setTitulo($titulo = null)
    {
        if (is_null($titulo) || (is_array($titulo) && empty($titulo))) {
            unset($this->Titulo);
        } else {
            $this->Titulo = $titulo;
        }
        return $this;
    }
}
