package org.infinispan.topology;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.Serializable;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import org.infinispan.commons.marshall.InstanceReusingAdvancedExternalizer;
import org.infinispan.marshall.core.Ids;
/**
* @author Dan Berindei
* @since 7.1
*/
public class ManagerStatusResponse implements Serializable {
private final Map<String, CacheStatusResponse> caches;
private final boolean rebalancingEnabled;
public ManagerStatusResponse(Map<String, CacheStatusResponse> caches, boolean rebalancingEnabled) {
this.rebalancingEnabled = rebalancingEnabled;
this.caches = caches;
}
public Map<String, CacheStatusResponse> getCaches() {
return caches;
}
public boolean isRebalancingEnabled() {
return rebalancingEnabled;
}
@Override
public String toString() {
return "ManagerStatusResponse{" +
"caches=" + caches +
", rebalancingEnabled=" + rebalancingEnabled +
'}';
}
public static class Externalizer extends InstanceReusingAdvancedExternalizer<ManagerStatusResponse> {
@Override
public void doWriteObject(ObjectOutput output, ManagerStatusResponse cacheStatusResponse) throws IOException {
output.writeObject(cacheStatusResponse.caches);
output.writeBoolean(cacheStatusResponse.rebalancingEnabled);
}
@Override
public ManagerStatusResponse doReadObject(ObjectInput unmarshaller) throws IOException, ClassNotFoundException {
Map<String, CacheStatusResponse> caches = (Map<String, CacheStatusResponse>) unmarshaller.readObject();
boolean rebalancingEnabled = unmarshaller.readBoolean();
return new ManagerStatusResponse(caches, rebalancingEnabled);
}
@Override
public Integer getId() {
return Ids.MANAGER_STATUS_RESPONSE;
}
@Override
public Set<Class<? extends ManagerStatusResponse>> getTypeClasses() {
return Collections.<Class<? extends ManagerStatusResponse>>singleton(ManagerStatusResponse.class);
}
}
}