<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Mezzo StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:Mezzo
 * @subpackage Structs
 */
class Mezzo extends AbstractStructBase
{
    /**
     * The Sigla
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Sigla;
    /**
     * The Targa
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Targa;
    /**
     * Constructor method for Mezzo
     * @uses Mezzo::setSigla()
     * @uses Mezzo::setTarga()
     * @param string $sigla
     * @param string $targa
     */
    public function __construct($sigla = null, $targa = null)
    {
        $this
            ->setSigla($sigla)
            ->setTarga($targa);
    }
    /**
     * Get Sigla 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 getSigla()
    {
        return isset($this->Sigla) ? $this->Sigla : null;
    }
    /**
     * Set Sigla 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 $sigla
     * @return Mezzo
     */
    public function setSigla($sigla = null)
    {
        // validation for constraint: string
        if (!is_null($sigla) && !is_string($sigla)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sigla, true), gettype($sigla)), __LINE__);
        }
        if (is_null($sigla) || (is_array($sigla) && empty($sigla))) {
            unset($this->Sigla);
        } else {
            $this->Sigla = $sigla;
        }
        return $this;
    }
    /**
     * Get Targa 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 getTarga()
    {
        return isset($this->Targa) ? $this->Targa : null;
    }
    /**
     * Set Targa 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 $targa
     * @return Mezzo
     */
    public function setTarga($targa = null)
    {
        // validation for constraint: string
        if (!is_null($targa) && !is_string($targa)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($targa, true), gettype($targa)), __LINE__);
        }
        if (is_null($targa) || (is_array($targa) && empty($targa))) {
            unset($this->Targa);
        } else {
            $this->Targa = $targa;
        }
        return $this;
    }
}
