/**
  * get a new single filter action
  *
  * @param string|array $_fieldOrData
  * @param string $_operator
  * @param mixed  $_value    
  * @param array  $_options
  */
 public function __construct($_fieldOrData, $_operator = NULL, $_value = NULL, array $_options = array())
 {
     // no legacy handling
     if (!is_array($_fieldOrData)) {
         throw new Tinebase_Exception_InvalidArgument('$_fieldOrDatamust be an array!');
     }
     $be = new Tinebase_CustomField_Config();
     $this->_cfRecord = $be->get($_fieldOrData['value']['cfId']);
     $type = $this->_cfRecord->definition['type'];
     if ($type == 'date' || $type == 'datetime') {
         $this->_subFilter = new Tinebase_Model_CustomField_ValueFilter(array());
         $this->_subFilter->addFilter(new Tinebase_Model_Filter_Text(array('field' => 'customfield_id', 'operator' => 'equals', 'value' => $_fieldOrData['value']['cfId'])));
         $valueFilter = new Tinebase_Model_Filter_Date(array('field' => 'value', 'operator' => $_fieldOrData['operator'], 'value' => $_fieldOrData['value']['value']));
         $this->_subFilter->addFilter($valueFilter);
     } elseif ($type == 'integer') {
         $valueFilter = new Tinebase_Model_Filter_Int($_fieldOrData, $_operator, $_value, $_options);
     } else {
         $valueFilter = new Tinebase_Model_Filter_Text($_fieldOrData, $_operator, $_value, $_options);
     }
     $this->_valueFilter = $valueFilter;
     $this->_operators = $valueFilter->getOperators();
     $this->_opSqlMap = $valueFilter->getOpSqlMap();
     parent::__construct($_fieldOrData, $_operator, $_value, $_options);
 }