mirror of
				https://github.com/Icinga/icingaweb2.git
				synced 2025-10-30 19:04:10 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			232 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			232 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| // {{{ICINGA_LICENSE_HEADER}}}
 | |
| // {{{ICINGA_LICENSE_HEADER}}}
 | |
| 
 | |
| namespace Icinga\Module\Monitoring\Timeline;
 | |
| 
 | |
| use DateTime;
 | |
| use Icinga\Web\Url;
 | |
| use Icinga\Exception\ProgrammingError;
 | |
| 
 | |
| /**
 | |
|  * An event group that is part of a timeline
 | |
|  */
 | |
| class TimeEntry
 | |
| {
 | |
|     /**
 | |
|      * The name of this group
 | |
|      *
 | |
|      * @var string
 | |
|      */
 | |
|     protected $name;
 | |
| 
 | |
|     /**
 | |
|      * The amount of events that are part of this group
 | |
|      *
 | |
|      * @var int
 | |
|      */
 | |
|     protected $value;
 | |
| 
 | |
|     /**
 | |
|      * The date and time of this group
 | |
|      *
 | |
|      * @var DateTime
 | |
|      */
 | |
|     protected $dateTime;
 | |
| 
 | |
|     /**
 | |
|      * The url to this group's detail view
 | |
|      *
 | |
|      * @var Url
 | |
|      */
 | |
|     protected $detailUrl;
 | |
| 
 | |
|     /**
 | |
|      * The weight of this group
 | |
|      *
 | |
|      * @var float
 | |
|      */
 | |
|     protected $weight = 1.0;
 | |
| 
 | |
|     /**
 | |
|      * The label of this group
 | |
|      *
 | |
|      * @var string
 | |
|      */
 | |
|     protected $label;
 | |
| 
 | |
|     /**
 | |
|      * The color of this group
 | |
|      *
 | |
|      * @var string
 | |
|      */
 | |
|     protected $color;
 | |
| 
 | |
|     /**
 | |
|      * Return a new TimeEntry object with the given attributes being set
 | |
|      *
 | |
|      * @param   array       $attributes     The attributes to set
 | |
|      * @return  TimeEntry                   The resulting TimeEntry object
 | |
|      * @throws  ProgrammingError            If one of the given attributes cannot be set
 | |
|      */
 | |
|     public static function fromArray(array $attributes)
 | |
|     {
 | |
|         $entry = new TimeEntry();
 | |
| 
 | |
|         foreach ($attributes as $name => $value) {
 | |
|             $methodName = 'set' . ucfirst($name);
 | |
|             if (method_exists($entry, $methodName)) {
 | |
|                 $entry->{$methodName}($value);
 | |
|             } else {
 | |
|                 throw new ProgrammingError(
 | |
|                     'Method "%s" does not exist on object of type "%s"',
 | |
|                     $methodName,
 | |
|                     __CLASS__
 | |
|                 );
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         return $entry;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set this group's name
 | |
|      *
 | |
|      * @param   string  $name   The name to set
 | |
|      */
 | |
|     public function setName($name)
 | |
|     {
 | |
|         $this->name = $name;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Return the name of this group
 | |
|      *
 | |
|      * @return  string
 | |
|      */
 | |
|     public function getName()
 | |
|     {
 | |
|         return $this->name;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set this group's amount of events
 | |
|      *
 | |
|      * @param   int     $value  The value to set
 | |
|      */
 | |
|     public function setValue($value)
 | |
|     {
 | |
|         $this->value = intval($value);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Return the amount of events in this group
 | |
|      *
 | |
|      * @return  int
 | |
|      */
 | |
|     public function getValue()
 | |
|     {
 | |
|         return $this->value;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set this group's date and time
 | |
|      *
 | |
|      * @param   DateTime    $dateTime   The date and time to set
 | |
|      */
 | |
|     public function setDateTime(DateTime $dateTime)
 | |
|     {
 | |
|         $this->dateTime = $dateTime;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Return the date and time of this group
 | |
|      *
 | |
|      * @return  DateTime
 | |
|      */
 | |
|     public function getDateTime()
 | |
|     {
 | |
|         return $this->dateTime;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the url to this group's detail view
 | |
|      *
 | |
|      * @param   Url     $detailUrl      The url to set
 | |
|      */
 | |
|     public function setDetailUrl(Url $detailUrl)
 | |
|     {
 | |
|         $this->detailUrl = $detailUrl;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Return the url to this group's detail view
 | |
|      *
 | |
|      * @return  Url
 | |
|      */
 | |
|     public function getDetailUrl()
 | |
|     {
 | |
|         return $this->detailUrl;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set this group's weight
 | |
|      *
 | |
|      * @param   float   $weight     The weight for this group
 | |
|      */
 | |
|     public function setWeight($weight)
 | |
|     {
 | |
|         $this->weight = floatval($weight);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Return the weight of this group
 | |
|      *
 | |
|      * @return  float
 | |
|      */
 | |
|     public function getWeight()
 | |
|     {
 | |
|         return $this->weight;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set this group's label
 | |
|      *
 | |
|      * @param   string  $label   The label to set
 | |
|      */
 | |
|     public function setLabel($label)
 | |
|     {
 | |
|         $this->label = $label;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Return the label of this group
 | |
|      *
 | |
|      * @return  string
 | |
|      */
 | |
|     public function getLabel()
 | |
|     {
 | |
|         return $this->label;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set this group's color
 | |
|      *
 | |
|      * @param   string  $color  The color to set. (The css name or hex-code)
 | |
|      */
 | |
|     public function setColor($color)
 | |
|     {
 | |
|         $this->color = $color;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get the color of this group
 | |
|      *
 | |
|      * @return  string
 | |
|      */
 | |
|     public function getColor()
 | |
|     {
 | |
|         return $this->color;
 | |
|     }
 | |
| }
 |