/// <summary> /// Construcs an <see cref="SpecificationQueryComponent"/> using the given <paramref name="specification"/>. /// </summary> /// <param name="specification">The <see cref="Specification"/>.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="specification"/> is null.</exception> public SpecificationQueryComponent(Specification specification) { // validate arguments if (specification == null) throw new ArgumentNullException("specification"); // set value this.specification = specification; }
/// <summary> /// Constructs a negated <see cref="Specification"/> of the given <paramref name="specification"/>. /// </summary> /// <param name="specification">The <see cref="Specification"/> which to negate.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="specification"/> is null.</exception> public Negation(Specification specification) { // validate arguments if (specification == null) throw new ArgumentNullException("specification"); // set the value this.specification = specification; }
/// <summary> /// Constructs a negated <see cref="Specification"/> of the given <paramref name="specification"/>. /// </summary> /// <param name="specification">The <see cref="Specification"/> which to negate.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="specification"/> is null.</exception> public static Specification Not(Specification specification) { // validate arguments if (specification == null) throw new ArgumentNullException("specification"); // create the specification return new Negation(specification); }
/// <summary> /// Creats a <see cref="Negation"/>. /// </summary> /// <param name="context">The <see cref="IMansionContext"/>.</param> /// <param name="specification">The <see cref="Specification"/> which to negate.</param> /// <returns>Returns the created <see cref="Specification"/>.</returns> public Specification Evaluate(IMansionContext context, Specification specification) { // validate arguments if (context == null) throw new ArgumentNullException("context"); if (specification == null) throw new ArgumentNullException("specification"); // create the specification return SpecificationFactory.Not(specification); }
/// <summary> /// Adds the given <paramref name="specification"/> to this composite specification. /// </summary> /// <param name="specification">The <see cref="Specification"/> which to add.</param> /// <returns>Returns the instance to allow chaining.</returns> /// <exception cref="ArgumentNullException">Thrown if <paramref name="specification"/> is null.</exception> public CompositeSpecification Add(Specification specification) { // validate arguments if (specification == null) throw new ArgumentNullException("specification"); // add to the list components.Add(specification); // return this to allow chaining return this; }