<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Management StructType
 * @subpackage Structs
 */
class Management extends AbstractStructBase
{
    /**
     * The lifeCycleManagement
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\LifeCycleManagement
     */
    public $lifeCycleManagement;
    /**
     * The filterExitManagement
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\FilterExitManagement
     */
    public $filterExitManagement;
    /**
     * The managementExtension
     * Meta informations extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\ExtensionType
     */
    public $managementExtension;
    /**
     * Constructor method for Management
     * @uses Management::setLifeCycleManagement()
     * @uses Management::setFilterExitManagement()
     * @uses Management::setManagementExtension()
     * @param \StructType\LifeCycleManagement $lifeCycleManagement
     * @param \StructType\FilterExitManagement $filterExitManagement
     * @param \StructType\ExtensionType $managementExtension
     */
    public function __construct(\StructType\LifeCycleManagement $lifeCycleManagement = null, \StructType\FilterExitManagement $filterExitManagement = null, \StructType\ExtensionType $managementExtension = null)
    {
        $this
            ->setLifeCycleManagement($lifeCycleManagement)
            ->setFilterExitManagement($filterExitManagement)
            ->setManagementExtension($managementExtension);
    }
    /**
     * Get lifeCycleManagement value
     * @return \StructType\LifeCycleManagement|null
     */
    public function getLifeCycleManagement()
    {
        return $this->lifeCycleManagement;
    }
    /**
     * Set lifeCycleManagement value
     * @param \StructType\LifeCycleManagement $lifeCycleManagement
     * @return \StructType\Management
     */
    public function setLifeCycleManagement(\StructType\LifeCycleManagement $lifeCycleManagement = null)
    {
        $this->lifeCycleManagement = $lifeCycleManagement;
        return $this;
    }
    /**
     * Get filterExitManagement value
     * @return \StructType\FilterExitManagement|null
     */
    public function getFilterExitManagement()
    {
        return $this->filterExitManagement;
    }
    /**
     * Set filterExitManagement value
     * @param \StructType\FilterExitManagement $filterExitManagement
     * @return \StructType\Management
     */
    public function setFilterExitManagement(\StructType\FilterExitManagement $filterExitManagement = null)
    {
        $this->filterExitManagement = $filterExitManagement;
        return $this;
    }
    /**
     * Get managementExtension value
     * @return \StructType\ExtensionType|null
     */
    public function getManagementExtension()
    {
        return $this->managementExtension;
    }
    /**
     * Set managementExtension value
     * @param \StructType\ExtensionType $managementExtension
     * @return \StructType\Management
     */
    public function setManagementExtension(\StructType\ExtensionType $managementExtension = null)
    {
        $this->managementExtension = $managementExtension;
        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 \StructType\Management
     */
    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__;
    }
}
