OSDN Git Service

separate environment and context
[stigmata/stigmata.git] / src / main / java / jp / naist / se / stigmata / BirthmarkContext.java
1 package jp.naist.se.stigmata;\r
2 \r
3 /*\r
4  * $Id$\r
5  */\r
6 \r
7 import java.util.ArrayList;\r
8 import java.util.Collections;\r
9 import java.util.HashMap;\r
10 import java.util.Iterator;\r
11 import java.util.List;\r
12 import java.util.Map;\r
13 \r
14 import jp.naist.se.stigmata.event.OperationType;\r
15 \r
16 /**\r
17  * \r
18  * @author Haruaki Tamada\r
19  * @version $Revision$ $Date$\r
20  */\r
21 class BirthmarkContext{\r
22     public enum ExtractionTarget{\r
23         TARGET_X, TARGET_Y, TARGET_XY;\r
24     };\r
25     private List<String> birthmarkTypes = new ArrayList<String>();\r
26     private ComparisonMethod method = ComparisonMethod.ROUND_ROBIN;\r
27     private ExtractionTarget et = ExtractionTarget.TARGET_X;\r
28     private List<String> filterTypes = new ArrayList<String>();\r
29     private Map<String, String> nameMappings = new HashMap<String, String>();\r
30     private ExtractionUnit unit = ExtractionUnit.CLASS;\r
31     private OperationType operation;\r
32 \r
33     public BirthmarkContext(OperationType type){\r
34         setOperation(type);\r
35     }\r
36 \r
37     public OperationType getOperation(){\r
38         return operation;\r
39     }\r
40 \r
41     public void setOperation(OperationType operation){\r
42         this.operation = operation;\r
43     }\r
44 \r
45     public void addNameMapping(String name1, String name2){\r
46         nameMappings.put(name1, name2);\r
47     }\r
48 \r
49     public void removeNameMapping(String name1){\r
50         nameMappings.remove(name1);\r
51     }\r
52 \r
53     public Map<String, String> getNameMappings(){\r
54         return Collections.unmodifiableMap(nameMappings);\r
55     }\r
56 \r
57     public void setExtractionTarget(ExtractionTarget target){\r
58         this.et = target;\r
59     }\r
60 \r
61     public ExtractionTarget getExtractionTarget(){\r
62         return et;\r
63     }\r
64 \r
65     public void addExtractionType(String type){\r
66         birthmarkTypes.add(type);\r
67     }\r
68 \r
69     public void removeExtractionType(String type){\r
70         birthmarkTypes.remove(type);\r
71     }\r
72 \r
73     public synchronized String[] getExtractionTypes(){\r
74         return birthmarkTypes.toArray(new String[getExtractionTypeCount()]);\r
75     }\r
76 \r
77     public int getExtractionTypeCount(){\r
78         return birthmarkTypes.size();\r
79     }\r
80 \r
81     public ComparisonMethod getComparisonMethod(){\r
82         return method;\r
83     }\r
84 \r
85     public void setComparisonMethod(ComparisonMethod method){\r
86         this.method = method;\r
87     }\r
88 \r
89     public ExtractionUnit getExtractionUnit(){\r
90         return unit;\r
91     }\r
92 \r
93     public void setExtractionUnit(ExtractionUnit unit){\r
94         this.unit = unit;\r
95     }\r
96 \r
97     public void addFilterType(String filterType){\r
98         filterTypes.add(filterType);\r
99     }\r
100 \r
101     public void removeFilterType(String filterType){\r
102         filterTypes.remove(filterType);\r
103     }\r
104 \r
105     public synchronized String[] getFilterTypes(){\r
106         return filterTypes.toArray(new String[getFilterTypesCount()]);\r
107     }\r
108 \r
109     public Iterator<String> filterTypes(){\r
110         return filterTypes.iterator();\r
111     }\r
112 \r
113     public int getFilterTypesCount(){\r
114         return filterTypes.size();\r
115     }\r
116 }\r