Skip to content

Commit

Permalink
Renamed ProviderDataType -> ProviderDataFetcher.
Browse files Browse the repository at this point in the history
  • Loading branch information
Bilge committed Jun 18, 2016
1 parent cd13ed1 commit e9592aa
Show file tree
Hide file tree
Showing 21 changed files with 124 additions and 127 deletions.
23 changes: 12 additions & 11 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions src/Porter/Collection/CountableProviderRecords.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?php
namespace ScriptFUSION\Porter\Collection;

use ScriptFUSION\Porter\Provider\ProviderDataType;
use ScriptFUSION\Porter\Provider\ProviderDataFetcher;

class CountableProviderRecords extends ProviderRecords implements \Countable
{
Expand All @@ -10,11 +10,11 @@ class CountableProviderRecords extends ProviderRecords implements \Countable
/**
* @param \Iterator $providerRecords
* @param int $count
* @param ProviderDataType $providerDataType
* @param ProviderDataFetcher $dataFetcher
*/
public function __construct(\Iterator $providerRecords, $count, ProviderDataType $providerDataType)
public function __construct(\Iterator $providerRecords, $count, ProviderDataFetcher $dataFetcher)
{
parent::__construct($providerRecords, $providerDataType);
parent::__construct($providerRecords, $dataFetcher);

$this->count = $count|0;
}
Expand Down
14 changes: 7 additions & 7 deletions src/Porter/Collection/ProviderRecords.php
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
<?php
namespace ScriptFUSION\Porter\Collection;

use ScriptFUSION\Porter\Provider\ProviderDataType;
use ScriptFUSION\Porter\Provider\ProviderDataFetcher;

class ProviderRecords extends RecordCollection
{
private $providerData;
private $dataFetcher;

public function __construct(\Iterator $providerRecords, ProviderDataType $providerDataType)
public function __construct(\Iterator $providerRecords, ProviderDataFetcher $dataFetcher)
{
parent::__construct($providerRecords);

$this->providerData = $providerDataType;
$this->dataFetcher = $dataFetcher;
}

/**
* @return ProviderDataType
* @return ProviderDataFetcher
*/
public function getProviderData()
public function getDataFetcher()
{
return $this->providerData;
return $this->dataFetcher;
}
}
23 changes: 8 additions & 15 deletions src/Porter/Porter.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
use ScriptFUSION\Porter\Collection\RecordCollection;
use ScriptFUSION\Porter\Mapper\PorterMapper;
use ScriptFUSION\Porter\Provider\Provider;
use ScriptFUSION\Porter\Provider\ProviderDataType;
use ScriptFUSION\Porter\Provider\ProviderDataFetcher;
use ScriptFUSION\Porter\Provider\ProviderFactory;
use ScriptFUSION\Porter\Specification\ImportSpecification;

Expand All @@ -37,12 +37,12 @@ public function __construct()
*/
public function import(ImportSpecification $specification)
{
$providerDataType = $specification->finalize()->getProviderDataType();
$records = $this->fetch($providerDataType, $specification->getCacheAdvice());
$dataFetcher = $specification->finalize()->getDataFetcher();
$records = $this->fetch($dataFetcher, $specification->getCacheAdvice());

if (!$records instanceof ProviderRecords) {
// Compose records iterator.
$records = new ProviderRecords($records, $providerDataType);
$records = new ProviderRecords($records, $dataFetcher);
}

if ($specification->getFilter()) {
Expand Down Expand Up @@ -99,13 +99,6 @@ private function getOrCreateProviderFactory()
return $this->providerFactory ?: $this->providerFactory = new ProviderFactory;
}

public function setProviderFactory(ProviderFactory $factory)
{
$this->providerFactory = $factory;

return $this;
}

/**
* @return PorterMapper
*/
Expand All @@ -126,16 +119,16 @@ public function setMapper(PorterMapper $mapper)
return $this;
}

private function fetch(ProviderDataType $providerDataType, CacheAdvice $cacheAdvice = null)
private function fetch(ProviderDataFetcher $dataFetcher, CacheAdvice $cacheAdvice = null)
{
if ($provider = $this->getProvider($providerDataType->getProviderName())) {
if ($provider = $this->getProvider($dataFetcher->getProviderName())) {
$this->applyCacheAdvice($provider, $cacheAdvice ?: $this->defaultCacheAdvice);

return $provider->fetch($providerDataType);
return $provider->fetch($dataFetcher);
}

// TODO: Proper exception type.
throw new \RuntimeException("No such provider: {$providerDataType->getProviderName()}.");
throw new \RuntimeException("No such provider: {$dataFetcher->getProviderName()}.");
}

private function filter(ProviderRecords $records, callable $predicate, $context)
Expand Down
10 changes: 10 additions & 0 deletions src/Porter/Provider/ForeignDataFetcherException.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php
namespace ScriptFUSION\Porter\Provider;

/**
* The exception that is thrown when a foreign data fetcher is received.
*/
class ForeignDataFetcherException extends \RuntimeException
{
// Intentionally empty.
}
10 changes: 0 additions & 10 deletions src/Porter/Provider/IncompatibleDataTypeException.php

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?php
namespace ScriptFUSION\Porter\Provider;

class NoDataType extends StaticDataType
class NullFetcher extends StaticDataFetcher
{
public function __construct()
{
Expand Down
16 changes: 8 additions & 8 deletions src/Porter/Provider/Provider.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,22 @@ public function __construct(Connector $connector)
}

/**
* @param ProviderDataType $providerDataType
* @param ProviderDataFetcher $dataFetcher
*
* @return \Iterator
*
* @throws IncompatibleDataTypeException A foreign data type was received.
* @throws ForeignDataFetcherException A foreign data fetcher was received.
*/
public function fetch(ProviderDataType $providerDataType)
public function fetch(ProviderDataFetcher $dataFetcher)
{
if ($providerDataType->getProviderName() !== static::class) {
throw new IncompatibleDataTypeException(sprintf(
'Cannot fetch data for foreign type: "%s".',
get_class($providerDataType)
if ($dataFetcher->getProviderName() !== static::class) {
throw new ForeignDataFetcherException(sprintf(
'Cannot fetch data from foreign type: "%s".',
get_class($dataFetcher)
));
}

return $providerDataType->fetch($this->connector);
return $dataFetcher->fetch($this->connector);
}

/**
Expand Down
25 changes: 25 additions & 0 deletions src/Porter/Provider/ProviderDataFetcher.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php
namespace ScriptFUSION\Porter\Provider;

use ScriptFUSION\Porter\Connector\Connector;

/**
* Specifies how to fetch data from the specified provider.
*/
interface ProviderDataFetcher
{
/**
* @return string
*/
public function getProviderName();

/**
* Fetches data from the provider using the the specified connector and
* presents the data as an iterative series.
*
* @param Connector $connector Connector.
*
* @return \Iterator Data series.
*/
public function fetch(Connector $connector);
}
22 changes: 0 additions & 22 deletions src/Porter/Provider/ProviderDataType.php

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
use ScriptFUSION\Porter\Connector\Connector;
use ScriptFUSION\Porter\Options\EncapsulatedOptions;

class StaticDataType implements ProviderDataType
class StaticDataFetcher implements ProviderDataFetcher
{
private $data;

Expand Down
18 changes: 9 additions & 9 deletions src/Porter/Specification/ImportSpecification.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
use ScriptFUSION\Mapper\Mapping;
use ScriptFUSION\Porter\Cache\CacheAdvice;
use ScriptFUSION\Porter\ObjectFinalizedException;
use ScriptFUSION\Porter\Provider\ProviderDataType;
use ScriptFUSION\Porter\Provider\ProviderDataFetcher;

class ImportSpecification
{
private $finalized = false;

/** @var ProviderDataType */
private $providerDataType;
/** @var ProviderDataFetcher */
private $dataFetcher;

/** @var Mapping */
private $mapping;
Expand All @@ -25,9 +25,9 @@ class ImportSpecification
/** @var CacheAdvice */
private $cacheAdvice;

public function __construct(ProviderDataType $providerDataType)
public function __construct(ProviderDataFetcher $dataFetcher)
{
$this->providerDataType = $providerDataType;
$this->dataFetcher = $dataFetcher;
}

/**
Expand All @@ -43,7 +43,7 @@ public static function createFrom(ImportSpecification $specification)
$specification->finalize();
}

return (new static($specification->getProviderDataType()))
return (new static($specification->getDataFetcher()))
->setMapping($specification->getMapping())
->setContext($specification->getContext())
->setFilter($specification->getFilter());
Expand Down Expand Up @@ -77,11 +77,11 @@ private function failIfFinalized($function)
}

/**
* @return ProviderDataType
* @return ProviderDataFetcher
*/
final public function getProviderDataType()
final public function getDataFetcher()
{
return $this->isFinalized() ? clone $this->providerDataType : $this->providerDataType;
return $this->isFinalized() ? clone $this->dataFetcher : $this->dataFetcher;
}

/**
Expand Down
4 changes: 2 additions & 2 deletions src/Porter/Specification/StaticDataImportSpecification.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?php
namespace ScriptFUSION\Porter\Specification;

use ScriptFUSION\Porter\Provider\StaticDataType;
use ScriptFUSION\Porter\Provider\StaticDataFetcher;

class StaticDataImportSpecification extends ImportSpecification
{
public function __construct(\Iterator $data)
{
parent::__construct(new StaticDataType($data));
parent::__construct(new StaticDataFetcher($data));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
namespace ScriptFUSIONTest\Integration\Porter\Collection;

use ScriptFUSION\Porter\Collection\CountableProviderRecords;
use ScriptFUSION\Porter\Provider\ProviderDataType;
use ScriptFUSION\Porter\Provider\ProviderDataFetcher;

final class CountableProviderRecordsTest extends \PHPUnit_Framework_TestCase
{
Expand All @@ -13,7 +13,7 @@ public function test()
$records = new CountableProviderRecords(
new \ArrayIterator($data),
count($data),
\Mockery::mock(ProviderDataType::class)
\Mockery::mock(ProviderDataFetcher::class)
);

self::assertCount(count($data), $records);
Expand Down
Loading

0 comments on commit e9592aa

Please sign in to comment.