<?php

namespace Mnm;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for LogRecordItem StructType
 * @subpackage Structs
 */
class LogRecordItem extends AbstractStructBase
{
    /**
     * The CreateDateUtc
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $CreateDateUtc;
    /**
     * The Type
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $Type;
    /**
     * The Creator
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $Creator;
    /**
     * The RemoteIpAddress
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $RemoteIpAddress;
    /**
     * The LocalIpAddress
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $LocalIpAddress;
    /**
     * The MachineName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $MachineName;
    /**
     * The Message
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $Message;
    /**
     * Constructor method for LogRecordItem
     * @uses LogRecordItem::setCreateDateUtc()
     * @uses LogRecordItem::setType()
     * @uses LogRecordItem::setCreator()
     * @uses LogRecordItem::setRemoteIpAddress()
     * @uses LogRecordItem::setLocalIpAddress()
     * @uses LogRecordItem::setMachineName()
     * @uses LogRecordItem::setMessage()
     * @param string $createDateUtc
     * @param string $type
     * @param string $creator
     * @param string $remoteIpAddress
     * @param string $localIpAddress
     * @param string $machineName
     * @param string $message
     */
    public function __construct($createDateUtc = null, $type = null, $creator = null, $remoteIpAddress = null, $localIpAddress = null, $machineName = null, $message = null)
    {
        $this
            ->setCreateDateUtc($createDateUtc)
            ->setType($type)
            ->setCreator($creator)
            ->setRemoteIpAddress($remoteIpAddress)
            ->setLocalIpAddress($localIpAddress)
            ->setMachineName($machineName)
            ->setMessage($message);
    }
    /**
     * Get CreateDateUtc value
     * @return string
     */
    public function getCreateDateUtc()
    {
        return $this->CreateDateUtc;
    }
    /**
     * Set CreateDateUtc value
     * @param string $createDateUtc
     * @return \Mnm\LogRecordItem
     */
    public function setCreateDateUtc($createDateUtc = null)
    {
        $this->CreateDateUtc = $createDateUtc;
        return $this;
    }
    /**
     * Get Type value
     * @return string
     */
    public function getType()
    {
        return $this->Type;
    }
    /**
     * Set Type value
     * @param string $type
     * @return \Mnm\LogRecordItem
     */
    public function setType($type = null)
    {
        $this->Type = $type;
        return $this;
    }
    /**
     * Get Creator value
     * @return string|null
     */
    public function getCreator()
    {
        return $this->Creator;
    }
    /**
     * Set Creator value
     * @param string $creator
     * @return \Mnm\LogRecordItem
     */
    public function setCreator($creator = null)
    {
        $this->Creator = $creator;
        return $this;
    }
    /**
     * Get RemoteIpAddress value
     * @return string|null
     */
    public function getRemoteIpAddress()
    {
        return $this->RemoteIpAddress;
    }
    /**
     * Set RemoteIpAddress value
     * @param string $remoteIpAddress
     * @return \Mnm\LogRecordItem
     */
    public function setRemoteIpAddress($remoteIpAddress = null)
    {
        $this->RemoteIpAddress = $remoteIpAddress;
        return $this;
    }
    /**
     * Get LocalIpAddress value
     * @return string|null
     */
    public function getLocalIpAddress()
    {
        return $this->LocalIpAddress;
    }
    /**
     * Set LocalIpAddress value
     * @param string $localIpAddress
     * @return \Mnm\LogRecordItem
     */
    public function setLocalIpAddress($localIpAddress = null)
    {
        $this->LocalIpAddress = $localIpAddress;
        return $this;
    }
    /**
     * Get MachineName value
     * @return string|null
     */
    public function getMachineName()
    {
        return $this->MachineName;
    }
    /**
     * Set MachineName value
     * @param string $machineName
     * @return \Mnm\LogRecordItem
     */
    public function setMachineName($machineName = null)
    {
        $this->MachineName = $machineName;
        return $this;
    }
    /**
     * Get Message value
     * @return string|null
     */
    public function getMessage()
    {
        return $this->Message;
    }
    /**
     * Set Message value
     * @param string $message
     * @return \Mnm\LogRecordItem
     */
    public function setMessage($message = null)
    {
        $this->Message = $message;
        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\LogRecordItem
     */
    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__;
    }
}
