1 package jp.naist.se.stigmata;
\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
14 import jp.naist.se.stigmata.event.OperationType;
\r
18 * @author Haruaki Tamada
\r
19 * @version $Revision$ $Date$
\r
21 class BirthmarkContext{
\r
22 public enum ExtractionTarget{
\r
23 TARGET_X, TARGET_Y, TARGET_XY;
\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
33 public BirthmarkContext(OperationType type){
\r
37 public OperationType getOperation(){
\r
41 public void setOperation(OperationType operation){
\r
42 this.operation = operation;
\r
45 public void addNameMapping(String name1, String name2){
\r
46 nameMappings.put(name1, name2);
\r
49 public void removeNameMapping(String name1){
\r
50 nameMappings.remove(name1);
\r
53 public Map<String, String> getNameMappings(){
\r
54 return Collections.unmodifiableMap(nameMappings);
\r
57 public void setExtractionTarget(ExtractionTarget target){
\r
61 public ExtractionTarget getExtractionTarget(){
\r
65 public void addExtractionType(String type){
\r
66 birthmarkTypes.add(type);
\r
69 public void removeExtractionType(String type){
\r
70 birthmarkTypes.remove(type);
\r
73 public synchronized String[] getExtractionTypes(){
\r
74 return birthmarkTypes.toArray(new String[getExtractionTypeCount()]);
\r
77 public int getExtractionTypeCount(){
\r
78 return birthmarkTypes.size();
\r
81 public ComparisonMethod getComparisonMethod(){
\r
85 public void setComparisonMethod(ComparisonMethod method){
\r
86 this.method = method;
\r
89 public ExtractionUnit getExtractionUnit(){
\r
93 public void setExtractionUnit(ExtractionUnit unit){
\r
97 public void addFilterType(String filterType){
\r
98 filterTypes.add(filterType);
\r
101 public void removeFilterType(String filterType){
\r
102 filterTypes.remove(filterType);
\r
105 public synchronized String[] getFilterTypes(){
\r
106 return filterTypes.toArray(new String[getFilterTypesCount()]);
\r
109 public Iterator<String> filterTypes(){
\r
110 return filterTypes.iterator();
\r
113 public int getFilterTypesCount(){
\r
114 return filterTypes.size();
\r