-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
51 changed files
with
936 additions
and
679 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
27 changes: 27 additions & 0 deletions
27
src/main/java/com/databasepreservation/common/api/utils/ViewerStreamingOutput.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package com.databasepreservation.common.api.utils; | ||
|
||
import com.databasepreservation.common.api.common.ConsumesOutputStream; | ||
|
||
import javax.ws.rs.core.StreamingOutput; | ||
import java.io.IOException; | ||
import java.io.OutputStream; | ||
|
||
/** | ||
* @author Miguel Guimarães <mguimaraes@keep.pt> | ||
*/ | ||
public class ViewerStreamingOutput implements StreamingOutput { | ||
private final ConsumesOutputStream outputHandler; | ||
|
||
public ViewerStreamingOutput(final ConsumesOutputStream outputHandler) { | ||
this.outputHandler = outputHandler; | ||
} | ||
|
||
@Override | ||
public void write(final OutputStream output) throws IOException { | ||
outputHandler.consumeOutputStream(output); | ||
} | ||
|
||
public StreamResponse toStreamResponse() { | ||
return new StreamResponse(outputHandler); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
62 changes: 62 additions & 0 deletions
62
...ava/com/databasepreservation/common/api/v1/utils/IterableIndexResultsCSVOutputStream.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
package com.databasepreservation.common.api.v1.utils; | ||
|
||
import java.io.IOException; | ||
import java.io.OutputStream; | ||
import java.io.OutputStreamWriter; | ||
import java.util.Iterator; | ||
import java.util.List; | ||
|
||
import com.databasepreservation.common.server.index.utils.IterableIndexResult; | ||
import org.apache.commons.csv.CSVPrinter; | ||
import org.roda.core.data.v2.index.IndexResult; | ||
|
||
import com.databasepreservation.common.shared.ViewerStructure.ViewerRow; | ||
import com.databasepreservation.common.shared.ViewerStructure.ViewerTable; | ||
|
||
/** | ||
* @author Miguel Guimarães <mguimaraes@keep.pt> | ||
*/ | ||
public class IterableIndexResultsCSVOutputStream extends CSVOutputStream { | ||
/** The results to write to output stream. */ | ||
private final IterableIndexResult results; | ||
private final ViewerTable table; | ||
private final List<String> fieldsToReturn; | ||
private final boolean exportDescription; | ||
/** | ||
* Constructor. | ||
* | ||
* @param results | ||
* the results to write to output stream. | ||
* @param filename | ||
* the filename. | ||
* @param delimiter | ||
* the CSV field delimiter. | ||
*/ | ||
public IterableIndexResultsCSVOutputStream(final IterableIndexResult results, final ViewerTable table, final List<String> fieldsToReturn, final String filename, | ||
final boolean exportDescription, final char delimiter) { | ||
super(filename, delimiter); | ||
this.results = results; | ||
this.table = table; | ||
this.fieldsToReturn = fieldsToReturn; | ||
this.exportDescription = exportDescription; | ||
} | ||
|
||
@Override | ||
public void consumeOutputStream(final OutputStream out) throws IOException { | ||
final OutputStreamWriter writer = new OutputStreamWriter(out); | ||
CSVPrinter printer = null; | ||
boolean isFirst = true; | ||
|
||
for (ViewerRow row : results) { | ||
if (isFirst) { | ||
printer = getFormat().withHeader(table.getCSVHeaders(fieldsToReturn, exportDescription).toArray(new String[0])).print(writer); | ||
isFirst = false; | ||
} | ||
|
||
printer.printRecord(row.getCellValues(fieldsToReturn)); | ||
|
||
} | ||
|
||
writer.flush(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.