/// <summary> /// Optimises the Graph Pattern using the given optimiser and with the given variables /// </summary> /// <param name="optimiser">Query Optimiser</param> /// <param name="vars">Variables</param> /// <remarks> /// <para> /// <strong>Important:</strong> If a Pattern has already been optimized then calling this again is a no-op. /// </para> /// <para> /// For finer grained control of what gets optimized you can use <see cref="Options.QueryOptimisation"/> to disable automatic optimisation and then manually call this method as necessary /// </para> /// <para> /// The <paramref name="vars">vars</paramref> parameter contains Variables mentioned in the parent Graph Pattern (if any) that can be used to guide optimisation of child graph patterns /// </para> /// </remarks> public void Optimise(IQueryOptimiser optimiser, IEnumerable <String> vars) { if (_isOptimised) { return; } optimiser.Optimise(this, vars); }
/// <summary> /// Optimises the Graph Pattern using the given optimiser /// </summary> /// <param name="optimiser">Query Optimiser</param> /// <remarks> /// <para> /// <strong>Important:</strong> If a Pattern has already been optimized then calling this again is a no-op. /// </para> /// <para> /// For finer grained control of what gets optimized you can use <see cref="Options.QueryOptimisation"/> to disable automatic optimisation and then manually call this method as necessary /// </para> /// </remarks> public void Optimise(IQueryOptimiser optimiser) { if (_isOptimised) { return; } optimiser.Optimise(this, Enumerable.Empty <String>()); }
/// <summary> /// Applies optimisation to a Query using the specific optimiser /// </summary> /// <param name="optimiser">Query Optimiser</param> public void Optimise(IQueryOptimiser optimiser) { if (optimiser == null) { throw new ArgumentNullException("Cannot optimise a Query using a null optimiser"); } if (this._rootGraphPattern != null) { optimiser.Optimise(this._rootGraphPattern, Enumerable.Empty <String>()); } this._optimised = true; }
/// <summary> /// Optimises the Graph Pattern using the given optimiser and with the given variables /// </summary> /// <param name="optimiser">Query Optimiser</param> /// <param name="vars">Variables</param> /// <remarks> /// The <paramref name="vars">vars</paramref> parameter contains Variables mentioned in the parent Graph Pattern (if any) that can be used to guide optimisation of child graph patterns /// </remarks> public void Optimise(IQueryOptimiser optimiser, IEnumerable<String> vars) { optimiser.Optimise(this, vars); }
/// <summary> /// Optimises the Graph Pattern using the given optimiser /// </summary> /// <param name="optimiser">Query Optimiser</param> public void Optimise(IQueryOptimiser optimiser) { optimiser.Optimise(this, Enumerable.Empty<String>()); }
/// <summary> /// Applies optimisation to a Query using the specific optimiser /// </summary> /// <param name="optimiser">Query Optimiser</param> public void Optimise(IQueryOptimiser optimiser) { if (optimiser == null) throw new ArgumentNullException("Cannot optimise a Query using a null optimiser"); if (this._rootGraphPattern != null) { optimiser.Optimise(this._rootGraphPattern, Enumerable.Empty<String>()); } this._optimised = true; }
/// <summary> /// Optimises the Graph Pattern using the given optimiser and with the given variables /// </summary> /// <param name="optimiser">Query Optimiser</param> /// <param name="vars">Variables</param> /// <remarks> /// The <paramref name="vars">vars</paramref> parameter contains Variables mentioned in the parent Graph Pattern (if any) that can be used to guide optimisation of child graph patterns /// </remarks> public void Optimise(IQueryOptimiser optimiser, IEnumerable <String> vars) { optimiser.Optimise(this, vars); }
/// <summary> /// Optimises the Graph Pattern using the given optimiser /// </summary> /// <param name="optimiser">Query Optimiser</param> public void Optimise(IQueryOptimiser optimiser) { optimiser.Optimise(this, Enumerable.Empty <String>()); }