
com.alicp.jetcache.MultiGetResult Maven / Gradle / Ivy
The newest version!
package com.alicp.jetcache;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
/**
* Created on 2017/2/21.
*
* @author huangli
*/
public class MultiGetResult extends CacheResult {
private volatile Map> values;
public MultiGetResult(CompletionStage future) {
super(future);
}
public MultiGetResult(CacheResultCode resultCode, String message, Map> values) {
super(CompletableFuture.completedFuture(new ResultData(resultCode, message, values)));
}
public MultiGetResult(Throwable e) {
super(e);
}
public Map> getValues() {
waitForResult();
return values;
}
@Override
protected void fetchResultSuccess(ResultData resultData) {
values = (Map>) resultData.getOriginData();
super.fetchResultSuccess(resultData);
}
@Override
protected void fetchResultFail(Throwable e) {
values = null;
super.fetchResultFail(e);
}
public Map unwrapValues() {
waitForResult();
if (values == null) {
return null;
}
Map m = new HashMap<>();
values.entrySet().stream().forEach((en) -> {
if (en.getValue().isSuccess()) {
m.put(en.getKey(), en.getValue().getValue());
}
});
return m;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy