EngineCreateBuilder.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.ostrichemulators.semtool.rdf.engine.util;
import com.ostrichemulators.semtool.rdf.engine.api.ReificationStyle;
import com.ostrichemulators.semtool.rdf.engine.impl.AbstractSesameEngine;
import com.ostrichemulators.semtool.rdf.engine.impl.SesameEngine;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.openrdf.model.URI;
/**
*
* @author ryan
*/
public class EngineCreateBuilder {
private URI defaultBaseUri;
private ReificationStyle reificationModel;
private File questions;
private final File topdir;
private boolean defaultBaseOverridesFiles;
private boolean stageInMemory;
private boolean calcInfers;
private boolean dometamodel;
private Class<? extends AbstractSesameEngine> impl = SesameEngine.class;
private final String engine;
private final List<File> toload = new ArrayList<>();
private final List<URL> vocabularies = new ArrayList<>();
public EngineCreateBuilder( File parentdir, String engineName ) {
topdir = parentdir;
engine = engineName;
}
public EngineCreateBuilder setDefaultBaseUri( URI base, boolean override ) {
defaultBaseUri = base;
defaultBaseOverridesFiles = override;
return this;
}
public EngineCreateBuilder setEngineImpl( Class<? extends AbstractSesameEngine> klass ) {
impl = klass;
return this;
}
public EngineCreateBuilder setReificationModel( ReificationStyle model ) {
reificationModel = model;
return this;
}
public EngineCreateBuilder setInsightsFile( File questionsmodel ) {
questions = questionsmodel;
return this;
}
public EngineCreateBuilder setInsightsFile( String questionsmodel ) {
questions = ( null == questionsmodel || questionsmodel.isEmpty()
? null : new File( questionsmodel ) );
return this;
}
public EngineCreateBuilder setBooleans( boolean inmem, boolean infers, boolean metamodel ) {
stageInMemory = inmem;
calcInfers = infers;
dometamodel = metamodel;
return this;
}
public EngineCreateBuilder addFile( File f ) {
toload.add( f );
return this;
}
public EngineCreateBuilder setFiles( Collection<File> f ) {
toload.clear();
toload.addAll( f );
return this;
}
public List<File> getFiles() {
return new ArrayList<>( toload );
}
public EngineCreateBuilder addVocabulary( URL f ) {
vocabularies.add( f );
return this;
}
public EngineCreateBuilder setVocabularies( Collection<URL> f ) {
vocabularies.clear();
vocabularies.addAll( f );
return this;
}
public List<URL> getVocabularies() {
return new ArrayList<>( vocabularies );
}
public URI getDefaultBaseUri() {
return defaultBaseUri;
}
public boolean isDefaultBaseOverridesFiles() {
return defaultBaseOverridesFiles;
}
public ReificationStyle getReificationModel() {
return reificationModel;
}
public File getQuestions() {
return questions;
}
public boolean isStageInMemory() {
return stageInMemory;
}
public boolean isCalcInfers() {
return calcInfers;
}
public boolean isDoMetamodel() {
return dometamodel;
}
public String getEngineName() {
return engine;
}
public File getEngineDir() {
return topdir;
}
public Class<? extends AbstractSesameEngine> getEngineImpl() {
return impl;
}
}