validateBalanceHoldingsForArrayConstraintsFromSetBalanceHoldings()   B
last analyzed

Complexity

Conditions 7
Paths 8

Size

Total Lines 15
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 7
eloc 9
c 0
b 0
f 0
nc 8
nop 1
dl 0
loc 15
rs 8.8333
1
<?php
2
3
namespace PayPal\StructType;
4
5
use \WsdlToPhp\PackageBase\AbstractStructBase;
6
7
/**
8
 * This class stands for GetBalanceResponseType StructType
9
 * @subpackage Structs
10
 * @author WsdlToPhp <[email protected]>
11
 */
12
class GetBalanceResponseType extends AbstractResponseType
13
{
14
    /**
15
     * The Balance
16
     * Meta information extracted from the WSDL
17
     * - maxOccurs: 1
18
     * - minOccurs: 1
19
     * @var \PayPal\StructType\BasicAmountType
20
     */
21
    public $Balance;
22
    /**
23
     * The BalanceTimeStamp
24
     * Meta information extracted from the WSDL
25
     * - maxOccurs: 1
26
     * - minOccurs: 1
27
     * @var string
28
     */
29
    public $BalanceTimeStamp;
30
    /**
31
     * The BalanceHoldings
32
     * Meta information extracted from the WSDL
33
     * - maxOccurs: unbounded
34
     * - minOccurs: 0
35
     * @var \PayPal\StructType\BasicAmountType[]
36
     */
37
    public $BalanceHoldings;
38
    /**
39
     * Constructor method for GetBalanceResponseType
40
     * @uses GetBalanceResponseType::setBalance()
41
     * @uses GetBalanceResponseType::setBalanceTimeStamp()
42
     * @uses GetBalanceResponseType::setBalanceHoldings()
43
     * @param \PayPal\StructType\BasicAmountType $balance
44
     * @param string $balanceTimeStamp
45
     * @param \PayPal\StructType\BasicAmountType[] $balanceHoldings
46
     */
47
    public function __construct(\PayPal\StructType\BasicAmountType $balance = null, $balanceTimeStamp = null, array $balanceHoldings = array())
48
    {
49
        $this
50
            ->setBalance($balance)
51
            ->setBalanceTimeStamp($balanceTimeStamp)
52
            ->setBalanceHoldings($balanceHoldings);
53
    }
54
    /**
55
     * Get Balance value
56
     * @return \PayPal\StructType\BasicAmountType
57
     */
58
    public function getBalance()
59
    {
60
        return $this->Balance;
61
    }
62
    /**
63
     * Set Balance value
64
     * @param \PayPal\StructType\BasicAmountType $balance
65
     * @return \PayPal\StructType\GetBalanceResponseType
66
     */
67
    public function setBalance(\PayPal\StructType\BasicAmountType $balance = null)
68
    {
69
        $this->Balance = $balance;
70
        return $this;
71
    }
72
    /**
73
     * Get BalanceTimeStamp value
74
     * @return string
75
     */
76
    public function getBalanceTimeStamp()
77
    {
78
        return $this->BalanceTimeStamp;
79
    }
80
    /**
81
     * Set BalanceTimeStamp value
82
     * @param string $balanceTimeStamp
83
     * @return \PayPal\StructType\GetBalanceResponseType
84
     */
85
    public function setBalanceTimeStamp($balanceTimeStamp = null)
86
    {
87
        // validation for constraint: string
88
        if (!is_null($balanceTimeStamp) && !is_string($balanceTimeStamp)) {
0 ignored issues
show
introduced by
The condition is_string($balanceTimeStamp) is always true.
Loading history...
89
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($balanceTimeStamp, true), gettype($balanceTimeStamp)), __LINE__);
90
        }
91
        $this->BalanceTimeStamp = $balanceTimeStamp;
92
        return $this;
93
    }
94
    /**
95
     * Get BalanceHoldings value
96
     * @return \PayPal\StructType\BasicAmountType[]|null
97
     */
98
    public function getBalanceHoldings()
99
    {
100
        return $this->BalanceHoldings;
101
    }
102
    /**
103
     * This method is responsible for validating the values passed to the setBalanceHoldings method
104
     * This method is willingly generated in order to preserve the one-line inline validation within the setBalanceHoldings method
105
     * @param array $values
106
     * @return string A non-empty message if the values does not match the validation rules
107
     */
108
    public static function validateBalanceHoldingsForArrayConstraintsFromSetBalanceHoldings(array $values = array())
109
    {
110
        $message = '';
111
        $invalidValues = [];
112
        foreach ($values as $getBalanceResponseTypeBalanceHoldingsItem) {
113
            // validation for constraint: itemType
114
            if (!$getBalanceResponseTypeBalanceHoldingsItem instanceof \PayPal\StructType\BasicAmountType) {
115
                $invalidValues[] = is_object($getBalanceResponseTypeBalanceHoldingsItem) ? get_class($getBalanceResponseTypeBalanceHoldingsItem) : sprintf('%s(%s)', gettype($getBalanceResponseTypeBalanceHoldingsItem), var_export($getBalanceResponseTypeBalanceHoldingsItem, true));
116
            }
117
        }
118
        if (!empty($invalidValues)) {
119
            $message = sprintf('The BalanceHoldings property can only contain items of type \PayPal\StructType\BasicAmountType, %s given', is_object($invalidValues) ? get_class($invalidValues) : (is_array($invalidValues) ? implode(', ', $invalidValues) : gettype($invalidValues)));
0 ignored issues
show
introduced by
The condition is_array($invalidValues) is always true.
Loading history...
introduced by
The condition is_object($invalidValues) is always false.
Loading history...
120
        }
121
        unset($invalidValues);
122
        return $message;
123
    }
124
    /**
125
     * Set BalanceHoldings value
126
     * @throws \InvalidArgumentException
127
     * @param \PayPal\StructType\BasicAmountType[] $balanceHoldings
128
     * @return \PayPal\StructType\GetBalanceResponseType
129
     */
130
    public function setBalanceHoldings(array $balanceHoldings = array())
131
    {
132
        // validation for constraint: array
133
        if ('' !== ($balanceHoldingsArrayErrorMessage = self::validateBalanceHoldingsForArrayConstraintsFromSetBalanceHoldings($balanceHoldings))) {
134
            throw new \InvalidArgumentException($balanceHoldingsArrayErrorMessage, __LINE__);
135
        }
136
        $this->BalanceHoldings = $balanceHoldings;
137
        return $this;
138
    }
139
    /**
140
     * Add item to BalanceHoldings value
141
     * @throws \InvalidArgumentException
142
     * @param \PayPal\StructType\BasicAmountType $item
143
     * @return \PayPal\StructType\GetBalanceResponseType
144
     */
145
    public function addToBalanceHoldings(\PayPal\StructType\BasicAmountType $item)
146
    {
147
        // validation for constraint: itemType
148
        if (!$item instanceof \PayPal\StructType\BasicAmountType) {
0 ignored issues
show
introduced by
$item is always a sub-type of PayPal\StructType\BasicAmountType.
Loading history...
149
            throw new \InvalidArgumentException(sprintf('The BalanceHoldings property can only contain items of type \PayPal\StructType\BasicAmountType, %s given', is_object($item) ? get_class($item) : (is_array($item) ? implode(', ', $item) : gettype($item))), __LINE__);
150
        }
151
        $this->BalanceHoldings[] = $item;
152
        return $this;
153
    }
154
}
155