1<?php 2namespace Crossjoin\Css\Format\Rule; 3 4trait TraitDeclarations 5{ 6 /** 7 * @var array Declaration array 8 */ 9 protected $declarations = []; 10 11 /** 12 * Sets the declarations. 13 * 14 * @param DeclarationAbstract[]|DeclarationAbstract $declarations 15 * @return $this 16 */ 17 public function setDeclarations($declarations) 18 { 19 $this->declarations = []; 20 if (!is_array($declarations)) { 21 $declarations = [$declarations]; 22 } 23 foreach ($declarations as $declaration) { 24 $this->addDeclaration($declaration); 25 } 26 27 return $this; 28 } 29 30 /** 31 * Adds a declaration. 32 * 33 * @param DeclarationAbstract $declaration 34 * @return $this 35 */ 36 public function addDeclaration(DeclarationAbstract $declaration) 37 { 38 // Overwrite an check for allowed instances 39 $this->declarations[] = $declaration; 40 41 return $this; 42 } 43 44 /** 45 * Gets an array of declarations. 46 * 47 * @return DeclarationAbstract[] 48 */ 49 public function getDeclarations() 50 { 51 return $this->declarations; 52 } 53}