You are here

public function AfterParseBase::afterParse in Feeds 8.3

Acts on parser result.

Parameters

\Drupal\feeds\Event\ParseEvent $event: The parse event.

File

src/EventSubscriber/AfterParseBase.php, line 31

Class

AfterParseBase
A base class for manipulating parser results.

Namespace

Drupal\feeds\EventSubscriber

Code

public function afterParse(ParseEvent $event) {
  if (!$this
    ->applies($event)) {
    return;
  }

  /** @var \Drupal\feeds\Result\ParserResultInterface $result */
  $result = $event
    ->getParserResult();
  for ($i = 0; $i < $result
    ->count(); $i++) {
    if (!$result
      ->offsetExists($i)) {
      break;
    }

    /** @var \Drupal\feeds\Feeds\Item\ItemInterface $item */
    $item = $result
      ->offsetGet($i);
    try {
      $this
        ->alterItem($item, $event);
    } catch (SkipItemException $e) {
      $result
        ->offsetUnset($i);
      $i--;
    }
  }
}