BinaryOperation() публичный статический Метод

public static BinaryOperation ( parent $LeftOperandExpression, $Operator, parent $RightOperandExpression ) : BinaryOperationExpression
$LeftOperandExpression parent
$RightOperandExpression parent
Результат BinaryOperationExpression
 public function __construct(ColumnData $ColumnData)
 {
     $ConstraintExpressions = [];
     foreach ($ColumnData as $ColumnIdentifier => $Value) {
         $Column = $ColumnData->GetColumn($ColumnIdentifier);
         $ConstraintExpressions[] = Expression::BinaryOperation(Expression::Column($Column), Binary::Equality, Expression::PersistData($Column, Expression::Constant($Value)));
     }
     parent::__construct($ConstraintExpressions, Binary::LogicalAnd);
 }
 public function __construct(ForeignKey $ForeignKey)
 {
     $ReferencedColumnMap = $ForeignKey->GetReferencedColumnMap();
     $ConstraintExpressions = [];
     foreach ($ReferencedColumnMap as $PrimaryColumn) {
         $ForeignColumn = $ReferencedColumnMap[$PrimaryColumn];
         $ConstraintExpressions[] = Expression::BinaryOperation(Expression::Column($PrimaryColumn), Binary::Equality, Expression::Column($ForeignColumn));
     }
     parent::__construct($ConstraintExpressions, Binary::LogicalAnd);
 }
Пример #3
0
 public function MapCastExpression($CastType, CoreExpression $CastValueExpression)
 {
     switch ($CastType) {
         case O\Cast::Boolean:
             return Expression::Conditional($CastValueExpression, Expression::Constant(1), Expression::Constant(0));
         case O\Cast::Double:
             return Expression::BinaryOperation($CastValueExpression, O\Binary::Addition, Expression::Literal('0.0'));
         default:
             return Expression::Cast($CastType, $CastValueExpression);
     }
 }
Пример #4
0
 public function __construct(array $Expressions, $LogicalOperator = Binary::LogicalAnd)
 {
     $PredicateExpression = null;
     foreach ($Expressions as $Expression) {
         if ($PredicateExpression === null) {
             $PredicateExpression = $Expression;
         } else {
             $PredicateExpression = Expression::BinaryOperation($PredicateExpression, $LogicalOperator, $Expression);
         }
     }
     parent::__construct($PredicateExpression->GetLeftOperandExpression(), $PredicateExpression->GetOperator(), $PredicateExpression->GetRightOperandExpression());
 }
Пример #5
0
 protected function OptimizeBinaryOperationExpression(BinaryOperationExpression $Expression)
 {
     $LeftOperand = $Expression->GetLeftOperandExpression();
     $RightOperand = $Expression->GetRightOperandExpression();
     if ($LeftOperand instanceof ReviveColumnExpression && $this->IsExpressionConstant($RightOperand)) {
         $this->OptimizeReviveColumnCompareConstantExpression($LeftOperand, $RightOperand);
     } else {
         if ($RightOperand instanceof ReviveColumnExpression && $this->IsExpressionConstant($LeftOperand)) {
             $this->OptimizeReviveColumnCompareConstantExpression($RightOperand, $LeftOperand);
         } else {
             return $Expression;
         }
     }
     return Expression::BinaryOperation($LeftOperand, $Expression->GetOperator(), $RightOperand);
 }
Пример #6
0
 private function Subtract(CoreExpression $Expression, $Value)
 {
     return Expression::BinaryOperation($Expression, O\Binary::Subtraction, Expression::Constant($Value));
 }
Пример #7
0
 public function MapBinaryOperationExpression(CoreExpression $LeftOperandExpression, $BinaryOperator, CoreExpression $RightOperandExpression)
 {
     return Expression::BinaryOperation($LeftOperandExpression, $BinaryOperator, $RightOperandExpression);
 }