<?php

namespace \Losc\CucmBundle\Model\Webservice\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for lines StructType
 * @subpackage Structs
 */
class Lines extends AbstractStructBase
{
    /**
     * The line
     * Meta information extracted from the WSDL
     * - documentation: An XLine is an entry in the DeviceNumPlanMap table. The actual directory number is referenced inside the XLine object by the "dirn" or "dirnId" element. Not applicable to FXO ports | An XLine is an entry in the DeviceNumPlanMap
     * table. The actual directory number is referenced inside the XLine object by the "dirn" or "dirnId" element.
     * - choice: line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier |
     * line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line |
     * lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier
     * - choiceMaxOccurs: 1
     * - choiceMinOccurs: 1
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var \\Losc\CucmBundle\Model\Webservice\StructType\XPhoneLine
     */
    public $line;
    /**
     * The lineIdentifier
     * Meta information extracted from the WSDL
     * - documentation: The lineIdentifier is a shorthand method that refers to a particular directory number.
     * - choice: line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier |
     * line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line |
     * lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier | line | lineIdentifier
     * - choiceMaxOccurs: 1
     * - choiceMinOccurs: 1
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var \\Losc\CucmBundle\Model\Webservice\StructType\XNumplanIdentifier
     */
    public $lineIdentifier;
    /**
     * Constructor method for lines
     * @uses Lines::setLine()
     * @uses Lines::setLineIdentifier()
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XPhoneLine $line
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XNumplanIdentifier $lineIdentifier
     */
    public function __construct(\\Losc\CucmBundle\Model\Webservice\StructType\XPhoneLine $line = null, \\Losc\CucmBundle\Model\Webservice\StructType\XNumplanIdentifier $lineIdentifier = null)
    {
        $this
            ->setLine($line)
            ->setLineIdentifier($lineIdentifier);
    }
    /**
     * Get line value
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XPhoneLine
     */
    public function getLine()
    {
        return isset($this->line) ? $this->line : null;
    }
    /**
     * Set line value
     * This property belongs to a choice that allows only one property to exist. It is
     * therefore removable from the request, consequently if the value assigned to this
     * property is null, the property is removed from this object
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XPhoneLine $line
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\Lines
     */
    public function setLine(\\Losc\CucmBundle\Model\Webservice\StructType\XPhoneLine $line = null)
    {
        if (is_null($line) || (is_array($line) && empty($line))) {
            unset($this->line);
        } else {
            $this->line = $line;
        }
        return $this;
    }
    /**
     * Get lineIdentifier value
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\XNumplanIdentifier
     */
    public function getLineIdentifier()
    {
        return isset($this->lineIdentifier) ? $this->lineIdentifier : null;
    }
    /**
     * Set lineIdentifier value
     * This property belongs to a choice that allows only one property to exist. It is
     * therefore removable from the request, consequently if the value assigned to this
     * property is null, the property is removed from this object
     * @param \\Losc\CucmBundle\Model\Webservice\StructType\XNumplanIdentifier $lineIdentifier
     * @return \\Losc\CucmBundle\Model\Webservice\StructType\Lines
     */
    public function setLineIdentifier(\\Losc\CucmBundle\Model\Webservice\StructType\XNumplanIdentifier $lineIdentifier = null)
    {
        if (is_null($lineIdentifier) || (is_array($lineIdentifier) && empty($lineIdentifier))) {
            unset($this->lineIdentifier);
        } else {
            $this->lineIdentifier = $lineIdentifier;
        }
        return $this;
    }
}
