An error occurred while loading the file. Please try again.
-
Guillaume Perréal authored12a31cc0
<?php declare(strict_types=1);
/*
* This file is part of "irstea/make-shim".
* (c) 2019 Irstea <dsi.poleis@irstea.fr>
*
* For the full copyright and license information, please view the LICENSE.md
* file that was distributed with this source code.
*/
namespace Irstea\MakeShim\Packagist;
use Composer\Semver\Comparator;
/**
* Class Package.
*/
final class Package
{
/**
* @var string
*/
private $name;
/**
* @var string
*/
private $version;
/**
* @var string
*/
private $binary;
/**
* @var array
*/
private $configuration;
/**
* Version constructor.
*
* @param string $name
* @param string $version
* @param string $binary
* @param array $configuration
*/
public function __construct(string $name, string $version, string $binary, array $configuration)
{
$this->name = $name;
$this->version = $version;
$this->binary = $binary;
$this->configuration = $configuration;
}
/**
* Get name.
*
* @return string
*/
public function getName(): string
{
return $this->name;
}
/**
* Get version.
*
* @return string
*/
public function getVersion(): string
{
return $this->version;
}
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
/**
* Get binary.
*
* @return string
*/
public function getBinary(): string
{
return $this->binary;
}
/**
* Get configuration.
*
* @return array
*/
public function getConfiguration(): array
{
return $this->configuration;
}
/**
* @param array $configuration
*
* @return Package
*/
public static function fromConfiguration(array $configuration): self
{
return new self(
$configuration['name'],
$configuration['version'],
$configuration['bin']['0'],
$configuration
);
}
/**
* @return string
*/
public function __toString(): string
{
return sprintf('%s:%s', $this->name, $this->version);
}
/**
* @param Package $first
* @param Package $second
*
* @return int
*/
public static function compareByVersion(Package $first, Package $second): int
{
if (Comparator::lessThan($first->getVersion(), $second->getVersion())) {
return -1;
}
if (Comparator::greaterThan($first->getVersion(), $second->getVersion())) {
return 1;
}
return 0;
}
}