From f82dda7f447f650a48403e197263ccde73eb3b96 Mon Sep 17 00:00:00 2001 From: David Naber Date: Sun, 7 Feb 2016 16:00:27 +0100 Subject: [PATCH] Implement filters in element processors #49 --- inc/Import/Service/CommentProcessor.php | 15 +++++++++++++-- inc/Import/Service/PostProcessor.php | 15 +++++++++++++-- inc/Import/Service/TermProcessor.php | 15 +++++++++++++-- inc/Import/Service/UserProcessor.php | 15 +++++++++++++-- 4 files changed, 52 insertions(+), 8 deletions(-) diff --git a/inc/Import/Service/CommentProcessor.php b/inc/Import/Service/CommentProcessor.php index 5aba741..23c7da6 100644 --- a/inc/Import/Service/CommentProcessor.php +++ b/inc/Import/Service/CommentProcessor.php @@ -3,6 +3,7 @@ namespace W2M\Import\Service; use + W2M\Import\Filter, W2M\Import\Iterator; class CommentProcessor implements ElementProcessorInterface { @@ -17,17 +18,27 @@ class CommentProcessor implements ElementProcessorInterface { */ private $importer; + /** + * @var Filter\CommentImportFilterInterface + */ + private $filter; + /** * @param Iterator\CommentIterator $iterator * @param CommentImporterInterface $importer + * @param Filter\CommentImportFilterInterface $filter (Optional) */ public function __construct( Iterator\CommentIterator $iterator, - CommentImporterInterface $importer + CommentImporterInterface $importer, + Filter\CommentImportFilterInterface $filter = NULL ) { $this->iterator = $iterator; $this->importer = $importer; + $this->filter = $filter + ? $filter + : new Filter\CommentPassThroughFilter; } /** @@ -41,7 +52,7 @@ public function process_elements() { while ( $this->iterator->valid() ) { $import_comment = $this->iterator->current(); - if ( $import_comment ) { + if ( $import_comment && $this->filter->comment_to_import( $import_comment ) ) { $this->importer->import_comment( $import_comment ); } $this->iterator->next(); diff --git a/inc/Import/Service/PostProcessor.php b/inc/Import/Service/PostProcessor.php index c2e73e8..42362ce 100644 --- a/inc/Import/Service/PostProcessor.php +++ b/inc/Import/Service/PostProcessor.php @@ -3,6 +3,7 @@ namespace W2M\Import\Service; use + W2M\Import\Filter, W2M\Import\Iterator; class PostProcessor implements ElementProcessorInterface { @@ -17,16 +18,26 @@ class PostProcessor implements ElementProcessorInterface { */ private $importer; + /** + * @var Filter\PostImportFilterInterface + */ + private $filter; + /** * @param Iterator\PostIterator $iterator * @param PostImporterInterface $importer + * @param Filter\PostImportFilterInterface $filter (Optional) */ public function __construct( Iterator\PostIterator $iterator, - PostImporterInterface $importer + PostImporterInterface $importer, + Filter\PostImportFilterInterface $filter = NULL ) { $this->iterator = $iterator; $this->importer = $importer; + $this->filter = $filter + ? $filter + : new Filter\PostPassThroughFilter; } /** @@ -40,7 +51,7 @@ public function process_elements() { while ( $this->iterator->valid() ) { $import_post = $this->iterator->current(); - if ( $import_post ) { + if ( $import_post && $this->filter->post_to_import( $import_post ) ) { $this->importer->import_post( $import_post ); } $this->iterator->next(); diff --git a/inc/Import/Service/TermProcessor.php b/inc/Import/Service/TermProcessor.php index b7ce7c9..85ba52d 100644 --- a/inc/Import/Service/TermProcessor.php +++ b/inc/Import/Service/TermProcessor.php @@ -3,6 +3,7 @@ namespace W2M\Import\Service; use + W2M\Import\Filter, W2M\Import\Iterator; class TermProcessor implements ElementProcessorInterface { @@ -17,17 +18,27 @@ class TermProcessor implements ElementProcessorInterface { */ private $importer; + /** + * @var Filter\TermImportFilterInterface + */ + private $filter; + /** * @param Iterator\TermIterator $iterator * @param TermImporterInterface $importer + * @param Filter\TermImportFilterInterface $filter (Optional) */ public function __construct( Iterator\TermIterator $iterator, - TermImporterInterface $importer + TermImporterInterface $importer, + Filter\TermImportFilterInterface $filter = NULL ) { $this->iterator = $iterator; $this->importer = $importer; + $this->filter = $filter + ? $filter + : new Filter\TermPassThroughFilter; } /** @@ -41,7 +52,7 @@ public function process_elements() { while ( $this->iterator->valid() ) { $import_term = $this->iterator->current(); - if ( $import_term ) { + if ( $import_term && $this->filter->term_to_import( $import_term ) ) { $this->importer->import_term( $import_term ); } $this->iterator->next(); diff --git a/inc/Import/Service/UserProcessor.php b/inc/Import/Service/UserProcessor.php index 8537d76..8a8ffed 100644 --- a/inc/Import/Service/UserProcessor.php +++ b/inc/Import/Service/UserProcessor.php @@ -3,6 +3,7 @@ namespace W2M\Import\Service; use + W2M\Import\Filter, W2M\Import\Iterator; class UserProcessor implements ElementProcessorInterface { @@ -17,17 +18,27 @@ class UserProcessor implements ElementProcessorInterface { */ private $importer; + /** + * @var Filter\UserImportFilterInterface + */ + private $filter; + /** * @param Iterator\UserIterator $iterator * @param UserImporterInterface $importer + * @param Filter\UserImportFilterInterface $filter (Optional) */ public function __construct( Iterator\UserIterator $iterator, - UserImporterInterface $importer + UserImporterInterface $importer, + Filter\UserImportFilterInterface $filter = NULL ) { $this->iterator = $iterator; $this->importer = $importer; + $this->filter = $filter + ? $filter + : new Filter\UserPassThroughFilter; } /** @@ -41,7 +52,7 @@ public function process_elements() { while ( $this->iterator->valid() ) { $import_user = $this->iterator->current(); - if ( $import_user ) { + if ( $import_user && $this->filter->user_to_import( $import_user ) ) { $this->importer->import_user( $import_user ); } $this->iterator->next();