All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.gwdg.metadataqa.marc.cli.parameters.CompletenessParameters Maven / Gradle / Ivy

package de.gwdg.metadataqa.marc.cli.parameters;

import de.gwdg.metadataqa.marc.model.validation.ValidationErrorFormat;
import org.apache.commons.cli.ParseException;

import java.io.Serializable;

public class CompletenessParameters extends CommonParameters implements Serializable {

  private ValidationErrorFormat format = ValidationErrorFormat.COMMA_SEPARATED;
  private boolean advanced = false;
  private boolean onlyPackages = false;
  private boolean isOptionSet;

  protected void setOptions() {
    if (!isOptionSet) {
      super.setOptions();
      options.addOption("r", "format", true, "specify a format");
      options.addOption("v", "advanced", false, "advanced mode");
      options.addOption("p", "onlyPackages", false, "only packages");
      isOptionSet = true;
    }
  }

  public CompletenessParameters() {
    super();
  }

  public CompletenessParameters(String[] arguments) throws ParseException {
    super(arguments);

    if (cmd.hasOption("advanced"))
      advanced = true;

    if (cmd.hasOption("onlyPackages"))
      onlyPackages = true;

    if (cmd.hasOption("format"))
      for (ValidationErrorFormat registeredFormat : ValidationErrorFormat.values()) {
        if (registeredFormat.getNames().contains(cmd.getOptionValue("format"))) {
          format = registeredFormat;
          break;
        }
      }
  }

  public ValidationErrorFormat getFormat() {
    return format;
  }

  public boolean isAdvanced() {
    return advanced;
  }

  public boolean isOnlyPackages() {
    return onlyPackages;
  }

  @Override
  public String formatParameters() {
    String text = super.formatParameters();
    text += String.format("format: %s%n", format.getLabel());
    text += String.format("advanced: %s%n", advanced);
    return text;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy