class BusinessRulesItemObject in Business Rules 8
Same name and namespace in other branches
- 2.x src/BusinessRulesItemObject.php \Drupal\business_rules\BusinessRulesItemObject
Class BusinessRulesItemObject.
The Business Rule Item object.
@package Drupal\business_rules
Hierarchy
- class \Drupal\business_rules\BusinessRulesItemObject
Expanded class hierarchy of BusinessRulesItemObject
21 files declare their use of BusinessRulesItemObject
- Action.php in src/
Entity/ Action.php - ActionSet.php in src/
Plugin/ BusinessRulesAction/ ActionSet.php - ActionSetController.php in src/
Controller/ ActionSetController.php - BusinessRule.php in src/
Entity/ BusinessRule.php - BusinessRuleForm.php in src/
Form/ BusinessRuleForm.php
File
- src/
BusinessRulesItemObject.php, line 15
Namespace
Drupal\business_rulesView source
class BusinessRulesItemObject {
const CONDITION = 'condition';
const ACTION = 'action';
/**
* The item id.
*
* @var string
*/
private $id;
/**
* The item type.
*
* @var string
*/
private $type;
/**
* The item weight.
*
* @var int
*/
private $weight;
/**
* BusinessRulesItemObject constructor.
*
* @param string $id
* The Business Rule Item id.
* @param string $type
* The Business Rule Item type.
* @param int $weight
* The Business Rule Item weight.
*/
public function __construct($id, $type, $weight) {
$this
->setId($id);
$this
->setType($type);
$this
->setWeight($weight);
}
/**
* Transform the items array in a array of BusinessRulesItemObject.
*
* @param array $items
* The items array.
*
* @return array
* Array of BusinessRulesItemObject.
*/
public static function itemsArrayToItemsObject(array $items) {
$obj_items = [];
if (is_array($items)) {
uasort($items, function ($a, $b) {
return $a['weight'] < $b['weight'] ? -1 : 1;
});
foreach ($items as $item) {
$itemObj = new BusinessRulesItemObject($item['id'], $item['type'], $item['weight']);
$obj_items[$item['id']] = $itemObj;
}
}
return $obj_items;
}
/**
* Load the Item object. Action or Condition.
*
* @return \Drupal\business_rules\ItemInterface|null
* The loaded item. Action or Condition.
*/
public function loadEntity() {
if ($this
->getType() == self::ACTION) {
return Action::load($this
->getId());
}
elseif ($this
->getType() == self::CONDITION) {
return Condition::load($this
->getId());
}
return NULL;
}
/**
* Get the item type.
*
* @return string
* The item type.
*/
public function getType() {
return $this->type;
}
/**
* Set the item type.
*
* @param string $type
* The item type.
*
* @throws \Exception
*/
public function setType($type) {
if (in_array($type, [
self::ACTION,
self::CONDITION,
])) {
$this->type = $type;
}
else {
throw new \Exception("The only Business Rule item type available are 'action' and 'condition'. {$type} given.");
}
}
/**
* Get the item id.
*
* @return string
* The item id.
*/
public function getId() {
return $this->id;
}
/**
* Set the item id.
*
* @param string $id
* The item id.
*/
public function setId($id) {
$this->id = $id;
}
/**
* Transform the object into array.
*
* @return array
* The business rule item array representation:
* - id
* - type
* weight.
*/
public function toArray() {
return [
$this
->getId() => [
'id' => $this
->getId(),
'type' => $this
->getType(),
'weight' => $this
->getWeight(),
],
];
}
/**
* Get the item weight.
*
* @return int
* The item weight.
*/
public function getWeight() {
return $this->weight;
}
/**
* Set the item weight.
*
* @param int $weight
* The item weight.
*
* @throws \Exception
*/
public function setWeight($weight) {
if (is_numeric($weight)) {
$this->weight = $weight;
}
else {
throw new \Exception("Only integers are permitted for weight. {$weight} given. ");
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
BusinessRulesItemObject:: |
private | property | The item id. | |
BusinessRulesItemObject:: |
private | property | The item type. | |
BusinessRulesItemObject:: |
private | property | The item weight. | |
BusinessRulesItemObject:: |
constant | |||
BusinessRulesItemObject:: |
constant | |||
BusinessRulesItemObject:: |
public | function | Get the item id. | |
BusinessRulesItemObject:: |
public | function | Get the item type. | |
BusinessRulesItemObject:: |
public | function | Get the item weight. | |
BusinessRulesItemObject:: |
public static | function | Transform the items array in a array of BusinessRulesItemObject. | |
BusinessRulesItemObject:: |
public | function | Load the Item object. Action or Condition. | |
BusinessRulesItemObject:: |
public | function | Set the item id. | |
BusinessRulesItemObject:: |
public | function | Set the item type. | |
BusinessRulesItemObject:: |
public | function | Set the item weight. | |
BusinessRulesItemObject:: |
public | function | Transform the object into array. | |
BusinessRulesItemObject:: |
public | function | BusinessRulesItemObject constructor. |