public function to_sql(Utils_RecordBrowser_CritsInterface $crits) { if ($crits->is_active() == false) { return array('', array()); } if ($crits instanceof Utils_RecordBrowser_CritsSingle) { return $this->build_single_crit_query($crits); } elseif ($crits instanceof Utils_RecordBrowser_Crits) { $vals = array(); $sql = array(); foreach ($crits->get_component_crits() as $c) { list($s, $v) = $this->to_sql($c); if ($s) { $vals = array_merge($vals, $v); $sql[] = "({$s})"; } } $glue = ' ' . $crits->get_join_operator() . ' '; $sql_str = implode($glue, $sql); if ($crits->get_negation() && $sql_str) { $sql_str = "NOT ({$sql_str})"; } return array($sql_str, $vals); } elseif ($crits instanceof Utils_RecordBrowser_CritsRawSQL) { $sql = $crits->get_negation() ? $crits->get_negation_sql() : $crits->get_sql(); return array($sql, $crits->get_vals()); } return array('', array()); }
protected function to_words_internal(Utils_RecordBrowser_CritsInterface $crits) { if ($crits->is_active() == false) { return self::$empty_c; } if ($crits instanceof Utils_RecordBrowser_CritsSingle) { return $this->build_single_crit_to_words($crits); } elseif ($crits instanceof Utils_RecordBrowser_Crits) { return $this->build_compound_crits_to_words($crits); } elseif ($crits instanceof Utils_RecordBrowser_CritsRawSQL) { return $this->build_raw_sql_crits_to_words($crits); } return self::$empty_c; }
public function validate(Utils_RecordBrowser_CritsInterface $crits, $record) { if (!$crits->is_active()) { return true; } $success = true; if ($crits instanceof Utils_RecordBrowser_CritsSingle) { $success = $this->validate_single($crits, $record); } elseif ($crits instanceof Utils_RecordBrowser_Crits) { $success = $this->validate_compound($crits, $record); } elseif ($crits instanceof Utils_RecordBrowser_CritsRawSQL) { $success = $this->validate_sql($crits, $record); } return $success; }