All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.codegen.jmespath.component.BracketSpecifier Maven / Gradle / Ivy

/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file 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.
 */

package software.amazon.awssdk.codegen.jmespath.component;

import software.amazon.awssdk.codegen.jmespath.parser.JmesPathVisitor;
import software.amazon.awssdk.utils.Validate;

/**
 * A bracket specifier within an {@link IndexExpression}. Either:
 * 
    *
  • With content, as in [1], [*] or [1:2:3]: {@link BracketSpecifierWithContents}
  • *
  • Without content, as in []: {@link BracketSpecifierWithContents}
  • *
  • With question-mark content, as in [?foo]: {@link BracketSpecifierWithQuestionMark}
  • *
*/ public class BracketSpecifier { private BracketSpecifierWithContents bracketSpecifierWithContents; private BracketSpecifierWithoutContents bracketSpecifierWithoutContents; private BracketSpecifierWithQuestionMark bracketSpecifierWithQuestionMark; public static BracketSpecifier withContents(BracketSpecifierWithContents bracketSpecifierWithContents) { Validate.notNull(bracketSpecifierWithContents, "bracketSpecifierWithContents"); BracketSpecifier result = new BracketSpecifier(); result.bracketSpecifierWithContents = bracketSpecifierWithContents; return result; } public static BracketSpecifier withNumberContents(int numberContents) { return withContents(BracketSpecifierWithContents.number(numberContents)); } public static BracketSpecifier withSliceExpressionContents(SliceExpression sliceExpression) { return withContents(BracketSpecifierWithContents.sliceExpression(sliceExpression)); } public static BracketSpecifier withWildcardExpressionContents(WildcardExpression wildcardExpression) { return withContents(BracketSpecifierWithContents.wildcardExpression(wildcardExpression)); } public static BracketSpecifier withoutContents() { BracketSpecifier result = new BracketSpecifier(); result.bracketSpecifierWithoutContents = new BracketSpecifierWithoutContents(); return result; } public static BracketSpecifier withQuestionMark(BracketSpecifierWithQuestionMark bracketSpecifierWithQuestionMark) { Validate.notNull(bracketSpecifierWithQuestionMark, "bracketSpecifierWithQuestionMark"); BracketSpecifier result = new BracketSpecifier(); result.bracketSpecifierWithQuestionMark = bracketSpecifierWithQuestionMark; return result; } public boolean isBracketSpecifierWithContents() { return bracketSpecifierWithContents != null; } public boolean isBracketSpecifierWithoutContents() { return bracketSpecifierWithoutContents != null; } public boolean isBracketSpecifierWithQuestionMark() { return bracketSpecifierWithQuestionMark != null; } public BracketSpecifierWithContents asBracketSpecifierWithContents() { Validate.validState(isBracketSpecifierWithContents(), "Not a BracketSpecifierWithContents"); return bracketSpecifierWithContents; } public BracketSpecifierWithoutContents asBracketSpecifierWithoutContents() { Validate.validState(isBracketSpecifierWithoutContents(), "Not a BracketSpecifierWithoutContents"); return bracketSpecifierWithoutContents; } public BracketSpecifierWithQuestionMark asBracketSpecifierWithQuestionMark() { Validate.validState(isBracketSpecifierWithQuestionMark(), "Not a BracketSpecifierWithQuestionMark"); return bracketSpecifierWithQuestionMark; } public void visit(JmesPathVisitor visitor) { if (isBracketSpecifierWithContents()) { visitor.visitBracketSpecifierWithContents(asBracketSpecifierWithContents()); } else if (isBracketSpecifierWithoutContents()) { visitor.visitBracketSpecifierWithoutContents(asBracketSpecifierWithoutContents()); } else if (isBracketSpecifierWithQuestionMark()) { visitor.visitBracketSpecifierWithQuestionMark(asBracketSpecifierWithQuestionMark()); } else { throw new IllegalStateException(); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy