You are here

class FeedsExJmesPathLines in Feeds extensible parsers 7

Same name and namespace in other branches
  1. 7.2 src/FeedsExJmesPathLines.inc \FeedsExJmesPathLines

Parses JSON Lines documents with JMESPath.

Hierarchy

Expanded class hierarchy of FeedsExJmesPathLines

2 string references to 'FeedsExJmesPathLines'
FeedsExJmesPathLines.test in src/Tests/FeedsExJmesPathLines.test
feeds_ex_feeds_plugins in ./feeds_ex.feeds.inc
Implements hook_feeds_plugins().

File

src/FeedsExJmesPathLines.inc, line 11
Contains FeedsExJmesPathLines.

View source
class FeedsExJmesPathLines extends FeedsExJmesPath {

  /**
   * The file iterator.
   *
   * @var FeedsExLineIterator
   */
  protected $iterator;

  /**
   * {@inheritdoc}
   */
  protected function hasConfigurableContext() {
    return FALSE;
  }

  /**
   * {@inheritdoc}
   */
  protected function setUp(FeedsSource $source, FeedsFetcherResult $fetcher_result) {
    parent::setUp($source, $fetcher_result);
    $this->iterator = new FeedsExLineIterator($fetcher_result
      ->getFilePath());
    if (!$this->iterator
      ->getSize()) {
      throw new FeedsExEmptyException();
    }
    $this->iterator
      ->setLineLimit($source->importer
      ->getLimit());
    $state = $source
      ->state(FEEDS_PARSE);
    if (!$state->total) {
      $state->total = $this->iterator
        ->getSize();
    }
    $this->iterator
      ->setStartPosition((int) $state->pointer);
  }

  /**
   * {@inheritdoc}
   */
  protected function parseItems(FeedsSource $source, FeedsFetcherResult $fetcher_result, FeedsParserResult $result) {
    $expressions = $this
      ->prepareExpressions();
    $variable_map = $this
      ->prepareVariables($expressions);
    foreach ($this->iterator as $row) {
      $row = $this
        ->getEncoder()
        ->convertEncoding($row);
      try {
        $row = FeedsExJsonUtility::decodeJsonArray($row);
      } catch (RuntimeException $e) {

        // An array wasn't returned. Skip this item.
        continue;
      }
      if ($item = $this
        ->executeSources($row, $expressions, $variable_map)) {
        $result->items[] = $item;
      }
    }
  }

  /**
   * {@inheritdoc}
   */
  protected function cleanUp(FeedsSource $source, FeedsParserResult $result) {
    $source
      ->state(FEEDS_PARSE)->pointer = $this->iterator
      ->ftell();
    unset($this->iterator);
    parent::cleanUp($source, $result);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
FeedsExBase::$encoder protected property The encoder used to convert encodings.
FeedsExBase::$encoderClass protected property The class used as the text encoder. 1
FeedsExBase::$messenger protected property The object used to display messages to the user.
FeedsExBase::configDefaults public function 1
FeedsExBase::configForm public function 1
FeedsExBase::configFormTableColumn protected function Returns a form element for a specific column. 1
FeedsExBase::configFormTableHeader protected function Reuturns the list of table headers. 1
FeedsExBase::configFormValidate public function 1
FeedsExBase::debug protected function Renders our debug messages into a list.
FeedsExBase::executeSources protected function Executes the source expressions.
FeedsExBase::getEncoder public function Returns the encoder.
FeedsExBase::getFormHeader protected function Returns the configuration form table header.
FeedsExBase::getMappingSources public function
FeedsExBase::getMessenger public function Returns the messenger.
FeedsExBase::hasConfigForm public function
FeedsExBase::hasSourceConfig public function
FeedsExBase::logErrors protected function Logs errors.
FeedsExBase::parse public function
FeedsExBase::prepareExpressions protected function Prepares the expressions for parsing.
FeedsExBase::prepareRaw protected function Prepares the raw string for parsing.
FeedsExBase::prepareVariables protected function Prepares the variable map used to substitution.
FeedsExBase::printErrors protected function Prints errors to the screen.
FeedsExBase::setEncoder public function Sets the encoder.
FeedsExBase::setMessenger public function Sets the messenger to be used to display messages.
FeedsExBase::sourceDefaults public function
FeedsExBase::sourceForm public function
FeedsExBase::sourceFormValidate public function
FeedsExBase::sourceSave public function
FeedsExBase::stopErrorHandling protected function Stops internal error handling. 1
FeedsExJmesPath::$runtime protected property The JMESPath parser.
FeedsExJmesPath::createRuntime protected function Creates a runtime object.
FeedsExJmesPath::executeContext protected function Returns rows to be parsed. Overrides FeedsExBase::executeContext
FeedsExJmesPath::executeSourceExpression protected function Executes a single source expression. Overrides FeedsExBase::executeSourceExpression
FeedsExJmesPath::generateCompileDirectory protected function Generates a directory path to store auto-generated PHP files.
FeedsExJmesPath::getCompileDirectory protected function Returns the compilation directory.
FeedsExJmesPath::getErrors protected function Returns the errors after parsing. Overrides FeedsExBase::getErrors
FeedsExJmesPath::loadLibrary protected function Loads the necessary library. Overrides FeedsExBase::loadLibrary
FeedsExJmesPath::search protected function Returns data from the input array that matches a JMESPath expression.
FeedsExJmesPath::startErrorHandling protected function Starts internal error handling. Overrides FeedsExBase::startErrorHandling
FeedsExJmesPath::validateCompileDirectory protected function Validates that a compile directory exists and is valid.
FeedsExJmesPath::validateExpression protected function Validates an expression. Overrides FeedsExBase::validateExpression
FeedsExJmesPathLines::$iterator protected property The file iterator.
FeedsExJmesPathLines::cleanUp protected function Allows subclasses to cleanup after parsing. Overrides FeedsExJmesPath::cleanUp
FeedsExJmesPathLines::hasConfigurableContext protected function Returns whether or not this parser uses a context query. Overrides FeedsExBase::hasConfigurableContext
FeedsExJmesPathLines::parseItems protected function Performs the actual parsing. Overrides FeedsExBase::parseItems
FeedsExJmesPathLines::setUp protected function Allows subclasses to prepare for parsing. Overrides FeedsExBase::setUp