<?php

namespace Mnm;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for NewGenerationPaymentRecorderInformation StructType
 * @subpackage Structs
 */
class NewGenerationPaymentRecorderInformation extends AbstractStructBase
{
    /**
     * The PaperDate
     * Meta information extracted from the WSDL
     * - use: required
     * @var string
     */
    public $PaperDate;
    /**
     * The PaperNumber
     * @var string
     */
    public $PaperNumber;
    /**
     * The SerialNumber
     * @var string
     */
    public $SerialNumber;
    /**
     * The ZNumber
     * @var string
     */
    public $ZNumber;
    /**
     * Constructor method for NewGenerationPaymentRecorderInformation
     * @uses NewGenerationPaymentRecorderInformation::setPaperDate()
     * @uses NewGenerationPaymentRecorderInformation::setPaperNumber()
     * @uses NewGenerationPaymentRecorderInformation::setSerialNumber()
     * @uses NewGenerationPaymentRecorderInformation::setZNumber()
     * @param string $paperDate
     * @param string $paperNumber
     * @param string $serialNumber
     * @param string $zNumber
     */
    public function __construct($paperDate = null, $paperNumber = null, $serialNumber = null, $zNumber = null)
    {
        $this
            ->setPaperDate($paperDate)
            ->setPaperNumber($paperNumber)
            ->setSerialNumber($serialNumber)
            ->setZNumber($zNumber);
    }
    /**
     * Get PaperDate value
     * @return string
     */
    public function getPaperDate()
    {
        return $this->PaperDate;
    }
    /**
     * Set PaperDate value
     * @param string $paperDate
     * @return \Mnm\NewGenerationPaymentRecorderInformation
     */
    public function setPaperDate($paperDate = null)
    {
        $this->PaperDate = $paperDate;
        return $this;
    }
    /**
     * Get PaperNumber value
     * @return string|null
     */
    public function getPaperNumber()
    {
        return $this->PaperNumber;
    }
    /**
     * Set PaperNumber value
     * @param string $paperNumber
     * @return \Mnm\NewGenerationPaymentRecorderInformation
     */
    public function setPaperNumber($paperNumber = null)
    {
        $this->PaperNumber = $paperNumber;
        return $this;
    }
    /**
     * Get SerialNumber value
     * @return string|null
     */
    public function getSerialNumber()
    {
        return $this->SerialNumber;
    }
    /**
     * Set SerialNumber value
     * @param string $serialNumber
     * @return \Mnm\NewGenerationPaymentRecorderInformation
     */
    public function setSerialNumber($serialNumber = null)
    {
        $this->SerialNumber = $serialNumber;
        return $this;
    }
    /**
     * Get ZNumber value
     * @return string|null
     */
    public function getZNumber()
    {
        return $this->ZNumber;
    }
    /**
     * Set ZNumber value
     * @param string $zNumber
     * @return \Mnm\NewGenerationPaymentRecorderInformation
     */
    public function setZNumber($zNumber = null)
    {
        $this->ZNumber = $zNumber;
        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 \Mnm\NewGenerationPaymentRecorderInformation
     */
    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__;
    }
}
