<?php

declare(strict_types=1);

namespace Drupal\netforum\xWeb\Generated\StructType;

use InvalidArgumentException;
use WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ExhibitorBoothNewType StructType
 * @subpackage Structs
 * @author Drupal NetForum xWeb PHP SDK Generator
 * @version 1.0.0
 * @license GPL-2.0-or-later https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 * @see https://www.drupal.org/project/netforum
 * @generatedDate 2025-08-05
 * @generatedRelease Official
 * @generatedNetForumVersion 37
 */
#[\AllowDynamicProperties]
class ExhibitorBoothNewType extends AbstractStructBase
{
    /**
     * The Exhibitor_Booth
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_Booth_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_Booth_DataObjectType $Exhibitor_Booth = null;
    /**
     * The ExhibitorCustomer
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_ExhibitorCustomer_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_ExhibitorCustomer_DataObjectType $ExhibitorCustomer = null;
    /**
     * The Exhibitor
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_DataObjectType $Exhibitor = null;
    /**
     * The Priority_Point_Detail
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Priority_Point_Detail_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Priority_Point_Detail_DataObjectType $Priority_Point_Detail = null;
    /**
     * The Booth_Complement
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Complement_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Complement_DataObjectType $Booth_Complement = null;
    /**
     * The Exhibit_Show
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Show_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Show_DataObjectType $Exhibit_Show = null;
    /**
     * The Booth_Fee
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Fee_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Fee_DataObjectType $Booth_Fee = null;
    /**
     * The Exhibit_Booth
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Booth_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Booth_DataObjectType $Exhibit_Booth = null;
    /**
     * The Invoice
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Invoice_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Invoice_DataObjectType $Invoice = null;
    /**
     * The Payment
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_DataObjectType $Payment = null;
    /**
     * The Payment_Info
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Info_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Info_DataObjectType $Payment_Info = null;
    /**
     * The Payment_Method
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Method_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Method_DataObjectType $Payment_Method = null;
    /**
     * The Product
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Product_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Product_DataObjectType $Product = null;
    /**
     * The Booth_Number
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Number_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Number_DataObjectType $Booth_Number = null;
    /**
     * The Booth_Type
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Type_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Type_DataObjectType $Booth_Type = null;
    /**
     * The Booth_Category
     * @var \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Category_DataObjectType|null
     */
    protected ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Category_DataObjectType $Booth_Category = null;
    /**
     * The CurrentKey
     * Meta information extracted from the WSDL
     * - documentation: Booth.The current key is the record key for the object. This field must be set whenever updating an existing database record. | Avectra netForum defined simpleType.
     * - base: s:string
     * - maxOccurs: 1
     * - minOccurs: 0
     * - nillable: true
     * - pattern: [{]?[0-9a-fA-F]{8}[\-]?([0-9a-fA-F]{4}[\-]?){3}[0-9a-fA-F]{12}[}]?
     * @var string|null
     */
    protected ?string $CurrentKey = null;
    /**
     * Constructor method for ExhibitorBoothNewType
     * @uses ExhibitorBoothNewType::setExhibitor_Booth()
     * @uses ExhibitorBoothNewType::setExhibitorCustomer()
     * @uses ExhibitorBoothNewType::setExhibitor()
     * @uses ExhibitorBoothNewType::setPriority_Point_Detail()
     * @uses ExhibitorBoothNewType::setBooth_Complement()
     * @uses ExhibitorBoothNewType::setExhibit_Show()
     * @uses ExhibitorBoothNewType::setBooth_Fee()
     * @uses ExhibitorBoothNewType::setExhibit_Booth()
     * @uses ExhibitorBoothNewType::setInvoice()
     * @uses ExhibitorBoothNewType::setPayment()
     * @uses ExhibitorBoothNewType::setPayment_Info()
     * @uses ExhibitorBoothNewType::setPayment_Method()
     * @uses ExhibitorBoothNewType::setProduct()
     * @uses ExhibitorBoothNewType::setBooth_Number()
     * @uses ExhibitorBoothNewType::setBooth_Type()
     * @uses ExhibitorBoothNewType::setBooth_Category()
     * @uses ExhibitorBoothNewType::setCurrentKey()
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_Booth_DataObjectType $exhibitor_Booth
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_ExhibitorCustomer_DataObjectType $exhibitorCustomer
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_DataObjectType $exhibitor
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Priority_Point_Detail_DataObjectType $priority_Point_Detail
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Complement_DataObjectType $booth_Complement
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Show_DataObjectType $exhibit_Show
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Fee_DataObjectType $booth_Fee
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Booth_DataObjectType $exhibit_Booth
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Invoice_DataObjectType $invoice
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_DataObjectType $payment
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Info_DataObjectType $payment_Info
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Method_DataObjectType $payment_Method
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Product_DataObjectType $product
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Number_DataObjectType $booth_Number
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Type_DataObjectType $booth_Type
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Category_DataObjectType $booth_Category
     * @param string $currentKey
     */
    public function __construct(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_Booth_DataObjectType $exhibitor_Booth = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_ExhibitorCustomer_DataObjectType $exhibitorCustomer = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_DataObjectType $exhibitor = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Priority_Point_Detail_DataObjectType $priority_Point_Detail = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Complement_DataObjectType $booth_Complement = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Show_DataObjectType $exhibit_Show = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Fee_DataObjectType $booth_Fee = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Booth_DataObjectType $exhibit_Booth = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Invoice_DataObjectType $invoice = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_DataObjectType $payment = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Info_DataObjectType $payment_Info = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Method_DataObjectType $payment_Method = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Product_DataObjectType $product = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Number_DataObjectType $booth_Number = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Type_DataObjectType $booth_Type = null, ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Category_DataObjectType $booth_Category = null, ?string $currentKey = null)
    {
        $this
            ->setExhibitor_Booth($exhibitor_Booth)
            ->setExhibitorCustomer($exhibitorCustomer)
            ->setExhibitor($exhibitor)
            ->setPriority_Point_Detail($priority_Point_Detail)
            ->setBooth_Complement($booth_Complement)
            ->setExhibit_Show($exhibit_Show)
            ->setBooth_Fee($booth_Fee)
            ->setExhibit_Booth($exhibit_Booth)
            ->setInvoice($invoice)
            ->setPayment($payment)
            ->setPayment_Info($payment_Info)
            ->setPayment_Method($payment_Method)
            ->setProduct($product)
            ->setBooth_Number($booth_Number)
            ->setBooth_Type($booth_Type)
            ->setBooth_Category($booth_Category)
            ->setCurrentKey($currentKey);
    }
    /**
     * Get Exhibitor_Booth value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_Booth_DataObjectType|null
     */
    public function getExhibitor_Booth(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_Booth_DataObjectType
    {
        return $this->Exhibitor_Booth;
    }
    /**
     * Set Exhibitor_Booth value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_Booth_DataObjectType $exhibitor_Booth
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setExhibitor_Booth(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_Booth_DataObjectType $exhibitor_Booth = null): self
    {
        $this->Exhibitor_Booth = $exhibitor_Booth;
        
        return $this;
    }
    /**
     * Get ExhibitorCustomer value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_ExhibitorCustomer_DataObjectType|null
     */
    public function getExhibitorCustomer(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_ExhibitorCustomer_DataObjectType
    {
        return $this->ExhibitorCustomer;
    }
    /**
     * Set ExhibitorCustomer value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_ExhibitorCustomer_DataObjectType $exhibitorCustomer
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setExhibitorCustomer(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_ExhibitorCustomer_DataObjectType $exhibitorCustomer = null): self
    {
        $this->ExhibitorCustomer = $exhibitorCustomer;
        
        return $this;
    }
    /**
     * Get Exhibitor value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_DataObjectType|null
     */
    public function getExhibitor(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_DataObjectType
    {
        return $this->Exhibitor;
    }
    /**
     * Set Exhibitor value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_DataObjectType $exhibitor
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setExhibitor(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibitor_DataObjectType $exhibitor = null): self
    {
        $this->Exhibitor = $exhibitor;
        
        return $this;
    }
    /**
     * Get Priority_Point_Detail value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Priority_Point_Detail_DataObjectType|null
     */
    public function getPriority_Point_Detail(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Priority_Point_Detail_DataObjectType
    {
        return $this->Priority_Point_Detail;
    }
    /**
     * Set Priority_Point_Detail value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Priority_Point_Detail_DataObjectType $priority_Point_Detail
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setPriority_Point_Detail(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Priority_Point_Detail_DataObjectType $priority_Point_Detail = null): self
    {
        $this->Priority_Point_Detail = $priority_Point_Detail;
        
        return $this;
    }
    /**
     * Get Booth_Complement value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Complement_DataObjectType|null
     */
    public function getBooth_Complement(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Complement_DataObjectType
    {
        return $this->Booth_Complement;
    }
    /**
     * Set Booth_Complement value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Complement_DataObjectType $booth_Complement
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setBooth_Complement(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Complement_DataObjectType $booth_Complement = null): self
    {
        $this->Booth_Complement = $booth_Complement;
        
        return $this;
    }
    /**
     * Get Exhibit_Show value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Show_DataObjectType|null
     */
    public function getExhibit_Show(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Show_DataObjectType
    {
        return $this->Exhibit_Show;
    }
    /**
     * Set Exhibit_Show value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Show_DataObjectType $exhibit_Show
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setExhibit_Show(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Show_DataObjectType $exhibit_Show = null): self
    {
        $this->Exhibit_Show = $exhibit_Show;
        
        return $this;
    }
    /**
     * Get Booth_Fee value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Fee_DataObjectType|null
     */
    public function getBooth_Fee(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Fee_DataObjectType
    {
        return $this->Booth_Fee;
    }
    /**
     * Set Booth_Fee value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Fee_DataObjectType $booth_Fee
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setBooth_Fee(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Fee_DataObjectType $booth_Fee = null): self
    {
        $this->Booth_Fee = $booth_Fee;
        
        return $this;
    }
    /**
     * Get Exhibit_Booth value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Booth_DataObjectType|null
     */
    public function getExhibit_Booth(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Booth_DataObjectType
    {
        return $this->Exhibit_Booth;
    }
    /**
     * Set Exhibit_Booth value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Booth_DataObjectType $exhibit_Booth
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setExhibit_Booth(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Exhibit_Booth_DataObjectType $exhibit_Booth = null): self
    {
        $this->Exhibit_Booth = $exhibit_Booth;
        
        return $this;
    }
    /**
     * Get Invoice value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Invoice_DataObjectType|null
     */
    public function getInvoice(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Invoice_DataObjectType
    {
        return $this->Invoice;
    }
    /**
     * Set Invoice value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Invoice_DataObjectType $invoice
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setInvoice(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Invoice_DataObjectType $invoice = null): self
    {
        $this->Invoice = $invoice;
        
        return $this;
    }
    /**
     * Get Payment value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_DataObjectType|null
     */
    public function getPayment(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_DataObjectType
    {
        return $this->Payment;
    }
    /**
     * Set Payment value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_DataObjectType $payment
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setPayment(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_DataObjectType $payment = null): self
    {
        $this->Payment = $payment;
        
        return $this;
    }
    /**
     * Get Payment_Info value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Info_DataObjectType|null
     */
    public function getPayment_Info(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Info_DataObjectType
    {
        return $this->Payment_Info;
    }
    /**
     * Set Payment_Info value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Info_DataObjectType $payment_Info
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setPayment_Info(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Info_DataObjectType $payment_Info = null): self
    {
        $this->Payment_Info = $payment_Info;
        
        return $this;
    }
    /**
     * Get Payment_Method value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Method_DataObjectType|null
     */
    public function getPayment_Method(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Method_DataObjectType
    {
        return $this->Payment_Method;
    }
    /**
     * Set Payment_Method value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Method_DataObjectType $payment_Method
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setPayment_Method(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Payment_Method_DataObjectType $payment_Method = null): self
    {
        $this->Payment_Method = $payment_Method;
        
        return $this;
    }
    /**
     * Get Product value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Product_DataObjectType|null
     */
    public function getProduct(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Product_DataObjectType
    {
        return $this->Product;
    }
    /**
     * Set Product value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Product_DataObjectType $product
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setProduct(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Product_DataObjectType $product = null): self
    {
        $this->Product = $product;
        
        return $this;
    }
    /**
     * Get Booth_Number value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Number_DataObjectType|null
     */
    public function getBooth_Number(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Number_DataObjectType
    {
        return $this->Booth_Number;
    }
    /**
     * Set Booth_Number value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Number_DataObjectType $booth_Number
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setBooth_Number(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Number_DataObjectType $booth_Number = null): self
    {
        $this->Booth_Number = $booth_Number;
        
        return $this;
    }
    /**
     * Get Booth_Type value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Type_DataObjectType|null
     */
    public function getBooth_Type(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Type_DataObjectType
    {
        return $this->Booth_Type;
    }
    /**
     * Set Booth_Type value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Type_DataObjectType $booth_Type
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setBooth_Type(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Type_DataObjectType $booth_Type = null): self
    {
        $this->Booth_Type = $booth_Type;
        
        return $this;
    }
    /**
     * Get Booth_Category value
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Category_DataObjectType|null
     */
    public function getBooth_Category(): ?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Category_DataObjectType
    {
        return $this->Booth_Category;
    }
    /**
     * Set Booth_Category value
     * @param \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Category_DataObjectType $booth_Category
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setBooth_Category(?\Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNew_Booth_Category_DataObjectType $booth_Category = null): self
    {
        $this->Booth_Category = $booth_Category;
        
        return $this;
    }
    /**
     * Get CurrentKey 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 getCurrentKey(): ?string
    {
        return $this->CurrentKey ?? null;
    }
    /**
     * Set CurrentKey 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 $currentKey
     * @return \Drupal\netforum\xWeb\Generated\StructType\ExhibitorBoothNewType
     */
    public function setCurrentKey(?string $currentKey = null): self
    {
        // validation for constraint: string
        if (!is_null($currentKey) && !is_string($currentKey)) {
            throw new InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($currentKey, true), gettype($currentKey)), __LINE__);
        }
        // validation for constraint: pattern([{]?[0-9a-fA-F]{8}[\-]?([0-9a-fA-F]{4}[\-]?){3}[0-9a-fA-F]{12}[}]?)
        if (!is_null($currentKey) && !preg_match('/[{]?[0-9a-fA-F]{8}[\\-]?([0-9a-fA-F]{4}[\\-]?){3}[0-9a-fA-F]{12}[}]?/', (string) $currentKey)) {
            throw new InvalidArgumentException(sprintf('Invalid value %s, please provide a literal that is among the set of character sequences denoted by the regular expression /[{]?[0-9a-fA-F]{8}[\\-]?([0-9a-fA-F]{4}[\\-]?){3}[0-9a-fA-F]{12}[}]?/', var_export($currentKey, true)), __LINE__);
        }
        if (is_null($currentKey) || (is_array($currentKey) && empty($currentKey))) {
            unset($this->CurrentKey);
        } else {
            $this->CurrentKey = $currentKey;
        }
        
        return $this;
    }
}
