friendica-addons/advancedcontentfilter/vendor/fxp/composer-asset-plugin/Package/AbstractLazyCompletePackage...

222 lines
5.0 KiB
PHP

<?php
/*
* This file is part of the Fxp Composer Asset Plugin package.
*
* (c) François Pluchino <francois.pluchino@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Fxp\Composer\AssetPlugin\Package;
use Composer\Package\CompletePackage;
use Fxp\Composer\AssetPlugin\Package\Loader\LazyLoaderInterface;
/**
* Abstract class for the lazy loading complete package.
*
* @author François Pluchino <francois.pluchino@gmail.com>
*/
abstract class AbstractLazyCompletePackage extends CompletePackage implements LazyPackageInterface
{
/**
* @var LazyLoaderInterface
*/
protected $lazyLoader;
/**
* {@inheritdoc}
*/
public function getAutoload()
{
$this->initialize();
return parent::getAutoload();
}
/**
* {@inheritdoc}
*/
public function getDevAutoload()
{
$this->initialize();
return parent::getDevAutoload();
}
/**
* {@inheritdoc}
*/
public function getIncludePaths()
{
$this->initialize();
return parent::getIncludePaths();
}
/**
* {@inheritdoc}
*/
public function getNotificationUrl()
{
$this->initialize();
return parent::getNotificationUrl();
}
/**
* {@inheritdoc}
*/
public function getArchiveExcludes()
{
$this->initialize();
return parent::getArchiveExcludes();
}
/**
* {@inheritdoc}
*/
public function getScripts()
{
$this->initialize();
return parent::getScripts();
}
/**
* {@inheritdoc}
*/
public function getRepositories()
{
$this->initialize();
return parent::getRepositories();
}
/**
* {@inheritdoc}
*/
public function getLicense()
{
$this->initialize();
return parent::getLicense();
}
/**
* {@inheritdoc}
*/
public function getKeywords()
{
$this->initialize();
return parent::getKeywords();
}
/**
* {@inheritdoc}
*/
public function getAuthors()
{
$this->initialize();
return parent::getAuthors();
}
/**
* {@inheritdoc}
*/
public function getDescription()
{
$this->initialize();
return parent::getDescription();
}
/**
* {@inheritdoc}
*/
public function getHomepage()
{
$this->initialize();
return parent::getHomepage();
}
/**
* {@inheritdoc}
*/
public function getSupport()
{
$this->initialize();
return parent::getSupport();
}
/**
* {@inheritdoc}
*/
public function setLoader(LazyLoaderInterface $lazyLoader)
{
$this->lazyLoader = $lazyLoader;
}
/**
* Initialize the package.
*/
protected function initialize()
{
if (!$this->lazyLoader) {
return;
}
$real = $this->lazyLoader->load($this);
$this->lazyLoader = null;
if (false === $real) {
$this->version = '-9999999.9999999.9999999.9999999';
return;
}
$this->type = $real->getType();
$this->transportOptions = $real->getTransportOptions();
$this->targetDir = $real->getTargetDir();
$this->extra = $real->getExtra();
$this->binaries = $real->getBinaries();
$this->installationSource = $real->getInstallationSource();
$this->sourceType = $real->getSourceType();
$this->sourceUrl = $real->getSourceUrl();
$this->sourceReference = $real->getSourceReference();
$this->sourceMirrors = $real->getSourceMirrors();
$this->distType = $real->getDistType();
$this->distUrl = $real->getDistUrl();
$this->distReference = $real->getDistReference();
$this->distSha1Checksum = $real->getDistSha1Checksum();
$this->distMirrors = $real->getDistMirrors();
$this->releaseDate = $real->getReleaseDate();
$this->requires = $real->getRequires();
$this->conflicts = $real->getConflicts();
$this->provides = $real->getProvides();
$this->replaces = $real->getReplaces();
$this->devRequires = $real->getDevRequires();
$this->suggests = $real->getSuggests();
$this->autoload = $real->getAutoload();
$this->devAutoload = $real->getDevAutoload();
$this->includePaths = $real->getIncludePaths();
$this->notificationUrl = $real->getNotificationUrl();
$this->archiveExcludes = $real->getArchiveExcludes();
$this->scripts = $real->getScripts();
$this->repositories = $real->getRepositories();
$this->license = $real->getLicense();
$this->keywords = $real->getKeywords();
$this->authors = $real->getAuthors();
$this->description = $real->getDescription();
$this->homepage = $real->getHomepage();
$this->support = $real->getSupport();
}
}