222 lines
5.0 KiB
PHP
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();
|
|
}
|
|
}
|