本文整理了Java中org.apache.geode.cache.Region.replace
方法的一些代码示例,展示了Region.replace
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Region.replace
方法的具体详情如下:
包路径:org.apache.geode.cache.Region
类名称:Region
方法名:replace
[英]Replaces the entry for a key only if currently mapped to some value. This is equivalent to
if (map.containsKey(key)) {
return map.put(key, value);
} else
return null;
except that the action is performed atomically.
ConcurrentMap operations are supported on partitioned and replicated regions and in client caches. They are also supported on non-empty local regions.
Please read the notes on ConcurrentMap operations in the javadoc for Region.
[中]仅当当前映射到某个值时,才替换键的条目。这相当于
if (map.containsKey(key)) {
return map.put(key, value);
} else
return null;
,只是操作是以原子方式执行的。
在分区和复制区域以及客户端缓存中支持ConcurrentMap操作。非空本地区域也支持它们。
请阅读javadoc for Region中有关ConcurrentMap操作的说明。
代码示例来源:origin: apache/geode
@Override
public boolean replace(Object key, Object oldValue, Object newValue) {
try {
preOp();
return this.realRegion.replace(key, oldValue, newValue);
} finally {
postOp();
}
}
代码示例来源:origin: apache/geode
@Override
public Object replace(Object key, Object value) {
try {
preOp();
return this.realRegion.replace(key, value);
} finally {
postOp();
}
}
代码示例来源:origin: apache/geode
@Override
public ByteBuffer processStorageCommand(String key, byte[] value, int flags, Cache cache) {
Region<Object, ValueWrapper> r = getMemcachedRegion(cache);
Object oldVal = r.replace(key, ValueWrapper.getWrappedValue(value, flags));
String reply = null;
if (oldVal == null) {
reply = Reply.NOT_STORED.toString();
} else {
reply = Reply.STORED.toString();
}
return asciiCharset.encode(reply);
}
代码示例来源:origin: apache/geode
private ByteBuffer processAsciiCommand(ByteBuffer buffer, Cache cache) {
CharBuffer flb = getFirstLineBuffer();
getAsciiDecoder().reset();
getAsciiDecoder().decode(buffer, flb, false);
flb.flip();
String firstLine = getFirstLine();
String[] firstLineElements = firstLine.split(" ");
String key = firstLineElements[1];
int flags = Integer.parseInt(firstLineElements[2]);
long expTime = Long.parseLong(firstLineElements[3]);
int numBytes = Integer.parseInt(firstLineElements[4]);
long casVersion = Long.parseLong(stripNewline(firstLineElements[5]));
byte[] value = new byte[numBytes];
buffer.position(firstLine.length());
for (int i = 0; i < numBytes; i++) {
value[i] = buffer.get();
}
String reply = Reply.EXISTS.toString();
Region<Object, ValueWrapper> r = getMemcachedRegion(cache);
ValueWrapper expected = ValueWrapper.getDummyValue(casVersion);
if (r.replace(key, expected, ValueWrapper.getWrappedValue(value, flags))) {
reply = Reply.STORED.toString();
}
return asciiCharset.encode(reply);
}
}
代码示例来源:origin: apache/geode
newVal.putLong(0, newLong);
ValueWrapper newValWrapper = ValueWrapper.getWrappedValue(newVal.array(), 0/* flags */);
if (r.replace(key, oldValWrapper, newValWrapper)) {
reply = newLong + "\r\n";
break;
代码示例来源:origin: apache/geode
newVal.putLong(newLong);
ValueWrapper newValWrapper = ValueWrapper.getWrappedValue(newVal.array(), 0/* flags */);
if (r.replace(key, oldValWrapper, newValWrapper)) {
reply = newLong + "\r\n";
break;
代码示例来源:origin: apache/geode
pr.replace(Integer.toString(i), Integer.toString(i), "replaced" + i);
assertThat(replaceSucceeded).describedAs("for i=" + i).isTrue();
assertThat(pr.get(Integer.toString(i))).describedAs("for i=" + i).isEqualTo(
boolean replaceSucceeded = pr.replace(Integer.toString(i), Integer.toString(i), // wrong
Object replaceResult = pr.replace(Integer.toString(i), "twice replaced" + i);
assertThat(replaceResult).describedAs("for i=" + i).isEqualTo(("replaced" + i));
assertThat(pr.get(Integer.toString(i))).describedAs("for i=" + i).isEqualTo(
Object replaceResult = pr.replace(Integer.toString(i), "thrice replaced" + i);
assertThat(replaceResult).describedAs("for i=" + i).isNull();
assertThat(pr.get(Integer.toString(i))).describedAs("for i=" + i).isNull();
代码示例来源:origin: apache/geode
if (index != null && ((pushType == ListDirection.RIGHT && existingIndex < index)
|| (pushType == ListDirection.LEFT && existingIndex > index)))
indexSet = keyRegion.replace(indexKey, existingIndex, index);
else
break;
代码示例来源:origin: apache/geode
if (r.replace(key, oldValWrapper, newValWrapper)) {
break;
代码示例来源:origin: apache/geode
newVal.putLong(0, newLong);
newValWrapper = ValueWrapper.getWrappedValue(newVal.array(), 0/* flags */);
if (r.replace(key, oldValWrapper, newValWrapper)) {
break;
代码示例来源:origin: apache/geode
if (cas != 0L) {
ValueWrapper expected = ValueWrapper.getDummyValue(cas);
success = r.replace(key, expected, val);
} else {
success = r.replace(key, val) != null;
代码示例来源:origin: apache/geode
if (cas != 0L) {
ValueWrapper expected = ValueWrapper.getDummyValue(cas);
success = r.replace(key, expected, val);
} else {
r.put(key, val);
代码示例来源:origin: apache/geode
pr.replace(Integer.toString(i), Integer.toString(i), "replaced" + i);
assertTrue("for i=" + i, replaceSucceeded);
assertEquals("for i=" + i, "replaced" + i, pr.get(Integer.toString(i)));
boolean replaceSucceeded = pr.replace(Integer.toString(i), Integer.toString(i), // wrong
Object replaceResult = pr.replace(Integer.toString(i), "twice replaced" + i);
assertEquals("for i=" + i, "replaced" + i, replaceResult);
assertEquals("for i=" + i, "twice replaced" + i, pr.get(Integer.toString(i)));
Object replaceResult = pr.replace(Integer.toString(i), "thrice replaced" + i);
assertNull("for i=" + i, replaceResult);
assertNull("for i=" + i, pr.get(Integer.toString(i)));
pr.put(key42169, "initialValue42169");
pr.localDestroy(key42169);
boolean success = pr.replace(key42169, "initialValue42169", "newValue42169");
assertTrue("expected replace to succeed", success);
pr.destroy(key42169);
assertTrue(pr.replace("keyForNull", null, "no longer invalid"));
assertThatThrownBy(() -> pr.replace("keyForNull", "no longer invalid", null))
.isExactlyInstanceOf(NullPointerException.class);
assertThatThrownBy(() -> pr.replace("keyForNull", null))
.isExactlyInstanceOf(NullPointerException.class);
boolean success = pr.replace("otherKeyForNull", null, "no longer invalid");
代码示例来源:origin: apache/geode
private void testAllOperations() {
ClientCache clientCache = (ClientCache) cache;
Region<String, String> region =
clientCache.<String, String>createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY)
.create("internalRegion");
assertFailure(() -> region.create("Object1", "Value1"));
assertFailure(() -> region.put("Object1", "Value1"));
assertFailure(() -> region.putIfAbsent("Object1", "Value1"));
assertFailure(() -> region.get("Object1"));
Map<String, String> map = new HashMap<>();
map.put("Object1", "Value1");
assertFailure(() -> region.putAll(map));
List<String> list = new ArrayList<>();
list.add("Object1");
assertFailure(() -> region.getAll(list));
assertFailure(() -> region.removeAll(list));
assertFailure(() -> region.destroy("Object1"));
assertFailure(() -> region.remove("Object1"));
assertFailure(() -> region.replace("Object1", "oldValue", "newValue"));
assertFailure(() -> region.invalidate("Object1"));
assertFailure(region::keySetOnServer);
assertFailure(() -> region.registerInterest("Object1"));
}
代码示例来源:origin: spring-projects/spring-integration
@Override
public boolean replace(String key, String oldValue, String newValue) {
Assert.notNull(key, "'key' must not be null.");
Assert.notNull(oldValue, "'oldValue' must not be null.");
Assert.notNull(newValue, "'newValue' must not be null.");
return this.region.replace(key, oldValue, newValue);
}
代码示例来源:origin: apache/geode
if (index.equals(opp))
break;
indexChanged = keyRegion.replace(indexKey, index, index + incr);
} while (!indexChanged);
代码示例来源:origin: org.springframework.data/spring-data-geode
@Override
public <K, V> V replace(K key, V value) {
try {
return this.<K, V>getRegion().replace(key, value);
}
catch (GemFireException cause) {
throw convertGemFireAccessException(cause);
}
}
代码示例来源:origin: org.springframework.data/spring-data-gemfire
@Override
public <K, V> V replace(K key, V value) {
try {
return this.<K, V>getRegion().replace(key, value);
}
catch (GemFireException cause) {
throw convertGemFireAccessException(cause);
}
}
代码示例来源:origin: org.springframework.data/spring-data-gemfire
@Override
public <K, V> boolean replace(K key, V oldValue, V newValue) {
try {
return this.<K, V>getRegion().replace(key, oldValue, newValue);
}
catch (GemFireException cause) {
throw convertGemFireAccessException(cause);
}
}
代码示例来源:origin: org.springframework.data/spring-data-geode
@Override
public <K, V> boolean replace(K key, V oldValue, V newValue) {
try {
return this.<K, V>getRegion().replace(key, oldValue, newValue);
}
catch (GemFireException cause) {
throw convertGemFireAccessException(cause);
}
}
内容来源于网络,如有侵权,请联系作者删除!