You are here

protected function CreateStubs::fieldIsRequired in Acquia Content Hub 8.2

Determines if a field or field property is required for the entity.

Parameters

\Drupal\Core\Field\FieldItemListInterface $field: The field to evaluate.

Return value

bool Whether or not the field will require sample value generation.

1 call to CreateStubs::fieldIsRequired()
CreateStubs::generateRequiredSampleItems in src/EventSubscriber/ImportFailure/CreateStubs.php
Generate sample items for fields that require it.

File

src/EventSubscriber/ImportFailure/CreateStubs.php, line 303

Class

CreateStubs
Class CreateStubs.

Namespace

Drupal\acquia_contenthub\EventSubscriber\ImportFailure

Code

protected function fieldIsRequired(FieldItemListInterface $field) : bool {
  if (!$field
    ->getFieldDefinition() instanceof BaseFieldDefinition) {
    return FALSE;
  }
  if ($field
    ->getFieldDefinition()
    ->isComputed()) {
    return FALSE;
  }
  if ($field
    ->getFieldDefinition()
    ->isRequired()) {
    return TRUE;
  }

  // Check each field property for its own requirement settings.
  foreach ($field
    ->getFieldDefinition()
    ->getFieldStorageDefinition()
    ->getPropertyDefinitions() as $propertyDefinition) {
    if ($propertyDefinition
      ->isRequired()) {
      return TRUE;
    }
  }
  return FALSE;
}