| 
      
      
      From: <ma...@us...> - 2006-08-27 09:47:49
      
     | 
| Revision: 69 Author: marchy Date: 2006-08-27 02:47:25 -0700 (Sun, 27 Aug 2006) ViewCVS: http://svn.sourceforge.net/objectlabkit/?rev=69&view=rev Log Message: ----------- added backward, and modified handlers Modified Paths: -------------- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ForwardHandler.java Added Paths: ----------- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BackwardHandler.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ModifiedFollowingHandler.java trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ModifiedPreceedingHandler.java Added: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BackwardHandler.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BackwardHandler.java (rev 0) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/BackwardHandler.java 2006-08-27 09:47:25 UTC (rev 69) @@ -0,0 +1,43 @@ +/* + * $Id$ + * + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package net.objectlab.kit.datecalc.jdk; + +import java.util.Date; + +import net.objectlab.kit.datecalc.common.DateCalculator; +import net.objectlab.kit.datecalc.common.HolidayHandlerType; + +/** + * TODO javadoc + * + * @author Marcin Jekot + * @author $LastChangedBy$ + * @version $Revision$ $Date$ + * + */ +public class BackwardHandler extends ForwardHandler { + + public Date moveCurrentDate(DateCalculator<Date> calendar) { + return move(calendar, -1); + } + + public String getType() { + return HolidayHandlerType.BACKWARD; + } + +} Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java 2006-08-27 09:46:33 UTC (rev 68) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/DefaultDateCalculatorFactory.java 2006-08-27 09:47:25 UTC (rev 69) @@ -64,22 +64,17 @@ if (HolidayHandlerType.FORWARD.equals(holidayHandlerType)) { cal.setHolidayHandler(new ForwardHandler()); + } else if (HolidayHandlerType.BACKWARD.equals(holidayHandlerType)) { + cal.setHolidayHandler(new BackwardHandler()); + } else if (HolidayHandlerType.MODIFIED_FOLLLOWING.equals(holidayHandlerType)) { + cal.setHolidayHandler(new ModifiedFollowingHandler()); + } else if (HolidayHandlerType.MODIFIED_PRECEEDING.equals(holidayHandlerType)) { + cal.setHolidayHandler(new ModifiedPreceedingHandler()); } else { - throw new UnsupportedOperationException("only forward supported"); + throw new UnsupportedOperationException("Unsupported HolidayHandler: " + holidayHandlerType); } return cal; - - // } else if (HolidayHandlerType.BACKWARD.equals(holidayHandlerType)) { - // cal.setHolidayHandler(new BackwardHandler()); - // } else if - // (HolidayHandlerType.MODIFIED_FOLLLOWING.equals(holidayHandlerType)) { - // cal.setHolidayHandler(new ModifiedFollowingHandler()); - // } else if - // (HolidayHandlerType.MODIFIED_PRECEEDING.equals(holidayHandlerType)) { - // cal.setHolidayHandler(new ModifiedPreceedingHandler()); - // } - // return cal; } public PeriodCountCalculator<Date> getPeriodCountCalculator() { Modified: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ForwardHandler.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ForwardHandler.java 2006-08-27 09:46:33 UTC (rev 68) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ForwardHandler.java 2006-08-27 09:47:25 UTC (rev 69) @@ -23,23 +23,29 @@ import net.objectlab.kit.datecalc.common.HolidayHandlerType; /** - * + * TODO javadoc + * * @author Marcin Jekot + * @author $LastChangedBy$ + * @version $Revision$ $Date$ * */ public class ForwardHandler implements HolidayHandler<Date> { public Date moveCurrentDate(final DateCalculator<Date> calendar) { + return move(calendar, 1); + } + protected Date move(final DateCalculator<Date> calendar, int step) { final Calendar cal = Utils.getCal(calendar.getCurrentBusinessDate()); while (calendar.isNonWorkingDay(cal.getTime())) { - cal.add(Calendar.DAY_OF_MONTH, 1); + cal.add(Calendar.DAY_OF_MONTH, step); } - return cal.getTime(); + return cal.getTime(); } - + public String getType() { return HolidayHandlerType.FORWARD; } Added: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ModifiedFollowingHandler.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ModifiedFollowingHandler.java (rev 0) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ModifiedFollowingHandler.java 2006-08-27 09:47:25 UTC (rev 69) @@ -0,0 +1,60 @@ +/* + * $Id$ + * + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */package net.objectlab.kit.datecalc.jdk; + +import java.util.Calendar; +import java.util.Date; + +import net.objectlab.kit.datecalc.common.DateCalculator; +import net.objectlab.kit.datecalc.common.HolidayHandler; +import net.objectlab.kit.datecalc.common.HolidayHandlerType; + +/** + * TODO javadoc + * + * @author Marcin Jekot + * @author $LastChangedBy$ + * @version $Revision$ $Date$ + * + */ +public class ModifiedFollowingHandler implements HolidayHandler<Date> { + + public Date moveCurrentDate(DateCalculator<Date> calendar) { + return move(calendar, 1); + } + + protected Date move(DateCalculator<Date> calendar, int step) { + + final Calendar cal = Utils.getCal(calendar.getCurrentBusinessDate()); + + int month = cal.get(Calendar.MONTH); + + while (calendar.isNonWorkingDay(cal.getTime())) { + cal.add(Calendar.DAY_OF_MONTH, step); + if (month != cal.get(Calendar.MONTH)) { + step *= -1; + } + } + + return cal.getTime(); + } + + public String getType() { + return HolidayHandlerType.MODIFIED_FOLLLOWING; + } + +} Added: trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ModifiedPreceedingHandler.java =================================================================== --- trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ModifiedPreceedingHandler.java (rev 0) +++ trunk/datecalc-jdk/src/main/java/net/objectlab/kit/datecalc/jdk/ModifiedPreceedingHandler.java 2006-08-27 09:47:25 UTC (rev 69) @@ -0,0 +1,42 @@ +/* + * $Id$ + * + * Copyright 2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */package net.objectlab.kit.datecalc.jdk; + +import java.util.Date; + +import net.objectlab.kit.datecalc.common.DateCalculator; +import net.objectlab.kit.datecalc.common.HolidayHandlerType; + +/** + * TODO javadoc + * + * @author Marcin Jekot + * @author $LastChangedBy$ + * @version $Revision$ $Date$ + * + */ +public class ModifiedPreceedingHandler extends ModifiedFollowingHandler { + + public Date moveCurrentDate(DateCalculator<Date> calendar) { + return move(calendar, -1); + } + + public String getType() { + return HolidayHandlerType.MODIFIED_PRECEEDING; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |