namespace MyCode.Project.Infrastructure
{
///
/// Represents the base class for composite specifications.
///
/// The type of the object to which the specification is applied.
public abstract class CompositeSpecification : Specification, ICompositeSpecification
{
#region Private Fields
private readonly ISpecification left;
private readonly ISpecification right;
#endregion
#region Ctor
///
/// Constructs a new instance of CompositeSpecification<T> class.
///
/// The first specification.
/// The second specification.
public CompositeSpecification(ISpecification left, ISpecification right)
{
this.left = left;
this.right = right;
}
#endregion
#region ICompositeSpecification Members
///
/// Gets the first specification.
///
public ISpecification Left
{
get { return this.left; }
}
///
/// Gets the second specification.
///
public ISpecification Right
{
get { return this.right; }
}
#endregion
}
}