package eu.europeana.cloud.service.dps.service.utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.google.common.base.Preconditions.checkArgument;
/**
* Class manages topology names and topology users
*/
public class TopologyManager {
public static final String separatorChar = ",";
private List<String> topologies = new ArrayList<>();
public static final Logger logger = LoggerFactory.getLogger(TopologyManager.class);
/**
* Construct {@link eu.europeana.cloud.service.dps.service.utils.TopologyManager}.
*
* @param nameList list of topology names (without white characters)
*/
public TopologyManager(final String nameList) {
String[] names = nameList.split(separatorChar);
assertNotEmpty(names);
for (int i = 0; i < names.length; i++) {
topologies.add(names[i]);
}
logResult();
}
private void logResult() {
for (String topologyName : topologies) {
logger.info("Topology registered -> topologyName=" + topologyName);
}
}
/**
* Method return list of topology names.
*
* @return topology names
*/
public List<String> getNames() {
return topologies;
}
private void assertNotEmpty(String[] names) {
checkArgument(names.length > 0, "No registered topologies");
}
public boolean containsTopology(String topologyName) {
return topologies.contains(topologyName);
}
}