}
} else if (slavesAsJSON instanceof JSONObject) {
slaves.add(GerritSlave.createGerritSlaveFromJSON((JSONObject)slavesAsJSON));
}
if (slaves.size() == 0) {
throw new Failure(Messages.OneSlaveMustBeDefined());
}
boolean enableSlaveSelectionInJobs = replicationConfigAsJSON
.has(ENABLE_SLAVE_SELECTION_IN_JOBS_JSON_KEY);
String defaultSlaveId = "";
if (enableSlaveSelectionInJobs) {
JSONObject defaultSlaveAsJSON = replicationConfigAsJSON
.getJSONObject(ENABLE_SLAVE_SELECTION_IN_JOBS_JSON_KEY);
defaultSlaveId = defaultSlaveAsJSON.getString(DEFAULT_SLAVE_ID_JSON_KEY);
if (defaultSlaveId == null || defaultSlaveId.trim().isEmpty()) {
enableSlaveSelectionInJobs = false;
} else {
boolean defaultSlaveExist = false;
for (GerritSlave gerritSlave : slaves) {
if (defaultSlaveId.equals(gerritSlave.getId())) {
defaultSlaveExist = true;
}
}
if (!defaultSlaveExist) {
throw new Failure(Messages.CannotDeleteDefaultSlave());
}
}
}
replicationConfig = new ReplicationConfig(true, slaves, enableSlaveSelectionInJobs, defaultSlaveId);
} else {