aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2020-11-17 10:12:55 +0100
committerGitHub <noreply@github.com>2020-11-17 10:12:55 +0100
commitb24b74f03b83df186ea66095475f0e836702c07b (patch)
tree190e176a2091a74b04c9d6fd528c205e4850847d
parentce5e60d4b5f607ce47f0180fa2aa7f86de19f7e7 (diff)
parent4f26eee609eb34d343010bdcfb764ba6856243c9 (diff)
downloadnextcloud-server-b24b74f03b83df186ea66095475f0e836702c07b.tar.gz
nextcloud-server-b24b74f03b83df186ea66095475f0e836702c07b.zip
Merge pull request #24163 from nextcloud/techdebt/noid/add-types-to-function-builder
Add types to function builder
-rw-r--r--lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php36
-rw-r--r--lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php6
-rw-r--r--lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php3
-rw-r--r--lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php18
-rw-r--r--lib/public/DB/QueryBuilder/IFunctionBuilder.php54
5 files changed, 47 insertions, 70 deletions
diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php
index 23a834a9c49..b8c54546b78 100644
--- a/lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php
+++ b/lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php
@@ -27,8 +27,6 @@ namespace OC\DB\QueryBuilder\FunctionBuilder;
use OC\DB\QueryBuilder\QueryFunction;
use OC\DB\QueryBuilder\QuoteHelper;
use OCP\DB\QueryBuilder\IFunctionBuilder;
-use OCP\DB\QueryBuilder\ILiteral;
-use OCP\DB\QueryBuilder\IParameter;
use OCP\DB\QueryBuilder\IQueryFunction;
class FunctionBuilder implements IFunctionBuilder {
@@ -44,15 +42,15 @@ class FunctionBuilder implements IFunctionBuilder {
$this->helper = $helper;
}
- public function md5($input) {
+ public function md5($input): IQueryFunction {
return new QueryFunction('MD5(' . $this->helper->quoteColumnName($input) . ')');
}
- public function concat($x, $y) {
+ public function concat($x, $y): IQueryFunction {
return new QueryFunction('CONCAT(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
}
- public function substring($input, $start, $length = null) {
+ public function substring($input, $start, $length = null): IQueryFunction {
if ($length) {
return new QueryFunction('SUBSTR(' . $this->helper->quoteColumnName($input) . ', ' . $this->helper->quoteColumnName($start) . ', ' . $this->helper->quoteColumnName($length) . ')');
} else {
@@ -60,51 +58,41 @@ class FunctionBuilder implements IFunctionBuilder {
}
}
- public function sum($field) {
+ public function sum($field): IQueryFunction {
return new QueryFunction('SUM(' . $this->helper->quoteColumnName($field) . ')');
}
- public function lower($field) {
+ public function lower($field): IQueryFunction {
return new QueryFunction('LOWER(' . $this->helper->quoteColumnName($field) . ')');
}
- public function add($x, $y) {
+ public function add($x, $y): IQueryFunction {
return new QueryFunction($this->helper->quoteColumnName($x) . ' + ' . $this->helper->quoteColumnName($y));
}
- public function subtract($x, $y) {
+ public function subtract($x, $y): IQueryFunction {
return new QueryFunction($this->helper->quoteColumnName($x) . ' - ' . $this->helper->quoteColumnName($y));
}
- public function count($count = '', $alias = '') {
+ public function count($count = '', $alias = ''): IQueryFunction {
$alias = $alias ? (' AS ' . $this->helper->quoteColumnName($alias)) : '';
$quotedName = $count === '' ? '*' : $this->helper->quoteColumnName($count);
return new QueryFunction('COUNT(' . $quotedName . ')' . $alias);
}
- public function max($field) {
+ public function max($field): IQueryFunction {
return new QueryFunction('MAX(' . $this->helper->quoteColumnName($field) . ')');
}
- public function min($field) {
+ public function min($field): IQueryFunction {
return new QueryFunction('MIN(' . $this->helper->quoteColumnName($field) . ')');
}
- /**
- * @param string|ILiteral|IParameter|IQueryFunction $x
- * @param string|ILiteral|IParameter|IQueryFunction $y
- * @return IQueryFunction
- */
- public function greatest($x, $y) {
+ public function greatest($x, $y): IQueryFunction {
return new QueryFunction('GREATEST(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
}
- /**
- * @param string|ILiteral|IParameter|IQueryFunction $x
- * @param string|ILiteral|IParameter|IQueryFunction $y
- * @return IQueryFunction
- */
- public function least($x, $y) {
+ public function least($x, $y): IQueryFunction {
return new QueryFunction('LEAST(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
}
}
diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php
index aec92574581..4ad726bc034 100644
--- a/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php
+++ b/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php
@@ -29,7 +29,7 @@ use OCP\DB\QueryBuilder\IParameter;
use OCP\DB\QueryBuilder\IQueryFunction;
class OCIFunctionBuilder extends FunctionBuilder {
- public function md5($input) {
+ public function md5($input): IQueryFunction {
return new QueryFunction('LOWER(DBMS_OBFUSCATION_TOOLKIT.md5 (input => UTL_RAW.cast_to_raw(' . $this->helper->quoteColumnName($input) .')))');
}
@@ -45,7 +45,7 @@ class OCIFunctionBuilder extends FunctionBuilder {
* @param string|ILiteral|IParameter|IQueryFunction $y
* @return IQueryFunction
*/
- public function greatest($x, $y) {
+ public function greatest($x, $y): IQueryFunction {
if (is_string($y) || $y instanceof IQueryFunction) {
return parent::greatest($y, $x);
}
@@ -65,7 +65,7 @@ class OCIFunctionBuilder extends FunctionBuilder {
* @param string|ILiteral|IParameter|IQueryFunction $y
* @return IQueryFunction
*/
- public function least($x, $y) {
+ public function least($x, $y): IQueryFunction {
if (is_string($y) || $y instanceof IQueryFunction) {
return parent::least($y, $x);
}
diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php
index 8753d26104f..a44b80bbaaf 100644
--- a/lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php
+++ b/lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php
@@ -25,9 +25,10 @@
namespace OC\DB\QueryBuilder\FunctionBuilder;
use OC\DB\QueryBuilder\QueryFunction;
+use OCP\DB\QueryBuilder\IQueryFunction;
class PgSqlFunctionBuilder extends FunctionBuilder {
- public function concat($x, $y) {
+ public function concat($x, $y): IQueryFunction {
return new QueryFunction('(' . $this->helper->quoteColumnName($x) . ' || ' . $this->helper->quoteColumnName($y) . ')');
}
}
diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php
index f759fb22fde..8e490c15a3c 100644
--- a/lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php
+++ b/lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php
@@ -25,30 +25,18 @@
namespace OC\DB\QueryBuilder\FunctionBuilder;
use OC\DB\QueryBuilder\QueryFunction;
-use OCP\DB\QueryBuilder\ILiteral;
-use OCP\DB\QueryBuilder\IParameter;
use OCP\DB\QueryBuilder\IQueryFunction;
class SqliteFunctionBuilder extends FunctionBuilder {
- public function concat($x, $y) {
+ public function concat($x, $y): IQueryFunction {
return new QueryFunction('(' . $this->helper->quoteColumnName($x) . ' || ' . $this->helper->quoteColumnName($y) . ')');
}
- /**
- * @param string|ILiteral|IParameter|IQueryFunction $x
- * @param string|ILiteral|IParameter|IQueryFunction $y
- * @return IQueryFunction
- */
- public function greatest($x, $y) {
+ public function greatest($x, $y): IQueryFunction {
return new QueryFunction('MAX(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
}
- /**
- * @param string|ILiteral|IParameter|IQueryFunction $x
- * @param string|ILiteral|IParameter|IQueryFunction $y
- * @return IQueryFunction
- */
- public function least($x, $y) {
+ public function least($x, $y): IQueryFunction {
return new QueryFunction('MIN(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
}
}
diff --git a/lib/public/DB/QueryBuilder/IFunctionBuilder.php b/lib/public/DB/QueryBuilder/IFunctionBuilder.php
index aa11e42d622..569bc7485d4 100644
--- a/lib/public/DB/QueryBuilder/IFunctionBuilder.php
+++ b/lib/public/DB/QueryBuilder/IFunctionBuilder.php
@@ -34,103 +34,103 @@ interface IFunctionBuilder {
/**
* Calculates the MD5 hash of a given input
*
- * @param mixed $input The input to be hashed
+ * @param string|ILiteral|IParameter|IQueryFunction $input The input to be hashed
*
* @return IQueryFunction
* @since 12.0.0
*/
- public function md5($input);
+ public function md5($input): IQueryFunction;
/**
* Combines two input strings
*
- * @param mixed $x The first input string
- * @param mixed $y The seccond input string
+ * @param string|ILiteral|IParameter|IQueryFunction $x The first input string
+ * @param string|ILiteral|IParameter|IQueryFunction $y The seccond input string
*
* @return IQueryFunction
* @since 12.0.0
*/
- public function concat($x, $y);
+ public function concat($x, $y): IQueryFunction;
/**
* Takes a substring from the input string
*
- * @param mixed $input The input string
- * @param mixed $start The start of the substring, note that counting starts at 1
- * @param mixed $length The length of the substring
+ * @param string|ILiteral|IParameter|IQueryFunction $input The input string
+ * @param string|ILiteral|IParameter|IQueryFunction $start The start of the substring, note that counting starts at 1
+ * @param null|ILiteral|IParameter|IQueryFunction $length The length of the substring
*
* @return IQueryFunction
* @since 12.0.0
*/
- public function substring($input, $start, $length = null);
+ public function substring($input, $start, $length = null): IQueryFunction;
/**
* Takes the sum of all rows in a column
*
- * @param mixed $field the column to sum
+ * @param string|ILiteral|IParameter|IQueryFunction $field the column to sum
*
* @return IQueryFunction
* @since 12.0.0
*/
- public function sum($field);
+ public function sum($field): IQueryFunction;
/**
* Transforms a string field or value to lower case
*
- * @param mixed $field
+ * @param string|ILiteral|IParameter|IQueryFunction $field
* @return IQueryFunction
* @since 14.0.0
*/
- public function lower($field);
+ public function lower($field): IQueryFunction;
/**
- * @param mixed $x The first input field or number
- * @param mixed $y The second input field or number
+ * @param string|ILiteral|IParameter|IQueryFunction $x The first input field or number
+ * @param string|ILiteral|IParameter|IQueryFunction $y The second input field or number
* @return IQueryFunction
* @since 14.0.0
*/
- public function add($x, $y);
+ public function add($x, $y): IQueryFunction;
/**
- * @param mixed $x The first input field or number
- * @param mixed $y The second input field or number
+ * @param string|ILiteral|IParameter|IQueryFunction $x The first input field or number
+ * @param string|ILiteral|IParameter|IQueryFunction $y The second input field or number
* @return IQueryFunction
* @since 14.0.0
*/
- public function subtract($x, $y);
+ public function subtract($x, $y): IQueryFunction;
/**
- * @param mixed $count The input to be counted
+ * @param string|ILiteral|IParameter|IQueryFunction $count The input to be counted
* @param string $alias Alias for the counter
*
* @return IQueryFunction
* @since 14.0.0
*/
- public function count($count = '', $alias = '');
+ public function count($count = '', $alias = ''): IQueryFunction;
/**
* Takes the maximum of all rows in a column
*
* If you want to get the maximum value of multiple columns in the same row, use `greatest` instead
*
- * @param mixed $field the column to maximum
+ * @param string|ILiteral|IParameter|IQueryFunction $field the column to maximum
*
* @return IQueryFunction
* @since 18.0.0
*/
- public function max($field);
+ public function max($field): IQueryFunction;
/**
* Takes the minimum of all rows in a column
*
* If you want to get the minimum value of multiple columns in the same row, use `least` instead
*
- * @param mixed $field the column to minimum
+ * @param string|ILiteral|IParameter|IQueryFunction $field the column to minimum
*
* @return IQueryFunction
* @since 18.0.0
*/
- public function min($field);
+ public function min($field): IQueryFunction;
/**
* Takes the maximum of multiple values
@@ -142,7 +142,7 @@ interface IFunctionBuilder {
* @return IQueryFunction
* @since 18.0.0
*/
- public function greatest($x, $y);
+ public function greatest($x, $y): IQueryFunction;
/**
* Takes the minimum of multiple values
@@ -154,5 +154,5 @@ interface IFunctionBuilder {
* @return IQueryFunction
* @since 18.0.0
*/
- public function least($x, $y);
+ public function least($x, $y): IQueryFunction;
}