public function vars()
 {
     $this->assertCustomVarsSupport();
     if ($this->vars === null) {
         if ($this->hasBeenLoadedFromDb()) {
             $this->vars = CustomVariables::loadForStoredObject($this);
         } else {
             $this->vars = new CustomVariables();
         }
     }
     return $this->vars;
 }
 public static function loadForStoredObject(IcingaObject $object)
 {
     $db = $object->getDb();
     $query = $db->select()->from(array('v' => $object->getVarsTableName()), array('v.varname', 'v.varvalue', 'v.format'))->where(sprintf('v.%s = ?', $object->getVarsIdColumn()), $object->id);
     $vars = new CustomVariables();
     foreach ($db->fetchAll($query) as $row) {
         $vars->vars[$row->varname] = CustomVariable::fromDbRow($row);
     }
     $vars->refreshIndex();
     $vars->setUnmodified();
     return $vars;
 }