package doser.server.actions.kbenrichment;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import doser.entitydisambiguation.modknowledgebase.dpo.DocumentToProcess;
import doser.entitydisambiguation.modknowledgebase.dpo.EntryToProcess;
import doser.entitydisambiguation.modknowledgebase.dpo.KBEnrichmentRequest;
import doser.entitydisambiguation.properties.Properties;
/**
* Servlet implementation class StoreIndexModificationServlet
*/
public class StoreIndexModificationServlet extends HttpServlet {
public static final String INDEX = Properties.getInstance().getDbPediaBiomedCopyKB();
private static final long serialVersionUID = 1L;
private KBEnrichmentService service;
/**
* @see HttpServlet#HttpServlet()
*/
public StoreIndexModificationServlet() {
super();
this.service = new KBEnrichmentService();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
KBEnrichmentRequest enrequest = new KBEnrichmentRequest();
// Set knowledge base
enrequest.setKburi(INDEX);
// Set knowledge base
enrequest.setPrimaryKeyField("Mainlink");
// Set knowledge base operation
enrequest.setCommand("UPDATEDOCUMENTS");
// Set knowledge base entries
final DocumentToProcess doc = new DocumentToProcess();
List<EntryToProcess> entryList = new LinkedList<EntryToProcess>();
EntryToProcess process1 = new EntryToProcess();
process1.setFieldName("Label");
process1.setValue(request.getParameter("label"));
entryList.add(process1);
EntryToProcess process2 = new EntryToProcess();
process2.setFieldName("Description");
process2.setValue(request.getParameter("description"));
entryList.add(process2);
EntryToProcess process3 = new EntryToProcess();
process3.setFieldName("UniqueLabelString");
process3.setValue(request.getParameter("synonyms"));
entryList.add(process3);
doc.setKey(request.getParameter("uri"));
doc.setEntryList(entryList);
List<DocumentToProcess> docList = new LinkedList<DocumentToProcess>();
docList.add(doc);
enrequest.setFieldAction("OVERRIDEFIELD");
enrequest.setDocList(docList);
service.enrich(enrequest);
request.setAttribute("info", "IndexModification successful");
ServletContext servletContext = getServletContext();
RequestDispatcher requestDispatcher = servletContext
.getRequestDispatcher("/DisplayEntityCandidatesServlet");
requestDispatcher.forward(request, response);
}
}