public function GetAllowedValues($aArgs = array(), $sContains = '')
 {
     //throw new Exception("GetAllowedValues on ext key has been deprecated");
     try {
         return parent::GetAllowedValues($aArgs, $sContains);
     } catch (MissingQueryArgument $e) {
         // Some required arguments could not be found, enlarge to any existing value
         $oValSetDef = new ValueSetObjects('SELECT ' . $this->GetTargetClass());
         return $oValSetDef->GetValues($aArgs, $sContains);
     }
 }
 /**
  * Search for objects to be selected
  * @param WebPage $oP The page used for the output (usually an AjaxWebPage)
  * @param string $sFilter The OQL expression used to define/limit limit the scope of possible values
  * @param DBObject $oObj The current object for the OQL context
  * @param string $sContains The text of the autocomplete to filter the results
  */
 public function AutoComplete(WebPage $oP, $sFilter, $oObj = null, $sContains)
 {
     if (is_null($sFilter)) {
         throw new Exception('Implementation: null value for allowed values definition');
     }
     $oValuesSet = new ValueSetObjects($sFilter, 'friendlyname');
     // Bypass GetName() to avoid the encoding by htmlentities
     $oValuesSet->SetModifierProperty('UserRightsGetSelectFilter', 'bSearchMode', $this->bSearchMode);
     $aValues = $oValuesSet->GetValues(array('this' => $oObj), $sContains);
     foreach ($aValues as $sKey => $sFriendlyName) {
         $oP->add(trim($sFriendlyName) . "\t" . $sKey . "\n");
     }
 }
 public function ProjectObject($oObject)
 {
     $sExpr = $this->Get('value');
     if ($sExpr == '<this>') {
         $sColumn = $this->Get('attribute');
         if (empty($sColumn)) {
             $aRes = array($oObject->GetKey());
         } else {
             $aRes = array($oObject->Get($sColumn));
         }
     } elseif ($sExpr == '<any>' || $sExpr == '') {
         $aRes = null;
     } elseif (strtolower(substr($sExpr, 0, 6)) == 'select') {
         $sColumn = $this->Get('attribute');
         // SELECT...
         $oValueSetDef = new ValueSetObjects($sExpr, $sColumn, array(), true);
         $aRes = $oValueSetDef->GetValues(array('this' => $oObject), '');
     } else {
         // Constant value(s)
         $aRes = explode(';', trim($sExpr));
     }
     return $aRes;
 }