Project

General

Profile

« Previous | Next » 

Revision 4874

pivot constrained to a List of specific attributes: studentId (record number), score, response.
This is the "lower half" of the return set (data).
now: on to the metadata header rows

View differences:

download.jsp
55 55
		return params;
56 56
	}
57 57
%><%!
58
	private List transpose(ResultSet rs, int idCol, int pivotCol, boolean omitIdValues) throws SQLException {
58
	private List transpose(ResultSet rs, int idCol, int pivotCol, List pivotAttributes, boolean omitIdValues) throws SQLException {
59 59
		OrderedMap table = new OrderedMap();
60 60
		OrderedMap widestRow = new OrderedMap();
61 61
		int colCount = rs.getMetaData().getColumnCount();
......
75 75
			for (int i = 1; i <= colCount; i++) {
76 76
				if (i != pivotCol) {
77 77
					String colName = rs.getMetaData().getColumnName(i);
78
					//annotate the column name with the pivot column value if not the id column
79
					if (i != idCol) {
80
						colName = pivotValue + "_" + colName;
78
					//do we include this column in the pivot?
79
					if (pivotAttributes.contains(colName)) {
80
						//annotate the column name with the pivot column value if not the id column
81
						if (i != idCol) {
82
							colName = pivotValue + "_" + colName;
83
						}
84
						String value = rs.getString(i);
85
						row.put(colName, value);
81 86
					}
82
					String value = rs.getString(i);
83
					row.put(colName, value);
84 87
				}
85 88
			}
86 89
			//track the headers - the values are junk
......
179 182
			CSVWriter csv = new CSVWriter(writer, CSVWriter.DEFAULT_SEPARATOR, CSVWriter.NO_QUOTE_CHARACTER);
180 183
			try {
181 184
				if (transpose) {
182
					List transposedTable = transpose(rs, observation, pivot, true);
185
					List pivotCols = new ArrayList();
186
					pivotCols.add("studentid");
187
					pivotCols.add("score");
188
					pivotCols.add("response");
189
					List transposedTable = transpose(rs, observation, pivot, pivotCols, true);
183 190
					csv.writeAll(transposedTable);
184 191
				} else {
185 192
					csv.writeAll(rs, true);

Also available in: Unified diff