OSDN Git Service

Delete Subversion Tags (Revision, Id)
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / result / history / XmlFileExtractedBirthmarkHistory.java
1 package jp.sourceforge.stigmata.result.history;
2
3 import java.io.File;
4 import java.util.Iterator;
5 import java.util.LinkedHashMap;
6 import java.util.Map;
7
8 import jp.sourceforge.stigmata.BirthmarkEnvironment;
9 import jp.sourceforge.stigmata.ExtractionResultSet;
10 import jp.sourceforge.stigmata.result.XmlFileExtractionResultSet;
11 import jp.sourceforge.stigmata.utils.Utility;
12
13 /**
14  * 
15  * @author Haruaki Tamada
16  */
17 public class XmlFileExtractedBirthmarkHistory implements ExtractedBirthmarkHistory{
18     private File parent;
19     private Map<String, File> files = new LinkedHashMap<String, File>();
20
21     public XmlFileExtractedBirthmarkHistory(){
22         this(new File(BirthmarkEnvironment.getStigmataHome(), "extracted_birthmarks"));
23     }
24
25     public XmlFileExtractedBirthmarkHistory(String path){
26         this(new File(path));
27     }
28
29     public XmlFileExtractedBirthmarkHistory(File parent){
30         this.parent = parent;
31
32         refresh();
33     }
34
35     @Override
36     public void refresh(){
37         files.clear();
38
39         if(parent.exists()){
40             for(File file: parent.listFiles()){
41                 if(isTarget(file)){
42                     files.put(file.getName(), file);
43                 }
44             }
45         }
46     }
47
48     @Override
49     public void deleteAllResultSets(){
50         for(File file: parent.listFiles()){
51             if(isTarget(file)){
52                 Utility.deleteDirectory(file);
53             }
54         }
55     }
56
57     @Override
58     public void deleteResultSet(String id){
59         File file = files.get(id);
60         if(file != null){
61             if(file.isDirectory()){
62                 Utility.deleteDirectory(file);
63             }
64             else{
65                 file.delete();
66             }
67         }
68     }
69
70     @Override
71     public ExtractionResultSet getResultSet(String id){
72         File file = files.get(id);
73         if(file != null){
74             return new XmlFileExtractionResultSet(file);
75         }
76         return null;
77     }
78
79     @Override
80     public synchronized String[] getResultSetIds(){
81         return files.keySet().toArray(new String[files.size()]);
82     }
83
84     @Override
85     public Iterator<String> iterator(){
86         return files.keySet().iterator();
87     }
88
89     private boolean isTarget(File file){
90         return file.isDirectory()
91             && file.getName().matches("\\d\\d\\d\\d\\d\\d\\d\\d-\\d\\d\\d\\d\\d\\d.\\d\\d\\d"); 
92     }
93 }