every = $every; $this->period = $period; $this->offset = $offset; $this->location = $location; $this->timeColumn = $timeColumn; $this->startColumn = $startColumn; $this->stopColumn = $stopColumn; $this->createEmpty = $createEmpty; } public function __toString() { $input = new ArrayType(array_filter([ 'every' => new DurationType($this->every), 'period' => $this->period ? new DurationType($this->period) : null, 'offset' => $this->offset ? new DurationType($this->offset) : null, 'location' => $this->location ? new Type($this->location) : null, 'timeColumn' => $this->timeColumn ? new Type($this->timeColumn) : null, 'startColumn' => $this->startColumn ? new Type($this->startColumn) : null, 'stopColumn' => $this->stopColumn ? new Type($this->stopColumn) : null, 'createEmpty' => $this->createEmpty ? new Type($this->createEmpty) : null, ])); return '|> window(' . $input . ') '; } }