You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lychee/php/ZipStream/Option/File.php

97 lines
1.6 KiB

<?php
declare(strict_types=1);
namespace ZipStream\Option;
use DateTime;
final class File
{
/**
* @var string
*/
private $comment = '';
/**
* @var Method
*/
private $method;
/**
* @var int
*/
private $deflateLevel;
/**
* @var DateTime
*/
private $time;
public function defaultTo(Archive $archiveOptions): void
{
$this->deflateLevel = $this->deflateLevel ?: $archiveOptions->getDeflateLevel();
$this->time = new DateTime();
}
/**
* @return string
*/
public function getComment(): string
{
return $this->comment;
}
/**
* @param string $comment
*/
public function setComment(string $comment): void
{
$this->comment = $comment;
}
/**
* @return Method
*/
public function getMethod(): Method
{
return $this->method ?: Method::DEFLATE();
}
/**
* @param Method $method
*/
public function setMethod(Method $method): void
{
$this->method = $method;
}
/**
* @return int
*/
public function getDeflateLevel(): int
{
return $this->deflateLevel ?: Archive::DEFAULT_DEFLATE_LEVEL;
}
/**
* @param int $deflateLevel
*/
public function setDeflateLevel(int $deflateLevel): void
{
$this->deflateLevel = $deflateLevel;
}
/**
* @return DateTime
*/
public function getTime(): DateTime
{
return $this->time;
}
/**
* @param DateTime $time
*/
public function setTime(DateTime $time): void
{
$this->time = $time;
}
}