gr.ntua.h2rdf.client.Store.java Source code

Java tutorial

Introduction

Here is the source code for gr.ntua.h2rdf.client.Store.java

Source

/*******************************************************************************
 * Copyright (c) 2012 Nikos Papailiou.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/gpl.html
 * 
 * Contributors:
 *     Nikos Papailiou - initial API and implementation
 ******************************************************************************/
package gr.ntua.h2rdf.client;

import java.io.IOException;
import java.net.URI;

import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;
import org.openrdf.query.BindingSet;
import org.openrdf.query.QueryResult;

import gr.ntua.h2rdf.bytes.NotSupportedDatatypeException;

import com.hp.hpl.jena.graph.Triple;

public class Store implements Watcher {
    private Executor executor;
    private ApiExecutor apiExecutor;
    private ExecutorOpenRdf executorOpenRdf;
    private Loader loader;
    private H2RDFConf conf;
    private ZooKeeper zk;

    public Store(H2RDFConf conf) {
        this.conf = conf;

        executor = new Executor("/in", conf);
        apiExecutor = new ApiExecutor("/in", conf);
        executorOpenRdf = new ExecutorOpenRdf("/in", conf);
        //loader=new HbaseSequentialLoader(conf); //Default loader
    }

    public void add(Triple triple) throws NotSupportedDatatypeException {
        loader.add(triple);
    }

    public void close() {
        if (loader != null)
            loader.close();
        executor.close();
        executorOpenRdf.close();
        apiExecutor.close();

    }

    public ResultSet exec(String q) throws Exception {
        return executor.run(q);
    }

    public QueryResult<BindingSet> execOpenRdf(String q) throws Exception {
        return executorOpenRdf.run(q);
    }

    public void setLoader(String type) {
        if (type.equals("BULK")) {
            loader = new BulkLoader(conf, apiExecutor);
        } else if (type.equals("HBASE_SEQUENTIAL")) {
            loader = new HbaseSequentialLoader(conf);
        } else if (type.equals("HBASE_BULK")) {
            loader = new HbaseBulkLoader(conf);
        }
    }

    public Loader getLoader() {
        return loader;
    }

    @Override
    public void process(WatchedEvent arg0) {
    }

    public void delete(Triple triple) throws NotSupportedDatatypeException {
        loader.delete(triple);
    }
}