IDEA-26360 (Performance and inconsistency issues with svn:externals and "Detect neste...
[fedora-idea.git] / plugins / svn4idea / src / org / jetbrains / idea / svn / SvnStatusConvertor.java
blob0c2cdf1fef59721951e5ac5269a935b915b7d594
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org.jetbrains.idea.svn;
18 import com.intellij.openapi.vcs.FileStatus;
19 import org.tmatesoft.svn.core.wc.SVNStatus;
20 import org.tmatesoft.svn.core.wc.SVNStatusType;
21 import org.tmatesoft.svn.core.SVNException;
23 public class SvnStatusConvertor {
24 private SvnStatusConvertor() {
27 public static FileStatus convertStatus(final SVNStatus status) throws SVNException {
28 if (status == null) {
29 return FileStatus.UNKNOWN;
31 if (status.getContentsStatus() == SVNStatusType.STATUS_UNVERSIONED) {
32 return FileStatus.UNKNOWN;
34 else if (status.getContentsStatus() == SVNStatusType.STATUS_MISSING) {
35 return FileStatus.DELETED_FROM_FS;
37 else if (status.getContentsStatus() == SVNStatusType.STATUS_EXTERNAL) {
38 return SvnFileStatus.EXTERNAL;
40 else if (status.getContentsStatus() == SVNStatusType.STATUS_OBSTRUCTED) {
41 return SvnFileStatus.OBSTRUCTED;
43 else if (status.getContentsStatus() == SVNStatusType.STATUS_IGNORED) {
44 return FileStatus.IGNORED;
46 else if (status.getContentsStatus() == SVNStatusType.STATUS_ADDED) {
47 return FileStatus.ADDED;
49 else if (status.getContentsStatus() == SVNStatusType.STATUS_DELETED) {
50 return FileStatus.DELETED;
52 else if (status.getContentsStatus() == SVNStatusType.STATUS_REPLACED) {
53 return SvnFileStatus.REPLACED;
55 else if (status.getContentsStatus() == SVNStatusType.STATUS_CONFLICTED ||
56 status.getPropertiesStatus() == SVNStatusType.STATUS_CONFLICTED) {
57 if (status.getContentsStatus() == SVNStatusType.STATUS_CONFLICTED &&
58 status.getPropertiesStatus() == SVNStatusType.STATUS_CONFLICTED) {
59 return FileStatus.MERGED_WITH_BOTH_CONFLICTS;
60 } else if (status.getContentsStatus() == SVNStatusType.STATUS_CONFLICTED) {
61 return FileStatus.MERGED_WITH_CONFLICTS;
63 return FileStatus.MERGED_WITH_PROPERTY_CONFLICTS;
65 else if (status.getContentsStatus() == SVNStatusType.STATUS_MODIFIED ||
66 status.getPropertiesStatus() == SVNStatusType.STATUS_MODIFIED) {
67 return FileStatus.MODIFIED;
69 else if (status.isSwitched()) {
70 return FileStatus.SWITCHED;
72 else if (status.isCopied()) {
73 return FileStatus.ADDED;
75 return FileStatus.NOT_CHANGED;