Deal cleanly with no datasets provide - devolve to individual commands. Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/5c9092d4 Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/5c9092d4 Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/5c9092d4
Branch: refs/heads/JENA-507 Commit: 5c9092d4ff9d556ca1628cdcff67194f6a377aba Parents: a2cc0ee Author: Andy Seaborne <[email protected]> Authored: Tue Aug 25 12:31:35 2015 +0100 Committer: Andy Seaborne <[email protected]> Committed: Tue Aug 25 12:31:35 2015 +0100 ---------------------------------------------------------------------- jena-arq/src/main/java/arq/cmdline/CmdUpdate.java | 10 +++++++--- jena-arq/src/main/java/arq/cmdline/ModDataset.java | 7 +++++-- jena-arq/src/main/java/arq/load.java | 9 ++++++--- jena-arq/src/main/java/arq/query.java | 11 ++++++++++- jena-arq/src/main/java/arq/update.java | 7 ++++++- 5 files changed, 34 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/5c9092d4/jena-arq/src/main/java/arq/cmdline/CmdUpdate.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/arq/cmdline/CmdUpdate.java b/jena-arq/src/main/java/arq/cmdline/CmdUpdate.java index 0baed1b..9ff706c 100644 --- a/jena-arq/src/main/java/arq/cmdline/CmdUpdate.java +++ b/jena-arq/src/main/java/arq/cmdline/CmdUpdate.java @@ -30,14 +30,13 @@ public abstract class CmdUpdate extends CmdARQ protected CmdUpdate(String[] argv) { super(argv) ; - modDataset = setModGraphStore() ; + modDataset = setModeDataset() ; addModule(modDataset) ; } - protected ModDataset setModGraphStore() { + protected ModDataset setModeDataset() { return new ModDatasetGeneralAssembler() ; } - @Override protected void processModulesAndArgs() @@ -50,10 +49,15 @@ public abstract class CmdUpdate extends CmdARQ @Override protected final void exec() { DatasetGraph dataset = modDataset.getDatasetGraph() ; + if ( dataset == null ) + dataset = dealWithNoDataset() ; + if ( dataset.getDefaultGraph() == null ) dataset.setDefaultGraph(ModelFactory.createDefaultModel().getGraph()) ; execUpdate(dataset) ; } + protected abstract DatasetGraph dealWithNoDataset() ; + protected abstract void execUpdate(DatasetGraph graphStore) ; } http://git-wip-us.apache.org/repos/asf/jena/blob/5c9092d4/jena-arq/src/main/java/arq/cmdline/ModDataset.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/arq/cmdline/ModDataset.java b/jena-arq/src/main/java/arq/cmdline/ModDataset.java index 089e1f1..01a0bb8 100644 --- a/jena-arq/src/main/java/arq/cmdline/ModDataset.java +++ b/jena-arq/src/main/java/arq/cmdline/ModDataset.java @@ -38,8 +38,11 @@ public abstract class ModDataset extends ModBase return dataset ; } - public DatasetGraph getDatasetGraph() { - return getDataset().asDatasetGraph() ; + public DatasetGraph getDatasetGraph() { + Dataset ds = getDataset() ; + if ( ds == null ) + return null ; + return ds.asDatasetGraph() ; } public abstract Dataset createDataset() ; http://git-wip-us.apache.org/repos/asf/jena/blob/5c9092d4/jena-arq/src/main/java/arq/load.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/arq/load.java b/jena-arq/src/main/java/arq/load.java index d74de5e..b5d75c8 100644 --- a/jena-arq/src/main/java/arq/load.java +++ b/jena-arq/src/main/java/arq/load.java @@ -21,9 +21,9 @@ package arq; import java.util.Iterator ; import java.util.List ; +import arq.cmdline.CmdUpdate ; import jena.cmd.ArgDecl; import jena.cmd.CmdException; - import org.apache.jena.atlas.io.IndentedWriter ; import org.apache.jena.atlas.lib.Lib ; import org.apache.jena.graph.Graph ; @@ -35,8 +35,6 @@ import org.apache.jena.sparql.util.graph.GraphLoadMonitor ; import org.apache.jena.update.UpdateExecutionFactory ; import org.apache.jena.update.UpdateRequest ; -import arq.cmdline.CmdUpdate ; - public class load extends CmdUpdate { static private final ArgDecl graphNameArg = new ArgDecl(ArgDecl.HasValue, "--graph") ; @@ -114,4 +112,9 @@ public class load extends CmdUpdate //m.setSummaryLabel(getCommandName()) ; graph.getEventManager().register(m) ; } + + @Override + protected DatasetGraph dealWithNoDataset() { + throw new CmdException("No dataset provided") ; + } } http://git-wip-us.apache.org/repos/asf/jena/blob/5c9092d4/jena-arq/src/main/java/arq/query.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/arq/query.java b/jena-arq/src/main/java/arq/query.java index f119aba..76865e1 100644 --- a/jena-arq/src/main/java/arq/query.java +++ b/jena-arq/src/main/java/arq/query.java @@ -174,13 +174,22 @@ public class query extends CmdARQ protected String getSummary() { return getCommandName()+" --data=<file> --query=<query>" ; } protected Dataset getDataset() { - try { return modDataset.getDataset() ; } + try { + Dataset ds = modDataset.getDataset() ; + if ( ds == null ) + ds = dealWithNoDataset() ; + return ds ; + } catch ( RiotException ex ) { System.err.println("Failed to load data") ; throw new TerminationException(1) ; } } + protected Dataset dealWithNoDataset() { + throw new CmdException("No dataset provided") ; + } + protected long totalTime = 0 ; protected void queryExec(boolean timed, ResultsFormat fmt) { http://git-wip-us.apache.org/repos/asf/jena/blob/5c9092d4/jena-arq/src/main/java/arq/update.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/arq/update.java b/jena-arq/src/main/java/arq/update.java index f6bf5fd..650104b 100644 --- a/jena-arq/src/main/java/arq/update.java +++ b/jena-arq/src/main/java/arq/update.java @@ -29,6 +29,7 @@ import org.apache.jena.riot.Lang ; import org.apache.jena.riot.RDFDataMgr ; import org.apache.jena.sparql.SystemARQ ; import org.apache.jena.sparql.core.DatasetGraph ; +import org.apache.jena.sparql.core.DatasetGraphFactory ; import org.apache.jena.sparql.core.Transactional ; import org.apache.jena.sparql.core.TransactionalNull ; import org.apache.jena.update.UpdateExecutionFactory ; @@ -58,7 +59,6 @@ public class update extends CmdUpdate protected void processModulesAndArgs() { requestFiles = getValues(updateArg) ; // ???? dump = contains(dumpArg) ; - super.processModulesAndArgs() ; } @@ -118,4 +118,9 @@ public class update extends CmdUpdate UpdateRequest req = UpdateFactory.create(requestString, updateSyntax) ; UpdateExecutionFactory.create(req, store).execute() ; } + + @Override + protected DatasetGraph dealWithNoDataset() { + return DatasetGraphFactory.createMem() ; + } }
