]> gerrit.simantics Code Review - simantics/interop.git/blob - org.simantics.excel.poi/src/org/simantics/excel/poi/parser/CellDataResolverBase.java
6788b82f8d6c825d1318dae313f593df81e9e1d8
[simantics/interop.git] / org.simantics.excel.poi / src / org / simantics / excel / poi / parser / CellDataResolverBase.java
1 package org.simantics.excel.poi.parser;\r
2 \r
3 import org.apache.poi.ss.usermodel.Cell;\r
4 import org.apache.poi.ss.usermodel.Row;\r
5 \r
6 public abstract class CellDataResolverBase<T> implements DataResolver<T> {\r
7         \r
8                 \r
9         protected Double getCellNumericValue(Cell cell) {\r
10                 if (cell == null)\r
11                         return null;\r
12                 switch (cell.getCellTypeEnum()) {\r
13                 case BLANK:\r
14                         return null;\r
15                 case BOOLEAN:\r
16                         return null;\r
17                 case ERROR:\r
18                         return null;\r
19                 case FORMULA:\r
20                         return null;\r
21                 case NUMERIC:\r
22                         return cell.getNumericCellValue();\r
23                 case STRING:\r
24                         return null;\r
25                 case _NONE:\r
26                         return null;\r
27                 }\r
28                 throw new RuntimeException();\r
29         }\r
30         \r
31         protected String getCellStringValue(Cell cell) {\r
32                 if (cell == null)\r
33                         return null;\r
34                 switch (cell.getCellTypeEnum()) {\r
35                 case BLANK:\r
36                         return null;\r
37                 case BOOLEAN:\r
38                         return Boolean.toString(cell.getBooleanCellValue());\r
39                 case ERROR:\r
40                         return null;\r
41                 case FORMULA:\r
42                         return null;\r
43                 case NUMERIC:\r
44                         return Double.toString(cell.getNumericCellValue());\r
45                 case STRING:\r
46                         return cell.getStringCellValue();\r
47                 case _NONE:\r
48                         return null;\r
49                 }\r
50                 throw new RuntimeException();\r
51         }\r
52         \r
53         protected Boolean getCellBooleanValue(Cell cell) {\r
54                 if (cell == null)\r
55                         return null;\r
56                 switch (cell.getCellTypeEnum()) {\r
57                 case BLANK:\r
58                         return null;\r
59                 case BOOLEAN:\r
60                         return cell.getBooleanCellValue();\r
61                 case ERROR:\r
62                         return null;\r
63                 case FORMULA:\r
64                         return null;\r
65                 case NUMERIC:\r
66                         return null;\r
67                 case STRING:\r
68                         String value = cell.getStringCellValue();\r
69                         if ("true".equalsIgnoreCase(value))\r
70                                 return true;\r
71                         if ("1".equalsIgnoreCase(value))\r
72                                 return true;\r
73                         return false;\r
74                 case _NONE:\r
75                         return null;\r
76                 \r
77                 }\r
78                 throw new RuntimeException();\r
79         }\r
80         \r
81         protected Cell getCell(Row row, int colIndex) {\r
82                 for (short i = row.getFirstCellNum(); i <= row.getLastCellNum(); i++) {\r
83                         Cell c = row.getCell(i);\r
84                         if (c == null)\r
85                                 continue;\r
86                         if (c.getColumnIndex() == colIndex)\r
87                                 return c;\r
88                         \r
89                 }\r
90                 return null;\r
91         }\r
92 \r
93 }\r