annotate servlet/src/main/java/digilib/pdf/PDFFileWorker.java @ 892:ba1eb2d821a2 mvnify

rearrange sources to maven directory standard
author robcast
date Tue, 19 Apr 2011 18:44:25 +0200 (2011-04-19)
parents servlet/src/digilib/pdf/PDFFileWorker.java@72662bb585ba
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
555
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
1 /**
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
2 *
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
3 */
557
0885f5ca5b24 more refactoring and rearranging
robcast
parents: 556
diff changeset
4 package digilib.pdf;
555
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
5
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
6 import java.io.File;
556
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
7 import java.io.FileNotFoundException;
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
8 import java.io.FileOutputStream;
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
9 import java.io.OutputStream;
555
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
10 import java.util.concurrent.Callable;
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
11
556
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
12 import digilib.image.DocuImage;
557
0885f5ca5b24 more refactoring and rearranging
robcast
parents: 556
diff changeset
13 import digilib.servlet.DigilibConfiguration;
0885f5ca5b24 more refactoring and rearranging
robcast
parents: 556
diff changeset
14 import digilib.servlet.PDFRequest;
0885f5ca5b24 more refactoring and rearranging
robcast
parents: 556
diff changeset
15 import digilib.util.DigilibJobCenter;
556
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
16
555
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
17 /**
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
18 * @author casties
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
19 *
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
20 */
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
21 public class PDFFileWorker implements Callable<File> {
556
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
22 /** the wrapped PDFStreamWorker */
555
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
23 protected PDFStreamWorker streamWorker;
556
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
24
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
25 /** the temporary output file */
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
26 protected File tempFile;
555
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
27
556
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
28 /** the final output file */
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
29 protected File finalFile;
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
30
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
31 /** Create new PDFFileWorker.
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
32 * @param dlConfig
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
33 * @param tempFile
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
34 * @param job_info
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
35 * @param imageJobCenter
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
36 * @throws FileNotFoundException
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
37 */
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
38 public PDFFileWorker(DigilibConfiguration dlConfig,
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
39 File tempFile, File finalFile,
557
0885f5ca5b24 more refactoring and rearranging
robcast
parents: 556
diff changeset
40 PDFRequest job_info,
556
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
41 DigilibJobCenter<DocuImage> imageJobCenter) throws FileNotFoundException {
557
0885f5ca5b24 more refactoring and rearranging
robcast
parents: 556
diff changeset
42 this.tempFile = tempFile;
556
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
43 OutputStream outstream = new FileOutputStream(tempFile);
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
44 this.finalFile = finalFile;
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
45 this.streamWorker = new PDFStreamWorker(dlConfig, outstream, job_info, imageJobCenter);
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
46 }
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
47
555
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
48 public File call() throws Exception {
801
72662bb585ba remove all ServletOutputStream.flush(). (stupid me ;-)
robcast
parents: 570
diff changeset
49 OutputStream outstream = null;
72662bb585ba remove all ServletOutputStream.flush(). (stupid me ;-)
robcast
parents: 570
diff changeset
50 try {
72662bb585ba remove all ServletOutputStream.flush(). (stupid me ;-)
robcast
parents: 570
diff changeset
51 outstream = streamWorker.call();
72662bb585ba remove all ServletOutputStream.flush(). (stupid me ;-)
robcast
parents: 570
diff changeset
52 outstream.flush();
72662bb585ba remove all ServletOutputStream.flush(). (stupid me ;-)
robcast
parents: 570
diff changeset
53 outstream.close();
72662bb585ba remove all ServletOutputStream.flush(). (stupid me ;-)
robcast
parents: 570
diff changeset
54 // move temporary to final file
72662bb585ba remove all ServletOutputStream.flush(). (stupid me ;-)
robcast
parents: 570
diff changeset
55 tempFile.renameTo(finalFile);
72662bb585ba remove all ServletOutputStream.flush(). (stupid me ;-)
robcast
parents: 570
diff changeset
56 } finally {
72662bb585ba remove all ServletOutputStream.flush(). (stupid me ;-)
robcast
parents: 570
diff changeset
57 if (outstream != null) {
72662bb585ba remove all ServletOutputStream.flush(). (stupid me ;-)
robcast
parents: 570
diff changeset
58 outstream.close();
72662bb585ba remove all ServletOutputStream.flush(). (stupid me ;-)
robcast
parents: 570
diff changeset
59 }
72662bb585ba remove all ServletOutputStream.flush(). (stupid me ;-)
robcast
parents: 570
diff changeset
60 }
556
5cc180bb0a5c pdf generation closer to working...
robcast
parents: 555
diff changeset
61 return finalFile;
555
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
62 }
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
63
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
64
88ed97d08b97 still refactoring
robcast
parents:
diff changeset
65 }