<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for ProductInterfaceResult_v3 StructType
 * @subpackage Structs
 */
class ProductInterfaceResult_v3 extends ProductInterfaceResult_v2
{
    /**
     * The CheckoffType
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $CheckoffType;
    /**
     * Constructor method for ProductInterfaceResult_v3
     * @uses ProductInterfaceResult_v3::setCheckoffType()
     * @param string $checkoffType
     */
    public function __construct($checkoffType = null)
    {
        $this
            ->setCheckoffType($checkoffType);
    }
    /**
     * Get CheckoffType value
     * @return string
     */
    public function getCheckoffType()
    {
        return $this->CheckoffType;
    }
    /**
     * Set CheckoffType value
     * @uses \EnumType\EnumCheckOffType::valueIsValid()
     * @uses \EnumType\EnumCheckOffType::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $checkoffType
     * @return \StructType\ProductInterfaceResult_v3
     */
    public function setCheckoffType($checkoffType = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\EnumCheckOffType::valueIsValid($checkoffType)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\EnumCheckOffType', is_array($checkoffType) ? implode(', ', $checkoffType) : var_export($checkoffType, true), implode(', ', \EnumType\EnumCheckOffType::getValidValues())), __LINE__);
        }
        $this->CheckoffType = $checkoffType;
        return $this;
    }
}
