protected function EntityContentBase::processStubRow in Drupal 10
Same name and namespace in other branches
- 8 core/modules/migrate/src/Plugin/migrate/destination/EntityContentBase.php \Drupal\migrate\Plugin\migrate\destination\EntityContentBase::processStubRow()
- 9 core/modules/migrate/src/Plugin/migrate/destination/EntityContentBase.php \Drupal\migrate\Plugin\migrate\destination\EntityContentBase::processStubRow()
Populates as much of the stub row as possible.
Parameters
\Drupal\migrate\Row $row: The row of data.
4 calls to EntityContentBase::processStubRow()
- EntityComment::processStubRow in core/modules/ comment/ src/ Plugin/ migrate/ destination/ EntityComment.php 
- Populates as much of the stub row as possible.
- EntityContentComplete::getEntity in core/modules/ migrate/ src/ Plugin/ migrate/ destination/ EntityContentComplete.php 
- Gets the entity.
- EntityFile::processStubRow in core/modules/ file/ src/ Plugin/ migrate/ destination/ EntityFile.php 
- Populates as much of the stub row as possible.
- EntityUser::processStubRow in core/modules/ user/ src/ Plugin/ migrate/ destination/ EntityUser.php 
- Populates as much of the stub row as possible.
3 methods override EntityContentBase::processStubRow()
- EntityComment::processStubRow in core/modules/ comment/ src/ Plugin/ migrate/ destination/ EntityComment.php 
- Populates as much of the stub row as possible.
- EntityFile::processStubRow in core/modules/ file/ src/ Plugin/ migrate/ destination/ EntityFile.php 
- Populates as much of the stub row as possible.
- EntityUser::processStubRow in core/modules/ user/ src/ Plugin/ migrate/ destination/ EntityUser.php 
- Populates as much of the stub row as possible.
File
- core/modules/ migrate/ src/ Plugin/ migrate/ destination/ EntityContentBase.php, line 339 
Class
- EntityContentBase
- Provides destination class for all content entities lacking a specific class.
Namespace
Drupal\migrate\Plugin\migrate\destinationCode
protected function processStubRow(Row $row) {
  $bundle_key = $this
    ->getKey('bundle');
  if ($bundle_key && empty($row
    ->getDestinationProperty($bundle_key))) {
    if (empty($this->bundles)) {
      throw new MigrateException('Stubbing failed, no bundles available for entity type: ' . $this->storage
        ->getEntityTypeId());
    }
    $row
      ->setDestinationProperty($bundle_key, reset($this->bundles));
  }
  // Populate any required fields not already populated.
  $fields = $this->entityFieldManager
    ->getFieldDefinitions($this->storage
    ->getEntityTypeId(), $row
    ->getDestinationProperty($bundle_key));
  foreach ($fields as $field_name => $field_definition) {
    if ($field_definition
      ->isRequired() && is_null($row
      ->getDestinationProperty($field_name))) {
      // Use the configured default value for this specific field, if any.
      if ($default_value = $field_definition
        ->getDefaultValueLiteral()) {
        $values = $default_value;
      }
      else {
        /** @var \Drupal\Core\Field\FieldItemInterface $field_type_class */
        $field_type_class = $this->fieldTypeManager
          ->getPluginClass($field_definition
          ->getType());
        $values = $field_type_class::generateSampleValue($field_definition);
        if (is_null($values)) {
          // Handle failure to generate a sample value.
          throw new MigrateException('Stubbing failed, unable to generate value for field ' . $field_name);
        }
      }
      $row
        ->setDestinationProperty($field_name, $values);
    }
  }
}