import java.util.HashMap;
import java.util.Map;
public class ConfigValidator {
/**
* Validates user-provided configuration parameters.
*
* @param config A map containing the configuration parameters.
* Keys are parameter names (strings), values are parameter values.
* @return A map containing validation errors. If no errors, returns an empty map.
*/
public static Map<String, String> validateConfig(Map<String, String> config) {
Map<String, String> errors = new HashMap<>();
// Example validation rules (customize as needed)
if (config == null) {
errors.put("overall", "Configuration cannot be null.");
return errors;
}
if (config.get("appName") == null || config.get("appName").trim().isEmpty()) {
errors.put("appName", "Application name cannot be empty.");
}
if (config.get("port") == null || !config.get("port").matches("\\d+")) {
errors.put("port", "Port must be a number.");
}
if (config.get("debug") != null && !config.get("debug").equals("true") && !config.get("debug").equals("false")) {
errors.put("debug", "Debug value must be 'true' or 'false'.");
}
if (config.get("databaseUrl") == null || config.get("databaseUrl").trim().isEmpty()) {
errors.put("databaseUrl", "Database URL cannot be empty.");
}
return errors;
}
public static void main(String[] args){
//Example usage
Map<String, String> config1 = new HashMap<>();
config1.put("appName", "MyApplication");
config1.put("port", "8080");
config1.put("debug", "true");
config1.put("databaseUrl", "jdbc:mysql://localhost:3306/mydb");
Map<String, String> errors1 = validateConfig(config1);
System.out.println("Validation errors: " + errors1);
Map<String, String> config2 = new HashMap<>();
config2.put("appName", "");
config2.put("port", "abc");
config2.put("debug", "maybe");
Map<String, String> errors2 = validateConfig(config2);
System.out.println("Validation errors: " + errors2);
}
}
Add your comment