Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/thermidor/xml/output/AppendHandler.java


1   package com.thermidor.xml.output;
2   import com.thermidor.util.io.AppendWriter;
3   import java.io.IOException;
4   import java.io.File;
5   import java.io.FileOutputStream;
6   import java.io.PrintWriter;
7   import com.thermidor.util.Assert;
8   import java.io.RandomAccessFile;
9   public class AppendHandler extends OutputHandler {
10      /**
11       * Construct a new default instance of a AppendHandler.
12       */
13      public AppendHandler() {
14          super();
15      }
16      /**
17       * <code>start</code> is called on the output handler to initialize it
18       * ready to start processing output.
19       * @param data the initialization data.
20       * @throws InvalidInitializationParameter is raised if the initialization 
21       * data was invalid for this instance.
22       * @throws IOException is raised if there was an IO related error.
23       */
24      public void start(Object initializationData) 
25          throws InvalidInitializationParameter,
26                 IOException {
27          Assert.notNull(initializationData,
28                         "initialization parameter for handler type [" +
29                         AppendHandler.class +
30                         "] must be non null");
31          File outputFile = null;
32          if(initializationData instanceof String) {
33              outputFile = new File((String)initializationData);
34          }
35          else if (initializationData instanceof File) {
36              outputFile = (File)initializationData;
37          }
38          else {
39              throw new InvalidInitializationParameter
40                  ("initialization parameter for handler type [" +
41                   AppendHandler.class +
42                   "] must be java.lang.String or java.io.File, but was [" +
43                   initializationData.getClass()+"]");
44          }
45          RandomAccessFile raf = new RandomAccessFile(outputFile,"rw");
46          AppendWriter aw = new AppendWriter(raf);
47          _writer = new PrintWriter(aw);
48      }    
49      /**
50       * Handle the provided string data .
51       * @param data the text data that is to be output.
52       */
53      public void handle(String data) throws IOException{
54          _writer.print(data);
55      }
56      /**
57       * The responsibilty of the  finished member function is to handle clean up
58       * when the output is popped from the output stack.
59       * @return any relevant string data that was collected will the handler 
60       * is in operation.
61       */
62      public String finish() throws IOException {
63          _writer.flush();
64          _writer.close();
65          return EMPTY;
66      }    
67      
68  }