SVN: new Show Working Copies view, with Configure Branches from there
[idea/community.git] / plugins / svn4idea / src / org / jetbrains / idea / svn / WorkingCopyFormat.java
1 /*
2  * Copyright 2000-2009 JetBrains s.r.o.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16 package org.jetbrains.idea.svn;
17
18 /**
19  * since not all constants are available from svnkit & constants are fixed
20  */
21 public enum WorkingCopyFormat {
22   ONE_DOT_THREE(4, false, false, false, SvnBundle.message("dialog.show.svn.map.table.version13.text")),
23   ONE_DOT_FOUR(8, false, false, false, SvnBundle.message("dialog.show.svn.map.table.version14.text")),
24   ONE_DOT_FIVE(9, true, true, false, SvnBundle.message("dialog.show.svn.map.table.version15.text")),
25   ONE_DOT_SIX(10, true, true, true, SvnBundle.message("dialog.show.svn.map.table.version16.text")),
26   UNKNOWN(0, false, false, false, "unknown");
27
28   private final int myFormat;
29   private final boolean myChangelistSupport;
30   private final boolean myMergeInfoSupport;
31   private final boolean myTreeConflictSupport;
32   private final String myName;
33
34   private WorkingCopyFormat(final int format, boolean changelistSupport, boolean mergeInfoSupport, boolean treeConflictSupport, String name) {
35     myFormat = format;
36     myChangelistSupport = changelistSupport;
37     myMergeInfoSupport = mergeInfoSupport;
38     myTreeConflictSupport = treeConflictSupport;
39     myName = name;
40   }
41
42   public boolean supportsChangelists() {
43     return myChangelistSupport;
44   }
45
46   public boolean supportsMergeInfo() {
47     return myMergeInfoSupport;
48   }
49
50   public boolean supportsTreeConflicts() {
51     return myTreeConflictSupport;
52   }
53
54   public String getName() {
55     return myName;
56   }
57
58   public static WorkingCopyFormat getInstance(final int value) {
59     if (ONE_DOT_FIVE.getFormat() == value) {
60       return ONE_DOT_FIVE;
61     } else if (ONE_DOT_FOUR.getFormat() == value) {
62       return ONE_DOT_FOUR;
63     } else if (ONE_DOT_THREE.getFormat() == value) {
64       return ONE_DOT_THREE;
65     } else if (ONE_DOT_SIX.getFormat() == value) {
66       return ONE_DOT_SIX;
67     }
68     return UNKNOWN;
69   }
70
71   public static WorkingCopyFormat getInstance(final String updateOption) {
72     if (SvnConfiguration.UPGRADE_AUTO_16.equals(updateOption)) {
73       return ONE_DOT_SIX;
74     } else if (SvnConfiguration.UPGRADE_AUTO_15.equals(updateOption)) {
75       return ONE_DOT_FIVE;
76     } else if (SvnConfiguration.UPGRADE_AUTO.equals(updateOption)) {
77       return ONE_DOT_FOUR;
78     }
79     return ONE_DOT_THREE;
80   }
81
82   public int getFormat() {
83     return myFormat;
84   }
85
86   public String getOption() {
87     if (ONE_DOT_SIX.equals(this)) {
88       return SvnConfiguration.UPGRADE_AUTO_16;
89     } else if (ONE_DOT_FIVE.equals(this)) {
90       return SvnConfiguration.UPGRADE_AUTO_15;
91     } else if (ONE_DOT_FOUR.equals(this)) {
92       return SvnConfiguration.UPGRADE_AUTO;
93     }
94     return SvnConfiguration.UPGRADE_NONE;
95   }
96 }