use of org.apache.jena.riot.system.PrefixMap in project jena by apache.
the class TestDatasetPrefixes method dsg_prefixes_basic_2.
@Test
public void dsg_prefixes_basic_2() {
DatasetGraph dsg = create();
Txn.executeWrite(dsg, () -> {
PrefixMap pmap = dsg.prefixes();
pmap.add("ex", "http://example/");
String x = pmap.get("ex");
assertEquals("http://example/", x);
assertEquals(1, pmap.size());
assertFalse(pmap.isEmpty());
});
}
use of org.apache.jena.riot.system.PrefixMap in project jena by apache.
the class TestDatasetPrefixes method dsg_prefixes_txn_1.
@Test
public void dsg_prefixes_txn_1() {
DatasetGraph dsg = create();
Txn.executeWrite(dsg, () -> {
PrefixMap pmap = dsg.prefixes();
pmap.add("ex", "http://example/");
});
Txn.executeRead(dsg, () -> {
PrefixMap pmap = dsg.prefixes();
String x = pmap.get("ex");
assertEquals("http://example/", x);
});
}
use of org.apache.jena.riot.system.PrefixMap in project jena by apache.
the class TestDatasetPrefixes method dsg_prefixes_basic_1.
@Test
public void dsg_prefixes_basic_1() {
DatasetGraph dsg = create();
PrefixMap pmap = dsg.prefixes();
Txn.executeRead(dsg, () -> {
assertEquals(0, pmap.size());
assertTrue(pmap.isEmpty());
});
}
use of org.apache.jena.riot.system.PrefixMap in project jena by apache.
the class TestDatasetPrefixes method dsg_prefixes_txn_4.
@Test
public void dsg_prefixes_txn_4() {
Assume.assumeTrue(txnIsolation);
DatasetGraph dsg = create();
Txn.executeWrite(dsg, () -> {
PrefixMap pmap = dsg.prefixes();
pmap.add("ex", "http://example/2");
dsg.abort();
});
Txn.executeRead(dsg, () -> {
PrefixMap pmap = dsg.prefixes();
String x = pmap.get("ex");
assertNull(x);
});
}
use of org.apache.jena.riot.system.PrefixMap in project jena by apache.
the class JsonLDWriter method toJsonLDJavaAPI.
/**
* the JsonLD-java API object corresponding to a dataset and a JsonLD format.
*/
public static Object toJsonLDJavaAPI(RDFFormat.JSONLDVariant variant, DatasetGraph dataset, PrefixMap prefixMap, String baseURI, Context jenaContext) throws JsonLdError, JsonParseException, IOException {
JsonLdOptions opts = getJsonLdOptions(baseURI, jenaContext);
// we can benefit from the fact we know that there are no duplicates in the jsonld RDFDataset that we create
// (optimization in jsonld-java 0.8.3)
// see https://github.com/jsonld-java/jsonld-java/pull/173
// with this, we cannot call the json-ld fromRDF method that assumes no duplicates in RDFDataset
// Object obj = JsonLdProcessor.fromRDF(dataset, opts, new JenaRDF2JSONLD()) ;
final RDFDataset jsonldDataset = (new JenaRDF2JSONLD()).parse(dataset);
// JsonLdApi.fromRDF(RDFDataset, boolean) is "experimental" rather than "deprecated"
@SuppressWarnings("deprecation") Object // true because we know that we don't have any duplicate in jsonldDataset
obj = (new JsonLdApi(opts)).fromRDF(jsonldDataset, true);
if (variant.isExpand()) {
// nothing more to do
} else if (variant.isFrame()) {
Object frame = null;
if (jenaContext != null) {
frame = jenaContext.get(JSONLD_FRAME);
}
if (frame == null) {
throw new IllegalArgumentException("No frame object found in jena Context");
}
if (frame instanceof String) {
frame = JsonUtils.fromString((String) frame);
}
obj = JsonLdProcessor.frame(obj, frame, opts);
} else {
// compact or flatten
// we need a (jsonld) context. Get it from jenaContext, or create one:
Object ctx = getJsonldContext(dataset, prefixMap, jenaContext);
if (variant.isCompact()) {
obj = JsonLdProcessor.compact(obj, ctx, opts);
} else if (variant.isFlatten()) {
obj = JsonLdProcessor.flatten(obj, ctx, opts);
} else {
throw new IllegalArgumentException("Unexpected " + RDFFormat.JSONLDVariant.class.getName() + ": " + variant);
}
// replace @context in output?
if (jenaContext != null) {
Object ctxReplacement = jenaContext.get(JSONLD_CONTEXT_SUBSTITUTION);
if (ctxReplacement != null) {
if (obj instanceof Map) {
@SuppressWarnings("unchecked") Map<String, Object> map = (Map<String, Object>) obj;
if (map.containsKey("@context")) {
map.put("@context", JsonUtils.fromString(ctxReplacement.toString()));
}
}
}
}
}
return obj;
}
Aggregations