view mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandSettings.java @ 679:1da36037196d

TW-30905 include stderr into VcsException messages, so it is shown in a build log
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Tue, 26 Nov 2013 15:35:11 +0400
parents 40c085517770
children 31a1aca3305c
line wrap: on
line source
package jetbrains.buildServer.buildTriggers.vcs.mercurial.command;

import org.jetbrains.annotations.NotNull;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
 * @author dmitry.neverov
 */
public class CommandSettings {

  private int myTimeout = 3600;
  private Set<String> myPrivateData = new HashSet<String>();
  private boolean myCheckForFailure = true;
  private boolean myFailWhenStderrNotEmpty = false;
  private String myLogLevel = "debug";
  private Map<String, String> myHgEnv = new HashMap<String, String>();
  private int myLogOutputLimit = -1;
  private int myExceptionOutputLimit = 5000;

  public CommandSettings() {

  }

  public CommandSettings(int timeout,
                         @NotNull Set<String> privateData,
                         boolean checkForFailure,
                         boolean failWhenStderrNotEmpty,
                         @NotNull String logLevel) {
    myTimeout = timeout;
    myPrivateData = privateData;
    myCheckForFailure = checkForFailure;
    myFailWhenStderrNotEmpty = failWhenStderrNotEmpty;
    myLogLevel = logLevel;
  }

  public CommandSettings setTimeout(int timeout) {
    myTimeout = timeout;
    return this;
  }

  public int getTimeout() {
    return myTimeout;
  }

  public CommandSettings setPrivateData(@NotNull Set<String> privateData) {
    myPrivateData = privateData;
    return this;
  }

  @NotNull
  public Set<String> getPrivateData() {
    return myPrivateData;
  }

  public CommandSettings setCheckForFailure(boolean checkForFailure) {
    myCheckForFailure = checkForFailure;
    return this;
  }

  public boolean isCheckForFailure() {
    return myCheckForFailure;
  }

  public CommandSettings setFailWhenStderrNotEmpty(boolean failWhenStderrNotEmpty) {
    myFailWhenStderrNotEmpty = failWhenStderrNotEmpty;
    return this;
  }

  public boolean isFailWithNonEmptyStderr() {
    return myFailWhenStderrNotEmpty;
  }

  public CommandSettings setLogLevel(String logLevel) {
    myLogLevel = logLevel;
    return this;
  }

  public String getLogLevel() {
    return myLogLevel;
  }

  public CommandSettings addHgEnv(@NotNull String param, @NotNull String value) {
    myHgEnv.put(param, value);
    return this;
  }

  public Map<String, String> getHgEnv() {
    return myHgEnv;
  }

  public int getLogOutputLimit() {
    return myLogOutputLimit;
  }

  public CommandSettings setLogOutputLimit(int logOutputLimit) {
    myLogOutputLimit = logOutputLimit;
    return this;
  }

  public int getExceptionOutputLimit() {
    return myExceptionOutputLimit;
  }

  public void setExceptionOutputLimit(int limit) {
    myExceptionOutputLimit = limit;
  }
}