All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sysunite.coinsweb.connector.inmem.InMemRdf4j Maven / Gradle / Ivy

The newest version!
package com.sysunite.coinsweb.connector.inmem;

import com.sysunite.coinsweb.connector.Rdf4jConnector;
import com.sysunite.coinsweb.parser.config.pojo.Environment;
import org.apache.commons.io.FileUtils;
import org.eclipse.rdf4j.repository.sail.SailRepository;
import org.eclipse.rdf4j.sail.memory.MemoryStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.IOException;

/**
 * @author bastbijl, Sysunite 2017
 */
public class InMemRdf4j extends Rdf4jConnector {

  private static final Logger log = LoggerFactory.getLogger(InMemRdf4j.class);

  public static final String REFERENCE = "rdf4j-sail-memory";

  private boolean useDisk;
  private File tempFolder;

  public InMemRdf4j(Environment config) {
    useDisk = config.getUseDisk();
    if(useDisk) {
      try {
        File temp = File.createTempFile("temp-file-name", ".tmp");
        tempFolder = temp.getParentFile();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }

  public void init() {
    if(initialized) {
      return;
    }

    log.info("Initialize connector ("+REFERENCE+")");

    MemoryStore memStore;
    if(useDisk) {
      memStore = new MemoryStore(tempFolder);
    } else {
      memStore = new MemoryStore();
    }
    repository = new SailRepository(memStore);

    repository.initialize();
    initialized = true;
  }

  public void close() {
    if(!initialized) {
      return;
    }
    repository.shutDown();
    if(useDisk) {
      try {
        FileUtils.deleteDirectory(tempFolder);
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }



}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy