BooleanExpressions.cs 831 B

12345678910111213141516171819202122232425262728293031323334353637
  1. //
  2. // BooleanExpressions.cs
  3. //
  4. // Author:
  5. // Juraj Skripsky ([email protected])
  6. //
  7. // (C) 2004 HotFeet GmbH (http://www.hotfeet.ch)
  8. //
  9. using System;
  10. using System.Collections;
  11. using System.Data;
  12. namespace Mono.Data.SqlExpressions {
  13. public class Negation : UnaryExpression {
  14. public Negation (IExpression e) : base (e) {}
  15. override public object Eval (DataRow row)
  16. {
  17. return !((bool)expr.Eval (row));
  18. }
  19. }
  20. public class BoolOperation : BinaryOpExpression {
  21. public BoolOperation (Operation op, IExpression e1, IExpression e2) : base (op, e1, e2) {}
  22. override public object Eval (DataRow row)
  23. {
  24. if (op == Operation.OR)
  25. return ((bool)expr1.Eval (row)) || ((bool)expr2.Eval (row));
  26. if (op == Operation.AND)
  27. return ((bool)expr1.Eval (row)) && ((bool)expr2.Eval (row));
  28. return false;
  29. }
  30. }
  31. }