Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 9 |
CRAP | |
0.00% |
0 / 27 |
Action | |
0.00% |
0 / 1 |
|
0.00% |
0 / 9 |
132 | |
0.00% |
0 / 27 |
getPluginCollection | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 5 |
|||
getPluginCollections | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getPlugin | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
setPlugin | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
getPluginDefinition | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
execute | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
isConfigurable | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getType | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
sort | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 7 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\system\Entity\Action. | |
*/ | |
namespace Drupal\system\Entity; | |
use Drupal\Core\Config\Entity\ConfigEntityBase; | |
use Drupal\Core\Config\Entity\ConfigEntityInterface; | |
use Drupal\Core\Entity\EntityWithPluginCollectionInterface; | |
use Drupal\system\ActionConfigEntityInterface; | |
use Drupal\Core\Action\ActionPluginCollection; | |
use Drupal\Component\Plugin\ConfigurablePluginInterface; | |
/** | |
* Defines the configured action entity. | |
* | |
* @ConfigEntityType( | |
* id = "action", | |
* label = @Translation("Action"), | |
* admin_permission = "administer actions", | |
* entity_keys = { | |
* "id" = "id", | |
* "label" = "label" | |
* }, | |
* config_export = { | |
* "id", | |
* "label", | |
* "type", | |
* "plugin", | |
* "configuration", | |
* } | |
* ) | |
*/ | |
class Action extends ConfigEntityBase implements ActionConfigEntityInterface, EntityWithPluginCollectionInterface { | |
/** | |
* The name (plugin ID) of the action. | |
* | |
* @var string | |
*/ | |
protected $id; | |
/** | |
* The label of the action. | |
* | |
* @var string | |
*/ | |
protected $label; | |
/** | |
* The action type. | |
* | |
* @var string | |
*/ | |
protected $type; | |
/** | |
* The configuration of the action. | |
* | |
* @var array | |
*/ | |
protected $configuration = array(); | |
/** | |
* The plugin ID of the action. | |
* | |
* @var string | |
*/ | |
protected $plugin; | |
/** | |
* The plugin collection that stores action plugins. | |
* | |
* @var \Drupal\Core\Action\ActionPluginCollection | |
*/ | |
protected $pluginCollection; | |
/** | |
* Encapsulates the creation of the action's LazyPluginCollection. | |
* | |
* @return \Drupal\Component\Plugin\LazyPluginCollection | |
* The action's plugin collection. | |
*/ | |
protected function getPluginCollection() { | |
if (!$this->pluginCollection) { | |
$this->pluginCollection = new ActionPluginCollection(\Drupal::service('plugin.manager.action'), $this->plugin, $this->configuration); | |
} | |
return $this->pluginCollection; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getPluginCollections() { | |
return array('configuration' => $this->getPluginCollection()); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getPlugin() { | |
return $this->getPluginCollection()->get($this->plugin); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function setPlugin($plugin_id) { | |
$this->plugin = $plugin_id; | |
$this->getPluginCollection()->addInstanceId($plugin_id); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getPluginDefinition() { | |
return $this->getPlugin()->getPluginDefinition(); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function execute(array $entities) { | |
return $this->getPlugin()->executeMultiple($entities); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function isConfigurable() { | |
return $this->getPlugin() instanceof ConfigurablePluginInterface; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getType() { | |
return $this->type; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public static function sort(ConfigEntityInterface $a, ConfigEntityInterface $b) { | |
/** @var \Drupal\system\ActionConfigEntityInterface $a */ | |
/** @var \Drupal\system\ActionConfigEntityInterface $b */ | |
$a_type = $a->getType(); | |
$b_type = $b->getType(); | |
if ($a_type != $b_type) { | |
return strnatcasecmp($a_type, $b_type); | |
} | |
return parent::sort($a, $b); | |
} | |
} |