protected function EntityContentBase::processStubRow in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/migrate/src/Plugin/migrate/destination/EntityContentBase.php \Drupal\migrate\Plugin\migrate\destination\EntityContentBase::processStubRow()
Do as much population of the stub row as we can.
Parameters
\Drupal\migrate\Row $row: The row of data.
3 calls to EntityContentBase::processStubRow()
- EntityComment::processStubRow in core/
modules/ comment/ src/ Plugin/ migrate/ destination/ EntityComment.php - Do as much population of the stub row as we can.
- EntityFile::processStubRow in core/
modules/ file/ src/ Plugin/ migrate/ destination/ EntityFile.php - Do as much population of the stub row as we can.
- EntityUser::processStubRow in core/
modules/ user/ src/ Plugin/ migrate/ destination/ EntityUser.php - Do as much population of the stub row as we can.
3 methods override EntityContentBase::processStubRow()
- EntityComment::processStubRow in core/
modules/ comment/ src/ Plugin/ migrate/ destination/ EntityComment.php - Do as much population of the stub row as we can.
- EntityFile::processStubRow in core/
modules/ file/ src/ Plugin/ migrate/ destination/ EntityFile.php - Do as much population of the stub row as we can.
- EntityUser::processStubRow in core/
modules/ user/ src/ Plugin/ migrate/ destination/ EntityUser.php - Do as much population of the stub row as we can.
File
- core/
modules/ migrate/ src/ Plugin/ migrate/ destination/ EntityContentBase.php, line 160 - Contains \Drupal\migrate\Plugin\migrate\destination\EntityContentBase.
Class
- EntityContentBase
- The 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->entityManager
->getFieldDefinitions($this->storage
->getEntityTypeId(), $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 {
// Otherwise, ask the field type to generate a sample value.
$field_type = $field_definition
->getType();
/** @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);
break;
}
}
$row
->setDestinationProperty($field_name, $values);
}
}
}