• 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.component;
17 
18 import software.amazon.awssdk.codegen.jmespath.parser.JmesPathVisitor;
19 import software.amazon.awssdk.utils.Validate;
20 
21 /**
22  * The right side of a {@link SubExpression}.
23  */
24 public class SubExpressionRight {
25     private String identifier;
26     private MultiSelectList multiSelectList;
27     private MultiSelectHash multiSelectHash;
28     private FunctionExpression functionExpression;
29     private WildcardExpression wildcardExpression;
30 
identifier(String identifier)31     public static SubExpressionRight identifier(String identifier) {
32         Validate.notNull(identifier, "identifier");
33         SubExpressionRight result = new SubExpressionRight();
34         result.identifier = identifier;
35         return result;
36     }
37 
multiSelectList(MultiSelectList multiSelectList)38     public static SubExpressionRight multiSelectList(MultiSelectList multiSelectList) {
39         Validate.notNull(multiSelectList, "multiSelectList");
40         SubExpressionRight result = new SubExpressionRight();
41         result.multiSelectList = multiSelectList;
42         return result;
43     }
44 
multiSelectHash(MultiSelectHash multiSelectHash)45     public static SubExpressionRight multiSelectHash(MultiSelectHash multiSelectHash) {
46         Validate.notNull(multiSelectHash, "multiSelectHash");
47         SubExpressionRight result = new SubExpressionRight();
48         result.multiSelectHash = multiSelectHash;
49         return result;
50     }
51 
functionExpression(FunctionExpression functionExpression)52     public static SubExpressionRight functionExpression(FunctionExpression functionExpression) {
53         Validate.notNull(functionExpression, "functionExpression");
54         SubExpressionRight result = new SubExpressionRight();
55         result.functionExpression = functionExpression;
56         return result;
57     }
58 
wildcardExpression(WildcardExpression wildcardExpression)59     public static SubExpressionRight wildcardExpression(WildcardExpression wildcardExpression) {
60         Validate.notNull(wildcardExpression, "wildcardExpression");
61         SubExpressionRight result = new SubExpressionRight();
62         result.wildcardExpression = wildcardExpression;
63         return result;
64     }
65 
66 
isIdentifier()67     public boolean isIdentifier() {
68         return identifier != null;
69     }
70 
isMultiSelectList()71     public boolean isMultiSelectList() {
72         return multiSelectList != null;
73     }
74 
isMultiSelectHash()75     public boolean isMultiSelectHash() {
76         return multiSelectHash != null;
77     }
78 
isFunctionExpression()79     public boolean isFunctionExpression() {
80         return functionExpression != null;
81     }
82 
isWildcardExpression()83     public boolean isWildcardExpression() {
84         return wildcardExpression != null;
85     }
86 
asIdentifier()87     public String asIdentifier() {
88         Validate.validState(isIdentifier(), "Not an Identifier");
89         return identifier;
90     }
91 
asMultiSelectList()92     public MultiSelectList asMultiSelectList() {
93         Validate.validState(isMultiSelectList(), "Not a MultiSelectList");
94         return multiSelectList;
95     }
96 
asMultiSelectHash()97     public MultiSelectHash asMultiSelectHash() {
98         Validate.validState(isMultiSelectHash(), "Not a MultiSelectHash");
99         return multiSelectHash;
100     }
101 
asFunctionExpression()102     public FunctionExpression asFunctionExpression() {
103         Validate.validState(isFunctionExpression(), "Not a FunctionExpression");
104         return functionExpression;
105     }
106 
asWildcardExpression()107     public WildcardExpression asWildcardExpression() {
108         Validate.validState(isWildcardExpression(), "Not a WildcardExpression");
109         return wildcardExpression;
110     }
111 
visit(JmesPathVisitor visitor)112     public void visit(JmesPathVisitor visitor) {
113         if (isIdentifier()) {
114             visitor.visitIdentifier(asIdentifier());
115         } else if (isMultiSelectList()) {
116             visitor.visitMultiSelectList(asMultiSelectList());
117         } else if (isMultiSelectHash()) {
118             visitor.visitMultiSelectHash(asMultiSelectHash());
119         } else if (isFunctionExpression()) {
120             visitor.visitFunctionExpression(asFunctionExpression());
121         } else if (isWildcardExpression()) {
122             visitor.visitWildcardExpression(asWildcardExpression());
123         } else {
124             throw new IllegalStateException();
125         }
126     }
127 }
128