generatedColumns[] = $generatedColumn; if ($generatedColumn->getOriginalDateColumn() && $generatedColumn->getTimeUnit()) { if (!isset($this->dateColumnIndex[$generatedColumn->getOriginalDateColumn()])) { $this->dateColumnIndex[$generatedColumn->getOriginalDateColumn()] = []; } $this->dateColumnIndex[$generatedColumn->getOriginalDateColumn()][$generatedColumn->getTimeUnit()] = $generatedColumn; } } public function getForOriginalDateColumnAndUnit(string $originalDateColumn, string $unit): GeneratedColumnInterface { if (isset($this->dateColumnIndex[$originalDateColumn][$unit])) { return $this->dateColumnIndex[$originalDateColumn][$unit]; } throw new \UnexpectedValueException("Generated column for original date column {$originalDateColumn} with unit {$unit} does not exist."); } public function rewind(): void { $this->position = 0; } public function current(): mixed { return $this->generatedColumns[$this->position]; } public function key(): mixed { return $this->position; } public function next(): void { ++$this->position; } public function valid(): bool { return isset($this->generatedColumns[$this->position]); } public function count(): int { return count($this->generatedColumns); } }