11package com .danubetech .dataintegrity .canonicalizer ;
22
3- import com .apicatalog .rdf .RdfDataset ;
4- import com .apicatalog .rdf .RdfNQuad ;
5- import com .apicatalog .rdf .canon .RdfCanonicalizer ;
6- import com .apicatalog .rdf .io .nquad .NQuadsWriter ;
3+ import com .apicatalog .jsonld .JsonLdError ;
4+ import com .apicatalog .rdf .api .RdfConsumerException ;
5+ import com .apicatalog .rdf .api .RdfQuadConsumer ;
6+ import com .apicatalog .rdf .canon .RdfCanon ;
7+ import com .apicatalog .rdf .nquads .NQuadsWriter ;
78import com .danubetech .dataintegrity .DataIntegrityProof ;
89import foundation .identity .jsonld .JsonLDException ;
910import foundation .identity .jsonld .JsonLDObject ;
1516import java .io .StringWriter ;
1617import java .nio .charset .StandardCharsets ;
1718import java .security .GeneralSecurityException ;
18- import java .util .Collection ;
1919import java .util .List ;
2020
2121public abstract class RDFC10Canonicalizer extends Canonicalizer {
@@ -32,13 +32,19 @@ public RDFC10Canonicalizer() {
3232
3333 @ Override
3434 public String canonicalize (JsonLDObject jsonLDObject ) throws JsonLDException , IOException {
35-
36- RdfDataset rdfDataset = jsonLDObject .toDataset ();
37- RdfCanonicalizer rdfCanonicalizer = RdfCanonicalizer .newInstance (rdfDataset .toList (), this .hashAlgorithm ());
38- Collection <RdfNQuad > rdfNQuads = rdfCanonicalizer .canonicalize ();
35+ RdfCanon rdfCanon = RdfCanon .create (this .hashAlgorithm ());
3936 StringWriter stringWriter = new StringWriter ();
40- NQuadsWriter nQuadsWriter = new NQuadsWriter (stringWriter );
41- for (RdfNQuad rdfNQuad : rdfNQuads ) nQuadsWriter .write (rdfNQuad );
37+ RdfQuadConsumer nQuadsWriter = new NQuadsWriter (stringWriter );
38+
39+ try {
40+ jsonLDObject .toRdfApi ().provide (rdfCanon );
41+ rdfCanon .provide (nQuadsWriter );
42+ } catch (RdfConsumerException ex ) {
43+ throw new IOException ("Cannot consume RDF: " + ex .getMessage (), ex );
44+ } catch (JsonLdError ex ) {
45+ throw new JsonLDException (ex );
46+ }
47+
4248 return stringWriter .getBuffer ().toString ();
4349 }
4450
0 commit comments