mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-28 13:08:45 +02:00
Moved under "trunk" to be able to track releases under "tags"
SVN:trunk[55]
This commit is contained in:
168
core/oql/oqlquery.class.inc.php
Normal file
168
core/oql/oqlquery.class.inc.php
Normal file
@@ -0,0 +1,168 @@
|
||||
<?
|
||||
|
||||
// Position a string within an OQL query
|
||||
// This is a must if we want to be able to pinpoint an error at any stage of the query interpretation
|
||||
// In particular, the normalization phase requires this
|
||||
class OqlName
|
||||
{
|
||||
protected $m_sValue;
|
||||
protected $m_iPos;
|
||||
|
||||
public function __construct($sValue, $iPos)
|
||||
{
|
||||
$this->m_iPos = $iPos;
|
||||
$this->m_sValue = $sValue;
|
||||
}
|
||||
|
||||
public function GetValue()
|
||||
{
|
||||
return $this->m_sValue;
|
||||
}
|
||||
|
||||
public function GetPos()
|
||||
{
|
||||
return $this->m_iPos;
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return $this->m_sValue;
|
||||
}
|
||||
}
|
||||
|
||||
class OqlJoinSpec
|
||||
{
|
||||
protected $m_oClass;
|
||||
protected $m_oClassAlias;
|
||||
protected $m_oLeftField;
|
||||
protected $m_oRightField;
|
||||
|
||||
protected $m_oNextJoinspec;
|
||||
|
||||
public function __construct($oClass, $oClassAlias, BinaryExpression $oExpression)
|
||||
{
|
||||
$this->m_oClass = $oClass;
|
||||
$this->m_oClassAlias = $oClassAlias;
|
||||
$this->m_oLeftField = $oExpression->GetLeftExpr();
|
||||
$this->m_oRightField = $oExpression->GetRightExpr();
|
||||
}
|
||||
|
||||
public function GetClass()
|
||||
{
|
||||
return $this->m_oClass->GetValue();
|
||||
}
|
||||
public function GetClassAlias()
|
||||
{
|
||||
return $this->m_oClassAlias->GetValue();
|
||||
}
|
||||
|
||||
public function GetClassDetails()
|
||||
{
|
||||
return $this->m_oClass;
|
||||
}
|
||||
public function GetClassAliasDetails()
|
||||
{
|
||||
return $this->m_oClassAlias;
|
||||
}
|
||||
|
||||
public function GetLeftField()
|
||||
{
|
||||
return $this->m_oLeftField;
|
||||
}
|
||||
public function GetRightField()
|
||||
{
|
||||
return $this->m_oRightField;
|
||||
}
|
||||
}
|
||||
|
||||
class BinaryOqlExpression extends BinaryExpression
|
||||
{
|
||||
}
|
||||
|
||||
class ScalarOqlExpression extends ScalarExpression
|
||||
{
|
||||
}
|
||||
|
||||
class FieldOqlExpression extends FieldExpression
|
||||
{
|
||||
protected $m_oParent;
|
||||
protected $m_oName;
|
||||
|
||||
public function __construct($oName, $oParent = null)
|
||||
{
|
||||
if (is_null($oParent))
|
||||
{
|
||||
$oParent = new OqlName('', 0);
|
||||
}
|
||||
$this->m_oParent = $oParent;
|
||||
$this->m_oName = $oName;
|
||||
|
||||
parent::__construct($oName->GetValue(), $oParent->GetValue());
|
||||
}
|
||||
|
||||
public function GetParentDetails()
|
||||
{
|
||||
return $this->m_oParent;
|
||||
}
|
||||
|
||||
public function GetNameDetails()
|
||||
{
|
||||
return $this->m_oName;
|
||||
}
|
||||
}
|
||||
|
||||
class ListOqlExpression extends ListExpression
|
||||
{
|
||||
}
|
||||
|
||||
class FunctionOqlExpression extends FunctionExpression
|
||||
{
|
||||
}
|
||||
|
||||
class IntervalOqlExpression extends IntervalExpression
|
||||
{
|
||||
}
|
||||
class OqlQuery
|
||||
{
|
||||
protected $m_oClass;
|
||||
protected $m_oClassAlias;
|
||||
protected $m_aJoins; // array of OqlJoinSpec
|
||||
protected $m_oCondition; // condition tree (expressions)
|
||||
|
||||
public function __construct($oClass, $oClassAlias = '', $oCondition = null, $aJoins = null)
|
||||
{
|
||||
$this->m_oClass = $oClass;
|
||||
$this->m_oClassAlias = $oClassAlias;
|
||||
$this->m_aJoins = $aJoins;
|
||||
$this->m_oCondition = $oCondition;
|
||||
}
|
||||
|
||||
public function GetClass()
|
||||
{
|
||||
return $this->m_oClass->GetValue();
|
||||
}
|
||||
public function GetClassAlias()
|
||||
{
|
||||
return $this->m_oClassAlias->GetValue();
|
||||
}
|
||||
|
||||
public function GetClassDetails()
|
||||
{
|
||||
return $this->m_oClass;
|
||||
}
|
||||
public function GetClassAliasDetails()
|
||||
{
|
||||
return $this->m_oClassAlias;
|
||||
}
|
||||
|
||||
public function GetJoins()
|
||||
{
|
||||
return $this->m_aJoins;
|
||||
}
|
||||
public function GetCondition()
|
||||
{
|
||||
return $this->m_oCondition;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user