public function write($forceAssemble = false) {
		if ($this->outputFile === null) {
			throw new OperationError('Path to the output file must be set first');
		}
		
		if (! $forceAssemble && $this->reassembleByMTime && ! $this->isOutputExpired()) {
			return;
		}
		
		$result = file_put_contents($this->outputFile, $this->assemble());
		
		if ($result === false) {
			throw new OperationError('Unable to write the output file: "' . $this->outputFile . '"');
		}
	}