[ 
https://issues.apache.org/jira/browse/ANY23-388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16577131#comment-16577131
 ] 

Lars G. Svensson commented on ANY23-388:
----------------------------------------

No, the problem is not the lower layer API, I just want to be able to access 
the instance of RDF4J NTriplesWriter so that I can configure it.

My first suggestion would be to make the field 
{{org.apache.any23.writer.RDFWriterTripleHandler.writer}} protected instead of 
private. Then I could first create the RDFWriterTripleHandler from the subclass 
and after that access the writer and configure it:

{code}
public class SomethingDoer {
    // overwrite the NTriplesWriter and add a configuration
    private class MyNTriplesWriter extends NTriplesWriter {
        public MyNTriplesWriter( OutputStream os ) {
            super( os );
            final WriterConfig config = new WriterConfig();
            config.set(NTriplesWriterSettings.ESCAPE_UNICODE, Boolean.TRUE);
            this.writer.setWriterConfig(config);
        }
    }
    
    public void doSomething() throws Exception {
        final DocumentSource source = ...;
        final ByteArrayOutputStream os = new ByteArrayOutputStream();
        // instantiate the NTriplesHandler with the overwritten one
        final TripleHandler handler = new MyNTriplesHandler(os);
        try {
            runner.extract(source, handler);
        } finally {
            handler.close();
        }
    }
}
{code}

Does that seem an acceptable solution to you?

> It should be possible to configure the NTriplesWriter to use unicode points
> ---------------------------------------------------------------------------
>
>                 Key: ANY23-388
>                 URL: https://issues.apache.org/jira/browse/ANY23-388
>             Project: Apache Any23
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 2.2
>            Reporter: Lars G. Svensson
>            Priority: Minor
>
> When using the NTriplesWriter, I wanted to configure it to write unicode 
> points as escape sequences. I tried to subclass 
> org.apache.any23.writer.TripleHandler and overwrite the access to the 
> org.eclipse.rdf4j.rio.ntriples.NTriplesWriter but couldn't do that since the 
> access to the NTriplesWriter is package protected. I ended up copying the 
> code which seems a bit clunky...
> I was [asked to create a pull 
> request|https://mail-archives.apache.org/mod_mbox/any23-user/201808.mbox/%3CCAGaRif3KAQbnK6XSKnVUZAJOn8aR_iCmJmGv_L05yg6nBkB%3DwA%40mail.gmail.com%3E],
>  this issue is there to track that.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to