package com.airlock.iam.common.application.configuration.userprofile;

import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

public final class EnumerationConfiguration {
   private static final Pattern NEWLINE_PATTERN = Pattern.compile("[\r\n]+");
   private final String itemList;
   private List<String> itemsAsList;

   public List<String> getItemsAsList() {
      if (this.itemsAsList == null) {
         String[] values = NEWLINE_PATTERN.split(this.itemList);
         List<String> items = new ArrayList<>(values.length);

         for (String item : values) {
            String val = item.trim();
            if (!val.isEmpty()) {
               items.add(val);
            }
         }

         this.itemsAsList = items;
      }

      return List.copyOf(this.itemsAsList);
   }

   @SuppressFBWarnings(justification = "generated code")
   public EnumerationConfiguration(String itemList) {
      this.itemList = itemList;
   }
}
