MediaBundle.php in Media entity 8
Namespace
Drupal\media_entity\EntityFile
src/Entity/MediaBundle.phpView source
<?php
namespace Drupal\media_entity\Entity;
use Drupal\Core\Entity\EntityDescriptionInterface;
use Drupal\Core\Config\Entity\ConfigEntityBundleBase;
use Drupal\Core\Entity\EntityWithPluginCollectionInterface;
use Drupal\Core\Plugin\DefaultSingleLazyPluginCollection;
use Drupal\media_entity\MediaBundleInterface;
use Drupal\media_entity\MediaInterface;
/**
* Defines the Media bundle configuration entity.
*
* @ConfigEntityType(
* id = "media_bundle",
* label = @Translation("Media bundle"),
* handlers = {
* "form" = {
* "add" = "Drupal\media_entity\MediaBundleForm",
* "edit" = "Drupal\media_entity\MediaBundleForm",
* "delete" = "Drupal\media_entity\Form\MediaBundleDeleteConfirm"
* },
* "list_builder" = "Drupal\media_entity\MediaBundleListBuilder",
* "route_provider" = {
* "html" = "Drupal\Core\Entity\Routing\DefaultHtmlRouteProvider",
* }
* },
* admin_permission = "administer media bundles",
* config_prefix = "bundle",
* bundle_of = "media",
* entity_keys = {
* "id" = "id",
* "label" = "label"
* },
* config_export = {
* "id",
* "label",
* "description",
* "type",
* "queue_thumbnail_downloads",
* "new_revision",
* "third_party_settings",
* "type_configuration",
* "field_map",
* "status",
* },
* links = {
* "add-form" = "/admin/structure/media/add",
* "edit-form" = "/admin/structure/media/manage/{media_bundle}",
* "delete-form" = "/admin/structure/media/manage/{media_bundle}/delete",
* "collection" = "/admin/structure/media",
* }
* )
*/
class MediaBundle extends ConfigEntityBundleBase implements MediaBundleInterface, EntityWithPluginCollectionInterface, EntityDescriptionInterface {
/**
* The machine name of this media bundle.
*
* @var string
*/
public $id;
/**
* The human-readable name of the media bundle.
*
* @var string
*/
public $label;
/**
* A brief description of this media bundle.
*
* @var string
*/
public $description;
/**
* The type plugin id.
*
* @var string
*/
public $type = 'generic';
/**
* Are thumbnail downloads queued.
*
* @var bool
*/
public $queue_thumbnail_downloads = FALSE;
/**
* Default value of the 'Create new revision' checkbox of this media bundle.
*
* @var bool
*/
protected $new_revision = FALSE;
/**
* The type plugin configuration.
*
* @var array
*/
public $type_configuration = [];
/**
* Type lazy plugin collection.
*
* @var \Drupal\Core\Plugin\DefaultSingleLazyPluginCollection
*/
protected $typePluginCollection;
/**
* Field map. Fields provided by type plugin to be stored as entity fields.
*
* @var array
*/
public $field_map = [];
/**
* Default status of this media bundle.
*
* @var array
*/
public $status = TRUE;
/**
* {@inheritdoc}
*/
public function id() {
return $this->id;
}
/**
* {@inheritdoc}
*/
public function getPluginCollections() {
return [
'type_configuration' => $this
->typePluginCollection(),
];
}
/**
* {@inheritdoc}
*/
public static function getLabel(MediaInterface $media) {
$bundle = static::load($media
->bundle());
return $bundle ? $bundle
->label() : FALSE;
}
/**
* {@inheritdoc}
*/
public static function exists($id) {
return (bool) static::load($id);
}
/**
* {@inheritdoc}
*/
public function getDescription() {
return $this->description;
}
/**
* {@inheritdoc}
*/
public function setDescription($description) {
$this->description = $description;
return $this;
}
/**
* {@inheritdoc}
*/
public function getTypeConfiguration() {
return $this->type_configuration;
}
/**
* {@inheritdoc}
*/
public function setTypeConfiguration($configuration) {
$this->type_configuration = $configuration;
$this->typePluginCollection = NULL;
}
/**
* {@inheritdoc}
*/
public function getQueueThumbnailDownloads() {
return $this->queue_thumbnail_downloads;
}
/**
* {@inheritdoc}
*/
public function setQueueThumbnailDownloads($queue_thumbnail_downloads) {
$this->queue_thumbnail_downloads = $queue_thumbnail_downloads;
}
/**
* {@inheritdoc}
*/
public function getType() {
return $this
->typePluginCollection()
->get($this->type);
}
/**
* Returns type lazy plugin collection.
*
* @return \Drupal\Core\Plugin\DefaultSingleLazyPluginCollection
* The tag plugin collection.
*/
protected function typePluginCollection() {
if (!$this->typePluginCollection) {
$this->typePluginCollection = new DefaultSingleLazyPluginCollection(\Drupal::service('plugin.manager.media_entity.type'), $this->type, $this->type_configuration);
}
return $this->typePluginCollection;
}
/**
* {@inheritdoc}
*/
public function getStatus() {
return $this->status;
}
/**
* {@inheritdoc}
*/
public function shouldCreateNewRevision() {
return $this->new_revision;
}
/**
* {@inheritdoc}
*/
public function setNewRevision($new_revision) {
$this->new_revision = $new_revision;
}
}
Classes
Name | Description |
---|---|
MediaBundle | Defines the Media bundle configuration entity. |