/*
* Scute
*
* Homepage: http://hyperdata.org/scute
*
* License : http://www.apache.org/licenses/LICENSE-2.0
* See also license.txt or http://hyperdata.org/wiki/Scute:License
*
* Danny Ayers 2011
*/
package org.hyperdata.scute.rdf;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import com.hp.hpl.jena.rdf.model.Model;
import org.hyperdata.scute.system.Log;
import org.hyperdata.scute.system.panels.LogPane;
/**
* ModelContainer - wrapper for models
*/
public class ModelContainer implements Runnable {
/**
* Save.
*/
public void saveModelToFile() {
try {
// System.out.println("saving Model to file " + getModelFilename());
RdfUtils.save(getModel(), getModelFilename());
setSaved(true);
} catch (IOException exception) {
// TODO popup for file error
Log.exception(exception);
}
}
/*
* (non-Javadoc)
*
* @see java.lang.Runnable#run()
*/
@Override
public void run() {
saveModelToFile();
}
public String getModelURI() {
return this.modelURI;
}
public void setModelURI(String modelURI) {
this.modelURI = modelURI;
}
public void setModel(Model model) {
this.model = model;
}
public void setModelFilename(String modelFilename) {
this.modelFilename = modelFilename;
}
private Model model;
private String modelFilename;
private String modelURI;
private boolean savedToFile;
/**
* Gets the model.
*
* @return the model
*/
public Model getModel() {
return model;
}
/**
* Gets the model filename.
*
* @return the model filename
*/
public String getModelFilename() {
return modelFilename;
}
/**
* Gets the model name.
*
* @return the model name
*/
public String getModelName() {
return modelURI;
}
public boolean isSaved() {
return savedToFile;
}
/**
* @param b
*/
public void setSaved(boolean saved) {
this.savedToFile = saved;
}
public void storeNamedModel() {
System.out.println("STORE MODEL (only file bit in use) - implement me!");
saveModelToFile();
}
public void loadNamedModel() {
System.out.println("LOAD MODEL from URI - implement me!");
}
public void loadModelFromFile() {
File file = new File(modelFilename);
LogPane.println("Opening: " + file.getName());
String syntax = "Turtle";
if (file.getPath().toLowerCase().endsWith(".rdf")) {
syntax = "RDF/XML";
}
try {
final InputStream stream = new FileInputStream(file);
Models.clearWorkingModel();
Models.workingModel.read(new FileInputStream(file), "", syntax);
stream.close();
} catch (final Exception exception) {
LogPane.println(exception.getMessage());
Log.exception(exception);
}
}
}