2013-05-16 00:47:37 +02:00
|
|
|
<?php
|
2013-05-16 03:16:56 +02:00
|
|
|
/**
|
|
|
|
* PHPCI - Continuous Integration for PHP
|
|
|
|
*
|
2013-05-16 03:57:02 +02:00
|
|
|
* @copyright Copyright 2013, Block 8 Limited.
|
|
|
|
* @license https://github.com/Block8/PHPCI/blob/master/LICENSE.md
|
|
|
|
* @link http://www.phptesting.org/
|
2013-05-16 03:16:56 +02:00
|
|
|
*/
|
2013-05-16 00:47:37 +02:00
|
|
|
|
|
|
|
namespace PHPCI;
|
2013-05-16 03:57:02 +02:00
|
|
|
|
|
|
|
use PHPCI\Model\Build;
|
|
|
|
use PHPCI\Model\Build\LocalBuild;
|
|
|
|
use PHPCI\Model\Build\GithubBuild;
|
|
|
|
use PHPCI\Model\Build\BitbucketBuild;
|
2013-05-16 00:47:37 +02:00
|
|
|
|
2013-05-16 03:16:56 +02:00
|
|
|
/**
|
|
|
|
* PHPCI Build Factory - Takes in a generic "Build" and returns a type-specific build model.
|
2013-05-16 03:57:02 +02:00
|
|
|
* @author Dan Cryer <dan@block8.co.uk>
|
2013-05-16 03:16:56 +02:00
|
|
|
*/
|
2013-05-16 00:47:37 +02:00
|
|
|
class BuildFactory
|
|
|
|
{
|
2013-05-16 18:17:29 +02:00
|
|
|
/**
|
|
|
|
* Takes a generic build and returns a type-specific build model.
|
|
|
|
* @return PHPCI\Model\Build\LocalBuild|PHPCI\Model\Build\GithubBuild|PHPCI\Model\Build\BitbucketBuild
|
|
|
|
*/
|
2013-05-16 03:57:02 +02:00
|
|
|
public static function getBuild(Build $base)
|
|
|
|
{
|
|
|
|
switch($base->getProject()->getType())
|
|
|
|
{
|
|
|
|
case 'local':
|
|
|
|
$type = 'LocalBuild';
|
|
|
|
break;
|
|
|
|
case 'github':
|
|
|
|
$type = 'GithubBuild';
|
|
|
|
break;
|
|
|
|
case 'bitbucket':
|
|
|
|
$type = 'BitbucketBuild';
|
|
|
|
break;
|
|
|
|
}
|
2013-05-16 00:47:37 +02:00
|
|
|
|
2013-05-16 03:57:02 +02:00
|
|
|
$type = '\\PHPCI\\Model\\Build\\' . $type;
|
2013-05-16 00:47:37 +02:00
|
|
|
|
2013-05-16 03:57:02 +02:00
|
|
|
return new $type($base->getDataArray());
|
|
|
|
}
|
|
|
|
}
|