DATAREDIS-469 - Polishing.
Return zero (0) in getAndSet to prevent NullPointerExceptions. Remove trailing whitespace. Add tests for existing methods. Simplify tests. Original pull request: #182.
This commit is contained in:
@@ -36,10 +36,11 @@ import org.springframework.util.Assert;
|
||||
/**
|
||||
* Atomic double backed by Redis. Uses Redis atomic increment/decrement and watch/multi/exec operations for CAS
|
||||
* operations.
|
||||
*
|
||||
*
|
||||
* @author Jennifer Hickey
|
||||
* @author Thomas Darimont
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public class RedisAtomicDouble extends Number implements Serializable, BoundKeyOperations<String> {
|
||||
|
||||
@@ -51,7 +52,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Constructs a new <code>RedisAtomicDouble</code> instance. Uses the value existing in Redis or 0 if none is found.
|
||||
*
|
||||
*
|
||||
* @param redisCounter redis counter
|
||||
* @param factory connection factory
|
||||
*/
|
||||
@@ -61,7 +62,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Constructs a new <code>RedisAtomicDouble</code> instance.
|
||||
*
|
||||
*
|
||||
* @param redisCounter
|
||||
* @param factory
|
||||
* @param initialValue
|
||||
@@ -96,7 +97,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Constructs a new <code>RedisAtomicDouble</code> instance. Uses the value existing in Redis or 0 if none is found.
|
||||
*
|
||||
*
|
||||
* @param redisCounter the redis counter
|
||||
* @param template the template
|
||||
* @see #RedisAtomicDouble(String, RedisConnectionFactory, double)
|
||||
@@ -110,7 +111,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
* with appropriate {@link RedisSerializer} for the key and value. As an alternative one could use the
|
||||
* {@link #RedisAtomicDouble(String, RedisConnectionFactory, Double)} constructor which uses appropriate default
|
||||
* serializers.
|
||||
*
|
||||
*
|
||||
* @param redisCounter the redis counter
|
||||
* @param template the template
|
||||
* @param initialValue the initial value
|
||||
@@ -141,7 +142,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Gets the current value.
|
||||
*
|
||||
*
|
||||
* @return the current value
|
||||
*/
|
||||
public double get() {
|
||||
@@ -156,7 +157,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Sets to the given value.
|
||||
*
|
||||
*
|
||||
* @param newValue the new value
|
||||
*/
|
||||
public void set(double newValue) {
|
||||
@@ -165,17 +166,23 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Atomically sets to the given value and returns the old value.
|
||||
*
|
||||
*
|
||||
* @param newValue the new value
|
||||
* @return the previous value
|
||||
*/
|
||||
public double getAndSet(double newValue) {
|
||||
return operations.getAndSet(key, newValue);
|
||||
|
||||
Double value = operations.getAndSet(key, newValue);
|
||||
if (value != null) {
|
||||
return value.doubleValue();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Atomically sets the value to the given updated value if the current value {@code ==} the expected value.
|
||||
*
|
||||
*
|
||||
* @param expect the expected value
|
||||
* @param update the new value
|
||||
* @return true if successful. False return indicates that the actual value was not equal to the expected value.
|
||||
@@ -204,7 +211,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Atomically increments by one the current value.
|
||||
*
|
||||
*
|
||||
* @return the previous value
|
||||
*/
|
||||
public double getAndIncrement() {
|
||||
@@ -213,7 +220,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Atomically decrements by one the current value.
|
||||
*
|
||||
*
|
||||
* @return the previous value
|
||||
*/
|
||||
public double getAndDecrement() {
|
||||
@@ -222,7 +229,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Atomically adds the given value to the current value.
|
||||
*
|
||||
*
|
||||
* @param delta the value to add
|
||||
* @return the previous value
|
||||
*/
|
||||
@@ -232,7 +239,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Atomically increments by one the current value.
|
||||
*
|
||||
*
|
||||
* @return the updated value
|
||||
*/
|
||||
public double incrementAndGet() {
|
||||
@@ -241,7 +248,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Atomically decrements by one the current value.
|
||||
*
|
||||
*
|
||||
* @return the updated value
|
||||
*/
|
||||
public double decrementAndGet() {
|
||||
@@ -250,7 +257,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Atomically adds the given value to the current value.
|
||||
*
|
||||
*
|
||||
* @param delta the value to add
|
||||
* @return the updated value
|
||||
*/
|
||||
@@ -260,7 +267,7 @@ public class RedisAtomicDouble extends Number implements Serializable, BoundKeyO
|
||||
|
||||
/**
|
||||
* Returns the String representation of the current value.
|
||||
*
|
||||
*
|
||||
* @return the String representation of the current value.
|
||||
*/
|
||||
public String toString() {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/*
|
||||
* Copyright 2011-2016 the original author or authors.
|
||||
*
|
||||
*
|
||||
* 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.
|
||||
@@ -36,11 +36,12 @@ import org.springframework.util.Assert;
|
||||
/**
|
||||
* Atomic integer backed by Redis. Uses Redis atomic increment/decrement and watch/multi/exec operations for CAS
|
||||
* operations.
|
||||
*
|
||||
*
|
||||
* @see java.util.concurrent.atomic.AtomicInteger
|
||||
* @author Costin Leau
|
||||
* @author Thomas Darimont
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public class RedisAtomicInteger extends Number implements Serializable, BoundKeyOperations<String> {
|
||||
|
||||
@@ -52,7 +53,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Constructs a new <code>RedisAtomicInteger</code> instance. Uses the value existing in Redis or 0 if none is found.
|
||||
*
|
||||
*
|
||||
* @param redisCounter redis counter
|
||||
* @param factory connection factory
|
||||
*/
|
||||
@@ -62,7 +63,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Constructs a new <code>RedisAtomicInteger</code> instance.
|
||||
*
|
||||
*
|
||||
* @param redisCounter the redis counter
|
||||
* @param factory the factory
|
||||
* @param initialValue the initial value
|
||||
@@ -73,7 +74,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Constructs a new <code>RedisAtomicInteger</code> instance. Uses the value existing in Redis or 0 if none is found.
|
||||
*
|
||||
*
|
||||
* @param redisCounter the redis counter
|
||||
* @param template the template
|
||||
* @see #RedisAtomicInteger(String, RedisConnectionFactory, int)
|
||||
@@ -87,7 +88,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
* with appropriate {@link RedisSerializer} for the key and value. As an alternative one could use the
|
||||
* {@link #RedisAtomicInteger(String, RedisConnectionFactory, Integer)} constructor which uses appropriate default
|
||||
* serializers.
|
||||
*
|
||||
*
|
||||
* @param redisCounter the redis counter
|
||||
* @param template the template
|
||||
* @param initialValue the initial value
|
||||
@@ -139,7 +140,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Get the current value.
|
||||
*
|
||||
*
|
||||
* @return the current value
|
||||
*/
|
||||
public int get() {
|
||||
@@ -154,7 +155,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Set to the given value.
|
||||
*
|
||||
*
|
||||
* @param newValue the new value
|
||||
*/
|
||||
public void set(int newValue) {
|
||||
@@ -163,17 +164,23 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Set to the give value and return the old value.
|
||||
*
|
||||
*
|
||||
* @param newValue the new value
|
||||
* @return the previous value
|
||||
*/
|
||||
public int getAndSet(int newValue) {
|
||||
return operations.getAndSet(key, newValue);
|
||||
|
||||
Integer value = operations.getAndSet(key, newValue);
|
||||
if (value != null) {
|
||||
return value.intValue();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Atomically set the value to the given updated value if the current value <tt>==</tt> the expected value.
|
||||
*
|
||||
*
|
||||
* @param expect the expected value
|
||||
* @param update the new value
|
||||
* @return true if successful. False return indicates that the actual value was not equal to the expected value.
|
||||
@@ -202,7 +209,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Atomically increment by one the current value.
|
||||
*
|
||||
*
|
||||
* @return the previous value
|
||||
*/
|
||||
public int getAndIncrement() {
|
||||
@@ -211,7 +218,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Atomically decrement by one the current value.
|
||||
*
|
||||
*
|
||||
* @return the previous value
|
||||
*/
|
||||
public int getAndDecrement() {
|
||||
@@ -220,7 +227,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Atomically add the given value to current value.
|
||||
*
|
||||
*
|
||||
* @param delta the value to add
|
||||
* @return the previous value
|
||||
*/
|
||||
@@ -230,7 +237,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Atomically increment by one the current value.
|
||||
*
|
||||
*
|
||||
* @return the updated value
|
||||
*/
|
||||
public int incrementAndGet() {
|
||||
@@ -239,7 +246,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Atomically decrement by one the current value.
|
||||
*
|
||||
*
|
||||
* @return the updated value
|
||||
*/
|
||||
public int decrementAndGet() {
|
||||
@@ -248,7 +255,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Atomically add the given value to current value.
|
||||
*
|
||||
*
|
||||
* @param delta the value to add
|
||||
* @return the updated value
|
||||
*/
|
||||
@@ -258,7 +265,7 @@ public class RedisAtomicInteger extends Number implements Serializable, BoundKey
|
||||
|
||||
/**
|
||||
* Returns the String representation of the current value.
|
||||
*
|
||||
*
|
||||
* @return the String representation of the current value.
|
||||
*/
|
||||
public String toString() {
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/*
|
||||
* Copyright 2011-2016 the original author or authors.
|
||||
*
|
||||
*
|
||||
* 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.
|
||||
@@ -36,11 +36,12 @@ import org.springframework.util.Assert;
|
||||
/**
|
||||
* Atomic long backed by Redis. Uses Redis atomic increment/decrement and watch/multi/exec operations for CAS
|
||||
* operations.
|
||||
*
|
||||
*
|
||||
* @see java.util.concurrent.atomic.AtomicLong
|
||||
* @author Costin Leau
|
||||
* @author Thomas Darimont
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
public class RedisAtomicLong extends Number implements Serializable, BoundKeyOperations<String> {
|
||||
|
||||
@@ -52,7 +53,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Constructs a new <code>RedisAtomicLong</code> instance. Uses the value existing in Redis or 0 if none is found.
|
||||
*
|
||||
*
|
||||
* @param redisCounter redis counter
|
||||
* @param factory connection factory
|
||||
*/
|
||||
@@ -62,7 +63,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Constructs a new <code>RedisAtomicLong</code> instance.
|
||||
*
|
||||
*
|
||||
* @param redisCounter
|
||||
* @param factory
|
||||
* @param initialValue
|
||||
@@ -97,7 +98,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Constructs a new <code>RedisAtomicLong</code> instance. Uses the value existing in Redis or 0 if none is found.
|
||||
*
|
||||
*
|
||||
* @param redisCounter the redis counter
|
||||
* @param template the template
|
||||
* @see #RedisAtomicLong(String, RedisConnectionFactory, long)
|
||||
@@ -116,7 +117,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
* As an alternative one could use the {@link #RedisAtomicLong(String, RedisConnectionFactory, Long)} constructor
|
||||
* which uses appropriate default serializers, in this case {@link StringRedisSerializer} for the key and
|
||||
* {@link GenericToStringSerializer} for the value.
|
||||
*
|
||||
*
|
||||
* @param redisCounter the redis counter
|
||||
* @param template the template
|
||||
* @param initialValue the initial value
|
||||
@@ -147,7 +148,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Gets the current value.
|
||||
*
|
||||
*
|
||||
* @return the current value
|
||||
*/
|
||||
public long get() {
|
||||
@@ -162,7 +163,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Sets to the given value.
|
||||
*
|
||||
*
|
||||
* @param newValue the new value
|
||||
*/
|
||||
public void set(long newValue) {
|
||||
@@ -171,17 +172,23 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Atomically sets to the given value and returns the old value.
|
||||
*
|
||||
*
|
||||
* @param newValue the new value
|
||||
* @return the previous value
|
||||
*/
|
||||
public long getAndSet(long newValue) {
|
||||
return operations.getAndSet(key, newValue);
|
||||
|
||||
Long value = operations.getAndSet(key, newValue);
|
||||
if (value != null) {
|
||||
return value.longValue();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Atomically sets the value to the given updated value if the current value {@code ==} the expected value.
|
||||
*
|
||||
*
|
||||
* @param expect the expected value
|
||||
* @param update the new value
|
||||
* @return true if successful. False return indicates that the actual value was not equal to the expected value.
|
||||
@@ -210,7 +217,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Atomically increments by one the current value.
|
||||
*
|
||||
*
|
||||
* @return the previous value
|
||||
*/
|
||||
public long getAndIncrement() {
|
||||
@@ -219,7 +226,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Atomically decrements by one the current value.
|
||||
*
|
||||
*
|
||||
* @return the previous value
|
||||
*/
|
||||
public long getAndDecrement() {
|
||||
@@ -228,7 +235,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Atomically adds the given value to the current value.
|
||||
*
|
||||
*
|
||||
* @param delta the value to add
|
||||
* @return the previous value
|
||||
*/
|
||||
@@ -238,7 +245,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Atomically increments by one the current value.
|
||||
*
|
||||
*
|
||||
* @return the updated value
|
||||
*/
|
||||
public long incrementAndGet() {
|
||||
@@ -247,7 +254,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Atomically decrements by one the current value.
|
||||
*
|
||||
*
|
||||
* @return the updated value
|
||||
*/
|
||||
public long decrementAndGet() {
|
||||
@@ -256,7 +263,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Atomically adds the given value to the current value.
|
||||
*
|
||||
*
|
||||
* @param delta the value to add
|
||||
* @return the updated value
|
||||
*/
|
||||
@@ -266,7 +273,7 @@ public class RedisAtomicLong extends Number implements Serializable, BoundKeyOpe
|
||||
|
||||
/**
|
||||
* Returns the String representation of the current value.
|
||||
*
|
||||
*
|
||||
* @return the String representation of the current value.
|
||||
*/
|
||||
public String toString() {
|
||||
|
||||
Reference in New Issue
Block a user