<?php

namespace Geniki\GenikiStruct;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Helper GenikiStruct
 * @package Geniki
 * @subpackage Structs
 */
class GenikiHelper extends AbstractStructBase
{
    /**
     * The paramName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $paramName;
    /**
     * The parameters
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \Geniki\GenikiArray\GenikiArrayOfAnyType
     */
    public $parameters;
    /**
     * Constructor method for Helper
     * @uses GenikiHelper::setParamName()
     * @uses GenikiHelper::setParameters()
     * @param string $paramName
     * @param \Geniki\GenikiArray\GenikiArrayOfAnyType $parameters
     */
    public function __construct($paramName = null, \Geniki\GenikiArray\GenikiArrayOfAnyType $parameters = null)
    {
        $this
            ->setParamName($paramName)
            ->setParameters($parameters);
    }
    /**
     * Get paramName value
     * @return string|null
     */
    public function getParamName()
    {
        return $this->paramName;
    }
    /**
     * Set paramName value
     * @param string $paramName
     * @return \Geniki\GenikiStruct\GenikiHelper
     */
    public function setParamName($paramName = null)
    {
        // validation for constraint: string
        if (!is_null($paramName) && !is_string($paramName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($paramName, true), gettype($paramName)), __LINE__);
        }
        $this->paramName = $paramName;
        return $this;
    }
    /**
     * Get parameters value
     * @return \Geniki\GenikiArray\GenikiArrayOfAnyType|null
     */
    public function getParameters()
    {
        return $this->parameters;
    }
    /**
     * Set parameters value
     * @param \Geniki\GenikiArray\GenikiArrayOfAnyType $parameters
     * @return \Geniki\GenikiStruct\GenikiHelper
     */
    public function setParameters(\Geniki\GenikiArray\GenikiArrayOfAnyType $parameters = null)
    {
        $this->parameters = $parameters;
        return $this;
    }
}
