ひとまず実装できた。
[nucalgen] / nucalgen / src / main / java / jp / satomichan / nucalgen / NamedAreaStore.java
1 package jp.satomichan.nucalgen;
2
3 import java.util.HashMap;
4 import java.util.Map;
5 import java.util.Map.Entry;
6 import java.util.Set;
7 import java.util.regex.Matcher;
8
9 import org.apache.poi.ss.usermodel.Cell;
10 import org.apache.poi.ss.util.CellReference;
11
12 public class NamedAreaStore {
13
14         private static NamedAreaStore instance = new NamedAreaStore();
15         
16         private Map<String, String> namedAreaMap = new HashMap<String, String>();
17         
18         private NamedAreaStore() {
19                 //
20         }
21         
22         static NamedAreaStore getInstance() {
23                 return NamedAreaStore.instance;
24         }
25         
26         static String getAreaString(int row1, int col1, int row2, int col2) {
27                 String ret = new CellReference(row1, col1, true, true).formatAsString();
28                 
29                 if(row1 != row2 || col1 != col2) {
30                         ret = ret + ":" + new CellReference(row2, col2, true, true).formatAsString();
31                 }
32                 
33                 return ret;
34         }
35         
36         String save(String areaname, int row1, int col1, int row2, int col2) {
37                 String area = getAreaString(row1, col1, row2, col2);
38                 areaname = Matcher.quoteReplacement(areaname);
39                 this.namedAreaMap.put(areaname, area);
40                 
41                 return area;
42         }
43         
44         
45         String save(String areaname, int row, int col) {
46                 return this.save(areaname, row, col, row, col);
47         }
48         
49         
50         String save(String areaname, Cell cell) {
51                 return this.save(areaname, cell.getRowIndex(), cell.getColumnIndex());
52         }
53         
54         
55         String load(String areaName) {
56                 areaName = Matcher.quoteReplacement(areaName);
57                 return this.namedAreaMap.get(areaName);
58         }
59         
60         
61         Set<Entry<String, String>> entrySet(){
62                 return this.namedAreaMap.entrySet();
63         }
64         
65 }