mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 00:39:57 +09:00
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@8379 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
7dbe0626b6
commit
2a35558b4e
9 changed files with 408 additions and 0 deletions
21
classes/xml/xmlquery/tags/column/ColumnTag.class.php
Normal file
21
classes/xml/xmlquery/tags/column/ColumnTag.class.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
/**
|
||||
* @class ColumnTag
|
||||
* @author Arnia Software
|
||||
* @brief Models the <column> tag inside an XML Query file
|
||||
*
|
||||
* Since the <column> tag supports different attributes depending on
|
||||
* the type of query (select, update, insert, delete) this is only
|
||||
* the base class for the classes that will model each type <column> tag.
|
||||
*
|
||||
**/
|
||||
|
||||
class ColumnTag {
|
||||
var $name;
|
||||
var $dbParser;
|
||||
|
||||
function ColumnTag($name, $dbParser){
|
||||
$this->dbParser = $dbParser;
|
||||
$this->name = $name;
|
||||
}
|
||||
}
|
||||
43
classes/xml/xmlquery/tags/column/DeleteColumnTag.class.php
Normal file
43
classes/xml/xmlquery/tags/column/DeleteColumnTag.class.php
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
/**
|
||||
* @class DeleteColumnTag
|
||||
* @author Arnia Software
|
||||
* @brief Models the <column> tag inside an XML Query file whose action is 'delete'
|
||||
*
|
||||
**/
|
||||
|
||||
|
||||
class DeleteColumnTag extends ColumnTag {
|
||||
var $argument;
|
||||
|
||||
function DeleteColumnTag($column, $dbParser) {
|
||||
parent::ColumnTag($column->attrs->name, $dbParser);
|
||||
$this->name = $this->dbParser->parseColumnName($this->name);
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/queryargument/QueryArgument.class.php');
|
||||
$this->argument = new QueryArgument($column);
|
||||
}
|
||||
function toString(){
|
||||
$output_columns = 'array(' . PHP_EOL;
|
||||
foreach($this->argument as $argument){
|
||||
$output_columns .= $argument->getExpressionString() . PHP_EOL . ',';
|
||||
}
|
||||
$output_columns = substr($output_columns, 0, -1);
|
||||
$output_columns .= ')';
|
||||
return $output_columns;
|
||||
}
|
||||
function getExpressionString(){
|
||||
return sprintf('new DeleteExpression(\'%s\', $args->%s)'
|
||||
, $this->name
|
||||
, $this->argument->argument_name);
|
||||
}
|
||||
|
||||
function getArgument(){
|
||||
return $this->argument;
|
||||
}
|
||||
|
||||
function getValidatorString(){
|
||||
return $this->argument->getValidatorString();
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
58
classes/xml/xmlquery/tags/column/DeleteColumnsTag.class.php
Normal file
58
classes/xml/xmlquery/tags/column/DeleteColumnsTag.class.php
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
/**
|
||||
* @class DeleteColumnsTag
|
||||
* @author Arnia Software
|
||||
* @brief Models the <column> tag inside an XML Query file whose action is 'delete'
|
||||
*
|
||||
**/
|
||||
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/ColumnTag.class.php');
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/DeleteColumnTag.class.php');
|
||||
|
||||
class DeleteColumnsTag{
|
||||
var $dbParser;
|
||||
var $columns;
|
||||
|
||||
function DeleteColumnsTag($xml_columns, $dbParser) {
|
||||
$this->dbParser = $dbParser;
|
||||
|
||||
$this->columns = array();
|
||||
|
||||
if(!$xml_columns)
|
||||
return;
|
||||
|
||||
if(!is_array($xml_columns)) $xml_columns = array($xml_columns);
|
||||
|
||||
foreach($xml_columns as $column){
|
||||
$this->columns[] = new DeleteColumnTag($column, $this->dbParser);
|
||||
}
|
||||
}
|
||||
function toString(){
|
||||
$output_columns = 'array(' . PHP_EOL;
|
||||
foreach($this->columns as $column){
|
||||
$output_columns .= $column->getExpressionString() . PHP_EOL . ',';
|
||||
}
|
||||
$output_columns = substr($output_columns, 0, -1);
|
||||
$output_columns .= ')';
|
||||
return $output_columns;
|
||||
}
|
||||
|
||||
function getArguments(){
|
||||
$arguments = array();
|
||||
foreach($this->columns as $column){
|
||||
$arguments[] = $column->getArgument();
|
||||
}
|
||||
return $arguments;
|
||||
}
|
||||
|
||||
function getValidatorString(){
|
||||
$validator = '';
|
||||
foreach($this->columns as $column){
|
||||
$validator .= $column->getValidatorString();
|
||||
}
|
||||
return $validator;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
45
classes/xml/xmlquery/tags/column/InsertColumnTag.class.php
Normal file
45
classes/xml/xmlquery/tags/column/InsertColumnTag.class.php
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
/**
|
||||
* @class InsertColumnTag
|
||||
* @author Arnia Software
|
||||
* @brief Models the <column> tag inside an XML Query file whose action is 'insert'
|
||||
*
|
||||
**/
|
||||
|
||||
|
||||
class InsertColumnTag extends ColumnTag {
|
||||
var $argument;
|
||||
|
||||
function InsertColumnTag($column, $dbParser) {
|
||||
parent::ColumnTag($column->attrs->name, $dbParser);
|
||||
$this->name = $this->dbParser->parseColumnName($this->name);
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/queryargument/QueryArgument.class.php');
|
||||
$this->argument = new QueryArgument($column);
|
||||
}
|
||||
|
||||
function toString(){
|
||||
$output_columns = 'array(' . PHP_EOL;
|
||||
foreach($this->argument as $argument){
|
||||
$output_columns .= $argument->getExpressionString() . PHP_EOL . ',';
|
||||
}
|
||||
$output_columns = substr($output_columns, 0, -1);
|
||||
$output_columns .= ')';
|
||||
return $output_columns;
|
||||
}
|
||||
|
||||
function getExpressionString(){
|
||||
return sprintf('new InsertExpression(\'%s\', $%s_argument->getValue())'
|
||||
, $this->name
|
||||
, $this->argument->argument_name);
|
||||
}
|
||||
|
||||
function getArgument(){
|
||||
return $this->argument;
|
||||
}
|
||||
|
||||
function getValidatorString(){
|
||||
return $this->argument->getValidatorString();
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
58
classes/xml/xmlquery/tags/column/InsertColumnsTag.class.php
Normal file
58
classes/xml/xmlquery/tags/column/InsertColumnsTag.class.php
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
/**
|
||||
* @class InsertColumnsTag
|
||||
* @author Arnia Software
|
||||
* @brief Models the <column> tag inside an XML Query file whose action is 'insert'
|
||||
*
|
||||
**/
|
||||
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/ColumnTag.class.php');
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/InsertColumnTag.class.php');
|
||||
|
||||
class InsertColumnsTag{
|
||||
var $dbParser;
|
||||
var $columns;
|
||||
|
||||
function InsertColumnsTag($xml_columns, $dbParser) {
|
||||
$this->dbParser = $dbParser;
|
||||
|
||||
$this->columns = array();
|
||||
|
||||
if(!$xml_columns)
|
||||
return;
|
||||
|
||||
if(!is_array($xml_columns)) $xml_columns = array($xml_columns);
|
||||
|
||||
foreach($xml_columns as $column){
|
||||
$this->columns[] = new InsertColumnTag($column, $this->dbParser);
|
||||
}
|
||||
}
|
||||
function toString(){
|
||||
$output_columns = 'array(' . PHP_EOL;
|
||||
foreach($this->columns as $column){
|
||||
$output_columns .= $column->getExpressionString() . PHP_EOL . ',';
|
||||
}
|
||||
$output_columns = substr($output_columns, 0, -1);
|
||||
$output_columns .= ')';
|
||||
return $output_columns;
|
||||
}
|
||||
|
||||
function getArguments(){
|
||||
$arguments = array();
|
||||
foreach($this->columns as $column){
|
||||
$arguments[] = $column->getArgument();
|
||||
}
|
||||
return $arguments;
|
||||
}
|
||||
|
||||
function getValidatorString(){
|
||||
$validator = '';
|
||||
foreach($this->columns as $column){
|
||||
$validator .= $column->getValidatorString();
|
||||
}
|
||||
return $validator;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
31
classes/xml/xmlquery/tags/column/SelectColumnTag.class.php
Normal file
31
classes/xml/xmlquery/tags/column/SelectColumnTag.class.php
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @class SelectColumnTag
|
||||
* @author Arnia Software
|
||||
* @brief Models the <column> tag inside an XML Query file whose action is 'select'
|
||||
*
|
||||
**/
|
||||
|
||||
class SelectColumnTag extends ColumnTag{
|
||||
var $alias;
|
||||
var $click_count;
|
||||
|
||||
function SelectColumnTag($column, $dbParser){
|
||||
parent::ColumnTag($column->attrs->name, $dbParser);
|
||||
if(!$this->name) $this->name = "*";
|
||||
if($this->name != "*")
|
||||
$this->name = $this->dbParser->parseExpression($this->name);
|
||||
|
||||
$this->alias = $column->attrs->alias;
|
||||
$this->click_count = $column->attrs->click_count;
|
||||
}
|
||||
|
||||
function getExpressionString(){
|
||||
if($this->name == '*') return "new StarExpression()";
|
||||
if($this->click_count)
|
||||
return sprintf('new ClickCountExpression(%s, %s, $args->%s)', $this->name, $this->alias,$this->click_count);
|
||||
return sprintf('new SelectExpression(\'%s\'%s)', $this->name, $this->alias ? ', \''.$this->dbParser->escape($this->alias) .'\'': '');
|
||||
}
|
||||
}
|
||||
?>
|
||||
45
classes/xml/xmlquery/tags/column/SelectColumnsTag.class.php
Normal file
45
classes/xml/xmlquery/tags/column/SelectColumnsTag.class.php
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/ColumnTag.class.php');
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/SelectColumnTag.class.php');
|
||||
|
||||
class SelectColumnsTag {
|
||||
var $dbParser;
|
||||
var $columns;
|
||||
|
||||
function SelectColumnsTag($xml_columns, $dbParser){
|
||||
$this->dbParser = $dbParser;
|
||||
|
||||
$this->columns = array();
|
||||
|
||||
if(!$xml_columns) {
|
||||
$this->columns[] = new SelectColumnTag("*", $this->dbParser);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!is_array($xml_columns)) $xml_columns = array($xml_columns);
|
||||
|
||||
foreach($xml_columns as $column){
|
||||
$this->columns[] = new SelectColumnTag($column, $this->dbParser);
|
||||
}
|
||||
}
|
||||
|
||||
function toString(){
|
||||
$output_columns = 'array(' . PHP_EOL;
|
||||
foreach($this->columns as $column){
|
||||
$output_columns .= $column->getExpressionString() . PHP_EOL . ',';
|
||||
}
|
||||
$output_columns = substr($output_columns, 0, -1);
|
||||
$output_columns .= ')';
|
||||
return $output_columns;
|
||||
}
|
||||
|
||||
function getArguments(){
|
||||
return array();
|
||||
}
|
||||
|
||||
function getValidatorString(){
|
||||
return '';
|
||||
}
|
||||
}
|
||||
?>
|
||||
46
classes/xml/xmlquery/tags/column/UpdateColumnTag.class.php
Normal file
46
classes/xml/xmlquery/tags/column/UpdateColumnTag.class.php
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @class UpdateColumnTag
|
||||
* @author Arnia Software
|
||||
* @brief Models the <column> tag inside an XML Query file whose action is 'update'
|
||||
*
|
||||
**/
|
||||
|
||||
|
||||
|
||||
class UpdateColumnTag extends ColumnTag {
|
||||
var $argument;
|
||||
|
||||
function UpdateColumnTag($column, $dbParser) {
|
||||
parent::ColumnTag($column->attrs->name, $dbParser);
|
||||
$this->name = $this->dbParser->parseColumnName($this->name);
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/queryargument/QueryArgument.class.php');
|
||||
$this->argument = new QueryArgument($column);
|
||||
}
|
||||
|
||||
function toString(){
|
||||
$output_columns = 'array(' . PHP_EOL;
|
||||
foreach($this->argument as $argument){
|
||||
$output_columns .= $argument->getExpressionString() . PHP_EOL . ',';
|
||||
}
|
||||
$output_columns = substr($output_columns, 0, -1);
|
||||
$output_columns .= ')';
|
||||
return $output_columns;
|
||||
}
|
||||
function getExpressionString(){
|
||||
return sprintf('new UpdateExpression(\'%s\', $%s_argument->getValue())'
|
||||
, $this->name
|
||||
, $this->argument->argument_name);
|
||||
}
|
||||
|
||||
function getArgument(){
|
||||
return $this->argument;
|
||||
}
|
||||
|
||||
function getValidatorString(){
|
||||
return $this->argument->getValidatorString();
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
61
classes/xml/xmlquery/tags/column/UpdateColumnsTag.class.php
Normal file
61
classes/xml/xmlquery/tags/column/UpdateColumnsTag.class.php
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @class UpdateColumnsTag
|
||||
* @author Arnia Software
|
||||
* @brief Models the <column> tag inside an XML Query file whose action is 'update'
|
||||
*
|
||||
**/
|
||||
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/ColumnTag.class.php');
|
||||
require_once(_XE_PATH_.'classes/xml/xmlquery/tags/column/UpdateColumnTag.class.php');
|
||||
|
||||
class UpdateColumnsTag{
|
||||
var $dbParser;
|
||||
var $columns;
|
||||
|
||||
function UpdateColumnsTag($xml_columns, $dbParser) {
|
||||
$this->dbParser = $dbParser;
|
||||
|
||||
$this->columns = array();
|
||||
|
||||
if(!$xml_columns) {
|
||||
$this->columns[] = new UpdateColumnTag("*", $this->dbParser);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!is_array($xml_columns)) $xml_columns = array($xml_columns);
|
||||
|
||||
foreach($xml_columns as $column){
|
||||
$this->columns[] = new UpdateColumnTag($column, $this->dbParser);
|
||||
}
|
||||
}
|
||||
|
||||
function toString(){
|
||||
$output_columns = 'array(' . PHP_EOL;
|
||||
foreach($this->columns as $column){
|
||||
$output_columns .= $column->getExpressionString() . PHP_EOL . ',';
|
||||
}
|
||||
$output_columns = substr($output_columns, 0, -1);
|
||||
$output_columns .= ')';
|
||||
return $output_columns;
|
||||
}
|
||||
|
||||
function getArguments(){
|
||||
$arguments = array();
|
||||
foreach($this->columns as $column){
|
||||
$arguments[] = $column->getArgument();
|
||||
}
|
||||
return $arguments;
|
||||
}
|
||||
|
||||
function getValidatorString(){
|
||||
$validator = '';
|
||||
foreach($this->columns as $column){
|
||||
$validator .= $column->getValidatorString();
|
||||
}
|
||||
return $validator;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue