<?php

namespace App\Integration\Providers\Alliance3\DTO;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SubjectInfo DTO
 * @subpackage Structs
 */
class SubjectInfo extends AbstractStructBase
{
    /**
     * The type
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $type;
    /**
     * The physical
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \App\Integration\Providers\Alliance3\DTO\PhysicalSubject
     */
    public $physical;
    /**
     * The juridical
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \App\Integration\Providers\Alliance3\DTO\JuridicalSubject
     */
    public $juridical;
    /**
     * The parameters
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \App\Integration\Providers\Alliance3\DTO\ParametrList
     */
    public $parameters;
    /**
     * Constructor method for SubjectInfo
     * @uses SubjectInfo::setType()
     * @uses SubjectInfo::setPhysical()
     * @uses SubjectInfo::setJuridical()
     * @uses SubjectInfo::setParameters()
     * @param string $type
     * @param \App\Integration\Providers\Alliance3\DTO\PhysicalSubject $physical
     * @param \App\Integration\Providers\Alliance3\DTO\JuridicalSubject $juridical
     * @param \App\Integration\Providers\Alliance3\DTO\ParametrList $parameters
     */
    public function __construct($type = null, \App\Integration\Providers\Alliance3\DTO\PhysicalSubject $physical = null, \App\Integration\Providers\Alliance3\DTO\JuridicalSubject $juridical = null, \App\Integration\Providers\Alliance3\DTO\ParametrList $parameters = null)
    {
        $this
            ->setType($type)
            ->setPhysical($physical)
            ->setJuridical($juridical)
            ->setParameters($parameters);
    }
    /**
     * Get type value
     * @return string|null
     */
    public function getType()
    {
        return $this->type;
    }
    /**
     * Set type value
     * @param string $type
     * @return \App\Integration\Providers\Alliance3\DTO\SubjectInfo
     */
    public function setType($type = null)
    {
        $this->type = $type;
        return $this;
    }
    /**
     * Get physical value
     * @return \App\Integration\Providers\Alliance3\DTO\PhysicalSubject|null
     */
    public function getPhysical()
    {
        return $this->physical;
    }
    /**
     * Set physical value
     * @param \App\Integration\Providers\Alliance3\DTO\PhysicalSubject $physical
     * @return \App\Integration\Providers\Alliance3\DTO\SubjectInfo
     */
    public function setPhysical(\App\Integration\Providers\Alliance3\DTO\PhysicalSubject $physical = null)
    {
        $this->physical = $physical;
        return $this;
    }
    /**
     * Get juridical value
     * @return \App\Integration\Providers\Alliance3\DTO\JuridicalSubject|null
     */
    public function getJuridical()
    {
        return $this->juridical;
    }
    /**
     * Set juridical value
     * @param \App\Integration\Providers\Alliance3\DTO\JuridicalSubject $juridical
     * @return \App\Integration\Providers\Alliance3\DTO\SubjectInfo
     */
    public function setJuridical(\App\Integration\Providers\Alliance3\DTO\JuridicalSubject $juridical = null)
    {
        $this->juridical = $juridical;
        return $this;
    }
    /**
     * Get parameters value
     * @return \App\Integration\Providers\Alliance3\DTO\ParametrList|null
     */
    public function getParameters()
    {
        return $this->parameters;
    }
    /**
     * Set parameters value
     * @param \App\Integration\Providers\Alliance3\DTO\ParametrList $parameters
     * @return \App\Integration\Providers\Alliance3\DTO\SubjectInfo
     */
    public function setParameters(\App\Integration\Providers\Alliance3\DTO\ParametrList $parameters = null)
    {
        $this->parameters = $parameters;
        return $this;
    }
}
