net.sf.mpxj.RecurringTask Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mpxj Show documentation
Show all versions of mpxj Show documentation
Library that provides facilities to allow project information to be manipulated in Java and .Net. Supports a range of data formats: Microsoft Project Exchange (MPX), Microsoft Project (MPP,MPT), Microsoft Project Data Interchange (MSPDI XML), Microsoft Project Database (MPD), Planner (XML), Primavera (PM XML, XER, and database), Asta Powerproject (PP, MDB), Asta Easyplan (PP), Phoenix Project Manager (PPX), FastTrack Schedule (FTS), and the Standard Data Exchange Format (SDEF).
/*
* file: RecurringTask.java
* author: Jon Iles
* Scott Melville
* copyright: (c) Packwood Software 2002-2008
* date: 15/08/2002
*/
/*
* This library 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 library 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 library; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*/
package net.sf.mpxj;
import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* This class represents the Recurring Task Record as found in an MPX file.
*/
public final class RecurringTask
{
/**
* Gets the start date of this recurring task.
*
* @return date to start recurring task
*/
public Date getStartDate()
{
return (m_startDate);
}
/**
* Sets the start date of this recurring task.
*
* @param val date to start recurring task
*/
public void setStartDate(Date val)
{
m_startDate = val;
}
/**
* Gets the finish date of this recurring task.
*
* @return date to finish recurring task
*/
public Date getFinishDate()
{
return (m_finishDate);
}
/**
* Sets the finish date of this recurring task.
*
* @param val date to finish recurring task
*/
public void setFinishDate(Date val)
{
m_finishDate = val;
}
/**
* Retrieve the duration of the recurring task.
*
* @return duration of recurring task
*/
public Duration getDuration()
{
return (m_duration);
}
/**
* Set the duration of the recurring task.
*
* @param duration duration of the recurring task
*/
public void setDuration(Duration duration)
{
m_duration = duration;
}
/**
* Sets the number of occurrences.
*
* @return number of occurrences
*/
public Integer getOccurrences()
{
return (m_occurrences);
}
/**
* Retrieves the number of occurrences.
*
* @param occurrences number of occurrences
*/
public void setOccurrences(Integer occurrences)
{
m_occurrences = occurrences;
}
/**
* Retrieves the recurrence type.
*
* @return RecurrenceType instance
*/
public RecurrenceType getRecurrenceType()
{
return (m_recurrenceType);
}
/**
* Sets the recurrence type.
*
* @param type recurrence type
*/
public void setRecurrenceType(RecurrenceType type)
{
m_recurrenceType = type;
}
/**
* Retrieves the use end date flag.
*
* @return use end date flag
*/
public boolean getUseEndDate()
{
return (m_useEndDate);
}
/**
* Sets the use end date flag.
*
* @param useEndDate use end date flag
*/
public void setUseEndDate(boolean useEndDate)
{
m_useEndDate = useEndDate;
}
/**
* Retrieve the daily workday flag.
*
* @return boolean flag
*/
public boolean getDailyWorkday()
{
return (m_dailyWorkday);
}
/**
* Set the daily workday flag.
*
* @param workday workday flag
*/
public void setDailyWorkday(boolean workday)
{
m_dailyWorkday = workday;
}
/**
* Retrieves a bit field representing days of the week.
* MSB=Sunday, LSB=Saturday.
*
* @return integer bit field
*/
public Integer getWeeklyDays()
{
return (m_weeklyDays);
}
/**
* Sets a bit field representing days of the week.
* MSB=Sunday, LSB=Saturday.
*
* @param days integer bit field
*/
public void setWeeklyDays(Integer days)
{
m_weeklyDays = days;
}
/**
* Retrieves the monthly relative flag.
*
* @return boolean flag
*/
public boolean getMonthlyRelative()
{
return (m_monthlyRelative);
}
/**
* Sets the monthly relative flag.
*
* @param relative boolean flag
*/
public void setMonthlyRelative(boolean relative)
{
m_monthlyRelative = relative;
}
/**
* Retrieve the yearly relative flag.
*
* @return boolean flag
*/
public boolean getYearlyAbsolute()
{
return (m_yearlyAbsolute);
}
/**
* Set the yearly relative flag.
*
* @param absolute boolean flag
*/
public void setYearlyAbsolute(boolean absolute)
{
m_yearlyAbsolute = absolute;
}
/**
* Retrieves the recurring task frequency.
*
* @return recurring task frequency
*/
public Integer getDailyFrequency()
{
return (m_dailyFrequency);
}
/**
* Set the recurring task frequency.
*
* @param frequency recurring task frequency
*/
public void setDailyFrequency(Integer frequency)
{
m_dailyFrequency = frequency;
}
/**
* Retrieves the recurring task frequency.
*
* @return recurring task frequency
*/
public Integer getWeeklyFrequency()
{
return (m_weeklyFrequency);
}
/**
* Set the recurring task frequency.
*
* @param frequency recurring task frequency
*/
public void setWeeklyFrequency(Integer frequency)
{
m_weeklyFrequency = frequency;
}
/**
* Retrieves the monthly relative ordinal value.
*
* @return monthly relative ordinal value
*/
public Integer getMonthlyRelativeOrdinal()
{
return (m_monthlyRelativeOrdinal);
}
/**
* Sets the monthly relative ordinal value.
*
* @param ordinal monthly relative ordinal value
*/
public void setMonthlyRelativeOrdinal(Integer ordinal)
{
m_monthlyRelativeOrdinal = ordinal;
}
/**
* Retrieves the monthly relative day.
*
* @return monthly relative day
*/
public Day getMonthlyRelativeDay()
{
return (m_monthlyRelativeDay);
}
/**
* Sets the monthly relative day.
*
* @param day monthly relative day
*/
public void setMonthlyRelativeDay(Day day)
{
m_monthlyRelativeDay = day;
}
/**
* Sets the monthly relative frequency.
*
* @return monthly relative frequency
*/
public Integer getMonthlyRelativeFrequency()
{
return (m_monthlyRelativeFrequency);
}
/**
* Retrieves the monthly relative frequency.
*
* @param frequency monthly relative frequency
*/
public void setMonthlyRelativeFrequency(Integer frequency)
{
m_monthlyRelativeFrequency = frequency;
}
/**
* Retrieves the monthly absolute day.
*
* @return monthly absolute day.
*/
public Integer getMonthlyAbsoluteDay()
{
return (m_monthlyAbsoluteDay);
}
/**
* Sets the monthly absolute day.
*
* @param day monthly absolute day
*/
public void setMonthlyAbsoluteDay(Integer day)
{
m_monthlyAbsoluteDay = day;
}
/**
* Retrieves the monthly absolute frequency.
*
* @return monthly absolute frequency
*/
public Integer getMonthlyAbsoluteFrequency()
{
return (m_monthlyAbsoluteFrequency);
}
/**
* Sets the monthly absolute frequency.
*
* @param frequency monthly absolute frequency
*/
public void setMonthlyAbsoluteFrequency(Integer frequency)
{
m_monthlyAbsoluteFrequency = frequency;
}
/**
* Retrieves the yearly relative ordinal.
*
* @return yearly relative ordinal
*/
public Integer getYearlyRelativeOrdinal()
{
return (m_yearlyRelativeOrdinal);
}
/**
* Sets the yearly relative ordinal.
*
* @param ordinal yearly relative ordinal
*/
public void setYearlyRelativeOrdinal(Integer ordinal)
{
m_yearlyRelativeOrdinal = ordinal;
}
/**
* Retrieve the yearly relative day.
*
* @return yearly relative day
*/
public Day getYearlyRelativeDay()
{
return (m_yearlyRelativeDay);
}
/**
* Sets the yearly relative day.
*
* @param day yearly relative day
*/
public void setYearlyRelativeDay(Day day)
{
m_yearlyRelativeDay = day;
}
/**
* Retrieves the yearly relative month.
*
* @return yearly relative month
*/
public Integer getYearlyRelativeMonth()
{
return (m_yearlyRelativeMonth);
}
/**
* Sets the yearly relative month.
*
* @param month yearly relative month
*/
public void setYearlyRelativeMonth(Integer month)
{
m_yearlyRelativeMonth = month;
}
/**
* Retrieves the yearly absolute date.
*
* @return yearly absolute date
*/
public Date getYearlyAbsoluteDate()
{
return (m_yearlyAbsoluteDate);
}
/**
* Sets the yearly absolute date.
*
* @param date yearly absolute date
*/
public void setYearlyAbsoluteDate(Date date)
{
m_yearlyAbsoluteDate = date;
}
/**
* {@inheritDoc}
*/
@Override public String toString()
{
DateFormatSymbols dfs = new DateFormatSymbols();
SimpleDateFormat df = new SimpleDateFormat("d MMM");
ByteArrayOutputStream os = new ByteArrayOutputStream();
PrintWriter pw = new PrintWriter(os);
pw.print("[RecurringTask");
if (m_duration != null)
{
pw.print(" Duration " + m_duration);
pw.print(" This Occurs " + m_recurrenceType);
switch (m_recurrenceType)
{
case DAILY:
{
pw.print(" " + ORDINAL[m_dailyFrequency.intValue()]);
pw.print(m_dailyWorkday ? " Workday" : " Day");
break;
}
case WEEKLY:
{
pw.print(" " + ORDINAL[m_weeklyFrequency.intValue()]);
pw.print(" week on ");
if ((m_weeklyDays.intValue() & 0x40) != 0)
{
pw.print("Sunday");
}
if ((m_weeklyDays.intValue() & 0x20) != 0)
{
pw.print("Monday");
}
if ((m_weeklyDays.intValue() & 0x10) != 0)
{
pw.print("Tuesday");
}
if ((m_weeklyDays.intValue() & 0x08) != 0)
{
pw.print("Wednesday");
}
if ((m_weeklyDays.intValue() & 0x04) != 0)
{
pw.print("Thursday");
}
if ((m_weeklyDays.intValue() & 0x02) != 0)
{
pw.print("Friday");
}
if ((m_weeklyDays.intValue() & 0x01) != 0)
{
pw.print("Saturday");
}
break;
}
case MONTHLY:
{
if (m_monthlyRelative)
{
pw.print(" on The ");
pw.print(DAY_ORDINAL[m_monthlyRelativeOrdinal.intValue()]);
pw.print(" ");
pw.print(dfs.getWeekdays()[m_monthlyRelativeDay.getValue()]);
pw.print(" of ");
pw.print(ORDINAL[m_monthlyRelativeFrequency.intValue()]);
}
else
{
pw.print(" on Day ");
pw.print(m_monthlyAbsoluteDay);
pw.print(" of ");
pw.print(ORDINAL[m_monthlyAbsoluteFrequency.intValue()]);
}
pw.print(" month");
break;
}
case YEARLY:
{
pw.print(" on the ");
if (m_yearlyAbsolute)
{
pw.print(df.format(m_yearlyAbsoluteDate));
}
else
{
pw.print(DAY_ORDINAL[m_yearlyRelativeOrdinal.intValue()]);
pw.print(" ");
pw.print(dfs.getWeekdays()[m_yearlyRelativeDay.getValue()]);
pw.print(" of ");
pw.print(dfs.getMonths()[m_yearlyRelativeMonth.intValue() - 1]);
}
break;
}
}
pw.print(" From " + m_startDate);
pw.print(" For " + m_occurrences + " occurrences");
pw.print(" To " + m_finishDate);
}
pw.println("]");
pw.flush();
return (os.toString());
}
/**
* List of ordinal names used to generate debugging output.
*/
private static final String[] ORDINAL =
{
null,
"every",
"every other",
"every 3rd",
"every 4th",
"every 5th",
"every 6th",
"every 7th",
"every 8th",
"every 9th",
"every 10th",
"every 11th",
"every 12th"
};
/**
* List of ordinal names used to generate debugging output.
*/
private static final String[] DAY_ORDINAL =
{
null,
"First",
"Second",
"Third",
"Fourth",
"Last"
};
//
// Common attributes
//
private Date m_startDate;
private Date m_finishDate;
private Duration m_duration;
private Integer m_occurrences;
private RecurrenceType m_recurrenceType;
private boolean m_useEndDate;
//
// Daily recurrence attributes
//
private Integer m_dailyFrequency;
private boolean m_dailyWorkday;
//
// Weekly recurrence attributes
//
private Integer m_weeklyFrequency;
private Integer m_weeklyDays;
//
// Monthly recurrence attributes
//
private boolean m_monthlyRelative;
private Integer m_monthlyRelativeOrdinal;
private Day m_monthlyRelativeDay;
private Integer m_monthlyRelativeFrequency;
private Integer m_monthlyAbsoluteDay;
private Integer m_monthlyAbsoluteFrequency;
//
// Yearly recurrence attributes
//
private boolean m_yearlyAbsolute;
private Date m_yearlyAbsoluteDate;
private Integer m_yearlyRelativeOrdinal;
private Day m_yearlyRelativeDay;
private Integer m_yearlyRelativeMonth;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy