Skip to content

Commit

Permalink
more refactoring related to embedded ref resolution
Browse files Browse the repository at this point in the history
  • Loading branch information
gggeek committed May 2, 2018
1 parent 4ef1cca commit 77bddec
Show file tree
Hide file tree
Showing 9 changed files with 55 additions and 71 deletions.
9 changes: 9 additions & 0 deletions API/EmbeddedReferenceResolverBagInterface.php
@@ -0,0 +1,9 @@
<?php


namespace Kaliop\eZMigrationBundle\API;

interface EmbeddedReferenceResolverBagInterface extends ReferenceResolverBagInterface, EmbeddedReferenceResolverInterface
{

}
14 changes: 4 additions & 10 deletions Core/Executor/FileExecutor.php
Expand Up @@ -3,8 +3,7 @@
namespace Kaliop\eZMigrationBundle\Core\Executor;

use Kaliop\eZMigrationBundle\API\Value\MigrationStep;
use Kaliop\eZMigrationBundle\API\EmbeddedReferenceResolverInterface;
use Kaliop\eZMigrationBundle\Core\ReferenceResolver\PrefixBasedResolverInterface;
use Kaliop\eZMigrationBundle\API\EmbeddedReferenceResolverBagInterface;

class FileExecutor extends AbstractExecutor
{
Expand All @@ -13,14 +12,13 @@ class FileExecutor extends AbstractExecutor
protected $supportedStepTypes = array('file');
protected $supportedActions = array('load', 'save', 'copy', 'move', 'delete', 'append', 'prepend', 'exists');

/** @var PrefixBasedResolverInterface $referenceResolver */
/** @var EmbeddedReferenceResolverBagInterface $referenceResolver */
protected $referenceResolver;

/**
* FileExecutor constructor.
* @param PrefixBasedResolverInterface $referenceResolver must implement EmbeddedReferenceResolverInterface too
* @param EmbeddedReferenceResolverBagInterface $referenceResolver
*/
public function __construct(PrefixBasedResolverInterface $referenceResolver)
public function __construct(EmbeddedReferenceResolverBagInterface $referenceResolver)
{
$this->referenceResolver = $referenceResolver;
}
Expand Down Expand Up @@ -365,10 +363,6 @@ protected function setReferences($fileName, $dsl)
*/
protected function resolveReferencesInText($text)
{
if (!$this->referenceResolver instanceof EmbeddedReferenceResolverInterface) {
throw new \Exception("Reference resolver passed to FileExecutor should implement EmbeddedReferenceResolverInterface");
}

return $this->referenceResolver->ResolveEmbeddedReferences($text);
}
}
16 changes: 5 additions & 11 deletions Core/Executor/HTTPExecutor.php
Expand Up @@ -4,9 +4,7 @@

use Symfony\Component\DependencyInjection\ContainerInterface;
use Kaliop\eZMigrationBundle\API\Value\MigrationStep;
use Kaliop\eZMigrationBundle\API\ReferenceResolverInterface;
use Kaliop\eZMigrationBundle\API\EmbeddedReferenceResolverInterface;
use Kaliop\eZMigrationBundle\Core\ReferenceResolver\PrefixBasedResolverInterface;
use Kaliop\eZMigrationBundle\API\EmbeddedReferenceResolverBagInterface;
use Psr\Http\Message\ResponseInterface;

class HTTPExecutor extends AbstractExecutor
Expand All @@ -16,16 +14,16 @@ class HTTPExecutor extends AbstractExecutor
protected $supportedStepTypes = array('http');
protected $supportedActions = array('call');

/** @var ReferenceResolverInterface $referenceResolver */
/** @var EmbeddedReferenceResolverBagInterface $referenceResolver */
protected $referenceResolver;

protected $container;

/**
* @param ContainerInterface $container
* @param PrefixBasedResolverInterface $referenceResolver has to implement EmbeddedReferenceResolverInterface as well!
* @param EmbeddedReferenceResolverBagInterface $referenceResolver has to implement EmbeddedReferenceResolverInterface as well!
*/
public function __construct(ContainerInterface $container, PrefixBasedResolverInterface $referenceResolver)
public function __construct(ContainerInterface $container, EmbeddedReferenceResolverBagInterface $referenceResolver)
{
$this->referenceResolver = $referenceResolver;
$this->container = $container;
Expand Down Expand Up @@ -134,7 +132,7 @@ protected function setReferences(ResponseInterface $response, $dsl)
}

