sdb.cmd.ModConfig Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jena-sdb Show documentation
Show all versions of jena-sdb Show documentation
SDB is a persistence layer for use with Apache Jena that uses an SQL database to store triples/quads.
/*
* 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 sdb.cmd;
import jena.cmd.ArgDecl;
import jena.cmd.CmdArgModule;
import jena.cmd.CmdGeneral;
import jena.cmd.ModBase;
import org.apache.jena.sdb.Store ;
import arq.cmdline.*;
public class ModConfig extends ModBase
{
protected final ArgDecl argDeclFormat = new ArgDecl(ArgDecl.NoValue, "format") ;
protected final ArgDecl argDeclCreate = new ArgDecl(ArgDecl.NoValue, "create") ;
protected final ArgDecl argDeclDropIndexes = new ArgDecl(ArgDecl.NoValue, "dropIndexes", "drop") ;
protected final ArgDecl argDeclIndexes = new ArgDecl(ArgDecl.NoValue, "addIndexes", "indexes", "index") ;
private boolean format = false ;
private boolean createStore = false ;
private boolean dropIndexes = false ;
private boolean createIndexes = false ;
public ModConfig() {}
@Override
public void registerWith(CmdGeneral cmdLine)
{
cmdLine.add(argDeclCreate,
"--create", "Format a database and add indexes") ;
cmdLine.add(argDeclFormat,
"--format", "Format a database (no indexes)") ;
cmdLine.add(argDeclDropIndexes,
"--drop", "Drop indexes") ;
cmdLine.add(argDeclIndexes,
"--indexes", "Add indexes") ;
}
@Override
public void processArgs(CmdArgModule cmdLine)
{
format = cmdLine.contains(argDeclFormat) ;
createStore = cmdLine.contains(argDeclCreate) ;
dropIndexes = cmdLine.contains(argDeclDropIndexes) ;
createIndexes = cmdLine.contains(argDeclIndexes) ;
}
public boolean addIndexes() { return createIndexes ; }
public boolean dropIndexes() { return dropIndexes ; }
public boolean format() { return format ; }
public boolean createStore() { return createStore ; }
public void enact(Store store) { enact(store, null) ; }
public void enact(Store store, ModTime timer)
{
// "create" = format + build indexes.
if ( createStore() )
{
if ( timer != null )
timer.startTimer() ;
store.getTableFormatter().create() ;
if ( timer != null )
{
long time = timer.endTimer() ;
printTime("create", time) ;
}
}
if ( format() && ! createStore() )
{
if ( timer != null )
timer.startTimer() ;
store.getTableFormatter().format() ;
if ( timer != null )
{
long time = timer.endTimer() ;
printTime("format", time) ;
}
}
if ( dropIndexes() )
{
if ( timer != null )
timer.startTimer() ;
store.getTableFormatter().dropIndexes() ;
if ( timer != null )
{
long time = timer.endTimer() ;
printTime("drop indexes", time) ;
}
}
if ( addIndexes() )
{
if ( timer != null )
timer.startTimer() ;
store.getTableFormatter().addIndexes() ;
if ( timer != null )
{
long time = timer.endTimer() ;
printTime("add indexes", time) ;
}
}
}
private void printTime(String string, long timeMilli)
{
System.out.printf("Operation: %s: Time %.3f seconds\n",
string, timeMilli/1000.0) ;
}
}