• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  *  http://aws.amazon.com/apache2.0
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */
15 
16 package software.amazon.awssdk.codegen.jmespath.parser;
17 
18 import software.amazon.awssdk.codegen.jmespath.component.AndExpression;
19 import software.amazon.awssdk.codegen.jmespath.component.BracketSpecifier;
20 import software.amazon.awssdk.codegen.jmespath.component.BracketSpecifierWithContents;
21 import software.amazon.awssdk.codegen.jmespath.component.BracketSpecifierWithQuestionMark;
22 import software.amazon.awssdk.codegen.jmespath.component.BracketSpecifierWithoutContents;
23 import software.amazon.awssdk.codegen.jmespath.component.ComparatorExpression;
24 import software.amazon.awssdk.codegen.jmespath.component.CurrentNode;
25 import software.amazon.awssdk.codegen.jmespath.component.Expression;
26 import software.amazon.awssdk.codegen.jmespath.component.ExpressionType;
27 import software.amazon.awssdk.codegen.jmespath.component.FunctionExpression;
28 import software.amazon.awssdk.codegen.jmespath.component.IndexExpression;
29 import software.amazon.awssdk.codegen.jmespath.component.Literal;
30 import software.amazon.awssdk.codegen.jmespath.component.MultiSelectHash;
31 import software.amazon.awssdk.codegen.jmespath.component.MultiSelectList;
32 import software.amazon.awssdk.codegen.jmespath.component.NotExpression;
33 import software.amazon.awssdk.codegen.jmespath.component.OrExpression;
34 import software.amazon.awssdk.codegen.jmespath.component.ParenExpression;
35 import software.amazon.awssdk.codegen.jmespath.component.PipeExpression;
36 import software.amazon.awssdk.codegen.jmespath.component.SliceExpression;
37 import software.amazon.awssdk.codegen.jmespath.component.SubExpression;
38 import software.amazon.awssdk.codegen.jmespath.component.SubExpressionRight;
39 import software.amazon.awssdk.codegen.jmespath.component.WildcardExpression;
40 
41 /**
42  * A visitor across all of the JMESPath expression types. This can be passed to any 'union' type visitors, like
43  * {@link Expression#visit(JmesPathVisitor)}.
44  */
45 public interface JmesPathVisitor {
visitExpression(Expression input)46     void visitExpression(Expression input);
47 
visitSubExpression(SubExpression input)48     void visitSubExpression(SubExpression input);
49 
visitSubExpressionRight(SubExpressionRight input)50     void visitSubExpressionRight(SubExpressionRight input);
51 
visitIndexExpression(IndexExpression input)52     void visitIndexExpression(IndexExpression input);
53 
visitBracketSpecifier(BracketSpecifier input)54     void visitBracketSpecifier(BracketSpecifier input);
55 
visitBracketSpecifierWithContents(BracketSpecifierWithContents input)56     void visitBracketSpecifierWithContents(BracketSpecifierWithContents input);
57 
visitSliceExpression(SliceExpression input)58     void visitSliceExpression(SliceExpression input);
59 
visitBracketSpecifierWithoutContents(BracketSpecifierWithoutContents input)60     void visitBracketSpecifierWithoutContents(BracketSpecifierWithoutContents input);
61 
visitBracketSpecifierWithQuestionMark(BracketSpecifierWithQuestionMark input)62     void visitBracketSpecifierWithQuestionMark(BracketSpecifierWithQuestionMark input);
63 
visitComparatorExpression(ComparatorExpression input)64     void visitComparatorExpression(ComparatorExpression input);
65 
visitOrExpression(OrExpression input)66     void visitOrExpression(OrExpression input);
67 
visitIdentifier(String input)68     void visitIdentifier(String input);
69 
visitAndExpression(AndExpression input)70     void visitAndExpression(AndExpression input);
71 
visitNotExpression(NotExpression input)72     void visitNotExpression(NotExpression input);
73 
visitParenExpression(ParenExpression input)74     void visitParenExpression(ParenExpression input);
75 
visitWildcardExpression(WildcardExpression input)76     void visitWildcardExpression(WildcardExpression input);
77 
visitMultiSelectList(MultiSelectList input)78     void visitMultiSelectList(MultiSelectList input);
79 
visitMultiSelectHash(MultiSelectHash input)80     void visitMultiSelectHash(MultiSelectHash input);
81 
visitExpressionType(ExpressionType asExpressionType)82     void visitExpressionType(ExpressionType asExpressionType);
83 
visitLiteral(Literal input)84     void visitLiteral(Literal input);
85 
visitFunctionExpression(FunctionExpression input)86     void visitFunctionExpression(FunctionExpression input);
87 
visitPipeExpression(PipeExpression input)88     void visitPipeExpression(PipeExpression input);
89 
visitRawString(String input)90     void visitRawString(String input);
91 
visitCurrentNode(CurrentNode input)92     void visitCurrentNode(CurrentNode input);
93 
visitNumber(int input)94     void visitNumber(int input);
95 }
96