/// <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); }
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); } }
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; }
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)); } }
internal abstract IExp RemoveEqualExp(EqualExp match);
internal override IExp RemoveEqualExp(EqualExp match) { return(this); }