Пример #1
0
        /// <summary>
        /// 条件を追加する
        /// </summary>
        /// <param name="aBoolean">条件</param>
        /// <remarks></remarks>
        public void And(bool aBoolean)
        {
            IExp aExp = null;

            if (aBoolean)
            {
                aExp = new EqualExp(new Literal(1), new Literal(1));
            }
            else
            {
                aExp = new NotEqualExp(new Literal(1), new Literal(1));
            }
            _criteria.Add(aExp);
        }
Пример #2
0
        internal override IExp RemoveEqualExp(EqualExp match)
        {
            if (match == null)
            {
                return(this);
            }

            if (match._lOperand.ToString() == _lOperand.ToString() &&
                match._rOperand.ToString() == _rOperand.ToString())
            {
                return(null);
            }
            else
            {
                return(this);
            }
        }
Пример #3
0
        internal void RemoveEqualExp(Tuple <string, string> match)
        {
            EqualExp matchEqExp = new EqualExp(val.of(match.Item1), new Literal(match.Item2));

            List <IExp> newCriteria = new List <IExp>();

            foreach (IExp aExp in this._criteria)
            {
                IExp replacedExp = aExp.RemoveEqualExp(matchEqExp);
                if (replacedExp != null)
                {
                    newCriteria.Add(replacedExp);
                }
            }

            _criteria = newCriteria;
        }
Пример #4
0
        internal override IExp RemoveEqualExp(EqualExp match)
        {
            IExp lExp = _lOperand.RemoveEqualExp(match);
            IExp rExp = _rOperand.RemoveEqualExp(match);

            if (lExp == null && rExp == null)
            {
                return(null);
            }
            else if (lExp == null)
            {
                return(rExp);
            }
            else if (rExp == null)
            {
                return(lExp);
            }
            else
            {
                return(new XOrExp(lExp, rExp));
            }
        }
Пример #5
0
 internal abstract IExp RemoveEqualExp(EqualExp match);
Пример #6
0
 internal override IExp RemoveEqualExp(EqualExp match)
 {
     return(this);
 }