/**
  * @param mixed $object
  * @param String $params
  * @return IMetaData
  * @throws EyeException
  * @throws EyeErrorException
  */
 public function retrieveMeta($object, $params)
 {
     if (!$object instanceof EyeosApplicationDescriptor) {
         throw new EyeInvalidArgumentException('$object must be an EyeosApplicationDescriptor.');
     }
     $filepath = $object->getPath() . '/info.xml';
     $provider = new SimpleXMLMetaProvider((string) $params, array(SimpleXMLMetaProvider::PARAM_FILEPATH => $filepath));
     $meta = $provider->retrieveMeta(null);
     // no meta found (info.xml does not exist), generate default one
     if ($meta === null) {
         $meta = MetaManager::getInstance()->getNewMetaDataInstance($object);
         $meta->setAll(array('eyeos.application.name' => $object->getName(), 'eyeos.application.author' => '<Unknown>', 'eyeos.application.version' => '<Unknown>', 'eyeos.application.description' => 'This is an autogenerated default metadata content because no file named "info.xml" can be found in the application\'s directory.', 'eyeos.application.license' => '<Unknown>'));
     }
     if ($meta->get('eyeos.application.systemParameters') === null) {
         $meta->set('eyeos.application.systemParameters', array('listable' => 'true', 'owner' => 'root', 'group' => 'users', 'permissions' => '---x--x--x', 'anonymous' => 'false', 'suid' => 'false'));
     }
     return $meta;
 }
 /**
  * @param mixed $object
  * @param String $params
  * @return IMetaData
  * @throws EyeException
  * @throws EyeErrorException
  */
 public function retrieveMeta($object, $params)
 {
     if (!$object instanceof EyeUserFile) {
         throw new EyeInvalidArgumentException('$object must be an EyeUserFile.');
     }
     $urlParts = $object->getURLComponents();
     if ($urlParts['path'] == '/') {
         $filepath = $this->getUserMetaFilesPath($urlParts['principalname']) . '/' . USERS_FILES_DIR . USERS_METAFILES_EXTENSION;
     } else {
         $filepath = $this->getUserMetaFilesPath($urlParts['principalname']) . '/' . USERS_FILES_DIR . $urlParts['path'] . USERS_METAFILES_EXTENSION;
     }
     $provider = new SimpleXMLMetaProvider((string) $params, array(SimpleXMLMetaProvider::PARAM_FILEPATH => $filepath));
     $meta = null;
     try {
         $meta = $provider->retrieveMeta(null);
     } catch (EyeFileNotFoundException $e) {
     }
     if ($meta === null && $object->exists()) {
         $owner = UMManager::getInstance()->getUserByName($urlParts['principalname']);
         $primaryGroup = UMManager::getInstance()->getGroupById($owner->getPrimaryGroupId());
         $meta = MetaManager::getInstance()->getNewMetaDataInstance($object);
         $meta->setAll(array(EyeosAbstractVirtualFile::METADATA_KEY_OWNER => $owner->getName(), EyeosAbstractVirtualFile::METADATA_KEY_GROUP => $primaryGroup->getName(), EyeosAbstractVirtualFile::METADATA_KEY_PERMISSIONS => '-rw-------', EyeosAbstractVirtualFile::METADATA_KEY_CREATIONTIME => null, EyeosAbstractVirtualFile::METADATA_KEY_MODIFICATIONTIME => null));
         if ($object->isDirectory()) {
             $meta->set(EyeosAbstractVirtualFile::METADATA_KEY_PERMISSIONS, '-rwx------');
         }
     }
     if ($meta !== null) {
         SecurityManager::getInstance()->checkPermission($meta, new MetaDataPermission('read', null, $object));
     }
     return $meta;
 }
 /**
  * @param mixed $object
  * @param String $params
  * @return IMetaData
  * @throws EyeException
  * @throws EyeErrorException
  */
 public function retrieveMeta($object, $params)
 {
     if (!$object instanceof EyeosUser) {
         throw new EyeInvalidArgumentException('$object must be an EyeosUser.');
     }
     $filepath = $this->getUserSettingsPath($object);
     $provider = new SimpleXMLMetaProvider((string) $params, array(SimpleXMLMetaProvider::PARAM_FILEPATH => $filepath));
     $meta = $provider->retrieveMeta(null);
     if ($meta === null) {
         return MetaManager::getInstance()->getNewMetaDataInstance($object);
     }
     SecurityManager::getInstance()->checkPermission($meta, new MetaDataPermission('read', $meta, $object));
     return $meta;
 }
 /**
  * @param mixed $object
  * @param String $params
  * @return IMetaData
  * @throws EyeException
  * @throws EyeErrorException
  */
 public function retrieveMeta($object, $params)
 {
     if (!$object instanceof SecurityManager) {
         throw new EyeInvalidArgumentException('$object must be an SecurityManager.');
     }
     $filepath = SYSTEM_META_CONFIGURATION_PATH . 'system.xml';
     $provider = new SimpleXMLMetaProvider((string) $params, array(SimpleXMLMetaProvider::PARAM_FILEPATH => $filepath));
     $meta = $provider->retrieveMeta(null);
     return $meta;
 }