original_string: private function parse(array $data, NodePath $nodePath, $parentId = null)
      {
          $parentId = $this->validateParentId($parentId);
          $csvFile = $this->createCsvFile($this->structure->getTypeFromNodePath($nodePath), $nodePath, $parentId);
          $parentCols = array_fill_keys(array_keys($parentId), "string");
  
          foreach ($data as $row) {
              // in case of non-associative array of strings
              // prepare {"data": $value} objects for each row
              if (is_scalar($row) || is_null($row)) {
                  $row = (object) [Structure::DATA_COLUMN => $row];
              } elseif ($this->analyzer->getNestedArrayAsJson() && is_array($row)) {
                  $row = (object) [Structure::DATA_COLUMN => json_encode($row)];
              }
  
              // Add parentId to each row
              if (!empty($parentId)) {
                  $row = (object) array_replace((array) $row, $parentId);
              }
  
              $csvRow = $this->parseRow($row, $nodePath, $parentCols);
              $csvFile->writeRow($csvRow->getRow());
          }
      }
code: private function parse(array $data, NodePath $nodePath, $parentId = null)
      {
          $parentId = $this->validateParentId($parentId);
          $csvFile = $this->createCsvFile($this->structure->getTypeFromNodePath($nodePath), $nodePath, $parentId);
          $parentCols = array_fill_keys(array_keys($parentId), "string");
  
          foreach ($data as $row) {
              // in case of non-associative array of strings
              // prepare {"data": $value} objects for each row
              if (is_scalar($row) || is_null($row)) {
                  $row = (object) [Structure::DATA_COLUMN => $row];
              } elseif ($this->analyzer->getNestedArrayAsJson() && is_array($row)) {
                  $row = (object) [Structure::DATA_COLUMN => json_encode($row)];
              }
  
              // Add parentId to each row
              if (!empty($parentId)) {
                  $row = (object) array_replace((array) $row, $parentId);
              }
  
              $csvRow = $this->parseRow($row, $nodePath, $parentCols);
              $csvFile->writeRow($csvRow->getRow());
          }
      }
code_tokens: private function parse ( array $ data , NodePath $ nodePath , $ parentId = null ) { $ parentId = $ this -> validateParentId ( $ parentId ) ; $ csvFile = $ this -> createCsvFile ( $ this -> structure -> getTypeFromNodePath ( $ nodePath ) , $ nodePath , $ parentId ) ; $ parentCols = array_fill_keys ( array_keys ( $ parentId ) , "string" ) ; foreach ( $ data as $ row ) { // in case of non-associative array of strings // prepare {"data": $value} objects for each row if ( is_scalar ( $ row ) || is_null ( $ row ) ) { $ row = ( object ) [ Structure :: DATA_COLUMN => $ row ] ; } elseif ( $ this -> analyzer -> getNestedArrayAsJson ( ) && is_array ( $ row ) ) { $ row = ( object ) [ Structure :: DATA_COLUMN => json_encode ( $ row ) ] ; } // Add parentId to each row if ( ! empty ( $ parentId ) ) { $ row = ( object ) array_replace ( ( array ) $ row , $ parentId ) ; } $ csvRow = $ this -> parseRow ( $ row , $ nodePath , $ parentCols ) ; $ csvFile -> writeRow ( $ csvRow -> getRow ( ) ) ; } }
docstring: Parse data of known type
  
  @param array $data
  @param NodePath $nodePath
  @param string|array $parentId
docstring_tokens: Parse data of known type