/* SPDX-License-Identifier: Apache-2.0
*
* The OpenSearch Contributors require contributions made to
* this file be licensed under the Apache-2.0 license or a
* compatible open source license.
*/
/*
* Modifications Copyright OpenSearch Contributors. See
* GitHub history for details.
*
* Licensed to Elasticsearch B.V. under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch B.V. licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
namespace OpenSearch.Client
{
public interface IQueryVisitor
{
///
/// The current depth of the node being visited
///
int Depth { get; set; }
///
/// Hints the relation with the parent, i,e queries inside a Must clause will have VisitorScope.Must set.
///
VisitorScope Scope { get; set; }
///
/// Visit the query container just before we dispatch into the query it holds
///
///
void Visit(IQueryContainer queryDescriptor);
///
/// Visit every query item just before they are visited by their specialized Visit() implementation
///
/// The IQuery object that will be visited
void Visit(IQuery query);
void Visit(IBoolQuery query);
void Visit(IBoostingQuery query);
void Visit(IConstantScoreQuery query);
void Visit(IDisMaxQuery query);
void Visit(IDistanceFeatureQuery query);
void Visit(IFunctionScoreQuery query);
void Visit(IFuzzyQuery query);
void Visit(IFuzzyNumericQuery query);
void Visit(IFuzzyDateQuery query);
void Visit(IFuzzyStringQuery query);
void Visit(IHasChildQuery query);
void Visit(IHasParentQuery query);
void Visit(IIdsQuery query);
void Visit(IIntervalsQuery query);
void Visit(IKnnQuery query);
void Visit(IMatchQuery query);
void Visit(IMatchPhraseQuery query);
void Visit(IMatchPhrasePrefixQuery query);
void Visit(IMatchAllQuery query);
void Visit(IMatchBoolPrefixQuery query);
void Visit(IMatchNoneQuery query);
void Visit(IMoreLikeThisQuery query);
void Visit(IMultiMatchQuery query);
void Visit(INestedQuery query);
void Visit(IPrefixQuery query);
void Visit(IQueryStringQuery query);
void Visit(IRankFeatureQuery query);
void Visit(IRangeQuery query);
void Visit(IRegexpQuery query);
void Visit(ISimpleQueryStringQuery query);
void Visit(ITermQuery query);
void Visit(IWildcardQuery query);
void Visit(ITermsQuery query);
void Visit(IScriptQuery query);
void Visit(IScriptScoreQuery query);
void Visit(IGeoPolygonQuery query);
void Visit(IGeoDistanceQuery query);
void Visit(IGeoBoundingBoxQuery query);
void Visit(IExistsQuery query);
void Visit(IDateRangeQuery query);
void Visit(INumericRangeQuery query);
void Visit(ILongRangeQuery query);
void Visit(ITermRangeQuery query);
void Visit(ISpanFirstQuery query);
void Visit(ISpanNearQuery query);
void Visit(ISpanNotQuery query);
void Visit(ISpanOrQuery query);
void Visit(ISpanTermQuery query);
void Visit(ISpanQuery query);
void Visit(ISpanSubQuery query);
void Visit(ISpanContainingQuery query);
void Visit(ISpanWithinQuery query);
void Visit(ISpanMultiTermQuery query);
void Visit(ISpanFieldMaskingQuery query);
void Visit(IGeoShapeQuery query);
void Visit(IShapeQuery query);
void Visit(IRawQuery query);
void Visit(IPercolateQuery query);
void Visit(IParentIdQuery query);
void Visit(ITermsSetQuery query);
}
public class QueryVisitor : IQueryVisitor
{
public int Depth { get; set; }
public VisitorScope Scope { get; set; }
public virtual void Visit(IQueryContainer query) { }
public virtual void Visit(IQuery query) { }
public virtual void Visit(IBoolQuery query) { }
public virtual void Visit(IBoostingQuery query) { }
public virtual void Visit(IConstantScoreQuery query) { }
public virtual void Visit(IDisMaxQuery query) { }
public virtual void Visit(IDistanceFeatureQuery query) { }
public virtual void Visit(ISpanContainingQuery query) { }
public virtual void Visit(ISpanWithinQuery query) { }
public virtual void Visit(IDateRangeQuery query) { }
public virtual void Visit(INumericRangeQuery query) { }
public virtual void Visit(ILongRangeQuery query) { }
public virtual void Visit(ITermRangeQuery query) { }
public virtual void Visit(IFunctionScoreQuery query) { }
public virtual void Visit(IFuzzyQuery query) { }
public virtual void Visit(IFuzzyStringQuery query) { }
public virtual void Visit(IFuzzyNumericQuery query) { }
public virtual void Visit(IFuzzyDateQuery query) { }
public virtual void Visit(IGeoShapeQuery query) { }
public virtual void Visit(IShapeQuery query) { }
public virtual void Visit(IHasChildQuery query) { }
public virtual void Visit(IHasParentQuery query) { }
public virtual void Visit(IIdsQuery query) { }
public virtual void Visit(IIntervalsQuery query) { }
public virtual void Visit(IKnnQuery query) { }
public virtual void Visit(IMatchQuery query) { }
public virtual void Visit(IMatchPhraseQuery query) { }
public virtual void Visit(IMatchPhrasePrefixQuery query) { }
public virtual void Visit(IMatchAllQuery query) { }
public virtual void Visit(IMatchBoolPrefixQuery query) { }
public virtual void Visit(IMatchNoneQuery query) { }
public virtual void Visit(IMoreLikeThisQuery query) { }
public virtual void Visit(IMultiMatchQuery query) { }
public virtual void Visit(INestedQuery query) { }
public virtual void Visit(IPrefixQuery query) { }
public virtual void Visit(IQueryStringQuery query) { }
public virtual void Visit(IRankFeatureQuery query) { }
public virtual void Visit(IRangeQuery query) { }
public virtual void Visit(IRegexpQuery query) { }
public virtual void Visit(ISimpleQueryStringQuery query) { }
public virtual void Visit(ISpanFirstQuery query) { }
public virtual void Visit(ISpanNearQuery query) { }
public virtual void Visit(ISpanNotQuery query) { }
public virtual void Visit(ISpanOrQuery query) { }
public virtual void Visit(ISpanTermQuery query) { }
public virtual void Visit(ISpanSubQuery query) { }
public virtual void Visit(ISpanMultiTermQuery query) { }
public virtual void Visit(ISpanFieldMaskingQuery query) { }
public virtual void Visit(ITermQuery query) { }
public virtual void Visit(IWildcardQuery query) { }
public virtual void Visit(ITermsQuery query) { }
public virtual void Visit(IScriptQuery query) { }
public virtual void Visit(IScriptScoreQuery query) { }
public virtual void Visit(IGeoPolygonQuery query) { }
public virtual void Visit(IGeoDistanceQuery query) { }
public virtual void Visit(ISpanQuery query) { }
public virtual void Visit(IGeoBoundingBoxQuery query) { }
public virtual void Visit(IExistsQuery query) { }
public virtual void Visit(IRawQuery query) { }
public virtual void Visit(IPercolateQuery query) { }
public virtual void Visit(IParentIdQuery query) { }
public virtual void Visit(ITermsSetQuery query) { }
public virtual void Visit(IQueryVisitor visitor) { }
}
}