1 package autotest.tko;
2 
3 import autotest.common.spreadsheet.Spreadsheet.CellInfo;
4 import autotest.common.spreadsheet.Spreadsheet.Header;
5 
6 import com.google.gwt.json.client.JSONObject;
7 
8 import java.util.List;
9 
10 public class TkoSpreadsheetUtils {
11     public static enum DrilldownType {DRILLDOWN_ROW, DRILLDOWN_COLUMN, DRILLDOWN_BOTH}
12 
getTestSet(CellInfo cellInfo, JSONObject condition, List<HeaderField> rowFields, List<HeaderField> columnFields)13     public static TestSet getTestSet(CellInfo cellInfo, JSONObject condition,
14             List<HeaderField> rowFields, List<HeaderField> columnFields) {
15         boolean isSingleTest = cellInfo.testCount == 1;
16         if (isSingleTest) {
17             return new SingleTestSet(cellInfo.testIndex, condition);
18         }
19 
20         ConditionTestSet testSet = new ConditionTestSet(condition);
21         if (cellInfo.row != null) {
22             setSomeFields(testSet, rowFields, cellInfo.row);
23         }
24         if (cellInfo.column != null) {
25             setSomeFields(testSet, columnFields, cellInfo.column);
26         }
27         return testSet;
28     }
29 
setSomeFields(ConditionTestSet testSet, List<HeaderField> allFields, Header values)30     private static void setSomeFields(ConditionTestSet testSet, List<HeaderField> allFields,
31             Header values) {
32         for (int i = 0; i < values.size(); i++) {
33             HeaderField field = allFields.get(i);
34             String value = values.get(i);
35             testSet.addCondition(field.getSqlCondition(value));
36         }
37     }
38 
getDrilldownType(CellInfo cellInfo)39     public static DrilldownType getDrilldownType(CellInfo cellInfo) {
40         if (cellInfo.row == null) {
41             // column header
42             return DrilldownType.DRILLDOWN_COLUMN;
43         }
44         if (cellInfo.column == null) {
45             // row header
46             return DrilldownType.DRILLDOWN_ROW;
47         }
48         return DrilldownType.DRILLDOWN_BOTH;
49     }
50 }
51