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. |