<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for PutTransactionOnHold-Response StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:PutTransactionOnHold-Response
 * @subpackage Structs
 */
class PutTransactionOnHold_Response extends ExtensibleDataContract
{
    /**
     * The TransactionReferenceNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $TransactionReferenceNumber;
    /**
     * Constructor method for PutTransactionOnHold-Response
     * @uses PutTransactionOnHold_Response::setTransactionReferenceNumber()
     * @param int $transactionReferenceNumber
     */
    public function __construct($transactionReferenceNumber = null)
    {
        $this
            ->setTransactionReferenceNumber($transactionReferenceNumber);
    }
    /**
     * Get TransactionReferenceNumber value
     * @return int|null
     */
    public function getTransactionReferenceNumber()
    {
        return $this->TransactionReferenceNumber;
    }
    /**
     * Set TransactionReferenceNumber value
     * @param int $transactionReferenceNumber
     * @return \patest\StructType\PutTransactionOnHold_Response
     */
    public function setTransactionReferenceNumber($transactionReferenceNumber = null)
    {
        // validation for constraint: int
        if (!is_null($transactionReferenceNumber) && !(is_int($transactionReferenceNumber) || ctype_digit($transactionReferenceNumber))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($transactionReferenceNumber, true), gettype($transactionReferenceNumber)), __LINE__);
        }
        $this->TransactionReferenceNumber = $transactionReferenceNumber;
        return $this;
    }
}
