1 package org
.jetbrains
.idea
.svn
;
3 import com
.intellij
.openapi
.diagnostic
.Logger
;
4 import org
.tmatesoft
.svn
.core
.SVNDepth
;
5 import org
.tmatesoft
.svn
.core
.SVNException
;
6 import org
.tmatesoft
.svn
.core
.internal
.wc
.DefaultSVNOptions
;
7 import org
.tmatesoft
.svn
.core
.wc
.ISVNStatusHandler
;
8 import org
.tmatesoft
.svn
.core
.wc
.SVNRevision
;
9 import org
.tmatesoft
.svn
.core
.wc
.SVNStatus
;
10 import org
.tmatesoft
.svn
.core
.wc
.SVNStatusType
;
15 public class IgnoredFileInfo
{
16 private static final Logger LOG
= Logger
.getInstance("#org.jetbrains.idea.svn.IgnoredFileInfo");
18 // directory for which properties are collected
19 private final File myFile
;
20 private final List
<String
> myPatterns
;
21 private final Set
<String
> myFileNames
;
22 private final Set
<String
> myOldPatterns
;
24 public IgnoredFileInfo(final File file
, final Set
<String
> oldPatterns
) {
26 myPatterns
= new ArrayList
<String
>();
27 myFileNames
= new HashSet
<String
>();
28 myOldPatterns
= oldPatterns
;
31 public void addFileName(final String name
) {
32 myFileNames
.add(name
);
35 public void addPattern(final String value
) {
36 myPatterns
.add(value
);
39 public void calculatePatterns(final SvnVcs vcs
) {
40 final List
<String
> names
= new ArrayList
<String
>();
42 vcs
.createStatusClient().doStatus(myFile
, SVNRevision
.WORKING
, SVNDepth
.IMMEDIATES
, false, true, true, false, new ISVNStatusHandler() {
43 public void handleStatus(SVNStatus status
) throws SVNException
{
44 if (SVNStatusType
.STATUS_IGNORED
== status
.getContentsStatus()) {
45 final String name
= status
.getFile().getName();
46 if (! myFileNames
.contains(name
)) {
53 catch (SVNException e
) {
57 for (String pattern
: myOldPatterns
) {
58 boolean usedSomewhereElse
= false;
59 for (String name
: names
) {
60 if (DefaultSVNOptions
.matches(pattern
, name
)) {
61 usedSomewhereElse
= true;
66 if (! usedSomewhereElse
) {
67 for (String name
: myFileNames
) {
68 if (DefaultSVNOptions
.matches(pattern
, name
)) {
69 myPatterns
.add(pattern
);
77 public File
getFile() {
81 public List
<String
> getPatterns() {
85 public Set
<String
> getFileNames() {
89 public Set
<String
> getOldPatterns() {