package io.fathom.cloud.blobs.replicated;
import javax.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ClusterState {
private static final Logger log = LoggerFactory.getLogger(ClusterState.class);
final StorageClusterBuilder builder;
private StorageCluster cluster;
@Inject
public ClusterState(StorageClusterBuilder builder) {
super();
this.builder = builder;
}
public synchronized StorageCluster getCluster() {
if (this.cluster == null) {
try {
this.cluster = builder.build();
} catch (Exception e) {
log.warn("Unable to initialize cluster", e);
throw new IllegalStateException("Unable to initialize cluster", e);
}
}
return cluster;
}
public StorageClusterBuilder getStorageClusterBuilder() {
return builder;
}
public synchronized void setCluster(StorageCluster cluster) {
this.cluster = cluster;
}
}