118 lines
2.0 KiB
PHP
Executable File
118 lines
2.0 KiB
PHP
Executable File
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace ZipStream\Option;
|
|
|
|
use DateTime;
|
|
use DateTimeInterface;
|
|
|
|
final class File
|
|
{
|
|
/**
|
|
* @var string
|
|
*/
|
|
private $comment = '';
|
|
/**
|
|
* @var Method
|
|
*/
|
|
private $method;
|
|
/**
|
|
* @var int
|
|
*/
|
|
private $deflateLevel;
|
|
/**
|
|
* @var DateTimeInterface
|
|
*/
|
|
private $time;
|
|
/**
|
|
* @var int
|
|
*/
|
|
private $size = 0;
|
|
|
|
public function defaultTo(Archive $archiveOptions): void
|
|
{
|
|
$this->deflateLevel = $this->deflateLevel ?: $archiveOptions->getDeflateLevel();
|
|
$this->time = $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 DateTimeInterface
|
|
*/
|
|
public function getTime(): DateTimeInterface
|
|
{
|
|
return $this->time;
|
|
}
|
|
|
|
/**
|
|
* @param DateTimeInterface $time
|
|
*/
|
|
public function setTime(DateTimeInterface $time): void
|
|
{
|
|
$this->time = $time;
|
|
}
|
|
|
|
/**
|
|
* @return int
|
|
*/
|
|
public function getSize(): int
|
|
{
|
|
return $this->size;
|
|
}
|
|
|
|
/**
|
|
* @param int $size
|
|
*/
|
|
public function setSize(int $size): void
|
|
{
|
|
$this->size = $size;
|
|
}
|
|
}
|