OSDN Git Service

change internal process method, which introducing ExtractionResultSet
[stigmata/stigmata.git] / src / main / java / jp / naist / se / stigmata / result / SingleExtractionResultSet.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 import java.util.NoSuchElementException;\r
9 \r
10 import jp.naist.se.stigmata.BirthmarkContext;\r
11 import jp.naist.se.stigmata.BirthmarkSet;\r
12 import jp.naist.se.stigmata.ExtractionTarget;\r
13 import jp.naist.se.stigmata.utils.NullIterator;\r
14 \r
15 /**\r
16  *\r
17  * @author Haruaki Tamada\r
18  * @version $Revision$ $Date$\r
19  */\r
20 public class SingleExtractionResultSet extends AbstractExtractionResultSet{\r
21     private BirthmarkSet bs;\r
22 \r
23     public SingleExtractionResultSet(BirthmarkContext context, BirthmarkSet bs){\r
24         super(context, false);\r
25         this.bs = bs;\r
26     }\r
27 \r
28     public SingleExtractionResultSet(BirthmarkContext context){\r
29         super(context, false);\r
30     }\r
31 \r
32     public void addBirthmarkSet(ExtractionTarget target, BirthmarkSet set){\r
33         this.bs = set;\r
34     }\r
35 \r
36     public void setBirthmarkSets(ExtractionTarget target, BirthmarkSet[] sets){\r
37         this.bs = sets[0];\r
38     }\r
39 \r
40     public Iterator<BirthmarkSet> birthmarkSets(ExtractionTarget target){\r
41         if(bs != null){\r
42             return new SingleIterator(bs);\r
43         }\r
44         return new NullIterator<BirthmarkSet>();\r
45     }\r
46 \r
47     public void removeBirthmarkSet(ExtractionTarget target, BirthmarkSet set){\r
48         bs = null;\r
49     }\r
50 \r
51     public void removeAllBirthmarkSets(ExtractionTarget target){\r
52         bs = null;\r
53     }\r
54 \r
55     public BirthmarkSet getBirthmarkSet(ExtractionTarget target, int index){\r
56         if(index != 0){\r
57             throw new IndexOutOfBoundsException("illegal index: " + index);\r
58         }\r
59         return bs;\r
60     }\r
61 \r
62     public BirthmarkSet getBirthmarkSet(ExtractionTarget target, String name){\r
63         if(bs.getName().equals(name)){\r
64             return bs;\r
65         }\r
66         return null;\r
67     }\r
68 \r
69     public int getBirthmarkSetSize(ExtractionTarget target){\r
70         return 1;\r
71     }\r
72 \r
73     private static class SingleIterator implements Iterator<BirthmarkSet>{\r
74         private boolean first = true;\r
75         private BirthmarkSet bs;\r
76 \r
77         public SingleIterator(BirthmarkSet bs){\r
78             this.bs = bs;\r
79         }\r
80 \r
81         public BirthmarkSet next(){\r
82             if(first){\r
83                 return bs;\r
84             }\r
85             throw new NoSuchElementException();\r
86         }\r
87 \r
88         public boolean hasNext(){\r
89             boolean flag = first;\r
90             first = false;\r
91             return flag;\r
92         }\r
93 \r
94         public void remove(){\r
95         }\r
96     }\r
97 }\r