org.redisson.api.RJsonBucketAsync Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of redisson Show documentation
Show all versions of redisson Show documentation
Redis Java client with features of In-Memory Data Grid
/**
* Copyright (c) 2013-2024 Nikita Koksharov
*
* 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://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License 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 org.redisson.api;
import org.redisson.codec.JsonCodec;
import java.util.List;
/**
* Redis JSON datatype interface. Data is stored as JSON object in Redis
*
* @author Nikita Koksharov
* @param the type of object
*/
public interface RJsonBucketAsync extends RBucketAsync {
/**
* Get Json object/objects by JSONPath
*
* @param codec object codec
* @param paths JSON paths
* @return object
*
* @param the type of object
*/
RFuture getAsync(JsonCodec codec, String... paths);
/**
* Sets Json object by JSONPath only if previous value is empty
*
* @param path JSON path
* @param value object
* @return {@code true} if successful, or {@code false} if
* value was already set
*/
RFuture setIfAbsentAsync(String path, Object value);
/**
* Use {@link #setIfAbsentAsync(String, Object)} instead
*
* @param path JSON path
* @param value object
* @return {@code true} if successful, or {@code false} if
* value was already set
*/
@Deprecated
RFuture trySetAsync(String path, Object value);
/**
* Sets Json object by JSONPath only if previous value is non-empty
*
* @param path JSON path
* @param value object
* @return {@code true} if successful, or {@code false} if
* element wasn't set
*/
RFuture setIfExistsAsync(String path, Object value);
/**
* Atomically sets the value to the given updated value
* by given JSONPath, only if serialized state of
* the current value equals to serialized state of the expected value.
*
* @param path JSON path
* @param expect the expected value
* @param update the new value
* @return {@code true} if successful; or {@code false} if the actual value
* was not equal to the expected value.
*/
RFuture compareAndSetAsync(String path, Object expect, Object update);
/**
* Retrieves current value of element specified by JSONPath
* and replaces it with newValue
.
*
* @param codec object codec
* @param path JSON path
* @param newValue value to set
* @return previous value
*/
RFuture getAndSetAsync(JsonCodec codec, String path, Object newValue);
/**
* Stores object into element by specified JSONPath.
*
* @param path JSON path
* @param value value to set
* @return void
*/
RFuture setAsync(String path, Object value);
/**
* Returns size of string data by JSONPath
*
* @param path JSON path
* @return size of string
*/
RFuture stringSizeAsync(String path);
/**
* Returns list of string data size by JSONPath.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param path JSON path
* @return list of string data sizes
*/
RFuture> stringSizeMultiAsync(String path);
/**
* Appends string data to element specified by JSONPath.
* Returns new size of string data.
*
* @param path JSON path
* @param value data
* @return size of string data
*/
RFuture stringAppendAsync(String path, Object value);
/**
* Appends string data to elements specified by JSONPath.
* Returns new size of string data.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param path JSON path
* @param value data
* @return list of string data sizes
*/
RFuture> stringAppendMultiAsync(String path, Object value);
/**
* Appends values to array specified by JSONPath.
* Returns new size of array.
*
* @param path JSON path
* @param values values to append
* @return size of array
*/
RFuture arrayAppendAsync(String path, Object... values);
/**
* Appends values to arrays specified by JSONPath.
* Returns new size of arrays.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param path JSON path
* @param values values to append
* @return list of arrays size
*/
RFuture> arrayAppendMultiAsync(String path, Object... values);
/**
* Returns index of object in array specified by JSONPath.
* -1 means object not found.
*
* @param path JSON path
* @param value value to search
* @return index in array
*/
RFuture arrayIndexAsync(String path, Object value);
/**
* Returns index of object in arrays specified by JSONPath.
* -1 means object not found.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param path JSON path
* @param value value to search
* @return list of index in arrays
*/
RFuture> arrayIndexMultiAsync(String path, Object value);
/**
* Returns index of object in array specified by JSONPath
* in range between start
(inclusive) and end
(exclusive) indexes.
* -1 means object not found.
*
* @param path JSON path
* @param value value to search
* @param start start index, inclusive
* @param end end index, exclusive
* @return index in array
*/
RFuture arrayIndexAsync(String path, Object value, long start, long end);
/**
* Returns index of object in arrays specified by JSONPath
* in range between start
(inclusive) and end
(exclusive) indexes.
* -1 means object not found.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param path JSON path
* @param value value to search
* @param start start index, inclusive
* @param end end index, exclusive
* @return list of index in arrays
*/
RFuture> arrayIndexMultiAsync(String path, Object value, long start, long end);
/**
* Inserts values into array specified by JSONPath.
* Values are inserted at defined index
.
*
* @param path JSON path
* @param index array index at which values are inserted
* @param values values to insert
* @return size of array
*/
RFuture arrayInsertAsync(String path, long index, Object... values);
/**
* Inserts values into arrays specified by JSONPath.
* Values are inserted at defined index
.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param path JSON path
* @param index array index at which values are inserted
* @param values values to insert
* @return list of arrays size
*/
RFuture> arrayInsertMultiAsync(String path, long index, Object... values);
/**
* Returns size of array specified by JSONPath.
*
* @param path JSON path
* @return size of array
*/
RFuture arraySizeAsync(String path);
/**
* Returns size of arrays specified by JSONPath.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param path JSON path
* @return list of arrays size
*/
RFuture> arraySizeMultiAsync(String path);
/**
* Polls last element of array specified by JSONPath.
*
* @param codec object codec
* @param path JSON path
* @return last element
*
* @param the type of object
*/
RFuture arrayPollLastAsync(JsonCodec codec, String path);
/**
* Polls last element of arrays specified by JSONPath.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param codec object codec
* @param path JSON path
* @return list of last elements
*
* @param the type of object
*/
RFuture> arrayPollLastMultiAsync(JsonCodec codec, String path);
/**
* Polls first element of array specified by JSONPath.
*
* @param codec object codec
* @param path JSON path
* @return first element
*
* @param the type of object
*/
RFuture arrayPollFirstAsync(JsonCodec codec, String path);
/**
* Polls first element of arrays specified by JSONPath.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param codec object codec
* @param path JSON path
* @return list of first elements
*
* @param the type of object
*/
RFuture> arrayPollFirstMultiAsync(JsonCodec codec, String path);
/**
* Pops element located at index of array specified by JSONPath.
*
* @param codec object codec
* @param path JSON path
* @param index array index
* @return element
*
* @param the type of object
*/
RFuture arrayPopAsync(JsonCodec codec, String path, long index);
/**
* Pops elements located at index of arrays specified by JSONPath.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param codec object codec
* @param path JSON path
* @param index array index
* @return list of elements
*
* @param the type of object
*/
RFuture> arrayPopMultiAsync(JsonCodec codec, String path, long index);
/**
* Trims array specified by JSONPath in range
* between start
(inclusive) and end
(inclusive) indexes.
*
* @param path JSON path
* @param start start index, inclusive
* @param end end index, inclusive
* @return length of array
*/
RFuture arrayTrimAsync(String path, long start, long end);
/**
* Trims arrays specified by JSONPath in range
* between start
(inclusive) and end
(inclusive) indexes.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param path JSON path
* @param start start index, inclusive
* @param end end index, inclusive
* @return length of array
*/
RFuture> arrayTrimMultiAsync(String path, long start, long end);
/**
* Clears json container.
*
* @return number of cleared containers
*/
RFuture clearAsync();
/**
* Clears json container specified by JSONPath.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param path JSON path
* @return number of cleared containers
*/
RFuture clearAsync(String path);
/**
* Increments the current value specified by JSONPath by delta
.
*
* @param path JSON path
* @param delta increment value
* @return the updated value
*/
RFuture incrementAndGetAsync(String path, T delta);
/**
* Increments the current values specified by JSONPath by delta
.
* Compatible only with enhanced syntax starting with '$' character.
*
* @param path JSON path
* @param delta increment value
* @return list of updated value
*/
RFuture> incrementAndGetMultiAsync(String path, T delta);
/**
* Merges object into element by the specified JSONPath.
*
* @param path JSON path
* @param value value to merge
*/
RFuture mergeAsync(String path, Object value);
/**
* Returns keys amount in JSON container
*
* @return keys amount
*/
RFuture countKeysAsync();
/**
* Returns keys amount in JSON container specified by JSONPath
*
* @param path JSON path
* @return keys amount
*/
RFuture countKeysAsync(String path);
/**
* Returns list of keys amount in JSON containers specified by JSONPath
*
* @param path JSON path
* @return list of keys amount
*/
RFuture> countKeysMultiAsync(String path);
/**
* Returns list of keys in JSON container
*
* @return list of keys
*/
RFuture> getKeysAsync();
/**
* Returns list of keys in JSON container specified by JSONPath
*
* @param path JSON path
* @return list of keys
*/
RFuture> getKeysAsync(String path);
/**
* Returns list of keys in JSON containers specified by JSONPath
*
* @param path JSON path
* @return list of keys
*/
RFuture>> getKeysMultiAsync(String path);
/**
* Toggle boolean value specified by JSONPath
*
* @param path JSON path
* @return new boolean value
*/
RFuture toggleAsync(String path);
/**
* Toggle boolean values specified by JSONPath
*
* @param path JSON path
* @return list of boolean values
*/
RFuture> toggleMultiAsync(String path);
/**
* Returns type of element
*
* @return type of element
*/
RFuture getTypeAsync();
/**
* Returns type of element specified by JSONPath
*
* @param path JSON path
* @return type of element
*/
RFuture getTypeAsync(String path);
/**
* Deletes JSON elements specified by JSONPath
*
* @param path JSON path
* @return number of deleted elements
*/
RFuture deleteAsync(String path);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy