package org.ovirt.engine.core.common.utils.customprop;
import org.ovirt.engine.core.common.errors.EngineMessage;
import org.ovirt.engine.core.compat.StringFormat;
/**
* Errors reasons that may appear during custom properties validation
*/
public enum ValidationFailureReason {
INVALID_DEVICE_TYPE(
EngineMessage.ACTION_TYPE_FAILED_INVALID_DEVICE_TYPE_FOR_CUSTOM_PROPERTIES,
"$InvalidDeviceType %1$s"),
KEY_DOES_NOT_EXIST(EngineMessage.ACTION_TYPE_FAILED_INVALID_CUSTOM_PROPERTIES_INVALID_KEYS, "$MissingKeys %1$s"),
INCORRECT_VALUE(EngineMessage.ACTION_TYPE_FAILED_INVALID_CUSTOM_PROPERTIES_INVALID_VALUES, "$WrongValueKeys %1$s"),
SYNTAX_ERROR(EngineMessage.ACTION_TYPE_FAILED_INVALID_CUSTOM_PROPERTIES_INVALID_SYNTAX, ""),
DUPLICATE_KEY(EngineMessage.ACTION_TYPE_FAILED_INVALID_CUSTOM_PROPERTIES_DUPLICATE_KEYS, "$DuplicateKeys %1$s"),
NO_ERROR(null, "");
/**
* Corresponding global error message
*/
private final EngineMessage errorMessage;
/**
* Global message format string
*/
private final String messageFormat;
/**
* Creates error with specified global error message and message format string
*/
private ValidationFailureReason(EngineMessage errorMessage, String messageFormat) {
this.errorMessage = errorMessage;
this.messageFormat = messageFormat;
}
/**
* Returns corresponding global error message
*/
public EngineMessage getErrorMessage() {
return errorMessage;
}
/**
* Formats error message for specified key
*/
public String formatErrorMessage(String key) {
if (errorMessage == null) {
return "";
} else {
return StringFormat.format(messageFormat, key);
}
}
}