package com.thoughtworks.go.config.exceptions;
import com.thoughtworks.go.config.CruiseConfig;
import com.thoughtworks.go.config.remote.PartialConfig;
import com.thoughtworks.go.domain.ConfigErrors;
import java.util.List;
public class GoConfigInvalidMergeException extends GoConfigInvalidException {
private List<PartialConfig> partialConfigs;
public GoConfigInvalidMergeException(String summary,CruiseConfig cruiseConfig,
List<PartialConfig> partialConfigs, List<ConfigErrors> allErrors) {
super(cruiseConfig,allErrorsToString(allErrors, summary));
this.partialConfigs = partialConfigs;
}
public GoConfigInvalidMergeException(String summary,CruiseConfig cruiseConfig,
List<PartialConfig> partialConfigs, List<ConfigErrors> allErrors,Throwable e) {
super(cruiseConfig,allErrorsToString(allErrors, summary),e);
this.partialConfigs = partialConfigs;
}
public GoConfigInvalidMergeException(String summary,List<PartialConfig> partials, GoConfigInvalidException failed) {
this(summary,failed.getCruiseConfig(), partials, failed.getCruiseConfig().getAllErrors(),failed);
}
private static String allErrorsToString(List<ConfigErrors> allErrors, String summary) {
if(allErrors == null || allErrors.size() == 0)
return "Error list empty";// should never be
StringBuilder b = new StringBuilder();
b.append(allErrors.size()).append("+ errors :: ");
for(ConfigErrors e : allErrors)
{
b.append(e.firstError()).append(";; ");
}
return b.toString();
}
public List<PartialConfig> getPartialConfigs() {
return partialConfigs;
}
}