All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ow2.bonita.pvm.internal.cal.Holiday Maven / Gradle / Ivy

/*
 * JBoss, Home of Professional Open Source
 * Copyright 2005, JBoss Inc., and individual contributors as indicated
 * by the @authors tag. See the copyright.txt in the distribution for a
 * full listing of individual contributors.
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 */
package org.ow2.bonita.pvm.internal.cal;

import java.io.Serializable;
import java.util.Date;

/**
 * identifies a continuous set of days.
 */
public class Holiday implements Serializable {

  private static final long serialVersionUID = 1L;

  protected long oid = -1;
  protected int version = 0;
  protected Date fromDay = null;
  protected Date toDay = null;
  protected BusinessCalendar businessCalendar = null;

  /*
   * public static List parseHolidays(Properties calendarProperties,
   * BusinessCalendar businessCalendar) { List holidays = new ArrayList();
   * 
   * DateFormat dateFormat = new
   * SimpleDateFormat(calendarProperties.getProperty("day.format")); Iterator
   * iter = calendarProperties.keySet().iterator(); while (iter.hasNext()) {
   * String key = (String) iter.next(); if (key.startsWith("holiday")) { Holiday
   * holiday = new Holiday(calendarProperties.getProperty(key), dateFormat,
   * businessCalendar); holidays.add(holiday); } }
   * 
   * return holidays; }
   * 
   * public Holiday(String holidayText, DateFormat dateFormat, BusinessCalendar
   * businessCalendar) { this.businessCalendar = businessCalendar; try { int
   * separatorIndex = holidayText.indexOf('-'); if (separatorIndex==-1) {
   * fromDay = dateFormat.parse(holidayText.trim()); toDay = fromDay; } else {
   * String fromText = holidayText.substring(0, separatorIndex).trim(); String
   * toText = holidayText.substring(separatorIndex+1).trim(); fromDay =
   * dateFormat.parse(fromText); toDay = dateFormat.parse(toText); } // now we
   * are going to set the toDay to the end of the day, rather then the
   * beginning. // we take the start of the next day as the end of the toDay.
   * Calendar calendar = businessCalendar.createCalendar();
   * calendar.setTime(toDay); calendar.add(Calendar.DATE, 1); toDay =
   * calendar.getTime();
   * 
   * } catch (ParseException e) { throw new
   * BonitaRuntimeException("couldn't parse holiday '"+holidayText+"'", e); } }
   */

  public boolean includes(Date date) {
    return ((fromDay.getTime() <= date.getTime()) && (date.getTime() < toDay
        .getTime()));
  }

  public BusinessCalendar getBusinessCalendar() {
    return businessCalendar;
  }

  public void setBusinessCalendar(BusinessCalendar businessCalendar) {
    this.businessCalendar = businessCalendar;
  }

  public Date getFromDay() {
    return fromDay;
  }

  public void setFromDay(Date fromDay) {
    this.fromDay = fromDay;
  }

  public Date getToDay() {
    return toDay;
  }

  public void setToDay(Date toDay) {
    this.toDay = toDay;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy