Updated code comments for PHPDocumentor - XmlQueryParser, QueryParser, DBParser and column classes

git-svn-id: http://xe-core.googlecode.com/svn/branches/luminous@12419 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ucorina 2012-12-17 15:53:10 +00:00
parent 39c2f06aa7
commit 09ff5b94ac
11 changed files with 83 additions and 55 deletions

View file

@ -39,17 +39,18 @@ if(!defined('__XE_LOADED_XML_CLASS__')){
} }
/** /**
* New XmlQueryParser class * New XmlQueryParser class <br />
* Parses XE XML query files * Parses XE XML query files
* *
* @author Corina Udrescu (corina.udrescu@arnia.ro) * @author Corina Udrescu (corina.udrescu@arnia.ro)
* @package /classes/xml * @package classes\xml
* @version 0.1 * @version 0.1
*/ */
class XmlQueryParser extends XmlParser { class XmlQueryParser extends XmlParser {
/** /**
* Create XmlQueryParser instance for Singleton * Create XmlQueryParser instance for Singleton
*
* @return XmlQueryParser object * @return XmlQueryParser object
*/ */
function &getInstance() function &getInstance()

View file

@ -3,12 +3,12 @@
* File containing the DBParser class * File containing the DBParser class
*/ */
/** /**
* Escapes query statements: * Escapes query statements: <br />
* - column names: member.member_srl => "member"."member_srl" * - column names: member.member_srl =&gt; "member"."member_srl" <br />
* - expressions: SUM(member.member_srl) => SUM("member"."member_srl") * - expressions: SUM(member.member_srl) =&gt; SUM("member"."member_srl") <br />
* *
* @author Corina Udrescu (corina.udrescu@arnia.ro) * @author Corina Udrescu (corina.udrescu@arnia.ro)
* @package /classes/xml/xmlquery * @package classes\xml\xmlquery
* @version 0.1 * @version 0.1
*/ */
class DBParser class DBParser
@ -17,7 +17,7 @@ class DBParser
* Character for escape target value on the left * Character for escape target value on the left
* *
* For example, in CUBRID left and right escape * For example, in CUBRID left and right escape
* chars are the same, the double quote - " * chars are the same, the double quote - " <br />
* But for SQL Server, the escape is made with * But for SQL Server, the escape is made with
* [double brackets], so the left and right char differ * [double brackets], so the left and right char differ
* *
@ -30,7 +30,7 @@ class DBParser
* Character for escape target value on the right * Character for escape target value on the right
* *
* For example, in CUBRID left and right escape * For example, in CUBRID left and right escape
* chars are the same, the double quote - " * chars are the same, the double quote - " <br />
* But for SQL Server, the escape is made with * But for SQL Server, the escape is made with
* [double brackets], so the left and right char differ * [double brackets], so the left and right char differ
* *
@ -66,6 +66,7 @@ class DBParser
/** /**
* Get escape character * Get escape character
*
* @param string $leftOrRight left or right * @param string $leftOrRight left or right
* @return string * @return string
*/ */
@ -77,6 +78,7 @@ class DBParser
/** /**
* Escape the value * Escape the value
*
* @param mixed $name * @param mixed $name
* @return string * @return string
*/ */
@ -87,6 +89,7 @@ class DBParser
/** /**
* Escape the string value * Escape the string value
*
* @param string $name * @param string $name
* @return string * @return string
*/ */
@ -97,6 +100,7 @@ class DBParser
/** /**
* Escape the string value * Escape the string value
*
* @param string $value * @param string $value
* @return string * @return string
*/ */
@ -152,7 +156,7 @@ class DBParser
/** /**
* Checks to see if a given column name is unqualified * Checks to see if a given column name is unqualified
* *
* Ex: "member_srl" -> unqualified * Ex: "member_srl" -> unqualified <br />
* "member"."member_srl" -> qualified * "member"."member_srl" -> qualified
* *
* @param string $column_name * @param string $column_name
@ -167,7 +171,7 @@ class DBParser
/** /**
* Checks to see if a given column name is qualified * Checks to see if a given column name is qualified
* *
* Ex: "member_srl" -> unqualified * Ex: "member_srl" -> unqualified <br />
* "member"."member_srl" -> qualified * "member"."member_srl" -> qualified
* *
* @param string $column_name * @param string $column_name
@ -182,12 +186,17 @@ class DBParser
/** /**
* Escapes a query expression * Escapes a query expression
* *
* This can be: * An expression can be: <br />
* - a column name: "member_srl" or "xe_member"."member_srl" * <ul>
* - an expression: * <li> a column name: "member_srl" or "xe_member"."member_srl"
* - LEFT(UPPER("content")) * <li> an expression:
* - readed_count + voted_count * <ul>
* - CAST(regdate as DATE) * <li> LEFT(UPPER("content")) <br />
* <li> readed_count + voted_count <br />
* <li> CAST(regdate as DATE) </li>
* </ul>
* </li>
* </ul>
* *
* @param $column_name * @param $column_name
* @return string * @return string

View file

@ -3,17 +3,18 @@
* File containing the QueryParser class * File containing the QueryParser class
*/ */
/** /**
* Parses an XML Object and returns a string used for generating the PHP cache file * Parses an XML Object and returns a string used for generating the PHP cache file <br />
* The XML Object structure must be the one defined in the XmlParser class * The XML Object structure must be the one defined in the XmlParser class
* *
* @author Corina Udrescu (corina.udrescu@arnia.ro) * @author Corina Udrescu (corina.udrescu@arnia.ro)
* @package /classes/xml/xmlquery * @package classes\xml\xmlquery
* @version 0.1 * @version 0.1
*/ */
class QueryParser { class QueryParser {
/** /**
* Property containing the associated QueryTag object * Property containing the associated QueryTag object
*
* @var QueryTag object * @var QueryTag object
*/ */
var $queryTag; var $queryTag;
@ -34,9 +35,9 @@ class QueryParser {
} }
/** /**
* Return table information * Returns table information
* Used for finding column type info (string/numeric)
* *
* Used for finding column type info (string/numeric) <br />
* Obtains the table info from XE's XML schema files * Obtains the table info from XE's XML schema files
* *
* @param object $query_id * @param object $query_id

View file

@ -1,13 +1,12 @@
<?php <?php
/** /**
* ColumnTag class * Models the &lt;column&gt; tag inside an XML Query file <br />
* Models the <column> tag inside an XML Query file * Since the &lt;column&gt; tag supports different attributes depending on
* Since the <column> tag supports different attributes depending on
* the type of query (select, update, insert, delete) this is only * the type of query (select, update, insert, delete) this is only
* the base class for the classes that will model each type <column> tag. * the base class for the classes that will model each type <column> tag.
* *
* @author Corina Udrescu (corina.udrescu@arnia.ro) * @author Corina Udrescu (corina.udrescu@arnia.ro)
* @package /classes/xml/xmlquery/tags/column * @package classes\xml\xmlquery\tags\column
* @version 0.1 * @version 0.1
*/ */
class ColumnTag class ColumnTag

View file

@ -1,26 +1,29 @@
<?php <?php
/** /**
* InsertColumnTag * Models the &lt;column&gt; tag inside an XML Query file whose action is 'insert'
* Models the <column> tag inside an XML Query file whose action is 'insert'
* *
* @author Corina Udrescu (corina.udrescu@arnia.ro) * @author Corina Udrescu (corina.udrescu@arnia.ro)
* @package /classes/xml/xmlquery/tags/column * @package classes\xml\xmlquery\tags\column
* @version 0.1 * @version 0.1
*/ */
class InsertColumnTag extends ColumnTag class InsertColumnTag extends ColumnTag
{ {
/** /**
* Argument * Argument
*
* @var QueryArgument object * @var QueryArgument object
*/ */
var $argument; var $argument;
/** /**
* Constructor * Constructor
*
* @param object $column * @param object $column
*
* @return void * @return void
*/ */
function InsertColumnTag($column) { function InsertColumnTag($column)
{
parent::ColumnTag($column->attrs->name); parent::ColumnTag($column->attrs->name);
$dbParser = DB::getParser(); $dbParser = DB::getParser();
$this->name = $dbParser->parseColumnName($this->name); $this->name = $dbParser->parseColumnName($this->name);
@ -34,7 +37,8 @@ class InsertColumnTag extends ColumnTag
* *
* @return string * @return string
*/ */
function getExpressionString(){ function getExpressionString()
{
return sprintf('new InsertExpression(\'%s\', ${\'%s_argument\'})' return sprintf('new InsertExpression(\'%s\', ${\'%s_argument\'})'
, $this->name , $this->name
, $this->argument->argument_name); , $this->argument->argument_name);
@ -45,7 +49,8 @@ class InsertColumnTag extends ColumnTag
* *
* @return QueryArgument * @return QueryArgument
*/ */
function getArgument(){ function getArgument()
{
return $this->argument; return $this->argument;
} }

View file

@ -1,10 +1,9 @@
<?php <?php
/** /**
* InsertColumnTagWithoutArgument * Models the &lt;column&gt; tag inside an XML Query file whose action is 'insert-select'
* Models the <column> tag inside an XML Query file whose action is 'insert-select'
* *
* @author Corina Udrescu (corina.udrescu@arnia.ro) * @author Corina Udrescu (corina.udrescu@arnia.ro)
* @package /classes/xml/xmlquery/tags/column * @package classes\xml\xmlquery\tags\column
* @version 0.1 * @version 0.1
*/ */
class InsertColumnTagWithoutArgument extends ColumnTag class InsertColumnTagWithoutArgument extends ColumnTag

View file

@ -1,21 +1,23 @@
<?php <?php
/** /**
* InsertColumnsTag class * Models the &lt;columns&gt; tag inside an XML Query file whose action is 'insert'
* Models the <columns> tag inside an XML Query file whose action is 'insert'
* *
* @author Corina Udrescu (corina.udrescu@arnia.ro) * @author Corina Udrescu (corina.udrescu@arnia.ro)
* @package /classes/xml/xmlquery/tags/column * @package classes\xml\xmlquery\tags\column
* @version 0.1 * @version 0.1
*/ */
class InsertColumnsTag{ class InsertColumnsTag
{
/** /**
* Column list * Column list
*
* @var array value is InsertColumnTag object * @var array value is InsertColumnTag object
*/ */
var $columns; var $columns;
/** /**
* Constructor * Constructor
*
* @param array|string $xml_columns * @param array|string $xml_columns
* @return void * @return void
*/ */
@ -37,6 +39,7 @@ class InsertColumnsTag{
/** /**
* InsertColumnTag object to string * InsertColumnTag object to string
*
* @return string * @return string
*/ */
function toString() function toString()
@ -52,6 +55,7 @@ class InsertColumnsTag{
/** /**
* Return argument list * Return argument list
*
* @return array * @return array
*/ */
function getArguments() function getArguments()

View file

@ -1,28 +1,30 @@
<?php <?php
/** /**
* SelectColumnTag * Models the &lt;column&gt; tag inside an XML Query file whose action is 'select'
* Models the <column> tag inside an XML Query file whose action is 'select'
* *
* @author Corina Udrescu (corina.udrescu@arnia.ro) * @author Corina Udrescu (corina.udrescu@arnia.ro)
* @package /classes/xml/xmlquery/tags/column * @package classes\xml\xmlquery\tags\column
* @version 0.1 * @version 0.1
*/ */
class SelectColumnTag extends ColumnTag class SelectColumnTag extends ColumnTag
{ {
/** /**
* Column alias * Column alias
*
* @var string * @var string
*/ */
var $alias; var $alias;
/** /**
* Click count status * Click count status
*
* @var bool * @var bool
*/ */
var $click_count; var $click_count;
/** /**
* Constructor * Constructor
*
* @param string|object $column * @param string|object $column
* @return void * @return void
*/ */
@ -48,13 +50,16 @@ class SelectColumnTag extends ColumnTag
* Returns the string to be output in the cache file * Returns the string to be output in the cache file
* *
* A select column tag in an XML query can be used for: * A select column tag in an XML query can be used for:
* - a star expression: SELECT * * <ul>
* - a click count expression: SELECT + UPDATE * <li> a star expression: SELECT *
* - any other select expression (column name, function call etc). * <li> a click count expression: SELECT + UPDATE
* <li> any other select expression (column name, function call etc). </li>
* </ul>
* *
* @return string * @return string
*/ */
function getExpressionString(){ function getExpressionString()
{
if($this->name == '*') return "new StarExpression()"; if($this->name == '*') return "new StarExpression()";
if($this->click_count) if($this->click_count)
return sprintf('new ClickCountExpression(\'%s\', %s, $args->%s)', $this->name, $this->alias ? '\'' . $this->alias . '\'' : "''",$this->click_count); return sprintf('new ClickCountExpression(\'%s\', %s, $args->%s)', $this->name, $this->alias ? '\'' . $this->alias . '\'' : "''",$this->click_count);

View file

@ -1,16 +1,16 @@
<?php <?php
/** /**
* SelectColumnsTag class * Models the &lt;columns&gt; tag inside an XML Query file whose action is 'select'
* Models the <columns> tag inside an XML Query file whose action is 'select'
* *
* @author Corina Udrescu (corina.udrescu@arnia.ro) * @author Corina Udrescu (corina.udrescu@arnia.ro)
* @package /classes/xml/xmlquery/tags/column * @package classes\xml\xmlquery\tags\column
* @version 0.1 * @version 0.1
*/ */
class SelectColumnsTag class SelectColumnsTag
{ {
/** /**
* Column list * Column list
*
* @var array value is SelectColumnTag object * @var array value is SelectColumnTag object
*/ */
var $columns; var $columns;

View file

@ -1,27 +1,30 @@
<?php <?php
/** /**
* UpdateColumnTag * Models the &lt;column&gt; tag inside an XML Query file whose action is 'update'
* Models the <column> tag inside an XML Query file whose action is 'update'
* *
* @author Corina Udrescu (corina.udrescu@arnia.ro) * @author Corina Udrescu (corina.udrescu@arnia.ro)
* @package /classes/xml/xmlquery/tags/column * @package classes\xml\xmlquery\tags\column
* @version 0.1 * @version 0.1
*/ */
class UpdateColumnTag extends ColumnTag { class UpdateColumnTag extends ColumnTag
{
/** /**
* Argument * Argument
*
* @var QueryArgument object * @var QueryArgument object
*/ */
var $argument; var $argument;
/** /**
* Default value * Default value
*
* @var string * @var string
*/ */
var $default_value; var $default_value;
/** /**
* Constructor * Constructor
*
* @param object $column * @param object $column
* @return void * @return void
*/ */

View file

@ -1,21 +1,23 @@
<?php <?php
/** /**
* UpdateColumnsTag * Models the &lt;columns&gt; tag inside an XML Query file whose action is 'update'
* Models the <columns> tag inside an XML Query file whose action is 'update'
* *
* @author Corina Udrescu (corina.udrescu@arnia.ro) * @author Corina Udrescu (corina.udrescu@arnia.ro)
* @package /classes/xml/xmlquery/tags/column * @package classes\xml\xmlquery\tags\column
* @version 0.1 * @version 0.1
*/ */
class UpdateColumnsTag{ class UpdateColumnsTag
{
/** /**
* Column list * Column list
*
* @var array value is UpdateColumnTag object * @var array value is UpdateColumnTag object
*/ */
var $columns; var $columns;
/** /**
* Constructor * Constructor
*
* @param array|object $xml_columns * @param array|object $xml_columns
* @return void * @return void
*/ */