/// <summary> /// The Accept method used to support the double-dispatch visitor pattern with a visitor that returns a result. /// </summary> /// <typeparam name="TResult">The result type returned by the visitor.</typeparam> /// <param name="visitor">The visitor that is visiting this query type.</param> /// <returns>The result of visiting this query type.</returns> public override TResult Accept <TResult>(IQueryTypeVisitor <TResult> visitor) { return(visitor.Visit(this)); }
/// <summary> /// The Accept method used to support the double-dispatch visitor pattern with a visitor that returns a result. /// </summary> /// <typeparam name="TResult">The result type returned by the visitor.</typeparam> /// <param name="visitor">The visitor that is visiting this query type.</param> /// <returns>The result of visiting this query type.</returns> public override TResult Accept <TResult>(IQueryTypeVisitor <TResult> visitor) { throw new TaupoInvalidOperationException("Invalid Operation for unspecified type."); }
/// <summary> /// The Accept method used to support the double-dispatch visitor pattern with a visitor that returns a result. /// </summary> /// <typeparam name="TResult">The result type returned by the visitor.</typeparam> /// <param name="visitor">The visitor that is visiting this query type.</param> /// <returns>The result of visiting this query type.</returns> public override TResult Accept <TResult>(IQueryTypeVisitor <TResult> visitor) { throw new TaupoNotSupportedException("Do not support Visitor for Stream type yet."); }
/// <summary> /// Accept on Type /// </summary> /// <typeparam name="TResult">Result Type</typeparam> /// <param name="visitor">Visitor to use</param> /// <returns>An Invalid Operation Exception</returns> public override TResult Accept <TResult>(IQueryTypeVisitor <TResult> visitor) { throw new TaupoInvalidOperationException("Void Type is not allowed"); }
/// <summary> /// The Accept method used to support the double-dispatch visitor pattern with a visitor that returns a result. /// </summary> /// <typeparam name="TResult">The result type returned by the visitor.</typeparam> /// <param name="visitor">The visitor that is visiting this query type.</param> /// <returns>The result of visiting this query type.</returns> public abstract TResult Accept <TResult>(IQueryTypeVisitor <TResult> visitor);