<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Edit_Position_Restriction_Event_DataType StructType
 * Meta information extracted from the WSDL
 * - documentation: Wrapper for the details of the Edit Position Restriction transaction.
 * @subpackage Structs
 */
class Edit_Position_Restriction_Event_DataType extends AbstractStructBase
{
    /**
     * The Position_Edit_Reason_Reference
     * Meta information extracted from the WSDL
     * - documentation: Reference to the reason the position is being updated.
     * - minOccurs: 0
     * @var \StructType\Event_Classification_SubcategoryObjectType
     */
    public $Position_Edit_Reason_Reference;
    /**
     * The Position_Data
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\Position_Definition_DataType
     */
    public $Position_Data;
    /**
     * The Position_Group_Restrictions_Data
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\Position_Group_Restriction_DataType
     */
    public $Position_Group_Restrictions_Data;
    /**
     * The Position_Restriction_Working_Hours_Details_Data
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\Working_Hours_Details_DataType
     */
    public $Position_Restriction_Working_Hours_Details_Data;
    /**
     * The Qualification_Replacement_Data
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\Qualification_Data_for_Position_Restriction_or_Job_ProfileType
     */
    public $Qualification_Replacement_Data;
    /**
     * Constructor method for Edit_Position_Restriction_Event_DataType
     * @uses Edit_Position_Restriction_Event_DataType::setPosition_Edit_Reason_Reference()
     * @uses Edit_Position_Restriction_Event_DataType::setPosition_Data()
     * @uses Edit_Position_Restriction_Event_DataType::setPosition_Group_Restrictions_Data()
     * @uses Edit_Position_Restriction_Event_DataType::setPosition_Restriction_Working_Hours_Details_Data()
     * @uses Edit_Position_Restriction_Event_DataType::setQualification_Replacement_Data()
     * @param \StructType\Event_Classification_SubcategoryObjectType $position_Edit_Reason_Reference
     * @param \StructType\Position_Definition_DataType $position_Data
     * @param \StructType\Position_Group_Restriction_DataType $position_Group_Restrictions_Data
     * @param \StructType\Working_Hours_Details_DataType $position_Restriction_Working_Hours_Details_Data
     * @param \StructType\Qualification_Data_for_Position_Restriction_or_Job_ProfileType $qualification_Replacement_Data
     */
    public function __construct(\StructType\Event_Classification_SubcategoryObjectType $position_Edit_Reason_Reference = null, \StructType\Position_Definition_DataType $position_Data = null, \StructType\Position_Group_Restriction_DataType $position_Group_Restrictions_Data = null, \StructType\Working_Hours_Details_DataType $position_Restriction_Working_Hours_Details_Data = null, \StructType\Qualification_Data_for_Position_Restriction_or_Job_ProfileType $qualification_Replacement_Data = null)
    {
        $this
            ->setPosition_Edit_Reason_Reference($position_Edit_Reason_Reference)
            ->setPosition_Data($position_Data)
            ->setPosition_Group_Restrictions_Data($position_Group_Restrictions_Data)
            ->setPosition_Restriction_Working_Hours_Details_Data($position_Restriction_Working_Hours_Details_Data)
            ->setQualification_Replacement_Data($qualification_Replacement_Data);
    }
    /**
     * Get Position_Edit_Reason_Reference value
     * @return \StructType\Event_Classification_SubcategoryObjectType|null
     */
    public function getPosition_Edit_Reason_Reference()
    {
        return $this->Position_Edit_Reason_Reference;
    }
    /**
     * Set Position_Edit_Reason_Reference value
     * @param \StructType\Event_Classification_SubcategoryObjectType $position_Edit_Reason_Reference
     * @return \StructType\Edit_Position_Restriction_Event_DataType
     */
    public function setPosition_Edit_Reason_Reference(\StructType\Event_Classification_SubcategoryObjectType $position_Edit_Reason_Reference = null)
    {
        $this->Position_Edit_Reason_Reference = $position_Edit_Reason_Reference;
        return $this;
    }
    /**
     * Get Position_Data value
     * @return \StructType\Position_Definition_DataType|null
     */
    public function getPosition_Data()
    {
        return $this->Position_Data;
    }
    /**
     * Set Position_Data value
     * @param \StructType\Position_Definition_DataType $position_Data
     * @return \StructType\Edit_Position_Restriction_Event_DataType
     */
    public function setPosition_Data(\StructType\Position_Definition_DataType $position_Data = null)
    {
        $this->Position_Data = $position_Data;
        return $this;
    }
    /**
     * Get Position_Group_Restrictions_Data value
     * @return \StructType\Position_Group_Restriction_DataType|null
     */
    public function getPosition_Group_Restrictions_Data()
    {
        return $this->Position_Group_Restrictions_Data;
    }
    /**
     * Set Position_Group_Restrictions_Data value
     * @param \StructType\Position_Group_Restriction_DataType $position_Group_Restrictions_Data
     * @return \StructType\Edit_Position_Restriction_Event_DataType
     */
    public function setPosition_Group_Restrictions_Data(\StructType\Position_Group_Restriction_DataType $position_Group_Restrictions_Data = null)
    {
        $this->Position_Group_Restrictions_Data = $position_Group_Restrictions_Data;
        return $this;
    }
    /**
     * Get Position_Restriction_Working_Hours_Details_Data value
     * @return \StructType\Working_Hours_Details_DataType|null
     */
    public function getPosition_Restriction_Working_Hours_Details_Data()
    {
        return $this->Position_Restriction_Working_Hours_Details_Data;
    }
    /**
     * Set Position_Restriction_Working_Hours_Details_Data value
     * @param \StructType\Working_Hours_Details_DataType $position_Restriction_Working_Hours_Details_Data
     * @return \StructType\Edit_Position_Restriction_Event_DataType
     */
    public function setPosition_Restriction_Working_Hours_Details_Data(\StructType\Working_Hours_Details_DataType $position_Restriction_Working_Hours_Details_Data = null)
    {
        $this->Position_Restriction_Working_Hours_Details_Data = $position_Restriction_Working_Hours_Details_Data;
        return $this;
    }
    /**
     * Get Qualification_Replacement_Data value
     * @return \StructType\Qualification_Data_for_Position_Restriction_or_Job_ProfileType|null
     */
    public function getQualification_Replacement_Data()
    {
        return $this->Qualification_Replacement_Data;
    }
    /**
     * Set Qualification_Replacement_Data value
     * @param \StructType\Qualification_Data_for_Position_Restriction_or_Job_ProfileType $qualification_Replacement_Data
     * @return \StructType\Edit_Position_Restriction_Event_DataType
     */
    public function setQualification_Replacement_Data(\StructType\Qualification_Data_for_Position_Restriction_or_Job_ProfileType $qualification_Replacement_Data = null)
    {
        $this->Qualification_Replacement_Data = $qualification_Replacement_Data;
        return $this;
    }
}
