GateXMLExporter.java
01 /*
02  *  Copyright (c) 1995-2014, The University of Sheffield. See the file
03  *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
04  *
05  *  This file is part of GATE (see http://gate.ac.uk/), and is free
06  *  software, licenced under the GNU Library General Public License,
07  *  Version 2, June 1991 (in the distribution as file licence.html,
08  *  and also available at http://gate.ac.uk/gate/licence.html).
09  *
10  *  Mark A. Greenwood 16/07/2014
11  *
12  */
13 
14 package gate.corpora.export;
15 
16 import gate.Document;
17 import gate.DocumentExporter;
18 import gate.FeatureMap;
19 import gate.corpora.DocumentStaxUtils;
20 import gate.creole.metadata.AutoInstance;
21 import gate.creole.metadata.CreoleResource;
22 
23 import java.io.File;
24 import java.io.IOException;
25 import java.io.OutputStream;
26 
27 import javax.xml.stream.XMLStreamException;
28 
29 @CreoleResource(name = "GATE XML Exporter", tool = true, autoinstances = @AutoInstance, icon = "GATEXML")
30 public class GateXMLExporter extends DocumentExporter {
31 
32   private static final long serialVersionUID = -5725505758491779035L;
33 
34   public GateXMLExporter() {
35     super("GATE XML""xml""text/xml");
36   }
37 
38   @Override
39   public void export(Document doc, File file, FeatureMap options)
40           throws IOException {
41     super.export(doc, file, options);
42 
43     // not sure why this was being done in the old code, but I'll make
44     // sure we do it here as well
45     doc.setSourceUrl(file.toURI().toURL());
46   }
47 
48   @Override
49   public void export(Document doc, OutputStream out, FeatureMap options)
50           throws IOException {
51     try {
52       DocumentStaxUtils.writeDocument(doc, out, "");
53     catch(XMLStreamException e) {
54       throw new IOException(e);
55     }
56   }
57 }