view mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/Status.java @ 425:e33c3e4918f5

Add list files support
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Fri, 11 May 2012 15:21:35 +0400
parents
children 31a1aca3305c
line wrap: on
line source
package jetbrains.buildServer.buildTriggers.vcs.mercurial.command;

import org.jetbrains.annotations.NotNull;

import static com.intellij.openapi.util.text.StringUtil.isEmpty;

/**
 * File status, see 'hg help status'.
 */
public enum Status {

  ADDED("added"),
  MODIFIED("modified"),
  REMOVED("removed"),
  CLEAN("clean"),
  MISSING("missing"),
  NOT_TRACKED("not tracked"),
  IGNORED("ignored"),
  UNKNOWN("unknown");

  private final String myName;

  Status(@NotNull String name) {
    myName = name;
  }

  @NotNull
  public String getName() {
    return myName;
  }

  public static Status makeStatus(@NotNull final String s) {
    if (isEmpty(s))
      return UNKNOWN;
    return makeStatus(s.charAt(0));
  }

  public static Status makeStatus(final char c) {
    switch (c) {
      case 'A': return ADDED;
      case 'M': return MODIFIED;
      case 'R': return REMOVED;
      case 'C': return CLEAN;
      case '!': return MISSING;
      case '?': return NOT_TRACKED;
      case 'I': return IGNORED;
      case ' ': return ADDED;
      default : return UNKNOWN;
    }
  }
}