1. import java.util.List;
  2. import java.util.ArrayList;
  3. public class ConfigValidator {
  4. /**
  5. * Validates a list configuration against predefined rules.
  6. *
  7. * @param config The list configuration to validate.
  8. * @param expectedSize The expected size of the list.
  9. * @param allowedValues A list of allowed values for elements in the list.
  10. * @return True if the configuration is valid, false otherwise.
  11. */
  12. public static boolean validateListConfig(List<?> config, int expectedSize, List<?> allowedValues) {
  13. if (config == null) {
  14. System.err.println("Error: Config list cannot be null.");
  15. return false;
  16. }
  17. if (config.size() != expectedSize) {
  18. System.err.println("Error: Config list size is incorrect. Expected: " + expectedSize + ", Actual: " + config.size());
  19. return false;
  20. }
  21. for (Object item : config) {
  22. if (!allowedValues.contains(item)) {
  23. System.err.println("Error: Invalid value in config list: " + item);
  24. return false;
  25. }
  26. }
  27. return true;
  28. }
  29. public static void main(String[] args) {
  30. //Example Usage
  31. List<String> validConfig = new ArrayList<>();
  32. validConfig.add("value1");
  33. validConfig.add("value2");
  34. validConfig.add("value3");
  35. List<String> invalidConfigSize = new ArrayList<>();
  36. invalidConfigSize.add("value1");
  37. invalidConfigSize.add("value2");
  38. List<String> invalidConfigValue = new ArrayList<>();
  39. invalidConfigValue.add("value1");
  40. invalidConfigValue.add("invalidValue");
  41. invalidConfigValue.add("value3");
  42. List<String> allowedValues = List.of("value1", "value2", "value3");
  43. System.out.println("Valid Config: " + validateListConfig(validConfig, 3, allowedValues));
  44. System.out.println("Invalid Config Size: " + validateListConfig(invalidConfigSize, 3, allowedValues));
  45. System.out.println("Invalid Config Value: " + validateListConfig(invalidConfigValue, 3, allowedValues));
  46. }
  47. }

Add your comment