package org.hadatac.console.controllers.triplestore;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import play.*;
import play.mvc.*;
import play.libs.*;
import org.hadatac.console.controllers.AuthApplication;
import org.hadatac.console.views.html.triplestore.*;
import org.hadatac.metadata.loader.MetadataContext;
import org.hadatac.utils.Feedback;
import org.hadatac.utils.NameSpaces;
import be.objectify.deadbolt.java.actions.Group;
import be.objectify.deadbolt.java.actions.Restrict;
public class LoadOnt extends Controller {
@Restrict(@Group(AuthApplication.DATA_MANAGER_ROLE))
public static Result loadOnt(String oper) {
List<String> cacheList = new ArrayList<String>();
File folder = new File(NameSpaces.CACHE_PATH);
// if the directory does not exist, create it
if (!folder.exists()) {
System.out.println("creating directory: " + NameSpaces.CACHE_PATH);
try{
folder.mkdir();
}
catch(SecurityException se){
System.out.println("Failed to create directory.");
}
System.out.println("DIR created");
}
String name = "";
for (final File fileEntry : folder.listFiles()) {
if (!fileEntry.isDirectory()) {
name = fileEntry.getName();
if (name.startsWith(NameSpaces.CACHE_PREFIX)) {
name = name.substring(NameSpaces.CACHE_PREFIX.length());
cacheList.add(name);
//System.out.println(name);
}
}
}
return ok(loadOnt.render(oper, cacheList));
}
@Restrict(@Group(AuthApplication.DATA_MANAGER_ROLE))
public static Result postLoadOnt(String oper) {
List<String> cacheList = new ArrayList<String>();
File folder = new File(NameSpaces.CACHE_PATH);
String name = "";
for (final File fileEntry : folder.listFiles()) {
if (!fileEntry.isDirectory()) {
name = fileEntry.getName();
if (name.startsWith(NameSpaces.CACHE_PREFIX)) {
name = name.substring(NameSpaces.CACHE_PREFIX.length());
cacheList.add(name);
//System.out.println(name);
}
}
}
return ok(loadOnt.render(oper, cacheList));
}
public static String playLoadOntologies(String oper) {
NameSpaces.getInstance();
MetadataContext metadata = new
MetadataContext("user",
"password",
Play.application().configuration().getString("hadatac.solr.triplestore"),
false);
return metadata.loadOntologies(Feedback.WEB, oper);
}
@Restrict(@Group(AuthApplication.DATA_MANAGER_ROLE))
public static Result eraseCache() {
List<String> cacheList = new ArrayList<String>();
File folder = new File(NameSpaces.CACHE_PATH);
String name = "";
for (final File fileEntry : folder.listFiles()) {
if (!fileEntry.isDirectory()) {
name = fileEntry.getName();
if (name.startsWith(NameSpaces.CACHE_PREFIX)) {
fileEntry.delete();
}
}
}
return ok(loadOnt.render("init", cacheList));
}
}