114 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | ||
| 
 | ||
| namespace goodboyalex\php_components_pack\traits\ActionState;
 | ||
| 
 | ||
| use goodboyalex\php_components_pack\classes\ActionState;
 | ||
| use goodboyalex\php_components_pack\classes\ObjectArray;
 | ||
| use goodboyalex\php_components_pack\enums\MessageType;
 | ||
| use goodboyalex\php_components_pack\models\ActionStateMessage;
 | ||
| 
 | ||
| /**
 | ||
|  * Часть кода класса ActionState, отвечающая за методы добавления сообщений.
 | ||
|  *
 | ||
|  * @author Александр Бабаев
 | ||
|  * @package php_components_pack
 | ||
|  * @version 1.0
 | ||
|  * @since 1.0.13
 | ||
|  */
 | ||
| trait ActionStateAddTrait
 | ||
| {
 | ||
|     /**
 | ||
|      * Добавляет данные из другого состояния.
 | ||
|      *
 | ||
|      * @param ActionState $state Другое состояние
 | ||
|      * @param bool $clearAllBefore Очищать сообщения перед добавлением (true) или просто добавить к текущим (false)
 | ||
|      *
 | ||
|      * @return void
 | ||
|      */
 | ||
|     public function AddState (ActionState $state, bool $clearAllBefore = false): void
 | ||
|     {
 | ||
|         // Если нужно очистить список сообщений
 | ||
|         if ($clearAllBefore)
 | ||
|             // - то очищаю список сообщений
 | ||
|             $this->Clear(fn (ActionStateMessage $message) => true);
 | ||
| 
 | ||
|         // Добавляю сообщения из другого состояния
 | ||
|         $this->AddRange($state->GetMessages(ActionState::GET_STRING_ALL()));
 | ||
| 
 | ||
|         // Добавляю значение
 | ||
|         $this->Value = $state->Value;
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * Добавляет список
 | ||
|      *
 | ||
|      * @param ObjectArray|array $messages Список сообщений
 | ||
|      *
 | ||
|      * @return void
 | ||
|      */
 | ||
|     public function AddRange (ObjectArray|array $messages): void
 | ||
|     {
 | ||
|         // Добавляю сообщения
 | ||
|         $this->Messages->AddRange($messages);
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * Добавляет сообщение о критической ошибке.
 | ||
|      *
 | ||
|      * @param string $message Сообщение
 | ||
|      *
 | ||
|      * @return void
 | ||
|      */
 | ||
|     public function AddCritical (string $message): void
 | ||
|     {
 | ||
|         $this->Add(new ActionStateMessage(MessageType::Error, true, $message));
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * Добавление сообщения.
 | ||
|      *
 | ||
|      * @param ActionStateMessage $message Сообщение
 | ||
|      *
 | ||
|      * @return void
 | ||
|      */
 | ||
|     public function Add (ActionStateMessage $message): void
 | ||
|     {
 | ||
|         $this->Messages->Add($message);
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * Добавляет сообщение об ошибке.
 | ||
|      *
 | ||
|      * @param string $message Сообщение
 | ||
|      *
 | ||
|      * @return void
 | ||
|      */
 | ||
|     public function AddError (string $message): void
 | ||
|     {
 | ||
|         $this->Add(new ActionStateMessage(MessageType::Error, false, $message));
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * Добавляет предупреждение.
 | ||
|      *
 | ||
|      * @param string $message Сообщение.
 | ||
|      *
 | ||
|      * @return void
 | ||
|      */
 | ||
|     public function AddWarning (string $message): void
 | ||
|     {
 | ||
|         $this->Add(new ActionStateMessage(MessageType::Warning, false, $message));
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * Добавляет информационное сообщение.
 | ||
|      *
 | ||
|      * @param string $message Сообщение.
 | ||
|      *
 | ||
|      * @return void
 | ||
|      */
 | ||
|     public function AddInfo (string $message): void
 | ||
|     {
 | ||
|         $this->Add(new ActionStateMessage(MessageType::Info, false, $message));
 | ||
|     }
 | ||
| } |