/** * @param $operator * @param $left_found * @param $left * @param $right * * @return bool * @throws InternalServerErrorException */ public static function compareByOperator($operator, $left_found, $left, $right) { switch ($operator) { case DbFilterOperators::EQ: return $left == $right; case DbFilterOperators::NE: return $left != $right; case DbFilterOperators::GT: return $left > $right; case DbFilterOperators::LT: return $left < $right; case DbFilterOperators::GE: return $left >= $right; case DbFilterOperators::LE: return $left <= $right; case DbFilterOperators::STARTS_WITH: return static::startsWith($left, $right); case DbFilterOperators::ENDS_WITH: return static::endswith($left, $right); case DbFilterOperators::CONTAINS: return false !== strpos($left, $right); case DbFilterOperators::IN: return ArrayUtils::isInList($right, $left); case DbFilterOperators::NOT_IN: return !ArrayUtils::isInList($right, $left); case DbFilterOperators::IS_NULL: return is_null($left); case DbFilterOperators::IS_NOT_NULL: return !is_null($left); case DbFilterOperators::DOES_EXIST: return $left_found; case DbFilterOperators::DOES_NOT_EXIST: return !$left_found; default: throw new InternalServerErrorException('Invalid server configuration detected.'); } }