package org.hadatac.console.controllers.deployments; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocumentList; import org.hadatac.console.controllers.AuthApplication; import org.hadatac.console.http.GetSparqlQuery; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Iterator; import org.hadatac.console.models.URIGeneratorForm; import org.hadatac.console.models.SparqlQuery; import org.hadatac.console.models.TreeQuery; import play.Play; import play.data.Form; import play.mvc.Controller; import play.mvc.Result; import org.hadatac.console.views.html.deployments.*; import org.hadatac.utils.Collections; import be.objectify.deadbolt.java.actions.Group; import be.objectify.deadbolt.java.actions.Restrict; public class URIGenerator extends Controller { // for /metadata HTTP GET requests @Restrict(@Group(AuthApplication.DATA_OWNER_ROLE)) public static Result index() { return ok(uriGenerator.render(Form.form(URIGeneratorForm.class))); }// /index() // for /metadata HTTP POST requests @Restrict(@Group(AuthApplication.DATA_OWNER_ROLE)) public static Result postIndex() { return ok(uriGenerator.render(Form.form(URIGeneratorForm.class))); }// /postIndex() public static long getNextId() { SolrClient client = new HttpSolrClient( Play.application().configuration().getString("hadatac.solr.data") + Collections.URI_GENERATOR); SolrQuery parameters = new SolrQuery(); parameters.set("q", "*:*"); parameters.set("sort", "generated_id desc"); parameters.set("start", "0"); parameters.set("rows", "1"); parameters.set("fl", "generated_id"); QueryResponse response; try { response = client.query(parameters); SolrDocumentList list = response.getResults(); Iterator<SolrDocument> i = list.iterator(); if (i.hasNext()) { long id = Long.parseLong(i.next().getFieldValue("generated_id").toString()); return ++id; } } catch (SolrServerException | IOException e) { e.printStackTrace(); } return -1; } /** * Handles the form submission. */ @Restrict(@Group(AuthApplication.DATA_OWNER_ROLE)) public static Result processForm() { Form<URIGeneratorForm> form = Form.form(URIGeneratorForm.class).bindFromRequest(); URIGeneratorForm data = form.get(); System.out.println("Owner URI " + data.getOwnerURI()); System.out.println("Description " + data.getDescription()); // Capture the date and time Date date = new Date(); data.setDateTime(new Date()); // Generate the next URI Generator's ID data.setGeneratedID(getNextId()); http://localhost:8983/solr/uri_generator/select?q=*%3A*&sort=generated_id+desc&start=0&rows=1&fl=generated_id&wt=json if (form.hasErrors()) { System.out.println("HAS ERRORS"); return badRequest(uriGenerator.render(form)); } else { return ok(uriGeneratorConfirm.render(data)); } } }