From: <yo...@us...> - 2009-11-05 20:30:21
|
Revision: 256 http://treebase.svn.sourceforge.net/treebase/?rev=256&view=rev Author: youjun Date: 2009-11-05 20:30:13 +0000 (Thu, 05 Nov 2009) Log Message: ----------- finish coding Modified Paths: -------------- trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/command/Identify.java 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/util/IdentifyUtil.java Added Paths: ----------- trunk/oai-pmh_data_provider/data_provider_web/src/main/webapp/WEB-INF/vmFiles/cannotDisseminateFormat.vm Removed Paths: ------------- trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/controller/cannotDisseminateFormat.vm Modified: trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/command/Identify.java =================================================================== --- trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/command/Identify.java 2009-11-05 16:32:57 UTC (rev 255) +++ trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/command/Identify.java 2009-11-05 20:30:13 UTC (rev 256) @@ -10,6 +10,13 @@ public class Identify { + public String getGranularityPattern() { + return granularityPattern; + } + public void setGranularityPattern(String granularityPattern) { + this.granularityPattern = granularityPattern; + } + private String baseRUL; private String repositoryName; private String protocolVersion; 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-05 16:32:57 UTC (rev 255) +++ trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/controller/OAIPMHController.java 2009-11-05 20:30:13 UTC (rev 256) @@ -1,6 +1,7 @@ package org.treebase.oai.web.controller; import java.lang.reflect.Method; +import java.text.ParseException; import java.util.List; import java.util.Map; @@ -12,7 +13,7 @@ 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.treebase.oai.web.util.IdentifyUtil; import org.cipres.treebase.domain.study.Submission; import org.cipres.treebase.domain.study.SubmissionService; import org.cipres.treebase.domain.study.StudyService; @@ -76,7 +77,7 @@ Method method=null; - if(ParamsUtil.badMetadataPrefix(params)) + if(IdentifyUtil.badMetadataPrefix(params)) return new ModelAndView("cannotDisseminateFormat.vm",model); @@ -96,7 +97,14 @@ ModelAndView ListRecoed(HttpServletRequest request, HttpServletResponse response, OAIPMHCommand params, Map model){ List<Submission> list=null; - model.put("recodeList", list);; + try { + list = (List)submissionService.findSubmissionByCreateDateRange(IdentifyUtil.parseGranularity(identify.getGranularityPattern(),params.getFrom()), + IdentifyUtil.parseGranularity(identify.getGranularityPattern(),params.getUntil())); + } catch (ParseException e) { + // TODO Auto-generated catch block + return (new ModelAndView("badArgument.vm",model)); + } + model.put("recodeList", list); return (new ModelAndView(params.getMetadataPrefix()+"_ListRecoed.vm",model)); } @@ -105,6 +113,13 @@ ModelAndView ListIdentifiers(HttpServletRequest request, HttpServletResponse response, OAIPMHCommand params, Map model){ List<Submission> list=null; + try { + list = (List)submissionService.findSubmissionByCreateDateRange(IdentifyUtil.parseGranularity(identify.getGranularityPattern(),params.getFrom()), + IdentifyUtil.parseGranularity(identify.getGranularityPattern(), params.getUntil())); + } catch (ParseException e) { + // TODO Auto-generated catch block + return (new ModelAndView("badArgument.vm",model)); + } model.put("recodeList", list); return (new ModelAndView(params.getMetadataPrefix()+"_ListIdentifiers.vm",model)); @@ -115,7 +130,7 @@ Submission submission = null; try{ - long id = ParamsUtil.parseID(params); + long id = IdentifyUtil.parseID(params); submission = studyService.findByID(id).getSubmission(); }catch(NumberFormatException nfe){ return (new ModelAndView("badArgument.vm",model)); @@ -149,7 +164,7 @@ Submission submission = null; try{ - long id = ParamsUtil.parseID(params); + long id = IdentifyUtil.parseID(params); submission = studyService.findByID(id).getSubmission(); }catch(NumberFormatException nfe){ return (new ModelAndView("badArgument.vm",model)); Modified: trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/util/IdentifyUtil.java =================================================================== --- trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/util/IdentifyUtil.java 2009-11-05 16:32:57 UTC (rev 255) +++ trunk/oai-pmh_data_provider/data_provider_web/src/main/java/org/treebase/oai/web/util/IdentifyUtil.java 2009-11-05 20:30:13 UTC (rev 256) @@ -1,5 +1,13 @@ package org.treebase.oai.web.util; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.TimeZone; + +import org.treebase.oai.web.command.Identify; import org.treebase.oai.web.command.OAIPMHCommand; public class IdentifyUtil { @@ -17,4 +25,23 @@ String [] ids = params.getIdentifier().split("/"); return Long.parseLong(ids[ids.length-1]); } + + public static Date parseGranularity(String granularity, String time ) throws ParseException + { + + SimpleDateFormat sdf = new SimpleDateFormat(granularity); + Date utcDate = sdf.parse(time); + return utcToLocal(utcDate); + + + } + + protected static Date utcToLocal(Date utcDate) + { + long utcMiliseconds = utcDate.getTime(); + + Calendar cal = new GregorianCalendar(); + cal.setTimeInMillis(utcMiliseconds); + return new Date(utcMiliseconds + cal.get(Calendar.ZONE_OFFSET) + cal.get(Calendar.DST_OFFSET)); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |