blob: 71eaf6d96b1afbcbdabdac4e75e116082bd18bad [file] [log] [blame]
/*
* Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.idea.svn.conflict;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import java.util.Map;
/**
* @author Konstantin Kolosovsky.
*/
public enum ConflictReason {
EDITED("edit", "edited"),
OBSTRUCTED("obstruction", "obstruct", "obstructed"),
DELETED("delete", "deleted"),
MISSING("missing", "miss"),
UNVERSIONED("unversioned", "unversion"),
/**
* @since 1.6
*/
ADDED("add", "added"),
/**
* @since 1.7
*/
REPLACED("replace", "replaced"),
/**
* @since 1.8
*/
MOVED_AWAY("moved-away"),
MOVED_HERE("moved-here");
@NotNull private static final Map<String, ConflictReason> ourAllReasons = ContainerUtil.newHashMap();
static {
for (ConflictReason reason : ConflictReason.values()) {
register(reason);
}
}
@NotNull private final String myKey;
@NotNull private final String[] myOtherKeys;
ConflictReason(@NotNull String key, @NotNull String... otherKeys) {
myKey = key;
myOtherKeys = otherKeys;
}
@Override
public String toString() {
return myKey;
}
private static void register(@NotNull ConflictReason reason) {
ourAllReasons.put(reason.myKey, reason);
for (String key : reason.myOtherKeys) {
ourAllReasons.put(key, reason);
}
}
@NotNull
public static ConflictReason from(@NotNull String reasonName) {
ConflictReason result = ourAllReasons.get(reasonName);
if (result == null) {
throw new IllegalArgumentException("Unknown conflict reason " + reasonName);
}
return result;
}
}