import java.util.HashMap;
import java.util.Map;
public class EnvironmentValidator {
/**
* Validates environment variables against specified limits.
* @param env The system's environment variables.
* @param limits A map defining the maximum allowed length for each environment variable.
* @return A map of violated environment variables and their values. Returns an empty map if all variables are valid.
*/
public static Map<String, String> validateEnvironment(Map<String, String> env, Map<String, Integer> limits) {
Map<String, String> violations = new HashMap<>();
if (env == null || limits == null) {
return violations; // Return empty map if input is invalid
}
for (Map.Entry<String, String> entry : env.entrySet()) {
String variableName = entry.getKey();
String variableValue = entry.getValue();
if (limits.containsKey(variableName)) {
int maxLength = limits.get(variableName);
if (variableValue.length() > maxLength) {
violations.put(variableName, variableValue);
}
}
}
return violations;
}
public static void main(String[] args) {
// Example Usage
Map<String, String> environment = new HashMap<>();
environment.put("MY_VARIABLE", "This is a test string");
environment.put("ANOTHER_VARIABLE", "A very long string that exceeds the limit");
environment.put("SHORT_VAR", "short");
Map<String, Integer> limits = new HashMap<>();
limits.put("MY_VARIABLE", 20);
limits.put("ANOTHER_VARIABLE", 10);
Map<String, String> violations = validateEnvironment(environment, limits);
if (violations.isEmpty()) {
System.out.println("All environment variables are valid.");
} else {
System.out.println("The following environment variables exceed their limits:");
for (Map.Entry<String, String> entry : violations.entrySet()) {
System.out.println(entry.getKey() + " = " + entry.getValue());
}
}
}
}
Add your comment