public AbstractSpecification <T> Or(AbstractSpecification <T> specification) { if (this == All || specification == All) { return(All); } return(new OrSpecification <T>(this, specification)); }
public AbstractSpecification <T> And(AbstractSpecification <T> specification) { if (this == All) { return(specification); } if (specification == All) { return(this); } return(new AndSpecification <T>(this, specification)); }
public AndSpecification(AbstractSpecification <T> _left, AbstractSpecification <T> _right) { this._left = _left; this._right = _right; }
public NotSpecification(AbstractSpecification <T> _specification) { this._specification = _specification; }