From fb5f5b3510071338e288b57a77aebd8a65fe65fe Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 11 Mar 2022 10:34:28 +0100 Subject: [statistics] Add types --- .../statistics/inc/statisticsfilter.inc.php | 37 +++++++++++----------- 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'modules-available/statistics/inc/statisticsfilter.inc.php') diff --git a/modules-available/statistics/inc/statisticsfilter.inc.php b/modules-available/statistics/inc/statisticsfilter.inc.php index e186ad31..03a66b25 100644 --- a/modules-available/statistics/inc/statisticsfilter.inc.php +++ b/modules-available/statistics/inc/statisticsfilter.inc.php @@ -56,15 +56,15 @@ abstract class StatisticsFilter $this->placeholder = $placeholder; } - public function type() + public function type(): string { return ($this->ops === self::OP_ORDINAL || $this->ops === self::OP_FUZZY_ORDINAL) ? 'int' : 'string'; } /* returns a where clause and adds needed operators to the passed arrays */ - public abstract function whereClause(string $operator, $argument, array &$args, array &$joins); + public abstract function whereClause(string $operator, $argument, array &$args, array &$joins): string; - public function bind(string $op, $argument) { return new DatabaseFilter($this, $op, $argument); } + public function bind(string $op, $argument): DatabaseFilter { return new DatabaseFilter($this, $op, $argument); } public final function validateOperator(string $operator) { @@ -100,7 +100,7 @@ abstract class StatisticsFilter return ($array[$best] + $array[$best - 1]) / 2; } - public static function getNewKey($colname) + public static function getNewKey($colname): string { return $colname . '_' . (self::$keyCounter++); } @@ -108,7 +108,7 @@ abstract class StatisticsFilter /** * @return DatabaseFilter[] */ - public static function parseQuery() + public static function parseQuery(): array { // Get current settings from GET $ops = Request::get('op', [], 'array'); @@ -247,7 +247,7 @@ abstract class StatisticsFilter class SimpleStatisticsFilter extends StatisticsFilter { - public function whereClause(string $operator, $argument, array &$args, array &$joins) + public function whereClause(string $operator, $argument, array &$args, array &$joins): string { $addendum = ''; $key = self::getNewKey($this->column); @@ -301,9 +301,9 @@ class EnumStatisticsFilter extends SimpleStatisticsFilter $this->values = $values; } - public function type() { return 'enum'; } + public function type(): string { return 'enum'; } - public function whereClause(string $operator, $argument, array &$args, array &$joins) + public function whereClause(string $operator, $argument, array &$args, array &$joins): string { $keys = ArrayUtil::flattenByKey($this->values, 'key'); if (is_array($argument)) { @@ -333,7 +333,7 @@ class StandbyCrashStatisticsFilter extends EnumStatisticsFilter parent::__construct('standbysem', ['NONE', 'MANY']); } - public function whereClause(string $operator, $argument, array &$args, array &$joins) + public function whereClause(string $operator, $argument, array &$args, array &$joins): string { if ($argument === 'NONE') { $argument = 0; @@ -354,9 +354,9 @@ class DateStatisticsFilter extends StatisticsFilter parent::__construct($column, self::OP_ORDINAL, $placeholder); } - public function type() { return 'date'; } + public function type(): string { return 'date'; } - public function whereClause(string $operator, $argument, array &$args, array &$joins) + public function whereClause(string $operator, $argument, array &$args, array &$joins): string { $key = self::getNewKey($this->column); @@ -397,7 +397,7 @@ class RuntimeStatisticsFilter extends StatisticsFilter parent::__construct('lastboot', self::OP_ORDINAL); } - public function whereClause(string $operator, $argument, array &$args, array &$joins) + public function whereClause(string $operator, $argument, array &$args, array &$joins): string { $upper = time() - (int)$argument * 3600; $lower = $upper - 3600; @@ -454,7 +454,7 @@ class RamGbStatisticsFilter extends GbToMbRangeStatisticsFilter parent::__construct('mbram', self::OP_FUZZY_ORDINAL, 'GiB'); } - public function whereClause(string $operator, $argument, array &$args, array &$joins) + public function whereClause(string $operator, $argument, array &$args, array &$joins): string { return parent::rangeClause($operator, $argument, self::SIZE_RAM); } @@ -469,7 +469,7 @@ class Id44GbStatisticsFilter extends GbToMbRangeStatisticsFilter parent::__construct('id44mb', self::OP_FUZZY_ORDINAL,'GiB'); } - public function whereClause(string $operator, $argument, array &$args, array &$joins) + public function whereClause(string $operator, $argument, array &$args, array &$joins): string { return parent::rangeClause($operator, $argument, self::SIZE_ID44); } @@ -483,7 +483,7 @@ class StateStatisticsFilter extends EnumStatisticsFilter parent::__construct('state', ['on', 'off', 'idle', 'occupied', 'standby']); } - public function whereClause(string $operator, $argument, array &$args, array &$joins) + public function whereClause(string $operator, $argument, array &$args, array &$joins): string { $map = [ 'on' => ['IDLE', 'OCCUPIED'], 'off' => ['OFFLINE'], 'idle' => ['IDLE'], 'occupied' => ['OCCUPIED'], 'standby' => ['STANDBY'] ]; $neg = $operator == '!=' ? 'NOT ' : ''; @@ -513,9 +513,9 @@ class LocationStatisticsFilter extends EnumStatisticsFilter parent::__construct('locationid', $locs, self::OP_LOCATIONS); } - public function type() { return 'enum'; } + public function type(): string { return 'enum'; } - public function whereClause(string $operator, $argument, array &$args, array &$joins) + public function whereClause(string $operator, $argument, array &$args, array &$joins): string { $recursive = (substr($operator, -1) === '~'); $operator = str_replace('~', '=', $operator); @@ -597,7 +597,7 @@ class IsClientStatisticsFilter extends StatisticsFilter parent::__construct(null, []); } - public function whereClause(string $operator, $argument, array &$args, array &$joins) + public function whereClause(string $operator, $argument, array &$args, array &$joins): string { if ($argument) { $joins[] = ' LEFT JOIN runmode USING (machineuuid)'; @@ -616,6 +616,7 @@ class DatabaseFilter private $inst; public $op; public $argument; + public function __construct(StatisticsFilter $inst, string $op, $argument) { $inst->validateOperator($op); -- cgit v1.2.3-55-g7522