CompositeExpression.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. /**
  3. * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
  4. * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
  5. * SPDX-License-Identifier: AGPL-3.0-only
  6. */
  7. namespace OC\DB\QueryBuilder;
  8. use OCP\DB\QueryBuilder\ICompositeExpression;
  9. class CompositeExpression implements ICompositeExpression, \Countable {
  10. /** @var \Doctrine\DBAL\Query\Expression\CompositeExpression */
  11. protected $compositeExpression;
  12. /**
  13. * Constructor.
  14. *
  15. * @param \Doctrine\DBAL\Query\Expression\CompositeExpression $compositeExpression
  16. */
  17. public function __construct(\Doctrine\DBAL\Query\Expression\CompositeExpression $compositeExpression) {
  18. $this->compositeExpression = $compositeExpression;
  19. }
  20. /**
  21. * Adds multiple parts to composite expression.
  22. *
  23. * @param array $parts
  24. *
  25. * @return \OCP\DB\QueryBuilder\ICompositeExpression
  26. */
  27. public function addMultiple(array $parts = []): ICompositeExpression {
  28. $this->compositeExpression->addMultiple($parts);
  29. return $this;
  30. }
  31. /**
  32. * Adds an expression to composite expression.
  33. *
  34. * @param mixed $part
  35. *
  36. * @return \OCP\DB\QueryBuilder\ICompositeExpression
  37. */
  38. public function add($part): ICompositeExpression {
  39. $this->compositeExpression->add($part);
  40. return $this;
  41. }
  42. /**
  43. * Retrieves the amount of expressions on composite expression.
  44. *
  45. * @return integer
  46. */
  47. public function count(): int {
  48. return $this->compositeExpression->count();
  49. }
  50. /**
  51. * Returns the type of this composite expression (AND/OR).
  52. *
  53. * @return string
  54. */
  55. public function getType(): string {
  56. return $this->compositeExpression->getType();
  57. }
  58. /**
  59. * Retrieves the string representation of this composite expression.
  60. *
  61. * @return string
  62. */
  63. public function __toString(): string {
  64. return (string) $this->compositeExpression;
  65. }
  66. }