/** * Compare in the following style in the where condition: * $column NOT BETWEEN $firstCompareValue AND $secondCompareValue * When the type argument isset to 'column', the second argument will interpreted as column. * Otherwise it is like a string or value comparison. * * @param string $column The column name which should compare. * @param string $firstCompareValue The first value for the comparison. * @param string $secondCompareValue The second value for the comparison. * @param string|null $type (Optional) Set to 'column' for a comparison with two columns. * * @return $this The same instance to concatenate methods. */ public function notBetween($column, $firstCompareValue, $secondCompareValue, $type = null) { /** @var ColumnInterface $columnObj */ /** @var WhereNumericCompareInterface $firstCompareObj */ /** @var WhereNumericCompareInterface $secondCompareObj */ $columnObj = $this->factory->references('Column', $column); if ($type === 'column') { $firstCompareObj = $this->factory->references('Column', $firstCompareValue); $secondCompareObj = $this->factory->references('Column', $secondCompareValue); } else { $firstCompareObj = $this->factory->references('Value', $firstCompareValue); $secondCompareObj = $this->factory->references('Value', $secondCompareValue); } $this->condition->notBetween($columnObj, $firstCompareObj, $secondCompareObj); return $this; }