MultipleValueNode.php 905 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace Braintree;
  3. use InvalidArgumentException;
  4. class MultipleValueNode
  5. {
  6. public function __construct($name, $allowedValues = [])
  7. {
  8. $this->name = $name;
  9. $this->items = [];
  10. $this->allowedValues = $allowedValues;
  11. }
  12. public function in($values)
  13. {
  14. $bad_values = array_diff($values, $this->allowedValues);
  15. if (count($this->allowedValues) > 0 && count($bad_values) > 0) {
  16. $message = 'Invalid argument(s) for ' . $this->name . ':';
  17. foreach ($bad_values AS $bad_value) {
  18. $message .= ' ' . $bad_value;
  19. }
  20. throw new InvalidArgumentException($message);
  21. }
  22. $this->items = $values;
  23. return $this;
  24. }
  25. public function is($value)
  26. {
  27. return $this->in([$value]);
  28. }
  29. public function toParam()
  30. {
  31. return $this->items;
  32. }
  33. }
  34. class_alias('Braintree\MultipleValueNode', 'Braintree_MultipleValueNode');