Base class for specifications of Candidate.
Inheritance Hierarchy
Assembly: Epic.Prelude
Declaration Syntax
C# |
[SerializableAttribute] public abstract class SpecificationBase<TSpecification, Candidate> : VisitableBase, ISpecification<Candidate>, IEquatable<ISpecification<Candidate>>, ISpecification, IVisitable, IMapping<Candidate, bool> where TSpecification : class, Object, ISpecification<Candidate>, IEquatable<TSpecification> where Candidate : class
Generic Template Parameters
- TSpecification
- Type of the specification implemented.
- Candidate
- Type of the candidates to satisfy the specification.
Remarks
The constructor throws InvalidOperationException if the instance produced is not assignable from TSpecification.
Moreover, the type initializer throws InvalidOperationException if either Candidate is Object or TSpecification is ISpecification<(Of <(<'TCandidate>)>)>
Members
All Members | Constructors | Methods | Properties | ||
Member | Description | |
---|---|---|
SpecificationBase<(Of <(<'TSpecification, Candidate>)>)>()()()() |
Initializes a new instance of the SpecificationBase<(Of <(<'TSpecification, Candidate>)>)> class.
| |
Accept<(Of <<'(TResult>)>>)(IVisitor<(Of <<'(TResult>)>>), IVisitContext) |
Accept the specified visitor and context as a TSpecification.
(Overrides VisitableBase.Accept<(Of <<'(TResult>)>>)(IVisitor<(Of <<'(TResult>)>>), IVisitContext).) | |
And(ISpecification<(Of <<'(Candidate>)>>)) |
Create a new ISpecification<(Of <(<'TCandidate>)>)> that evaluates the other
only if the current specification is satisfied.
| |
AndAlso(ISpecification<(Of <<'(Candidate>)>>)) |
Create a new Conjunction<(Of <(<'TCandidate>)>)> that evaluates the other
only if the current specification is satisfied.
| |
BuildNegation(ISpecification<(Of <<'(Candidate>)>>)%) |
Builds a negation of the current specification, assigning negatedSpecification.
| |
Equals(ISpecification<(Of <<'(Candidate>)>>)) |
Determines whether the specified ISpecification<(Of <(<'TCandidate>)>)> is equal to the
current SpecificationBase<(Of <(<'TSpecification, Candidate>)>)>.
| |
Equals(Object) |
Determines whether the specified Object is equal to the current SpecificationBase<(Of <(<'TSpecification, Candidate>)>)>.
(Overrides Object.Equals(Object).) | |
Equals(TSpecification) |
Determines whether the specified TSpecification is equal
to the current SpecificationBase<(Of <(<'TSpecification, Candidate>)>)>.
| |
EqualsA(TSpecification) |
Determines whether the specified TSpecification is equal
to the current SpecificationBase<(Of <(<'TSpecification, Candidate>)>)>.
| |
FirstCandidateType |
Gets the first type of candidates that can satisfy the current specification.
| |
GetHashCode()()()() |
Serves as a hash function for a SpecificationBase<(Of <(<'TSpecification, Candidate>)>)> object.
(Overrides Object.GetHashCode()()()().) | |
IsSatisfiedBy(Candidate) |
Check if the Candidate satisfy the specification.
| |
IsSatisfiedByA(Candidate) |
Determines whether this specification is satisfied by a the specified candidate.
| |
Negate()()()() |
Create a new Negation<(Of <(<'TCandidate>)>)> that is satisfied if and only if the
current specification is not satisfied.
| |
OfAnotherType<(Of <<'(Other>)>>)()()()() |
Return a specifications satisfied by Other that
satisfy this specification.
| |
OfType<(Of <<'(Other>)>>)()()()() |
Create a new Variant<(Of <(<'FromCandidate, ToCandidate>)>)> that is satisfied by all the Other
that are Other and satisfy the current specification.
| |
Or(ISpecification<(Of <<'(Candidate>)>>)) |
Create a new ISpecification<(Of <(<'TCandidate>)>)> that evaluates the other
only if the current specification is not satisfied.
| |
OrElse(ISpecification<(Of <<'(Candidate>)>>)) |
Create a new Disjunction<(Of <(<'TCandidate>)>)> that evaluates the other
only if the current specification is not satisfied.
| |
SpecificationType |
Gets the type of the specification.
| |
ThrowIfNull<(Of <<'(T>)>>)(ISpecification<(Of <<'(T>)>>)) |
Throws ArgumentNullException if other is nullNothingnullptr.
|