1. import java.util.HashMap;
  2. import java.util.Map;
  3. public class EnvironmentValidator {
  4. /**
  5. * Validates environment variables against specified limits.
  6. * @param env The system's environment variables.
  7. * @param limits A map defining the maximum allowed length for each environment variable.
  8. * @return A map of violated environment variables and their values. Returns an empty map if all variables are valid.
  9. */
  10. public static Map<String, String> validateEnvironment(Map<String, String> env, Map<String, Integer> limits) {
  11. Map<String, String> violations = new HashMap<>();
  12. if (env == null || limits == null) {
  13. return violations; // Return empty map if input is invalid
  14. }
  15. for (Map.Entry<String, String> entry : env.entrySet()) {
  16. String variableName = entry.getKey();
  17. String variableValue = entry.getValue();
  18. if (limits.containsKey(variableName)) {
  19. int maxLength = limits.get(variableName);
  20. if (variableValue.length() > maxLength) {
  21. violations.put(variableName, variableValue);
  22. }
  23. }
  24. }
  25. return violations;
  26. }
  27. public static void main(String[] args) {
  28. // Example Usage
  29. Map<String, String> environment = new HashMap<>();
  30. environment.put("MY_VARIABLE", "This is a test string");
  31. environment.put("ANOTHER_VARIABLE", "A very long string that exceeds the limit");
  32. environment.put("SHORT_VAR", "short");
  33. Map<String, Integer> limits = new HashMap<>();
  34. limits.put("MY_VARIABLE", 20);
  35. limits.put("ANOTHER_VARIABLE", 10);
  36. Map<String, String> violations = validateEnvironment(environment, limits);
  37. if (violations.isEmpty()) {
  38. System.out.println("All environment variables are valid.");
  39. } else {
  40. System.out.println("The following environment variables exceed their limits:");
  41. for (Map.Entry<String, String> entry : violations.entrySet()) {
  42. System.out.println(entry.getKey() + " = " + entry.getValue());
  43. }
  44. }
  45. }
  46. }

Add your comment