<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for GetSelectFilterByFieldValue StructType
 * @subpackage Structs
 */
class GetSelectFilterByFieldValue extends AbstractStructBase
{
    /**
     * The field
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $field;
    /**
     * The internalId
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $internalId;
    /**
     * The sublist
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $sublist;
    /**
     * Constructor method for GetSelectFilterByFieldValue
     * @uses GetSelectFilterByFieldValue::setField()
     * @uses GetSelectFilterByFieldValue::setInternalId()
     * @uses GetSelectFilterByFieldValue::setSublist()
     * @param string $field
     * @param string $internalId
     * @param string $sublist
     */
    public function __construct($field = null, $internalId = null, $sublist = null)
    {
        $this
            ->setField($field)
            ->setInternalId($internalId)
            ->setSublist($sublist);
    }
    /**
     * Get field value
     * @return string
     */
    public function getField()
    {
        return $this->field;
    }
    /**
     * Set field value
     * @param string $field
     * @return \StructType\GetSelectFilterByFieldValue
     */
    public function setField($field = null)
    {
        // validation for constraint: string
        if (!is_null($field) && !is_string($field)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($field, true), gettype($field)), __LINE__);
        }
        $this->field = $field;
        return $this;
    }
    /**
     * Get internalId value
     * @return string
     */
    public function getInternalId()
    {
        return $this->internalId;
    }
    /**
     * Set internalId value
     * @param string $internalId
     * @return \StructType\GetSelectFilterByFieldValue
     */
    public function setInternalId($internalId = null)
    {
        // validation for constraint: string
        if (!is_null($internalId) && !is_string($internalId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($internalId, true), gettype($internalId)), __LINE__);
        }
        $this->internalId = $internalId;
        return $this;
    }
    /**
     * Get sublist value
     * @return string|null
     */
    public function getSublist()
    {
        return $this->sublist;
    }
    /**
     * Set sublist value
     * @param string $sublist
     * @return \StructType\GetSelectFilterByFieldValue
     */
    public function setSublist($sublist = null)
    {
        // validation for constraint: string
        if (!is_null($sublist) && !is_string($sublist)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sublist, true), gettype($sublist)), __LINE__);
        }
        $this->sublist = $sublist;
        return $this;
    }
}
