/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package tdb.cmdline;
import arq.cmdline.CmdARQ ;
import org.apache.jena.Jena ;
import org.apache.jena.atlas.lib.Lib ;
import org.apache.jena.atlas.logging.LogCtl ;
import org.apache.jena.query.ARQ ;
import org.apache.jena.query.Dataset ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.system.JenaSystem ;
import org.apache.jena.tdb.TDB ;
import org.apache.jena.tdb.base.file.Location ;
import org.apache.jena.tdb.setup.DatasetBuilderStd ;
import org.apache.jena.tdb.store.DatasetGraphTDB ;
import org.apache.jena.tdb.sys.TDBInternal ;
public abstract class CmdTDB extends CmdARQ
{
protected final ModTDBDataset tdbDatasetAssembler = new ModTDBDataset() ;
private static boolean initialized = false ;
protected CmdTDB(String[] argv) {
super(argv) ;
init() ;
super.addModule(tdbDatasetAssembler) ;
super.modVersion.addClass(Jena.class) ;
super.modVersion.addClass(ARQ.class) ;
super.modVersion.addClass(TDB.class) ;
}
public static synchronized void init() {
// In case called from elsewhere.
JenaSystem.init() ;
if (initialized)
return ;
// attempt once.
initialized = true ;
LogCtl.setCmdLogging() ;
DatasetBuilderStd.setOptimizerWarningFlag(false) ;
}
@Override
protected void processModulesAndArgs() {
super.processModulesAndArgs() ;
}
protected Location getLocation() {
return tdbDatasetAssembler.getLocation() ;
}
protected DatasetGraph getDatasetGraph() {
return getDataset().asDatasetGraph() ;
}
protected DatasetGraphTDB getDatasetGraphTDB() {
DatasetGraph dsg = getDatasetGraph() ;
return TDBInternal.getBaseDatasetGraphTDB(dsg) ;
}
protected Dataset getDataset() {
return tdbDatasetAssembler.getDataset() ;
}
@Override
protected String getCommandName() {
return Lib.className(this) ;
}
}