コード例 #1
0
ファイル: Operator.cs プロジェクト: tsvmks/plsqlparser
            public override DataObject Evaluate(DataObject ob1, DataObject ob2, IGroupResolver group, IVariableResolver resolver, IQueryContext context)
            {
                bool?b1 = ob1.ToBoolean();
                bool?b2 = ob2.ToBoolean();

                // If either ob1 or ob2 are null
                if (!b1.HasValue)
                {
                    return(b2.HasValue && b2.Equals(false) ? DataObject.BooleanFalse : DataObject.BooleanNull);
                }
                if (!b2.HasValue)
                {
                    return(b1.Equals(false) ? DataObject.BooleanFalse : DataObject.BooleanNull);
                }

                // If both true.
                return(DataObject.Boolean(b1.Equals(true) && b2.Equals(true)));
            }