package cmdline0;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;

public class CmdLine {
  private final HashSet<String> registeredOptions = new HashSet<>();
  private final HashSet<String> optionsSeen = new HashSet<>();
  
  public void registerOption(String option) {
    Objects.requireNonNull(option);
    registeredOptions.add(option);
  }
  
  public Set<String> getOptionsSeen() {
    return Collections.unmodifiableSet(optionsSeen);
  }
  
  public List<String> parse(List<String> arguments) {
    ArrayList<String> files = new ArrayList<>();
    for(String argument: arguments) {
      if (registeredOptions.contains(argument)) {
        optionsSeen.add(argument);
      } else {
        files.add(argument);
      }
    }
    return files;
  }
}