/**
* @deprecated should be moved into the reference resolver classes
* @todo should be moved into the reference resolver classes
*/
protected function resolveReferencesRecursively($match)
{
Expand All @@ -157,10 +155,6 @@ protected function resolveReferencesRecursively($match)
*/
protected function resolveReferencesInText($text)
{
if (!$this->referenceResolver instanceof EmbeddedReferenceResolverInterface) {
throw new \Exception("Reference resolver passed to HTTPExecutor should implement EmbeddedReferenceResolverInterface");
}

return $this->referenceResolver->ResolveEmbeddedReferences($text);
}

Expand Down
15 changes: 5 additions & 10 deletions Core/Executor/MailExecutor.php
Expand Up @@ -4,8 +4,7 @@

use Kaliop\eZMigrationBundle\API\Value\MigrationStep;
use Kaliop\eZMigrationBundle\API\ReferenceResolverInterface;
use Kaliop\eZMigrationBundle\API\EmbeddedReferenceResolverInterface;
use Kaliop\eZMigrationBundle\Core\ReferenceResolver\PrefixBasedResolverInterface;
use Kaliop\eZMigrationBundle\API\EmbeddedReferenceResolverBagInterface;
use Swift_Message;
use Swift_Attachment;

Expand All @@ -23,9 +22,9 @@ class MailExecutor extends AbstractExecutor
/**
* MailExecutor constructor.
* @param $mailService
* @param PrefixBasedResolverInterface $referenceResolver must implement EmbeddedReferenceResolverInterface too
* @param EmbeddedReferenceResolverBagInterface $referenceResolver must implement EmbeddedReferenceResolverInterface too
*/
public function __construct($mailService, PrefixBasedResolverInterface $referenceResolver)
public function __construct($mailService, EmbeddedReferenceResolverBagInterface $referenceResolver)
{
$this->mailService = $mailService;
$this->referenceResolver = $referenceResolver;
Expand Down Expand Up @@ -119,7 +118,7 @@ protected function send($dsl, $context)
}

/**
* @deprecated should be moved into the reference resolver classes
* @todo should be moved into the reference resolver classes
*/
protected function resolveReferencesRecursively($match)
{
Expand All @@ -142,10 +141,6 @@ protected function resolveReferencesRecursively($match)
*/
protected function resolveReferencesInText($text)
{
if (!$this->referenceResolver instanceof EmbeddedReferenceResolverInterface) {
throw new \Exception("Reference resolver passed to MailExecutor should implement EmbeddedReferenceResolverInterface");
}

return $this->referenceResolver->ResolveEmbeddedReferences($text);
return $this->referenceResolver->resolveEmbeddedReferences($text);
}
}
9 changes: 4 additions & 5 deletions Core/Executor/ProcessExecutor.php
Expand Up @@ -5,7 +5,7 @@
use Symfony\Component\Process\ProcessBuilder;
use Symfony\Component\Process\Process;
use Kaliop\eZMigrationBundle\API\Value\MigrationStep;
use Kaliop\eZMigrationBundle\Core\ReferenceResolver\PrefixBasedResolverInterface;
use Kaliop\eZMigrationBundle\API\ReferenceResolverBagInterface;

class ProcessExecutor extends AbstractExecutor
{
Expand All @@ -16,14 +16,13 @@ class ProcessExecutor extends AbstractExecutor

protected $defaultTimeout = 86400;

/** @var PrefixBasedResolverInterface $referenceResolver */
/** @var ReferenceResolverBagInterface $referenceResolver */
protected $referenceResolver;

/**
* ProcessExecutor constructor.
* @param PrefixBasedResolverInterface $referenceResolver
* @param ReferenceResolverBagInterface $referenceResolver
*/
public function __construct(PrefixBasedResolverInterface $referenceResolver)
public function __construct(ReferenceResolverBagInterface $referenceResolver)
{
$this->referenceResolver = $referenceResolver;
}
Expand Down
9 changes: 6 additions & 3 deletions Core/Executor/ServiceExecutor.php
Expand Up @@ -4,7 +4,7 @@

use Symfony\Component\DependencyInjection\ContainerInterface;
use Kaliop\eZMigrationBundle\API\Value\MigrationStep;
use Kaliop\eZMigrationBundle\Core\ReferenceResolver\PrefixBasedResolverInterface;
use Kaliop\eZMigrationBundle\API\ReferenceResolverBagInterface;

class ServiceExecutor extends AbstractExecutor
{
Expand All @@ -13,12 +13,12 @@ class ServiceExecutor extends AbstractExecutor
protected $supportedStepTypes = array('service');
protected $supportedActions = array('call');

/** @var PrefixBasedResolverInterface $referenceResolver */
/** @var ReferenceResolverBagInterface $referenceResolver */
protected $referenceResolver;

protected $container;

public function __construct(ContainerInterface $container, PrefixBasedResolverInterface $referenceResolver)
public function __construct(ContainerInterface $container, ReferenceResolverBagInterface $referenceResolver)
{
$this->referenceResolver = $referenceResolver;
$this->container = $container;
Expand Down Expand Up @@ -153,6 +153,9 @@ protected function setReferences($result, \Exception $exception = null, $dsl)
return true;
}

/**
* @todo should be moved into the reference resolver classes
*/
protected function resolveReferencesRecursively($match)
{
if (is_array($match)) {
Expand Down
27 changes: 11 additions & 16 deletions Core/FieldHandler/EzRichText.php
Expand Up @@ -4,19 +4,17 @@

use Kaliop\eZMigrationBundle\API\FieldValueImporterInterface;
use Kaliop\eZMigrationBundle\API\EmbeddedReferenceResolverInterface;
use Kaliop\eZMigrationBundle\Core\ReferenceResolver\PrefixBasedResolverInterface;
use Kaliop\eZMigrationBundle\API\ReferenceResolverInterface;


/// @todo unify $this->resolver and $this->referenceResolver (are they the same already ???)
class EzRichText extends AbstractFieldHandler implements FieldValueImporterInterface
{
protected $resolver;

/**
* @param PrefixBasedResolverInterface $resolver must implement EmbeddedReferenceResolverInterface, really
*/
public function __construct(PrefixBasedResolverInterface $resolver)
public function setReferenceResolver(ReferenceResolverInterface $referenceResolver)
{
$this->resolver = $resolver;
if (! $referenceResolver instanceof EmbeddedReferenceResolverInterface) {
throw new \Exception("Reference resolver injected into EzRichText field handler should implement EmbeddedReferenceResolverInterface");
}
parent::setReferenceResolver($referenceResolver);
}

/**
Expand All @@ -36,12 +34,9 @@ public function hashToFieldValue($fieldValue, array $context = array())
$xmlText = $fieldValue['content'];
}

// Check if there are any references in the xml text and replace them.
// Check if there are any references in the xml text and replace them.
if (!$this->resolver instanceof EmbeddedReferenceResolverInterface) {
throw new \Exception("Reference resolver passed to HTTPExecutor should implement EmbeddedReferenceResolverInterface");
}

return $this->resolver->ResolveEmbeddedReferences($xmlText);
// Check if there are any references in the xml text and replace them. Please phpstorm.
$resolver = $this->referenceResolver;
/** @var EmbeddedReferenceResolverInterface $resolver */
return $resolver->resolveEmbeddedReferences($xmlText);
}
}
25 changes: 10 additions & 15 deletions Core/FieldHandler/EzXmlText.php
Expand Up @@ -5,19 +5,16 @@
use Kaliop\eZMigrationBundle\API\FieldValueImporterInterface;
use Kaliop\eZMigrationBundle\API\FieldDefinitionConverterInterface;
use Kaliop\eZMigrationBundle\API\EmbeddedReferenceResolverInterface;
use Kaliop\eZMigrationBundle\Core\ReferenceResolver\PrefixBasedResolverInterface;
use Kaliop\eZMigrationBundle\API\ReferenceResolverInterface;

/// @todo unify $this->resolver and $this->referenceResolver (are they the same already ???)
class EzXmlText extends AbstractFieldHandler implements FieldValueImporterInterface, FieldDefinitionConverterInterface
{
protected $resolver;

/**
* @param PrefixBasedResolverInterface $resolver must implement EmbeddedReferenceResolverInterface, really
*/
public function __construct(PrefixBasedResolverInterface $resolver)
public function setReferenceResolver(ReferenceResolverInterface $referenceResolver)
{
$this->resolver = $resolver;
if (! $referenceResolver instanceof EmbeddedReferenceResolverInterface) {
throw new \Exception("Reference resolver injected into EzXmlText field handler should implement EmbeddedReferenceResolverInterface");
}
parent::setReferenceResolver($referenceResolver);
}

/**
Expand All @@ -40,12 +37,10 @@ public function hashToFieldValue($fieldValue, array $context = array())
$xmlText = $fieldValue['content'];
}

// Check if there are any references in the xml text and replace them.
if (!$this->resolver instanceof EmbeddedReferenceResolverInterface) {
throw new \Exception("Reference resolver passed to HTTPExecutor should implement EmbeddedReferenceResolverInterface");
}

return $this->resolver->ResolveEmbeddedReferences($xmlText);
// Check if there are any references in the xml text and replace them. Please phpstorm.
$resolver = $this->referenceResolver;
/** @var EmbeddedReferenceResolverInterface $resolver */
return $resolver->resolveEmbeddedReferences($xmlText);
}

public function fieldSettingsToHash($settingsValue, array $context = array())
Expand Down
2 changes: 1 addition & 1 deletion Core/ReferenceResolver/ChainResolver.php
Expand Up @@ -73,7 +73,7 @@ public function getReferenceValue($stringIdentifier)

public function resolveReference($stringIdentifier)
{
if ($this->doResolveEmbeddedReferences) {
if ($this->doResolveEmbeddedReferences && is_string($stringIdentifier)) {
$stringIdentifier = $this->resolveEmbeddedReferences($stringIdentifier);
}

Expand Down

0 comments on commit 77bddec

Please sign in to comment.