StatementAddingExecutor.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.query.util.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import org.openrdf.model.Statement;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.RepositoryException;
import com.ostrichemulators.semtool.rdf.engine.api.ModificationExecutor;
/**
*
* @author ryan
*/
public class StatementAddingExecutor implements ModificationExecutor {
private boolean trans;
private final List<Statement> stmts = new ArrayList<>();
public StatementAddingExecutor() {
this( true );
}
public StatementAddingExecutor( boolean usetrans ) {
trans = usetrans;
}
public StatementAddingExecutor( Collection<Statement> todo, boolean intrans ) {
stmts.addAll( todo );
trans = intrans;
}
public StatementAddingExecutor( Collection<Statement> todo ) {
this( todo, true );
}
public void resetStatements( Collection<Statement> todo ) {
clear();
stmts.addAll( todo );
}
public void resetStatements( Statement... stmts ) {
resetStatements( Arrays.asList( stmts ) );
}
public void addStatement( Statement stmt ) {
stmts.add( stmt );
}
public void clear() {
stmts.clear();
}
public void useTransaction( boolean usetran ) {
trans = usetran;
}
public void useTransaction() {
useTransaction( true );
}
@Override
public boolean execInTransaction() {
return trans;
}
@Override
public void exec( RepositoryConnection conn ) throws RepositoryException {
conn.add( stmts );
}
}