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. | 
