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