package ddth.dasp.statushetty.actionhandler;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import ddth.dasp.common.DaspGlobal;
import ddth.dasp.framework.cache.ICacheManager;
import ddth.dasp.framework.cache.hazelcast.HazelcastCacheManager;
import ddth.dasp.hetty.message.IRequest;
public class CacheStatusActionHandler extends BaseActionHandler {
/**
* {@inheritDoc}
*/
@Override
protected Map<String, Object> buildViewModel(IRequest request) {
Map<String, Object> model = super.buildViewModel(request);
model.put("CACHE", buildModelCache());
return model;
}
@SuppressWarnings("unchecked")
private Object buildModelCache() {
List<Object> model = new ArrayList<Object>();
Object temp = DaspGlobal.getGlobalVar(ICacheManager.GLOBAL_KEY);
if (!(temp instanceof Map)) {
temp = new HashMap<String, ICacheManager>();
}
Map<String, ICacheManager> allCacheManagers = (Map<String, ICacheManager>) temp;
Map<String, Object> modelEntry;
for (Entry<String, ICacheManager> entry : allCacheManagers.entrySet()) {
ICacheManager cacheManager = entry.getValue();
modelEntry = new HashMap<String, Object>();
modelEntry.put("id", entry.getKey());
modelEntry.put("cacheManager", cacheManager);
if (cacheManager instanceof HazelcastCacheManager) {
List<String> servers = ((HazelcastCacheManager) cacheManager).getHazelcastServers();
modelEntry.put("cacheServer", servers != null ? servers.toString() : "null");
} else {
modelEntry.put("cacheServer", "-");
}
model.add(modelEntry);
}
return model;
}
}