/* * RDFServlet.java * * Version: $Revision: 0.1 $ * * Date: $Date: 2007/11/23 11:18:15 $ * */ package nl.leidenuniv.dspace.app.webui.servlet; import org.dspace.app.webui.servlet.DSpaceServlet; import org.apache.log4j.Logger; import java.io.IOException; import java.sql.SQLException; import javax.servlet.ServletException; import org.dspace.authorize.AuthorizeException; import org.dspace.core.Context; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //import java.util.Enumeration; import org.dspace.app.webui.util.UIUtil; import org.dspace.app.webui.util.JSPManager; //import org.dspace.core.LogManager; //import nl.leidenuniv.dspace.metis.DSpace2MetisManager; //import org.dspace.content.Item; //import java.io.BufferedInputStream; //import java.io.File; //import java.io.InputStream; //import java.io.FileInputStream; //import org.dspace.content.FormatIdentifier; //import org.dspace.authorize.ResourcePolicy; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; //import java.util.Date; //import java.util.Calendar; //import java.util.StringTokenizer; import org.dspace.content.Item; import org.dspace.content.DCValue; import org.dspace.content.Bitstream; //import org.dspace.content.BitstreamFormat; //import org.dspace.content.Bundle; //import org.dspace.eperson.Group; //import org.dspace.app.webui.util.FileUploadRequest; //import org.dspace.core.Constants; import nl.leidenuniv.dspace.rdf.BitstreamArranger; import nl.leidenuniv.dspace.rdf.RDFtriple; import nl.leidenuniv.dspace.rdf.RDFpredicate; /** * DSpace and RDF servlet. Displays the * RDF edit page /rdf/edit.jsp on a GET or POST * Changes the RDF of the given DSpace object as editted by the user * * @author Lucas van Schaik (Leiden University) * @version $Revision: 0.1 $ */ public class RDFServlet extends DSpaceServlet { /** log4j logger */ private static Logger log = Logger.getLogger(RDFServlet.class); private final static String predicateDAI = "hasDAI"; private final static String predicateDOI = "hasDOI"; protected void doDSGet(Context context, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException { doDSPost(context,request,response); } protected void doDSPost(Context context, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException { response.addDateHeader("expires", 1); response.addHeader("Pragma", "no-cache"); response.addHeader("Cache-control", "no-store"); Item item = null; int item_id = UIUtil.getIntParameter(request, "item_id"); if (item_id > 0) { item = Item.find(context, item_id); } if (item == null) { request.setAttribute("invalid.id", new Boolean(true)); JSPManager.showJSP(request, response, "/dspace-admin/item-select.jsp"); } else { try { processUpdateRDF(context,request,response,item); } catch (AuthorizeException ae) { throw new ServletException("Unexpected authorization failure: "+ae); } prepItemEditForm(context,request,item); JSPManager.showJSP(request, response, "/rdf/rdf-item-edit.jsp"); } } void prepItemEditForm(Context c, HttpServletRequest request, Item item) throws SQLException { List rdfs = new ArrayList(); { // herhalen voor andere DC's ???? DCValue[] dcvs = item.getDC("contributor", "author", Item.ANY); for (int i=0; i 2) { qualifier = parts[2]; } DCValue[] dcs = item.getDC(element,qualifier,Item.ANY); for (int i=0; i 0) { Object obj = triple.getObject(); if ( ! ov.equals(obj)) { triple.setObject(ov); triple.update(); } } else { triple.delete(); } } else { if (ov != null && ov.length() > 0) { triple = new RDFtriple(context,subject,predicate,ov); } } } context.commit(); } } }