<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for Summary StructType
 * @subpackage Structs
 */
class Summary extends AbstractStructBase
{
    /**
     * The AmountOk
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $AmountOk;
    /**
     * The AmountNOK
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $AmountNOK;
    /**
     * The AmountNA
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $AmountNA;
    /**
     * The AmountNotSet
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var float
     */
    public $AmountNotSet;
    /**
     * Constructor method for Summary
     * @uses Summary::setAmountOk()
     * @uses Summary::setAmountNOK()
     * @uses Summary::setAmountNA()
     * @uses Summary::setAmountNotSet()
     * @param float $amountOk
     * @param float $amountNOK
     * @param float $amountNA
     * @param float $amountNotSet
     */
    public function __construct($amountOk = null, $amountNOK = null, $amountNA = null, $amountNotSet = null)
    {
        $this
            ->setAmountOk($amountOk)
            ->setAmountNOK($amountNOK)
            ->setAmountNA($amountNA)
            ->setAmountNotSet($amountNotSet);
    }
    /**
     * Get AmountOk value
     * @return float
     */
    public function getAmountOk()
    {
        return $this->AmountOk;
    }
    /**
     * Set AmountOk value
     * @param float $amountOk
     * @return \StructType\Summary
     */
    public function setAmountOk($amountOk = null)
    {
        // validation for constraint: float
        if (!is_null($amountOk) && !(is_float($amountOk) || is_numeric($amountOk))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($amountOk, true), gettype($amountOk)), __LINE__);
        }
        $this->AmountOk = $amountOk;
        return $this;
    }
    /**
     * Get AmountNOK value
     * @return float
     */
    public function getAmountNOK()
    {
        return $this->AmountNOK;
    }
    /**
     * Set AmountNOK value
     * @param float $amountNOK
     * @return \StructType\Summary
     */
    public function setAmountNOK($amountNOK = null)
    {
        // validation for constraint: float
        if (!is_null($amountNOK) && !(is_float($amountNOK) || is_numeric($amountNOK))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($amountNOK, true), gettype($amountNOK)), __LINE__);
        }
        $this->AmountNOK = $amountNOK;
        return $this;
    }
    /**
     * Get AmountNA value
     * @return float
     */
    public function getAmountNA()
    {
        return $this->AmountNA;
    }
    /**
     * Set AmountNA value
     * @param float $amountNA
     * @return \StructType\Summary
     */
    public function setAmountNA($amountNA = null)
    {
        // validation for constraint: float
        if (!is_null($amountNA) && !(is_float($amountNA) || is_numeric($amountNA))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($amountNA, true), gettype($amountNA)), __LINE__);
        }
        $this->AmountNA = $amountNA;
        return $this;
    }
    /**
     * Get AmountNotSet value
     * @return float
     */
    public function getAmountNotSet()
    {
        return $this->AmountNotSet;
    }
    /**
     * Set AmountNotSet value
     * @param float $amountNotSet
     * @return \StructType\Summary
     */
    public function setAmountNotSet($amountNotSet = null)
    {
        // validation for constraint: float
        if (!is_null($amountNotSet) && !(is_float($amountNotSet) || is_numeric($amountNotSet))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($amountNotSet, true), gettype($amountNotSet)), __LINE__);
        }
        $this->AmountNotSet = $amountNotSet;
        return $this;
    }
}
