/// <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>());
 }
Exemple #3
0
        /// <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;
        }
Exemple #4
0
 /// <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);
 }
Exemple #5
0
 /// <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>());
 }
Exemple #6
0
        /// <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;
        }
Exemple #7
0
 /// <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);
 }
Exemple #8
0
 /// <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>());
 }