/**
  * Load metadata.
  *
  * Loades the metadata associated with the entity.
  *
  * @return bool Return true on success and false on error.
  */
 private function _loadMetadata()
 {
     assert('$this->_entity instanceof Sspmod_Janus_Entity');
     $st = $this->execute('SELECT * 
         FROM ' . self::$prefix . 'metadata 
         WHERE `eid` = ? AND `revisionid` = ?;', array($this->_entity->getEid(), $this->_entity->getRevisionid()));
     if ($st === false) {
         SimpleSAML_Logger::error('JANUS:EntityController:_loadMetadata - Metadata could not load.');
         return false;
     }
     $this->_metadata = array();
     $rs = $st->fetchAll(PDO::FETCH_ASSOC);
     $mb = new sspmod_janus_MetadatafieldBuilder($this->_config->getArray('metadatafields.' . $this->_entity->getType()));
     $definitions = $mb->getMetadatafields();
     foreach ($rs as $row) {
         $metadata = new sspmod_janus_Metadata($this->_config->getValue('store'));
         $metadata->setEid($row['eid']);
         $metadata->setRevisionid($row['revisionid']);
         $metadata->setKey($row['key']);
         if (isset($definitions[$row['key']])) {
             $metadata->setDefinition($definitions[$row['key']]);
         }
         if (!$metadata->load()) {
             throw new SimpleSAML_Error_Exception('Metadata did not load');
         }
         $this->_metadata[] = $metadata;
     }
     return true;
 }