OSDN Git Service

change internal process method, which introducing ExtractionResultSet
[stigmata/stigmata.git] / src / main / java / jp / naist / se / stigmata / result / AbstractExtractionResultSet.java
1 package jp.naist.se.stigmata.result;\r
2 \r
3 /*\r
4  * $Id$\r
5  */\r
6 \r
7 import java.util.Iterator;\r
8 \r
9 import jp.naist.se.stigmata.BirthmarkContext;\r
10 import jp.naist.se.stigmata.BirthmarkEnvironment;\r
11 import jp.naist.se.stigmata.BirthmarkSet;\r
12 import jp.naist.se.stigmata.ExtractionResultSet;\r
13 import jp.naist.se.stigmata.ExtractionTarget;\r
14 \r
15 /**\r
16  * Abstract class for ExtractionResultSet.\r
17  * \r
18  * @author Haruaki Tamada\r
19  * @version $Revision$ $Date$\r
20  */\r
21 public abstract class AbstractExtractionResultSet implements ExtractionResultSet{\r
22     private BirthmarkContext context;\r
23     private boolean tableType = true;\r
24 \r
25     /**\r
26      * constructor.\r
27      */\r
28     public AbstractExtractionResultSet(BirthmarkContext context){\r
29         this(context, true);\r
30     }\r
31 \r
32     /**\r
33      * constructor.\r
34      */\r
35     public AbstractExtractionResultSet(BirthmarkContext context, boolean tableType){\r
36         this.context = context;\r
37     }\r
38 \r
39     public BirthmarkEnvironment getEnvironment(){\r
40         return context.getEnvironment();\r
41     }\r
42 \r
43     public BirthmarkContext getContext(){\r
44         return context;\r
45     }\r
46 \r
47     public abstract void addBirthmarkSet(ExtractionTarget target, BirthmarkSet set);\r
48 \r
49     public abstract void removeBirthmarkSet(ExtractionTarget target, BirthmarkSet set);\r
50 \r
51     public abstract void removeAllBirthmarkSets(ExtractionTarget target);\r
52 \r
53     public abstract int getBirthmarkSetSize(ExtractionTarget target);\r
54 \r
55     public abstract Iterator<BirthmarkSet> birthmarkSets(ExtractionTarget target);\r
56 \r
57     public int getBirthmarkSetSize(){\r
58         return getBirthmarkSetSize(ExtractionTarget.TARGET_BOTH);\r
59     }\r
60 \r
61     public Iterator<BirthmarkSet> iterator(){\r
62         return birthmarkSets(ExtractionTarget.TARGET_BOTH);\r
63     }\r
64 \r
65     public BirthmarkSet getBirthmarkSet(int index){\r
66         return getBirthmarkSet(ExtractionTarget.TARGET_BOTH, index);\r
67     }\r
68 \r
69     public BirthmarkSet getBirthmarkSet(String name){\r
70         return getBirthmarkSet(ExtractionTarget.TARGET_BOTH, name);\r
71     }\r
72 \r
73     public BirthmarkSet[] getBirthmarkSets(){\r
74         return getBirthmarkSets(ExtractionTarget.TARGET_BOTH);\r
75     }\r
76 \r
77     public void removeBirthmarkSet(BirthmarkSet bs){\r
78         removeBirthmarkSet(ExtractionTarget.TARGET_BOTH, bs);\r
79     }\r
80 \r
81     public void removeAllBirthmarkSets(){\r
82         removeAllBirthmarkSets(ExtractionTarget.TARGET_BOTH);\r
83     }\r
84 \r
85     public String[] getBirthmarkTypes(){\r
86         return context.getExtractionTypes();\r
87     }\r
88 \r
89     public BirthmarkSet getBirthmarkSet(ExtractionTarget target, int index){\r
90         int currentIndex = 0;\r
91         for(Iterator<BirthmarkSet> i = birthmarkSets(target); i.hasNext(); ){\r
92             if(currentIndex == index){\r
93                 return i.next();\r
94             }\r
95             i.next();\r
96             currentIndex++;\r
97         }\r
98         return null;\r
99     }\r
100 \r
101     public BirthmarkSet getBirthmarkSet(ExtractionTarget target, String setname){\r
102         for(Iterator<BirthmarkSet> i = birthmarkSets(target); i.hasNext(); ){\r
103             BirthmarkSet bs = i.next();\r
104             if(bs.getName().equals(setname)){\r
105                 return bs;\r
106             }\r
107         }\r
108         return null;\r
109     }\r
110 \r
111     public synchronized BirthmarkSet[] getBirthmarkSets(ExtractionTarget target){\r
112         return AbstractComparisonResultSet.<BirthmarkSet>getArrays(birthmarkSets(target));\r
113     }\r
114 \r
115     public void setBirthmarkSets(ExtractionTarget target, BirthmarkSet[] sets){\r
116         removeAllBirthmarkSets(target);\r
117         for(int i = 0; i < sets.length; i++){\r
118             addBirthmarkSet(target, sets[i]);\r
119         }\r
120     }\r
121 \r
122     public boolean isTableType(){\r
123         return tableType;\r
124     }\r
125 \r
126     public void setTableType(boolean flag){\r
127         this.tableType = flag;\r
128     }\r
129 \r
130 }\r