<?php

namespace Iben_tracing\TracingStruct;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for READ TracingStruct
 * @package Iben_tracing
 * @subpackage Structs
 */
class Iben_tracingREAD extends AbstractStructBase
{
    /**
     * The wpel_code
     * @var string
     */
    public $wpel_code;
    /**
     * The wpel_user
     * @var int
     */
    public $wpel_user;
    /**
     * The wpel_pass
     * @var string
     */
    public $wpel_pass;
    /**
     * The wpel_vg
     * @var string
     */
    public $wpel_vg;
    /**
     * The wpel_ref
     * @var string
     */
    public $wpel_ref;
    /**
     * The wpel_flag
     * @var string
     */
    public $wpel_flag;
    /**
     * Constructor method for READ
     * @uses Iben_tracingREAD::setWpel_code()
     * @uses Iben_tracingREAD::setWpel_user()
     * @uses Iben_tracingREAD::setWpel_pass()
     * @uses Iben_tracingREAD::setWpel_vg()
     * @uses Iben_tracingREAD::setWpel_ref()
     * @uses Iben_tracingREAD::setWpel_flag()
     * @param string $wpel_code
     * @param int $wpel_user
     * @param string $wpel_pass
     * @param string $wpel_vg
     * @param string $wpel_ref
     * @param string $wpel_flag
     */
    public function __construct($wpel_code = null, $wpel_user = null, $wpel_pass = null, $wpel_vg = null, $wpel_ref = null, $wpel_flag = null)
    {
        $this
            ->setWpel_code($wpel_code)
            ->setWpel_user($wpel_user)
            ->setWpel_pass($wpel_pass)
            ->setWpel_vg($wpel_vg)
            ->setWpel_ref($wpel_ref)
            ->setWpel_flag($wpel_flag);
    }
    /**
     * Get wpel_code value
     * @return string|null
     */
    public function getWpel_code()
    {
        return $this->wpel_code;
    }
    /**
     * Set wpel_code value
     * @param string $wpel_code
     * @return \Iben_tracing\TracingStruct\Iben_tracingREAD
     */
    public function setWpel_code($wpel_code = null)
    {
        // validation for constraint: string
        if (!is_null($wpel_code) && !is_string($wpel_code)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($wpel_code, true), gettype($wpel_code)), __LINE__);
        }
        $this->wpel_code = $wpel_code;
        return $this;
    }
    /**
     * Get wpel_user value
     * @return int|null
     */
    public function getWpel_user()
    {
        return $this->wpel_user;
    }
    /**
     * Set wpel_user value
     * @param int $wpel_user
     * @return \Iben_tracing\TracingStruct\Iben_tracingREAD
     */
    public function setWpel_user($wpel_user = null)
    {
        // validation for constraint: int
        if (!is_null($wpel_user) && !(is_int($wpel_user) || ctype_digit($wpel_user))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($wpel_user, true), gettype($wpel_user)), __LINE__);
        }
        $this->wpel_user = $wpel_user;
        return $this;
    }
    /**
     * Get wpel_pass value
     * @return string|null
     */
    public function getWpel_pass()
    {
        return $this->wpel_pass;
    }
    /**
     * Set wpel_pass value
     * @param string $wpel_pass
     * @return \Iben_tracing\TracingStruct\Iben_tracingREAD
     */
    public function setWpel_pass($wpel_pass = null)
    {
        // validation for constraint: string
        if (!is_null($wpel_pass) && !is_string($wpel_pass)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($wpel_pass, true), gettype($wpel_pass)), __LINE__);
        }
        $this->wpel_pass = $wpel_pass;
        return $this;
    }
    /**
     * Get wpel_vg value
     * @return string|null
     */
    public function getWpel_vg()
    {
        return $this->wpel_vg;
    }
    /**
     * Set wpel_vg value
     * @param string $wpel_vg
     * @return \Iben_tracing\TracingStruct\Iben_tracingREAD
     */
    public function setWpel_vg($wpel_vg = null)
    {
        // validation for constraint: string
        if (!is_null($wpel_vg) && !is_string($wpel_vg)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($wpel_vg, true), gettype($wpel_vg)), __LINE__);
        }
        $this->wpel_vg = $wpel_vg;
        return $this;
    }
    /**
     * Get wpel_ref value
     * @return string|null
     */
    public function getWpel_ref()
    {
        return $this->wpel_ref;
    }
    /**
     * Set wpel_ref value
     * @param string $wpel_ref
     * @return \Iben_tracing\TracingStruct\Iben_tracingREAD
     */
    public function setWpel_ref($wpel_ref = null)
    {
        // validation for constraint: string
        if (!is_null($wpel_ref) && !is_string($wpel_ref)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($wpel_ref, true), gettype($wpel_ref)), __LINE__);
        }
        $this->wpel_ref = $wpel_ref;
        return $this;
    }
    /**
     * Get wpel_flag value
     * @return string|null
     */
    public function getWpel_flag()
    {
        return $this->wpel_flag;
    }
    /**
     * Set wpel_flag value
     * @param string $wpel_flag
     * @return \Iben_tracing\TracingStruct\Iben_tracingREAD
     */
    public function setWpel_flag($wpel_flag = null)
    {
        // validation for constraint: string
        if (!is_null($wpel_flag) && !is_string($wpel_flag)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($wpel_flag, true), gettype($wpel_flag)), __LINE__);
        }
        $this->wpel_flag = $wpel_flag;
        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 \Iben_tracing\TracingStruct\Iben_tracingREAD
     */
    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__;
    }
}
