code: protected function valuesArePossible($values)
      {
          $matches = array();
          $widgets = &$this->getWidgets();
          for ($i = 0, $count = count($widgets); $i < $count; $i++) {
              $possible = $widgets[$i]->getAttribute('value');
              if (in_array($possible, $values)) {
                  $matches[] = $possible;
              }
          }
  
          return ($values == $matches);
      }
docs: Tests to see if a possible value set is legal.
  
  @param string/array/boolean $values Either a single string, a hash or false for nothing set.
  
  @return bool False if trying to set a missing value.