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

com.amazonaws.services.dynamodbv2.xspec.PathOperand Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * Copyright 2015-2016 Amazon Technologies, Inc.
 *
 * Licensed 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://aws.amazon.com/apache2.0
 *
 * 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 com.amazonaws.services.dynamodbv2.xspec;

import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.attribute_exists;
import static com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder.attribute_not_exists;

import org.apache.http.annotation.Immutable;

import com.amazonaws.annotation.Beta;

/**
 * A path operand used in building DynamooDB expressions such as update
 * expressions and condition (aka filter) expressions. In general, a path
 * operand refers to an attribute of some specific type in DynamoDB.
 * 

* Use {@link ExpressionSpecBuilder#S(String)}, * {@link ExpressionSpecBuilder#N(String)}, etc. to instantiate path operands to * refer to attributes of specific data types. You can also use * {@link ExpressionSpecBuilder#attribute(String)} to instantiate a path operand * with an unspecified data type. * * @see ExpressionSpecBuilder */ @Beta @Immutable public class PathOperand extends Operand { private final Path path; private final String pathString; // This is a performance optimization; not strictly necessary. /** * Constructs a path operand for building expressions. * * @param path * a document path in which nested elements are assumed to be * delimited by either "." or array indexing such as "[1]". */ PathOperand(String path) { this.path = new Path(path); this.pathString = path; } @Override String asSubstituted(SubstitutionContext context) { return path.asSubstituted(context); } /** * Returns a function condition (that evaluates to true if the attribute referred * to by this path operand exists) for building condition expression. */ public final FunctionCondition exists() { return attribute_exists(this); } /** * Returns a function condition (that evaluates to true if the attribute referred * to by this path operand does not exist) for building condition * expression. */ public final FunctionCondition notExists() { return attribute_not_exists(this); } /** * Returns a RemoveAction for removing the attribute referred * to by this path operand from an item; used for building update * expression. */ public final RemoveAction remove() { return new RemoveAction(this); } /** * Returns the path of this path operand as a string. */ final String getPath() { return pathString; } @Override public final String toString() { return pathString; } @Override public final int hashCode() { return pathString.hashCode(); } /** * Returns true if the given object is a path operand with the same path as * that of the current path operand; false otherwise. */ @Override public final boolean equals(Object o) { if (!(o instanceof PathOperand)) return false; PathOperand that = (PathOperand)o; return this.getPath().equals(that.getPath()); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy