/** Create a dataset description, given a context. * If the context does not have a dataset description, return null. * The context uses the key {@link ARQConstants#sysDatasetDescription}. */ public static DatasetDescription create(Context context) { return create(null, context) ; }
/** Create a dataset description, given a query. * If the query does not have a dataset description, return null. */ public static DatasetDescription create(Query query) { return create(query, null) ; }
protected static DatasetDescription getQueryDatasetDescription(Query query) { return DatasetDescription.create(query) ; }
protected static DatasetDescription getQueryDatasetDescription(Query query) { return DatasetDescription.create(query) ; }
public Dataset specifyDataset(Dataset dataset, List<URI> defaultGraphUris, List<URI> namedGraphUris) { if (defaultGraphUris == null) throw new IllegalArgumentException("List<URI> cannot be null"); if (namedGraphUris == null) throw new IllegalArgumentException("List<URI> cannot be null"); List<String> defaultGraphUriStrings = new ArrayList<>(); for (URI defaultGraphUri : defaultGraphUris) defaultGraphUriStrings.add(defaultGraphUri.toString()); List<String> namedGraphUriStrings = new ArrayList<>(); for (URI namedGraphUri : namedGraphUris) namedGraphUriStrings.add(namedGraphUri.toString()); DatasetDescription desc = DatasetDescription.create(defaultGraphUriStrings, namedGraphUriStrings); return DynamicDatasets.dynamicDataset(desc, dataset, false); }
protected static DatasetDescription getProtocolDatasetDescription(HttpAction action) { List<String> graphURLs = toStrList(action.request.getParameterValues(paramDefaultGraphURI)) ; List<String> namedGraphs = toStrList(action.request.getParameterValues(paramNamedGraphURI)) ; graphURLs = removeEmptyValues(graphURLs) ; namedGraphs = removeEmptyValues(namedGraphs) ; if ( graphURLs.size() == 0 && namedGraphs.size() == 0 ) return null ; return DatasetDescription.create(graphURLs, namedGraphs) ; }
protected static DatasetDescription getProtocolDatasetDescription(HttpAction action) { List<String> graphURLs = toStrList(action.request.getParameterValues(paramDefaultGraphURI)) ; List<String> namedGraphs = toStrList(action.request.getParameterValues(paramNamedGraphURI)) ; graphURLs = removeEmptyValues(graphURLs) ; namedGraphs = removeEmptyValues(namedGraphs) ; if ( graphURLs.size() == 0 && namedGraphs.size() == 0 ) return null ; return DatasetDescription.create(graphURLs, namedGraphs) ; }
private DatasetGraph dynamicDataset(HttpAction action, Query query, DatasetGraph dsg0, DatasetDescription dsDesc0, SecurityContext sCxt) { if ( dsDesc0 == null ) return dsg0; if ( ! ALLOW_FROM ) ServletOps.errorBadRequest("Use GRAPH. (FROM/FROM NAMED is not compatible with data access control.)"); DatasetDescription dsDesc1 = DatasetDescription.create( mask(dsDesc0.getDefaultGraphURIs(), sCxt), mask(dsDesc0.getNamedGraphURIs(), sCxt)); if ( dsDesc1.isEmpty() ) return DatasetGraphZero.create(); // Fix up the union graph in the graphs if in FROM. // (FROM NAMED <union graph> is done by DynamicDatasets). if ( dsDesc1.getDefaultGraphURIs().contains(Quad.unionGraph.getURI())) { dsDesc1.getDefaultGraphURIs().remove(Quad.unionGraph.getURI()); dsDesc1.getDefaultGraphURIs().addAll(sCxt.visibleGraphNames()); } DatasetGraph dsg1 = DynamicDatasets.dynamicDataset(dsDesc1, dsg0, false) ; if ( query.hasDatasetDescription() ) { query.getGraphURIs().clear() ; query.getNamedGraphURIs().clear() ; } return dsg1 ; }
private DatasetGraph prepareDataset(DatasetGraph originalDataset, Query query) { DatasetDescription dsDesc = DatasetDescription.create(query, context) ; DatasetGraph dsg = originalDataset; if ( dsg != null ) { if ( dsDesc != null ) { if ( query.hasDatasetDescription() ) dsg = dynamicDataset(dsDesc, dsg, false); } return dsg; } // No DatasetGraph if ( ! query.hasDatasetDescription() ) throw new QueryExecException("No dataset and no dataset description for query"); // DatasetDescription : Build it. String baseURI = query.getBaseURI() ; if ( baseURI == null ) baseURI = IRIResolver.chooseBaseURI().toString() ; dsg = DatasetUtils.createDatasetGraph(dsDesc, baseURI ) ; return dsg ; }
context = ARQ.getContext().copy() ; DatasetDescription dsDesc = DatasetDescription.create(query, context) ; if ( dsDesc != null ) super.dataset = DynamicDatasets.dynamicDataset(dsDesc, dataset, context.isTrue(SDB.unionDefaultGraph) ) ;