<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Infra.ManualFixLog StructType
 * @subpackage Structs
 */
class Infra_ManualFixLog extends AnyEntity
{
    /**
     * The Action
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Action;
    /**
     * The Core
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Core;
    /**
     * The Dependencies
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Dependencies;
    /**
     * The Esro
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Esro;
    /**
     * The FixHotfix
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FixHotfix;
    /**
     * The FixName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FixName;
    /**
     * The FixTargetRelease
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FixTargetRelease;
    /**
     * The FixVersion
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $FixVersion;
    /**
     * The InstallationDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $InstallationDate;
    /**
     * The InstalledBy
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $InstalledBy;
    /**
     * The LocalId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $LocalId;
    /**
     * The Note
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Note;
    /**
     * The Portal
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var bool
     */
    public $Portal;
    /**
     * The Result
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $Result;
    /**
     * The RowId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var int
     */
    public $RowId;
    /**
     * The SourceDB
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SourceDB;
    /**
     * Constructor method for Infra.ManualFixLog
     * @uses Infra_ManualFixLog::setAction()
     * @uses Infra_ManualFixLog::setCore()
     * @uses Infra_ManualFixLog::setDependencies()
     * @uses Infra_ManualFixLog::setEsro()
     * @uses Infra_ManualFixLog::setFixHotfix()
     * @uses Infra_ManualFixLog::setFixName()
     * @uses Infra_ManualFixLog::setFixTargetRelease()
     * @uses Infra_ManualFixLog::setFixVersion()
     * @uses Infra_ManualFixLog::setInstallationDate()
     * @uses Infra_ManualFixLog::setInstalledBy()
     * @uses Infra_ManualFixLog::setLocalId()
     * @uses Infra_ManualFixLog::setNote()
     * @uses Infra_ManualFixLog::setPortal()
     * @uses Infra_ManualFixLog::setResult()
     * @uses Infra_ManualFixLog::setRowId()
     * @uses Infra_ManualFixLog::setSourceDB()
     * @param string $action
     * @param bool $core
     * @param string $dependencies
     * @param bool $esro
     * @param string $fixHotfix
     * @param string $fixName
     * @param string $fixTargetRelease
     * @param string $fixVersion
     * @param string $installationDate
     * @param string $installedBy
     * @param int $localId
     * @param string $note
     * @param bool $portal
     * @param string $result
     * @param int $rowId
     * @param string $sourceDB
     */
    public function __construct($action = null, $core = null, $dependencies = null, $esro = null, $fixHotfix = null, $fixName = null, $fixTargetRelease = null, $fixVersion = null, $installationDate = null, $installedBy = null, $localId = null, $note = null, $portal = null, $result = null, $rowId = null, $sourceDB = null)
    {
        $this
            ->setAction($action)
            ->setCore($core)
            ->setDependencies($dependencies)
            ->setEsro($esro)
            ->setFixHotfix($fixHotfix)
            ->setFixName($fixName)
            ->setFixTargetRelease($fixTargetRelease)
            ->setFixVersion($fixVersion)
            ->setInstallationDate($installationDate)
            ->setInstalledBy($installedBy)
            ->setLocalId($localId)
            ->setNote($note)
            ->setPortal($portal)
            ->setResult($result)
            ->setRowId($rowId)
            ->setSourceDB($sourceDB);
    }
    /**
     * Get Action 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 getAction()
    {
        return isset($this->Action) ? $this->Action : null;
    }
    /**
     * Set Action 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 $action
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setAction($action = null)
    {
        // validation for constraint: string
        if (!is_null($action) && !is_string($action)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($action, true), gettype($action)), __LINE__);
        }
        if (is_null($action) || (is_array($action) && empty($action))) {
            unset($this->Action);
        } else {
            $this->Action = $action;
        }
        return $this;
    }
    /**
     * Get Core 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 bool|null
     */
    public function getCore()
    {
        return isset($this->Core) ? $this->Core : null;
    }
    /**
     * Set Core 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 bool $core
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setCore($core = null)
    {
        // validation for constraint: boolean
        if (!is_null($core) && !is_bool($core)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($core, true), gettype($core)), __LINE__);
        }
        if (is_null($core) || (is_array($core) && empty($core))) {
            unset($this->Core);
        } else {
            $this->Core = $core;
        }
        return $this;
    }
    /**
     * Get Dependencies 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 getDependencies()
    {
        return isset($this->Dependencies) ? $this->Dependencies : null;
    }
    /**
     * Set Dependencies 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 $dependencies
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setDependencies($dependencies = null)
    {
        // validation for constraint: string
        if (!is_null($dependencies) && !is_string($dependencies)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dependencies, true), gettype($dependencies)), __LINE__);
        }
        if (is_null($dependencies) || (is_array($dependencies) && empty($dependencies))) {
            unset($this->Dependencies);
        } else {
            $this->Dependencies = $dependencies;
        }
        return $this;
    }
    /**
     * Get Esro 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 bool|null
     */
    public function getEsro()
    {
        return isset($this->Esro) ? $this->Esro : null;
    }
    /**
     * Set Esro 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 bool $esro
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setEsro($esro = null)
    {
        // validation for constraint: boolean
        if (!is_null($esro) && !is_bool($esro)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($esro, true), gettype($esro)), __LINE__);
        }
        if (is_null($esro) || (is_array($esro) && empty($esro))) {
            unset($this->Esro);
        } else {
            $this->Esro = $esro;
        }
        return $this;
    }
    /**
     * Get FixHotfix 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 getFixHotfix()
    {
        return isset($this->FixHotfix) ? $this->FixHotfix : null;
    }
    /**
     * Set FixHotfix 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 $fixHotfix
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setFixHotfix($fixHotfix = null)
    {
        // validation for constraint: string
        if (!is_null($fixHotfix) && !is_string($fixHotfix)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($fixHotfix, true), gettype($fixHotfix)), __LINE__);
        }
        if (is_null($fixHotfix) || (is_array($fixHotfix) && empty($fixHotfix))) {
            unset($this->FixHotfix);
        } else {
            $this->FixHotfix = $fixHotfix;
        }
        return $this;
    }
    /**
     * Get FixName 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 getFixName()
    {
        return isset($this->FixName) ? $this->FixName : null;
    }
    /**
     * Set FixName 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 $fixName
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setFixName($fixName = null)
    {
        // validation for constraint: string
        if (!is_null($fixName) && !is_string($fixName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($fixName, true), gettype($fixName)), __LINE__);
        }
        if (is_null($fixName) || (is_array($fixName) && empty($fixName))) {
            unset($this->FixName);
        } else {
            $this->FixName = $fixName;
        }
        return $this;
    }
    /**
     * Get FixTargetRelease 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 getFixTargetRelease()
    {
        return isset($this->FixTargetRelease) ? $this->FixTargetRelease : null;
    }
    /**
     * Set FixTargetRelease 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 $fixTargetRelease
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setFixTargetRelease($fixTargetRelease = null)
    {
        // validation for constraint: string
        if (!is_null($fixTargetRelease) && !is_string($fixTargetRelease)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($fixTargetRelease, true), gettype($fixTargetRelease)), __LINE__);
        }
        if (is_null($fixTargetRelease) || (is_array($fixTargetRelease) && empty($fixTargetRelease))) {
            unset($this->FixTargetRelease);
        } else {
            $this->FixTargetRelease = $fixTargetRelease;
        }
        return $this;
    }
    /**
     * Get FixVersion 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 getFixVersion()
    {
        return isset($this->FixVersion) ? $this->FixVersion : null;
    }
    /**
     * Set FixVersion 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 $fixVersion
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setFixVersion($fixVersion = null)
    {
        // validation for constraint: string
        if (!is_null($fixVersion) && !is_string($fixVersion)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($fixVersion, true), gettype($fixVersion)), __LINE__);
        }
        if (is_null($fixVersion) || (is_array($fixVersion) && empty($fixVersion))) {
            unset($this->FixVersion);
        } else {
            $this->FixVersion = $fixVersion;
        }
        return $this;
    }
    /**
     * Get InstallationDate 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 getInstallationDate()
    {
        return isset($this->InstallationDate) ? $this->InstallationDate : null;
    }
    /**
     * Set InstallationDate 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 $installationDate
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setInstallationDate($installationDate = null)
    {
        // validation for constraint: string
        if (!is_null($installationDate) && !is_string($installationDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($installationDate, true), gettype($installationDate)), __LINE__);
        }
        if (is_null($installationDate) || (is_array($installationDate) && empty($installationDate))) {
            unset($this->InstallationDate);
        } else {
            $this->InstallationDate = $installationDate;
        }
        return $this;
    }
    /**
     * Get InstalledBy 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 getInstalledBy()
    {
        return isset($this->InstalledBy) ? $this->InstalledBy : null;
    }
    /**
     * Set InstalledBy 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 $installedBy
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setInstalledBy($installedBy = null)
    {
        // validation for constraint: string
        if (!is_null($installedBy) && !is_string($installedBy)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($installedBy, true), gettype($installedBy)), __LINE__);
        }
        if (is_null($installedBy) || (is_array($installedBy) && empty($installedBy))) {
            unset($this->InstalledBy);
        } else {
            $this->InstalledBy = $installedBy;
        }
        return $this;
    }
    /**
     * Get LocalId 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 int|null
     */
    public function getLocalId()
    {
        return isset($this->LocalId) ? $this->LocalId : null;
    }
    /**
     * Set LocalId 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 int $localId
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setLocalId($localId = null)
    {
        // validation for constraint: int
        if (!is_null($localId) && !(is_int($localId) || ctype_digit($localId))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($localId, true), gettype($localId)), __LINE__);
        }
        if (is_null($localId) || (is_array($localId) && empty($localId))) {
            unset($this->LocalId);
        } else {
            $this->LocalId = $localId;
        }
        return $this;
    }
    /**
     * Get Note 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 getNote()
    {
        return isset($this->Note) ? $this->Note : null;
    }
    /**
     * Set Note 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 $note
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setNote($note = null)
    {
        // validation for constraint: string
        if (!is_null($note) && !is_string($note)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($note, true), gettype($note)), __LINE__);
        }
        if (is_null($note) || (is_array($note) && empty($note))) {
            unset($this->Note);
        } else {
            $this->Note = $note;
        }
        return $this;
    }
    /**
     * Get Portal 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 bool|null
     */
    public function getPortal()
    {
        return isset($this->Portal) ? $this->Portal : null;
    }
    /**
     * Set Portal 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 bool $portal
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setPortal($portal = null)
    {
        // validation for constraint: boolean
        if (!is_null($portal) && !is_bool($portal)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($portal, true), gettype($portal)), __LINE__);
        }
        if (is_null($portal) || (is_array($portal) && empty($portal))) {
            unset($this->Portal);
        } else {
            $this->Portal = $portal;
        }
        return $this;
    }
    /**
     * Get Result 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 getResult()
    {
        return isset($this->Result) ? $this->Result : null;
    }
    /**
     * Set Result 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 $result
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setResult($result = null)
    {
        // validation for constraint: string
        if (!is_null($result) && !is_string($result)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($result, true), gettype($result)), __LINE__);
        }
        if (is_null($result) || (is_array($result) && empty($result))) {
            unset($this->Result);
        } else {
            $this->Result = $result;
        }
        return $this;
    }
    /**
     * Get RowId 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 int|null
     */
    public function getRowId()
    {
        return isset($this->RowId) ? $this->RowId : null;
    }
    /**
     * Set RowId 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 int $rowId
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setRowId($rowId = null)
    {
        // validation for constraint: int
        if (!is_null($rowId) && !(is_int($rowId) || ctype_digit($rowId))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($rowId, true), gettype($rowId)), __LINE__);
        }
        if (is_null($rowId) || (is_array($rowId) && empty($rowId))) {
            unset($this->RowId);
        } else {
            $this->RowId = $rowId;
        }
        return $this;
    }
    /**
     * Get SourceDB 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 getSourceDB()
    {
        return isset($this->SourceDB) ? $this->SourceDB : null;
    }
    /**
     * Set SourceDB 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 $sourceDB
     * @return \patest\StructType\Infra_ManualFixLog
     */
    public function setSourceDB($sourceDB = null)
    {
        // validation for constraint: string
        if (!is_null($sourceDB) && !is_string($sourceDB)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sourceDB, true), gettype($sourceDB)), __LINE__);
        }
        if (is_null($sourceDB) || (is_array($sourceDB) && empty($sourceDB))) {
            unset($this->SourceDB);
        } else {
            $this->SourceDB = $sourceDB;
        }
        return $this;
    }
}
