package org.deri.grefine.rdf.expr;
import java.io.IOException;
import java.util.Properties;
import org.deri.grefine.rdf.Util;
import org.deri.grefine.rdf.app.ApplicationContext;
import org.deri.grefine.rdf.vocab.VocabularyIndexException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.refine.expr.Binder;
import com.google.refine.model.Cell;
import com.google.refine.model.Project;
import com.google.refine.model.Row;
public class RdfBinder implements Binder {
final static Logger logger = LoggerFactory.getLogger("RdfBinder");
private ApplicationContext rdfContext;
public RdfBinder(ApplicationContext ctxt){
super();
this.rdfContext = ctxt;
}
@Override
public void bind(Properties bindings, Row row, int rowIndex, String columnName, Cell cell) {
// nothing to do
}
@Override
public void initializeBindings(Properties bindings, Project project) {
try {
bindings.put("baseURI", Util.getProjectSchema(rdfContext,project).getBaseUri());
} catch (VocabularyIndexException e) {
logger.error("Unable to bind baseURI. Unable to create an index for RDF Schema", e);
} catch (IOException e) {
logger.error("Unable to bind baseURI. Unable to create an index for RDF Schema", e);
}
}
}