acquia_dam-1.0.0-rc1/src/Entity/ComputedEmbedCodesField.php
src/Entity/ComputedEmbedCodesField.php
<?php
declare(strict_types=1);
namespace Drupal\acquia_dam\Entity;
use Drupal\acquia_dam\Plugin\Field\FieldType\ComputedEmbedCodes;
use Drupal\Core\StringTranslation\TranslatableMarkup;
/**
* Provides storage and field definitions for the embed field.
*/
final class ComputedEmbedCodesField {
/**
* The field name.
*/
public const FIELD_NAME = 'acquia_dam_embed_codes';
/**
* Get the field storage definition.
*
* @param string $entity_type_id
* The entity type ID.
*
* @return \Drupal\acquia_dam\Entity\BundleFieldDefinition
* The storage definition.
*/
public static function getStorageDefinition(string $entity_type_id): BundleFieldDefinition {
return self::bundleFieldDefinition()
->setTargetEntityTypeId($entity_type_id);
}
/**
* Get the field definition.
*
* @param string $entity_type_id
* The entity type ID.
* @param string $bundle
* The entity bundle.
*
* @return \Drupal\acquia_dam\Entity\BundleFieldDefinition
* The field definition.
*/
public static function getFieldDefinition(string $entity_type_id, string $bundle): BundleFieldDefinition {
return self::bundleFieldDefinition()
->setTargetEntityTypeId($entity_type_id)
->setTargetBundle($bundle);
}
/**
* Get the bundle field definition.
*
* @return \Drupal\acquia_dam\Entity\BundleFieldDefinition
* The bundle field definition.
*/
private static function bundleFieldDefinition(): BundleFieldDefinition {
return BundleFieldDefinition::create('map')
->setProvider('acquia_dam')
->setName(self::FIELD_NAME)
->setLabel(new TranslatableMarkup('Computed embed codes'))
->setCardinality(1)
->setComputed(TRUE)
->setClass(ComputedEmbedCodes::class)
->setReadOnly(TRUE);
}
}
