|
From: <yo...@us...> - 2009-11-04 21:12:30
|
Revision: 250
http://treebase.svn.sourceforge.net/treebase/?rev=250&view=rev
Author: youjun
Date: 2009-11-04 21:12:12 +0000 (Wed, 04 Nov 2009)
Log Message:
-----------
Modified Paths:
--------------
trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/controller/OAIPMHController.java
Added Paths:
-----------
trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/controller/cannotDisseminateFormat.vm
trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/util/ParamsUtil.java
trunk/oai-pmh_data_provider/data_provider_web/src/main/webapp/WEB-INF/vmFiles/GetRecord.vm
trunk/oai-pmh_data_provider/data_provider_web/src/main/webapp/WEB-INF/vmFiles/ListMetadataFormats.vm
trunk/oai-pmh_data_provider/data_provider_web/src/main/webapp/WEB-INF/vmFiles/badArgument.vm
trunk/oai-pmh_data_provider/data_provider_web/src/main/webapp/WEB-INF/vmFiles/badVerb.vm
trunk/oai-pmh_data_provider/data_provider_web/src/main/webapp/WEB-INF/vmFiles/idDoesNotExist.vm
Modified: trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/controller/OAIPMHController.java
===================================================================
--- trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/controller/OAIPMHController.java 2009-11-04 17:04:34 UTC (rev 249)
+++ trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/controller/OAIPMHController.java 2009-11-04 21:12:12 UTC (rev 250)
@@ -1,7 +1,7 @@
package org.treebase.oai.web.controller;
import java.lang.reflect.Method;
-import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
@@ -12,9 +12,18 @@
import org.springframework.web.servlet.mvc.AbstractCommandController;
import org.treebase.oai.web.command.Identify;
import org.treebase.oai.web.command.OAIPMHCommand;
+import org.treebase.oai.web.util.ParamsUtil;
+import org.cipres.treebase.domain.study.Submission;
import org.cipres.treebase.domain.study.SubmissionService;
import org.cipres.treebase.domain.study.StudyService;
-
+/**
+ * OAIPMHController.java
+ *
+ * Created on Nov. 1, 2009
+ *
+ * @author Youjun Guo
+ *
+ */
public class OAIPMHController extends AbstractCommandController{
private SubmissionService submissionService;
@@ -64,23 +73,30 @@
model.put("requestParams", params);
model.put("identify", this.identify);
- String responsDate;
Method method=null;
+ if(ParamsUtil.badMetadataPrefix(params))
+
+ return new ModelAndView("cannotDisseminateFormat.vm",model);
try{
method=this.getClass().getMethod(params.getVerb(), new Class[]{HttpServletRequest.class, HttpServletResponse.class, OAIPMHCommand.class, Map.class});
- }catch(NoSuchMethodException e){
+ }catch(NoSuchMethodException nsme){
return new ModelAndView("badVerb.vm",model);
+ }catch(NullPointerException e){
+ return (new ModelAndView("badArgument.vm",model));
}
- return (ModelAndView) method.invoke(this, request, response, params, model);
- }
+ return (ModelAndView) method.invoke(this, request, response, params, model);
+
+ }
ModelAndView ListRecoed(HttpServletRequest request, HttpServletResponse response, OAIPMHCommand params, Map model){
+ List<Submission> list=null;
+ model.put("recodeList", list);;
return (new ModelAndView(params.getMetadataPrefix()+"_ListRecoed.vm",model));
}
@@ -88,18 +104,35 @@
ModelAndView ListIdentifiers(HttpServletRequest request, HttpServletResponse response, OAIPMHCommand params, Map model){
+ List<Submission> list=null;
+ model.put("recodeList", list);
return (new ModelAndView(params.getMetadataPrefix()+"_ListIdentifiers.vm",model));
}
ModelAndView GetRecord(HttpServletRequest request, HttpServletResponse response, OAIPMHCommand params, Map model){
+ Submission submission = null;
+
+ try{
+ long id = ParamsUtil.parseID(params);
+ submission = studyService.findByID(id).getSubmission();
+ }catch(NumberFormatException nfe){
+ return (new ModelAndView("badArgument.vm",model));
+ }
+ catch (NullPointerException e){
+
+ return (new ModelAndView("idDoesNotExist.vm",model));
+ }
+
+ model.put("record", submission);
return (new ModelAndView(params.getMetadataPrefix()+"_GetRecord.vm",model));
}
ModelAndView Identify(HttpServletRequest request, HttpServletResponse response, OAIPMHCommand params, Map model){
+
return (new ModelAndView("Identify.vm",model));
}
@@ -112,6 +145,20 @@
ModelAndView ListMetadataFormats(HttpServletRequest request, HttpServletResponse response, OAIPMHCommand params, Map model){
+
+ Submission submission = null;
+
+ try{
+ long id = ParamsUtil.parseID(params);
+ submission = studyService.findByID(id).getSubmission();
+ }catch(NumberFormatException nfe){
+ return (new ModelAndView("badArgument.vm",model));
+ }
+ catch (NullPointerException e){
+
+ return (new ModelAndView("idDoesNotExist.vm",model));
+ }
+
return (new ModelAndView("ListMetadataFormats.vm",model));
}
Added: trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/util/ParamsUtil.java
===================================================================
--- trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/util/ParamsUtil.java (rev 0)
+++ trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/util/ParamsUtil.java 2009-11-04 21:12:12 UTC (rev 250)
@@ -0,0 +1,20 @@
+package org.treebase.oai.web.util;
+
+import org.treebase.oai.web.command.OAIPMHCommand;
+
+public class ParamsUtil {
+
+ public static boolean badMetadataPrefix(OAIPMHCommand params){
+ if (params.getMetadataPrefix().toLowerCase()=="dc")
+ return false;
+ if (params.getMetadataPrefix().toLowerCase()=="dryad")
+ return false;
+ return true;
+ }
+
+ public static long parseID(OAIPMHCommand params)
+ {
+ String [] ids = params.getIdentifier().split("/");
+ return Long.parseLong(ids[ids.length-1]);
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|