Update new xml query classes with xe 1.5

with improved query argument support and update and delete queries

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0-DB@8378 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
mosmartin 2011-05-19 13:06:56 +00:00
parent 5f9a5249ac
commit 7dbe0626b6
39 changed files with 1619 additions and 540 deletions

View file

@ -0,0 +1,20 @@
<?php
class ConditionQueryArgumentValidator extends QueryArgumentValidator {
function ConditionQueryArgumentValidator($tag){
parent::QueryArgumentValidator($tag);
}
function toString(){
if(!$this->argument_name) return '';
if(!isset($this->validator_string)){
$validator = parent::toString();
require_once(_XE_PATH_.'classes/xml/xmlquery/queryargument/validator/EscapeCheck.class.php');
$v = new EscapeCheck($this->argument_name);
$validator .= $v->toString();
$this->validator_string = $validator;
}
return $this->validator_string;
}
}
?>

View file

@ -0,0 +1,25 @@
<?php
class DefaultCheck extends Validator {
var $argument_name;
var $value;
function DefaultCheck($argument_name, $value) {
$this->argument_name = $argument_name;
$this->value = $value;
}
function toString(){
if(!isset($this->argument_name)) return '';
$value = $this->value->toString();
if($this->value->isString()) {
$value = "'".$value."'";
}
return 'if(!isset($args->'.$this->argument_name.')) $args->'.$this->argument_name.' = '.$value.';'."\n";
}
}
?>

View file

@ -0,0 +1,21 @@
<?php
// TODO This is temporary for when column types will be
// used to prepare input
class EscapeCheck {
var $argument_name;
function EscapeCheck($argument_name){
$this->argument_name = $argument_name;
}
function toString(){
return sprintf("if(is_string(\$args->%s) && !is_numeric(\$args->%s)) \$args->%s = \$dbParser->escapeString(\$args->%s);\n"
, $this->argument_name
, $this->argument_name
, $this->argument_name
, $this->argument_name);
}
}
?>

View file

@ -0,0 +1,16 @@
<?php
class FilterValidator extends Validator {
var $argument_name;
var $filter;
function FilterValidator($argument_name, $filter) {
$this->argument_name = $argument_name;
$this->filter = $filter;
}
function toString(){
return sprintf('if(isset($args->%s)) { unset($_output); $_output = $this->checkFilter("%s",$args->%s,"%s"); if(!$_output->toBool()) return $_output; } %s',$this->argument_name, $this->argument_name,$this->argument_name,$this->filter,"\n");
}
}
?>

View file

@ -0,0 +1,22 @@
<?php
class MaxLengthValidator extends Validator {
var $argument_name;
var $value;
function MaxLengthValidator($argument_name, $value) {
$this->argument_name = $argument_name;
$this->value = $value;
}
function toString(){
return 'if($args->'
.$this->argument_name
.'&&strlen($args->'.$this->argument_name.')>'.$this->value
.') return new Object(-1, sprintf($lang->filter->outofrange, $lang->'
.$this->argument_name.'?$lang->'
.$this->argument_name.':\''.$this->argument_name.'\'));'."\n";
}
}
?>

View file

@ -0,0 +1,22 @@
<?php
class MinLengthValidator extends Validator{
var $argument_name;
var $value;
function MinLengthValidator($argument_name, $value) {
$this->argument_name = $argument_name;
$this->value = $value;
}
function toString(){
return 'if($args->'
.$this->argument_name
.'&&strlen($args->'.$this->argument_name.')<'.$this->value
.') return new Object(-1, sprintf($lang->filter->outofrange, $lang->'
.$this->argument_name.'?$lang->'
.$this->argument_name.':\''.$this->argument_name.'\'));'."\n";
}
}
?>

View file

@ -0,0 +1,18 @@
<?php
class NotNullValidator extends Validator {
var $argument_name;
var $value;
function NotNullValidator($argument_name, $value) {
$this->argument_name = $argument_name;
$this->value = $value;
}
function toString(){
return 'if(!isset($args->'.$this->argument_name.')) return new Object(-1, sprintf($lang->filter->isnull, $lang->'
.$this->argument_name.'?$lang->'.$this->argument_name.':\''.$this->argument_name.'\'));'."\n";
}
}
?>

View file

@ -0,0 +1,62 @@
<?php
require_once(_XE_PATH_.'classes/xml/xmlquery/queryargument/DefaultValue.class.php');
class QueryArgumentValidator {
var $argument_name;
var $default_value;
var $notnull;
var $filter;
var $min_length;
var $max_length;
var $validator_string;
function QueryArgumentValidator($tag){
$this->argument_name = $tag->attrs->var;
if(!$this->argument_name) $this->argument_name = $tag->attrs->name;
$this->default_value = $tag->attrs->default;
$this->notnull = $tag->attrs->notnull;
$this->filter = $tag->attrs->filter;
$this->min_length = $tag->attrs->min_length;
$this->max_length = $tag->attrs->max_length;
}
function toString(){
$validator = '';
if(isset($this->default_value)){
$this->default_value = new DefaultValue($this->argument_name, $this->default_value);
//$v = new DefaultCheck($this->argument_name, $this->default_value);
//$validator .= $v->toString();
$validator .= sprintf("$%s_argument->ensureDefaultValue(%s);\n"
, $this->argument_name
, $this->default_value->toString()
);
}
if($this->notnull){
$validator .= sprintf("$%s_argument->checkNotNull();\n"
, $this->argument_name
);
}
if($this->filter){
$validator .= sprintf("$%s_argument->checkFilter(%s);\n"
, $this->argument_name
, $this->filter
);
}
if($this->min_length){
$validator .= sprintf("$%s_argument->checkMinLength(%s);\n"
, $this->argument_name
, $this->min_length
);
}
if($this->max_length){
$validator .= sprintf("$%s_argument->checkMaxLength(%s);\n"
, $this->argument_name
, $this->max_length
);
}
return $validator;
}
}
?>

View file

@ -0,0 +1,7 @@
<?php
class Validator {
}
?>