summaryrefslogtreecommitdiff
path: root/vendor/phar-io/manifest/src/values/Manifest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/phar-io/manifest/src/values/Manifest.php')
-rw-r--r--vendor/phar-io/manifest/src/values/Manifest.php92
1 files changed, 92 insertions, 0 deletions
diff --git a/vendor/phar-io/manifest/src/values/Manifest.php b/vendor/phar-io/manifest/src/values/Manifest.php
new file mode 100644
index 000000000..0140b842b
--- /dev/null
+++ b/vendor/phar-io/manifest/src/values/Manifest.php
@@ -0,0 +1,92 @@
+<?php declare(strict_types = 1);
+/*
+ * This file is part of PharIo\Manifest.
+ *
+ * (c) Arne Blankerts <[email protected]>, Sebastian Heuer <[email protected]>, Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace PharIo\Manifest;
+
+use PharIo\Version\Version;
+
+class Manifest {
+ /** @var ApplicationName */
+ private $name;
+
+ /** @var Version */
+ private $version;
+
+ /** @var Type */
+ private $type;
+
+ /** @var CopyrightInformation */
+ private $copyrightInformation;
+
+ /** @var RequirementCollection */
+ private $requirements;
+
+ /** @var BundledComponentCollection */
+ private $bundledComponents;
+
+ public function __construct(ApplicationName $name, Version $version, Type $type, CopyrightInformation $copyrightInformation, RequirementCollection $requirements, BundledComponentCollection $bundledComponents) {
+ $this->name = $name;
+ $this->version = $version;
+ $this->type = $type;
+ $this->copyrightInformation = $copyrightInformation;
+ $this->requirements = $requirements;
+ $this->bundledComponents = $bundledComponents;
+ }
+
+ public function getName(): ApplicationName {
+ return $this->name;
+ }
+
+ public function getVersion(): Version {
+ return $this->version;
+ }
+
+ public function getType(): Type {
+ return $this->type;
+ }
+
+ public function getCopyrightInformation(): CopyrightInformation {
+ return $this->copyrightInformation;
+ }
+
+ public function getRequirements(): RequirementCollection {
+ return $this->requirements;
+ }
+
+ public function getBundledComponents(): BundledComponentCollection {
+ return $this->bundledComponents;
+ }
+
+ public function isApplication(): bool {
+ return $this->type->isApplication();
+ }
+
+ public function isLibrary(): bool {
+ return $this->type->isLibrary();
+ }
+
+ public function isExtension(): bool {
+ return $this->type->isExtension();
+ }
+
+ public function isExtensionFor(ApplicationName $application, Version $version = null): bool {
+ if (!$this->isExtension()) {
+ return false;
+ }
+
+ /** @var Extension $type */
+ $type = $this->type;
+
+ if ($version !== null) {
+ return $type->isCompatibleWith($application, $version);
+ }
+
+ return $type->isExtensionFor($application);
+ }
+}