1   /*
2    * RDFpro - An extensible tool for building stream-oriented RDF processing libraries.
3    * 
4    * Written in 2014 by Francesco Corcoglioniti with support by Marco Amadori, Michele Mostarda,
5    * Alessio Palmero Aprosio and Marco Rospocher. Contact info on http://rdfpro.fbk.eu/
6    * 
7    * To the extent possible under law, the authors have dedicated all copyright and related and
8    * neighboring rights to this software to the public domain worldwide. This software is
9    * distributed without any warranty.
10   * 
11   * You should have received a copy of the CC0 Public Domain Dedication along with this software.
12   * If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
13   */
14  package eu.fbk.rdfpro.jsonld;
15  
16  import java.io.OutputStream;
17  import java.io.OutputStreamWriter;
18  import java.io.Writer;
19  import java.nio.charset.Charset;
20  
21  import org.openrdf.rio.RDFFormat;
22  import org.openrdf.rio.RDFWriter;
23  import org.openrdf.rio.RDFWriterFactory;
24  
25  /**
26   * An {@link RDFWriterFactory} for JSONLD writers.
27   */
28  public class JSONLDWriterFactory implements RDFWriterFactory {
29  
30      /**
31       * Returns {@link RDFFormat#JSONLD}.
32       */
33      @Override
34      public RDFFormat getRDFFormat() {
35          return RDFFormat.JSONLD;
36      }
37  
38      /**
39       * Returns a new instance of {@link JSONLDWriter}.
40       */
41      @Override
42      public RDFWriter getWriter(final OutputStream out) {
43          return getWriter(new OutputStreamWriter(out, Charset.forName("UTF-8")));
44      }
45  
46      /**
47       * Returns a new instance of {@link JSONLDWriter}.
48       */
49      @Override
50      public RDFWriter getWriter(final Writer writer) {
51          return new JSONLDWriter(writer);
52      }
53  
54  }