1. import java.util.*;
  2. import java.util.concurrent.atomic.AtomicBoolean;
  3. public class ConfigurationValidator {
  4. private static final AtomicBoolean validationSuccess = new AtomicBoolean(true);
  5. public static boolean validateConfiguration(Map<String, String> configuration) {
  6. if (configuration == null) {
  7. System.err.println("Error: Configuration is null.");
  8. validationSuccess.set(false);
  9. return false;
  10. }
  11. Set<String> seenValues = new HashSet<>();
  12. List<String> duplicateKeys = new ArrayList<>();
  13. for (Map.Entry<String, String> entry : configuration.entrySet()) {
  14. String key = entry.getKey();
  15. String value = entry.getValue();
  16. if (value != null) { //Handle null values
  17. if (!seenValues.add(value)) {
  18. duplicateKeys.add(key);
  19. }
  20. }
  21. }
  22. if (!duplicateKeys.isEmpty()) {
  23. System.err.println("Error: Duplicate configuration values found for keys: " + duplicateKeys);
  24. validationSuccess.set(false);
  25. return false;
  26. }
  27. System.out.println("Configuration validated successfully.");
  28. return true;
  29. }
  30. public static boolean isValidationSuccessful() {
  31. return validationSuccess.get();
  32. }
  33. public static void main(String[] args) {
  34. // Example Usage
  35. Map<String, String> config1 = new HashMap<>();
  36. config1.put("setting1", "value1");
  37. config1.put("setting2", "value2");
  38. config1.put("setting3", "value1"); // Duplicate
  39. config1.put("setting4", null); //Test null value
  40. Map<String, String> config2 = new HashMap<>();
  41. config2.put("setting1", "value1");
  42. config2.put("setting2", "value2");
  43. config2.put("setting3", "value3");
  44. System.out.println("Validating config1...");
  45. validateConfiguration(config1);
  46. System.out.println("Validation successful: " + isValidationSuccessful());
  47. System.out.println("Validating config2...");
  48. validateConfiguration(config2);
  49. System.out.println("Validation successful: " + isValidationSuccessful());
  50. System.out.println("Validating null config...");
  51. validateConfiguration(null);
  52. System.out.println("Validation successful: " + isValidationSuccessful());
  53. }
  54. }

Add your comment