Changeset 7030
- Timestamp:
- 06/30/16 16:53:46 (8 years ago)
- Location:
- SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/search
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/search/Exports.java
r6123 r7030 23 23 * 24 24 * @author Yana Panchenko 25 * @author ljo 25 26 */ 26 27 public class Exports { … … 30 31 public static String getExportCSV(List<Result> resultsProcessed, String filterLanguage, String separator) { 31 32 boolean noResult = true; 33 boolean firstRow = true; 32 34 StringBuilder csv = new StringBuilder(); 33 35 if (resultsProcessed != null && !resultsProcessed.isEmpty()) { 34 String[] headers = new String[]{ 35 "LEFT CONTEXT", "KEYWORD", "RIGHT CONTEXT", "PID", "REFERENCE"}; 36 for (String header : headers) { 37 csv.append("\""); 38 csv.append(header); 39 csv.append("\""); 40 csv.append(separator); 41 } 42 csv.append("\n"); 43 44 for (Result result : resultsProcessed) { 45 for (Kwic kwic : result.getKwics()) { 46 if (filterLanguage != null && !filterLanguage.equals(kwic.getLanguage())) { 47 continue; 48 } 36 for (Result result : resultsProcessed) { 37 if (result.getAdvancedLayers().size() == 0) { 38 for (Kwic kwic : result.getKwics()) { 39 if (firstRow) { 40 String[] headers = new String[]{ 41 "PID", "REFERENCE", "LEFT CONTEXT", "KEYWORD", "RIGHT CONTEXT"}; 42 for (String header : headers) { 49 43 csv.append("\""); 50 csv.append( escapeQuotes(kwic.getLeft()));44 csv.append(header); 51 45 csv.append("\""); 52 46 csv.append(separator); 53 csv.append("\""); 54 csv.append(escapeQuotes(kwic.getKeyword())); 55 csv.append("\""); 56 csv.append(separator); 57 csv.append("\""); 58 csv.append(escapeQuotes(kwic.getRight())); 59 csv.append("\""); 60 csv.append(separator); 61 csv.append("\""); 62 if (kwic.getPid() != null) { 63 csv.append(escapeQuotes(kwic.getPid())); 64 } 65 csv.append("\""); 66 csv.append(separator); 67 csv.append("\""); 68 if (kwic.getReference() != null) { 69 csv.append(escapeQuotes(kwic.getReference())); 70 } 71 csv.append("\""); 72 csv.append("\n"); 73 noResult = false; 74 } 75 } 47 } 48 csv.append("\n"); 49 firstRow = false; 50 } 51 if (filterLanguage != null && !filterLanguage.equals(kwic.getLanguage())) { 52 continue; 53 } 54 csv.append("\""); 55 if (kwic.getPid() != null) { 56 csv.append(escapeQuotes(kwic.getPid())); 57 } 58 csv.append("\""); 59 csv.append(separator); 60 csv.append("\""); 61 if (kwic.getReference() != null) { 62 csv.append(escapeQuotes(kwic.getReference())); 63 } 64 csv.append("\""); 65 csv.append(separator); 66 csv.append("\""); 67 csv.append(escapeQuotes(kwic.getLeft())); 68 csv.append("\""); 69 csv.append(separator); 70 csv.append("\""); 71 csv.append(escapeQuotes(kwic.getKeyword())); 72 csv.append("\""); 73 csv.append(separator); 74 csv.append("\""); 75 csv.append(escapeQuotes(kwic.getRight())); 76 csv.append("\""); 77 csv.append("\n"); 78 noResult = false; 79 } 80 } 81 firstRow = true; 82 for (AdvancedLayer layer : result.getAdvancedLayers()) { 83 if (firstRow) { 84 String[] headers = new String[]{ 85 "PID", "REFERENCE", "SPANS"}; 86 for (String header : headers) { 87 csv.append("\""); 88 csv.append(header); 89 csv.append("\""); 90 csv.append(separator); 91 } 92 csv.append("\n"); 93 firstRow = false; 94 } 95 if (filterLanguage != null && !filterLanguage.equals(layer.getLanguage())) { 96 continue; 97 } 98 99 csv.append("\""); 100 if (layer.getPid() != null) { 101 csv.append(escapeQuotes(layer.getPid())); 102 } 103 csv.append("\""); 104 csv.append(separator); 105 csv.append("\""); 106 if (layer.getReference() != null) { 107 csv.append(escapeQuotes(layer.getReference())); 108 } 109 csv.append("\""); 110 csv.append(separator); 111 for (AdvancedLayer.Span span : layer.getSpans()) { 112 csv.append("\""); 113 csv.append(escapeQuotes(span.getText())); 114 csv.append("\""); 115 csv.append(separator); 116 } 117 csv.append("\n"); 118 noResult = false; 119 } 120 } 76 121 } 77 122 if (noResult) { … … 94 139 } 95 140 96 97 141 public static byte[] getExportExcel(List<Result> resultsProcessed, String filterLanguage) throws ExportException { 142 SXSSFWorkbook workbook = null; 98 143 ByteArrayOutputStream excelStream = new ByteArrayOutputStream(); 99 144 int rownum = 0; 145 boolean firstRow = true; 100 146 if (resultsProcessed != null && !resultsProcessed.isEmpty()) { 101 try { 102 String[] headers = new String[]{ 103 "LEFT CONTEXT", "KEYWORD", "RIGHT CONTEXT", "PID", "REFERENCE"}; 104 105 workbook = new SXSSFWorkbook(); 106 Sheet sheet = workbook.createSheet(); 107 108 Font boldFont = workbook.createFont(); 109 boldFont.setBoldweight(Font.BOLDWEIGHT_BOLD); 110 111 // Header 112 CellStyle headerStyle = workbook.createCellStyle(); 113 headerStyle.setFont(boldFont); 114 115 Row row = sheet.createRow(rownum++); 116 117 for (int j = 0; j < headers.length; ++j) { 118 Cell cell = row.createCell(j, Cell.CELL_TYPE_STRING); 147 try { 148 workbook = new SXSSFWorkbook(); 149 Sheet sheet = workbook.createSheet(); 150 151 Font boldFont = workbook.createFont(); 152 boldFont.setBoldweight(Font.BOLDWEIGHT_BOLD); 153 154 // Header 155 CellStyle headerStyle = workbook.createCellStyle(); 156 headerStyle.setFont(boldFont); 157 158 Row row = sheet.createRow(rownum++); 159 160 Cell cell; 161 for (Result result : resultsProcessed) { 162 if (result.getAdvancedLayers().size() == 0) { 163 for (Kwic kwic : result.getKwics()) { 164 if (firstRow) { 165 String[] headers = new String[]{ 166 "PID", "REFERENCE", "LEFT CONTEXT", "KEYWORD", "RIGHT CONTEXT"}; 167 for (int j = 0; j < headers.length; ++j) { 168 cell = row.createCell(j, Cell.CELL_TYPE_STRING); 169 cell.setCellValue(headers[j]); 170 cell.setCellStyle(headerStyle); 171 } 172 firstRow = false; 173 } 174 // Body 175 176 if (filterLanguage != null && !filterLanguage.equals(kwic.getLanguage())) { 177 continue; 178 } 179 row = sheet.createRow(rownum++); 180 cell = row.createCell(0, Cell.CELL_TYPE_STRING); 181 if (kwic.getPid() != null) { 182 cell.setCellValue(kwic.getPid()); 183 } 184 cell = row.createCell(1, Cell.CELL_TYPE_STRING); 185 if (kwic.getReference() != null) { 186 cell.setCellValue(kwic.getReference()); 187 } 188 189 cell = row.createCell(2, Cell.CELL_TYPE_STRING); 190 cell.setCellValue(kwic.getLeft()); 191 cell = row.createCell(3, Cell.CELL_TYPE_STRING); 192 cell.setCellValue(kwic.getKeyword()); 193 cell.setCellStyle(headerStyle); 194 cell = row.createCell(4, Cell.CELL_TYPE_STRING); 195 cell.setCellValue(kwic.getRight()); 196 } 197 } 198 firstRow = true; 199 for (AdvancedLayer layer : result.getAdvancedLayers()) { 200 if (firstRow) { 201 String[] headers = new String[]{ 202 "PID", "REFERENCE", "SPANS"}; 203 for (int j = 0; j < headers.length; ++j) { 204 cell = row.createCell(j, Cell.CELL_TYPE_STRING); 119 205 cell.setCellValue(headers[j]); 120 206 cell.setCellStyle(headerStyle); 121 } 122 123 // Body 124 Cell cell; 125 for (Result result : resultsProcessed) { 126 for (Kwic kwic : result.getKwics()) { 127 if (filterLanguage != null && !filterLanguage.equals(kwic.getLanguage())) { 128 continue; 129 } 130 row = sheet.createRow(rownum++); 131 cell = row.createCell(0, Cell.CELL_TYPE_STRING); 132 cell.setCellValue(kwic.getLeft()); 133 cell = row.createCell(1, Cell.CELL_TYPE_STRING); 134 cell.setCellValue(kwic.getKeyword()); 135 cell = row.createCell(2, Cell.CELL_TYPE_STRING); 136 cell.setCellValue(kwic.getRight()); 137 if (kwic.getPid() != null) { 138 cell = row.createCell(3, Cell.CELL_TYPE_STRING); 139 cell.setCellValue(kwic.getPid()); 140 } 141 if (kwic.getReference() != null) { 142 cell = row.createCell(3, Cell.CELL_TYPE_STRING); 143 cell.setCellValue(kwic.getReference()); 144 } 145 } 146 } 147 workbook.write(excelStream); 148 } catch (IOException ex) { 149 LOGGER.log(Level.SEVERE, null, ex); 150 throw new ExportException("Exception exporting Excel", ex); 151 } finally { 152 if (workbook != null) { 153 workbook.dispose(); 154 } 155 } 207 } 208 firstRow = false; 209 } 210 211 if (filterLanguage != null && !filterLanguage.equals(layer.getLanguage())) { 212 continue; 213 } 214 row = sheet.createRow(rownum++); 215 int j = 0; 216 cell = row.createCell(j, Cell.CELL_TYPE_STRING); 217 if (layer.getPid() != null) { 218 cell.setCellValue(layer.getPid()); 219 } 220 j++; 221 cell = row.createCell(j, Cell.CELL_TYPE_STRING); 222 if (layer.getReference() != null) { 223 cell.setCellValue(layer.getReference()); 224 } 225 j++; 226 for (AdvancedLayer.Span span : layer.getSpans()) { 227 cell = row.createCell(j, Cell.CELL_TYPE_STRING); 228 cell.setCellValue(span.getText()); 229 if (span.isHit()) { 230 cell.setCellStyle(headerStyle); 231 } 232 j++; 233 } 234 } 235 } 236 workbook.write(excelStream); 237 } catch (IOException ex) { 238 LOGGER.log(Level.SEVERE, null, ex); 239 throw new ExportException("Exception exporting Excel", ex); 240 } finally { 241 if (workbook != null) { 242 workbook.dispose(); 243 } 244 } 156 245 } 157 246 if (rownum <= 1) { -
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/search/Result.java
r7027 r7030 1 /** 2 * 3 * @license http://www.gnu.org/licenses/gpl-3.0.txt 4 * GNU General Public License v3 5 */ 1 6 package eu.clarin.sru.fcs.aggregator.search; 2 7 … … 44 49 private List<Kwic> kwics = Collections.synchronizedList(new ArrayList<Kwic>()); 45 50 51 private List<AdvancedLayer> advLayers = Collections.synchronizedList(new ArrayList<AdvancedLayer>()); 52 46 53 public List<Kwic> getKwics() { 47 54 return kwics; 55 } 56 57 public List<AdvancedLayer> getAdvancedLayers() { 58 return advLayers; 48 59 } 49 60 … … 134 145 } else if (dataview instanceof DataViewAdvanced) { 135 146 final DataViewAdvanced adv = (DataViewAdvanced) dataview; 136 adv.getLayers(); 137 log.debug("DataViewAdvanced: {}", adv.getLayers().get(0).getId()); 147 for (DataViewAdvanced.Layer layer : adv.getLayers()) { 148 log.debug("DataViewAdvanced layer: {}", adv.getUnit(), layer.getId()); 149 AdvancedLayer aLayer = new AdvancedLayer(layer, pid, reference); 150 advLayers.add(aLayer); 151 } 138 152 } 139 153 }
Note: See TracChangeset
for help on using the changeset viewer.