OSDN Git Service

change internal process method, which introducing ExtractionResultSet
[stigmata/stigmata.git] / src / main / java / jp / naist / se / stigmata / result / ExtractionResultSetFactory.java
1 package jp.naist.se.stigmata.result;\r
2 \r
3 import java.lang.reflect.Constructor;\r
4 import java.lang.reflect.InvocationTargetException;\r
5 import java.util.HashMap;\r
6 import java.util.Map;\r
7 \r
8 import jp.naist.se.stigmata.BirthmarkContext;\r
9 import jp.naist.se.stigmata.BirthmarkStoreTarget;\r
10 import jp.naist.se.stigmata.ExtractionResultSet;\r
11 \r
12 public class ExtractionResultSetFactory{\r
13     private static ExtractionResultSetFactory instance = new ExtractionResultSetFactory();\r
14     private Map<String, Class<? extends ExtractionResultSet>> map = new HashMap<String, Class<? extends ExtractionResultSet>>();\r
15 \r
16     private ExtractionResultSetFactory(){\r
17         map.put(BirthmarkStoreTarget.MEMORY.name(), MemoryExtractionResultSet.class);\r
18     }\r
19 \r
20     public static ExtractionResultSetFactory getInstance(){\r
21         return instance;\r
22     }\r
23 \r
24     public ExtractionResultSet createResultSet(BirthmarkContext context){\r
25         return createResultSet(context.getStoreTarget(), context);\r
26     }\r
27 \r
28     public ExtractionResultSet createResultSet(BirthmarkStoreTarget store, BirthmarkContext context){\r
29         try{\r
30             Class<? extends ExtractionResultSet> clazz = map.get(store.name());\r
31             Constructor<? extends ExtractionResultSet> constructor = clazz.getConstructor(BirthmarkContext.class);\r
32             return constructor.newInstance(context);\r
33 \r
34         }catch(NoSuchMethodException e){\r
35         }catch(IllegalArgumentException e){\r
36         }catch(InstantiationException e){\r
37         }catch(IllegalAccessException e){\r
38         }catch(InvocationTargetException e){\r
39         }\r
40         return null;\r
41     }\r
42 }\r