package water.exceptions;
import hex.Model;
import hex.ModelBuilder;
import water.H2OModelBuilderError;
import water.util.IcedHashMap;
import water.util.IcedHashMapGeneric;
public class H2OModelBuilderIllegalArgumentException extends H2OIllegalArgumentException {
/** Raw-message constructor for use by the factory method. */
private H2OModelBuilderIllegalArgumentException(String message, String dev_message) {
super(message, dev_message);
}
public static H2OModelBuilderIllegalArgumentException makeFromBuilder(ModelBuilder builder) {
Model.Parameters parameters = builder._parms;
String algo = builder._parms.algoName();
String msg = "Illegal argument(s) for " + algo + " model: " + builder.dest() + ". Details: " + builder.validationErrors();
H2OModelBuilderIllegalArgumentException exception = new H2OModelBuilderIllegalArgumentException(msg, msg);
exception.values = new IcedHashMapGeneric.IcedHashMapStringObject();
exception.values.put("algo", algo);
exception.values.put("parameters", parameters);
exception.values.put("error_count", builder.error_count());
exception.values.put("messages", builder._messages);
return exception;
}
public H2OModelBuilderError toH2OError() {
return new H2OModelBuilderError(timestamp, null, getMessage(), dev_message, HTTP_RESPONSE_CODE(), values, this);
}
public H2OModelBuilderError toH2OError(String error_url) {
return new H2OModelBuilderError(timestamp, error_url, getMessage(), dev_message, HTTP_RESPONSE_CODE(), values, this);
}
}