/*
* file: ProjectProperties.java
* author: Jon Iles
* Scott Melville
* copyright: (c) Packwood Software 2002-2015
* 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.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import net.sf.mpxj.common.BooleanHelper;
import net.sf.mpxj.common.DateHelper;
import net.sf.mpxj.common.ProjectFieldLists;
import net.sf.mpxj.listener.FieldListener;
/**
* This class represents a collection of properties relevant to the whole project.
*/
public final class ProjectProperties extends ProjectEntity implements FieldContainer
{
/**
* Default constructor.
*
* @param file the parent file to which this record belongs.
*/
ProjectProperties(ProjectFile file)
{
super(file);
//
// Configure MPX File Creation Record Settings
//
setMpxDelimiter(DEFAULT_MPX_DELIMITER);
setMpxProgramName("Microsoft Project for Windows");
setMpxFileVersion(FileVersion.VERSION_4_0);
setMpxCodePage(CodePage.ANSI);
//
// Configure MPX Date Time Settings and Currency Settings Records
//
setCurrencySymbol(DEFAULT_CURRENCY_SYMBOL);
setSymbolPosition(CurrencySymbolPosition.BEFORE);
setCurrencyDigits(Integer.valueOf(2));
setThousandsSeparator(DEFAULT_THOUSANDS_SEPARATOR);
setDecimalSeparator(DEFAULT_DECIMAL_SEPARATOR);
setDateOrder(DateOrder.DMY);
setTimeFormat(ProjectTimeFormat.TWELVE_HOUR);
setDefaultStartTime(DateHelper.getTimeFromMinutesPastMidnight(Integer.valueOf(480)));
setDateSeparator(DEFAULT_DATE_SEPARATOR);
setTimeSeparator(DEFAULT_TIME_SEPARATOR);
setAMText("am");
setPMText("pm");
setDateFormat(ProjectDateFormat.DD_MM_YYYY);
setBarTextDateFormat(ProjectDateFormat.DD_MM_YYYY);
//
// Configure MPX Default Settings Record
//
setDefaultDurationUnits(TimeUnit.DAYS);
setDefaultDurationIsFixed(false);
setDefaultWorkUnits(TimeUnit.HOURS);
setMinutesPerDay(Integer.valueOf(480));
setMinutesPerWeek(Integer.valueOf(2400));
setDefaultStandardRate(new Rate(10, TimeUnit.HOURS));
setDefaultOvertimeRate(new Rate(15, TimeUnit.HOURS));
setUpdatingTaskStatusUpdatesResourceStatus(true);
setSplitInProgressTasks(false);
//
// Configure MPX Project Header Record
//
setProjectTitle("Project1");
setCompany(null);
setManager(null);
setDefaultCalendarName(DEFAULT_CALENDAR_NAME);
setStartDate(null);
setFinishDate(null);
setScheduleFrom(DEFAULT_SCHEDULE_FROM);
setCurrentDate(new Date());
setComments(null);
setCost(DEFAULT_COST);
setBaselineCost(DEFAULT_COST);
setActualCost(DEFAULT_COST);
setWork(DEFAULT_WORK);
setBaselineWork(DEFAULT_WORK);
setActualWork(DEFAULT_WORK);
setWork2(DEFAULT_WORK2);
setDuration(DEFAULT_DURATION);
setBaselineDuration(DEFAULT_DURATION);
setActualDuration(DEFAULT_DURATION);
setPercentageComplete(DEFAULT_PERCENT_COMPLETE);
setBaselineStart(null);
setBaselineFinish(null);
setActualStart(null);
setActualFinish(null);
setStartVariance(DEFAULT_DURATION);
setFinishVariance(DEFAULT_DURATION);
setSubject(null);
setAuthor(null);
setKeywords(null);
//
// Configure non-MPX attributes
//
setProjectExternallyEdited(false);
setMinutesPerDay(DEFAULT_MINUTES_PER_DAY);
setDaysPerMonth(DEFAULT_DAYS_PER_MONTH);
setMinutesPerWeek(DEFAULT_MINUTES_PER_WEEK);
setFiscalYearStart(false);
setDefaultTaskEarnedValueMethod(EarnedValueMethod.PERCENT_COMPLETE);
setNewTasksEstimated(true);
setAutoAddNewResourcesAndTasks(true);
setAutolink(true);
setMicrosoftProjectServerURL(true);
setDefaultTaskType(TaskType.FIXED_UNITS);
setDefaultFixedCostAccrual(AccrueType.END);
setCriticalSlackLimit(DEFAULT_CRITICAL_SLACK_LIMIT);
setBaselineForEarnedValue(DEFAULT_BASELINE_FOR_EARNED_VALUE);
setFiscalYearStartMonth(DEFAULT_FISCAL_YEAR_START_MONTH);
setNewTaskStartIsProjectStart(true);
setWeekStartDay(DEFAULT_WEEK_START_DAY);
}
/**
* Gets Default Duration units. The constants used to define the
* duration units are defined by the <code>TimeUnit</code> class.
*
* @return default duration units
* @see TimeUnit
*/
public TimeUnit getDefaultDurationUnits()
{
return (TimeUnit) getCachedValue(ProjectField.DEFAULT_DURATION_UNITS);
}
/**
* Default duration units. The constants used to define the
* duration units are defined by the <code>TimeUnit</code> class.
*
* @param units default duration units
* @see TimeUnit
*/
public void setDefaultDurationUnits(TimeUnit units)
{
set(ProjectField.DEFAULT_DURATION_UNITS, units);
}
/**
* Retrieves a flag indicating if the default duration type is fixed.
*
* @return boolean flag
*/
public boolean getDefaultDurationIsFixed()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.DEFAULT_DURATION_IS_FIXED));
}
/**
* Sets a flag indicating if the default duration type is fixed.
*
* @param fixed boolean flag
*/
public void setDefaultDurationIsFixed(boolean fixed)
{
set(ProjectField.DEFAULT_DURATION_IS_FIXED, fixed);
}
/**
* Default work units. The constants used to define the
* work units are defined by the <code>TimeUnit</code> class.
*
* @return default work units
* @see TimeUnit
*/
public TimeUnit getDefaultWorkUnits()
{
return (TimeUnit) getCachedValue(ProjectField.DEFAULT_WORK_UNITS);
}
/**
* Default work units. The constants used to define the
* work units are defined by the <code>TimeUnit</code> class.
*
* @param units default work units
* @see TimeUnit
*/
public void setDefaultWorkUnits(TimeUnit units)
{
set(ProjectField.DEFAULT_WORK_UNITS, units);
}
/**
* Retrieves the default standard rate.
*
* @return default standard rate
*/
public Rate getDefaultStandardRate()
{
return (Rate) getCachedValue(ProjectField.DEFAULT_STANDARD_RATE);
}
/**
* Sets the default standard rate.
*
* @param rate default standard rate
*/
public void setDefaultStandardRate(Rate rate)
{
set(ProjectField.DEFAULT_STANDARD_RATE, rate);
}
/**
* Get overtime rate.
*
* @return rate
*/
public Rate getDefaultOvertimeRate()
{
return (Rate) getCachedValue(ProjectField.DEFAULT_OVERTIME_RATE);
}
/**
* Set default overtime rate.
*
* @param rate default overtime rate
*/
public void setDefaultOvertimeRate(Rate rate)
{
set(ProjectField.DEFAULT_OVERTIME_RATE, rate);
}
/**
* Flags whether updating Task status also updates resource status.
*
* @return boolean flag
*/
public boolean getUpdatingTaskStatusUpdatesResourceStatus()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.UPDATING_TASK_STATUS_UPDATES_RESOURCE_STATUS));
}
/**
* Flags whether updating Task status also updates resource status.
*
* @param flag boolean flag
*/
public void setUpdatingTaskStatusUpdatesResourceStatus(boolean flag)
{
set(ProjectField.UPDATING_TASK_STATUS_UPDATES_RESOURCE_STATUS, flag);
}
/**
* Flag representing whether or not to split in-progress tasks.
*
* @return Boolean value
*/
public boolean getSplitInProgressTasks()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.SPLIT_IN_PROGRESS_TASKS));
}
/**
* Flag representing whether or not to split in-progress tasks.
*
* @param flag boolean value
*/
public void setSplitInProgressTasks(boolean flag)
{
set(ProjectField.SPLIT_IN_PROGRESS_TASKS, flag);
}
/**
* Gets constant representing set Date order eg DMY, MDY.
*
* @return constant value for date order
*/
public DateOrder getDateOrder()
{
return (DateOrder) getCachedValue(ProjectField.DATE_ORDER);
}
/**
* Sets constant representing set Date order eg DMY, MDY.
*
* @param dateOrder date order value
*/
public void setDateOrder(DateOrder dateOrder)
{
set(ProjectField.DATE_ORDER, dateOrder);
}
/**
* Gets constant representing the Time Format.
*
* @return time format constant
*/
public ProjectTimeFormat getTimeFormat()
{
return (ProjectTimeFormat) getCachedValue(ProjectField.TIME_FORMAT);
}
/**
* Sets constant representing the time format.
*
* @param timeFormat constant value
*/
public void setTimeFormat(ProjectTimeFormat timeFormat)
{
set(ProjectField.TIME_FORMAT, timeFormat);
}
/**
* Retrieve the default start time, specified using the Java Date type.
* Note that this assumes that the value returned from
* the getTime method starts at zero... i.e. the date part
* of the date/time value has not been set.
*
* @return default start time
*/
public Date getDefaultStartTime()
{
return (Date) getCachedValue(ProjectField.DEFAULT_START_TIME);
}
/**
* Set the default start time, specified using the Java Date type.
* Note that this assumes that the value returned from
* the getTime method starts at zero... i.e. the date part
* of the date/time value has not been set.
*
* @param defaultStartTime default time
*/
public void setDefaultStartTime(Date defaultStartTime)
{
set(ProjectField.DEFAULT_START_TIME, defaultStartTime);
}
/**
* Gets the date separator.
*
* @return date separator as set.
*/
public char getDateSeparator()
{
return getCachedCharValue(ProjectField.DATE_SEPARATOR, DEFAULT_DATE_SEPARATOR);
}
/**
* Sets the date separator.
*
* @param dateSeparator date separator as set.
*/
public void setDateSeparator(char dateSeparator)
{
set(ProjectField.DATE_SEPARATOR, Character.valueOf(dateSeparator));
}
/**
* Gets the time separator.
*
* @return time separator as set.
*/
public char getTimeSeparator()
{
return getCachedCharValue(ProjectField.TIME_SEPARATOR, DEFAULT_TIME_SEPARATOR);
}
/**
* Sets the time separator.
*
* @param timeSeparator time separator
*/
public void setTimeSeparator(char timeSeparator)
{
set(ProjectField.TIME_SEPARATOR, Character.valueOf(timeSeparator));
}
/**
* Gets the AM text.
*
* @return AM Text as set.
*/
public String getAMText()
{
return (String) getCachedValue(ProjectField.AM_TEXT);
}
/**
* Sets the AM text.
*
* @param amText AM Text as set.
*/
public void setAMText(String amText)
{
set(ProjectField.AM_TEXT, amText);
}
/**
* Gets the PM text.
*
* @return PM Text as set.
*/
public String getPMText()
{
return (String) getCachedValue(ProjectField.PM_TEXT);
}
/**
* Sets the PM text.
*
* @param pmText PM Text as set.
*/
public void setPMText(String pmText)
{
set(ProjectField.PM_TEXT, pmText);
}
/**
* Gets the set Date Format.
*
* @return project date format
*/
public ProjectDateFormat getDateFormat()
{
return (ProjectDateFormat) getCachedValue(ProjectField.DATE_FORMAT);
}
/**
* Sets the set Date Format.
*
* @param dateFormat int representing Date Format
*/
public void setDateFormat(ProjectDateFormat dateFormat)
{
set(ProjectField.DATE_FORMAT, dateFormat);
}
/**
* Gets Bar Text Date Format.
*
* @return int value
*/
public ProjectDateFormat getBarTextDateFormat()
{
return (ProjectDateFormat) getCachedValue(ProjectField.BAR_TEXT_DATE_FORMAT);
}
/**
* Sets Bar Text Date Format.
*
* @param dateFormat value to be set
*/
public void setBarTextDateFormat(ProjectDateFormat dateFormat)
{
set(ProjectField.BAR_TEXT_DATE_FORMAT, dateFormat);
}
/**
* Retrieves the default end time.
*
* @return End time
*/
public Date getDefaultEndTime()
{
return (Date) getCachedValue(ProjectField.DEFAULT_END_TIME);
}
/**
* Sets the default end time.
*
* @param date End time
*/
public void setDefaultEndTime(Date date)
{
set(ProjectField.DEFAULT_END_TIME, date);
}
/**
* Sets the project title.
*
* @param projectTitle project title
*/
public void setProjectTitle(String projectTitle)
{
set(ProjectField.PROJECT_TITLE, projectTitle);
}
/**
* Gets the project title.
*
* @return project title
*/
public String getProjectTitle()
{
return (String) getCachedValue(ProjectField.PROJECT_TITLE);
}
/**
* Sets the company name.
*
* @param company company name
*/
public void setCompany(String company)
{
set(ProjectField.COMPANY, company);
}
/**
* Retrieves the company name.
*
* @return company name
*/
public String getCompany()
{
return (String) getCachedValue(ProjectField.COMPANY);
}
/**
* Sets the manager name.
*
* @param manager manager name
*/
public void setManager(String manager)
{
set(ProjectField.MANAGER, manager);
}
/**
* Retrieves the manager name.
*
* @return manager name
*/
public String getManager()
{
return (String) getCachedValue(ProjectField.MANAGER);
}
/**
* Sets the Calendar used. 'Standard' if no value is set.
*
* @param calendarName Calendar name
*/
public void setDefaultCalendarName(String calendarName)
{
if (calendarName == null || calendarName.length() == 0)
{
calendarName = DEFAULT_CALENDAR_NAME;
}
set(ProjectField.DEFAULT_CALENDAR_NAME, calendarName);
}
/**
* Gets the Calendar used. 'Standard' if no value is set.
*
* @return Calendar name
*/
public String getDefaultCalendarName()
{
return (String) getCachedValue(ProjectField.DEFAULT_CALENDAR_NAME);
}
/**
* Sets the project start date.
*
* @param startDate project start date
*/
public void setStartDate(Date startDate)
{
set(ProjectField.START_DATE, startDate);
}
/**
* Retrieves the project start date. If an explicit start date has not been
* set, this method calculates the start date by looking for
* the earliest task start date.
*
* @return project start date
*/
public Date getStartDate()
{
Date result = (Date) getCachedValue(ProjectField.START_DATE);
if (result == null)
{
result = getParentFile().getStartDate();
}
return (result);
}
/**
* Retrieves the project finish date. If an explicit finish date has not been
* set, this method calculates the finish date by looking for
* the latest task finish date.
*
* @return Finish Date
*/
public Date getFinishDate()
{
Date result = (Date) getCachedValue(ProjectField.FINISH_DATE);
if (result == null)
{
result = getParentFile().getFinishDate();
}
return (result);
}
/**
* Sets the project finish date.
*
* @param finishDate project finish date
*/
public void setFinishDate(Date finishDate)
{
set(ProjectField.FINISH_DATE, finishDate);
}
/**
* Retrieves an enumerated value indicating if tasks in this project are
* scheduled from a start or a finish date.
*
* @return schedule from flag
*/
public ScheduleFrom getScheduleFrom()
{
return (ScheduleFrom) getCachedValue(ProjectField.SCHEDULE_FROM);
}
/**
* Sets an enumerated value indicating if tasks in this project are
* scheduled from a start or a finish date.
*
* @param scheduleFrom schedule from value
*/
public void setScheduleFrom(ScheduleFrom scheduleFrom)
{
set(ProjectField.SCHEDULE_FROM, scheduleFrom);
}
/**
* Retrieves the current date.
*
* @return current date
*/
public Date getCurrentDate()
{
return (Date) getCachedValue(ProjectField.CURRENT_DATE);
}
/**
* Sets the current date.
*
* @param currentDate current date
*/
public void setCurrentDate(Date currentDate)
{
set(ProjectField.CURRENT_DATE, currentDate);
}
/**
* Returns any comments.
*
* @return comments
*/
public String getComments()
{
return (String) getCachedValue(ProjectField.COMMENTS);
}
/**
* Set comment text.
*
* @param comments comment text
*/
public void setComments(String comments)
{
set(ProjectField.COMMENTS, comments);
}
/**
* Retrieves the project cost.
*
* @return project cost
*/
public Number getCost()
{
return (Number) getCachedValue(ProjectField.COST);
}
/**
* Sets the project cost.
*
* @param cost project cost
*/
public void setCost(Number cost)
{
set(ProjectField.COST, cost);
}
/**
* Sets the baseline project cost.
*
* @param baselineCost baseline project cost
*/
public void setBaselineCost(Number baselineCost)
{
set(ProjectField.BASELINE_COST, baselineCost);
}
/**
* Retrieves the baseline project cost.
*
* @return baseline project cost
*/
public Number getBaselineCost()
{
return (Number) getCachedValue(ProjectField.BASELINE_COST);
}
/**
* Sets the actual project cost.
*
* @param actualCost actual project cost
*/
public void setActualCost(Number actualCost)
{
set(ProjectField.ACTUAL_COST, actualCost);
}
/**
* Retrieves the actual project cost.
*
* @return actual project cost
*/
public Number getActualCost()
{
return (Number) getCachedValue(ProjectField.ACTUAL_COST);
}
/**
* Sets the project work duration.
*
* @param work project work duration
*/
public void setWork(Duration work)
{
set(ProjectField.WORK, work);
}
/**
* Retrieves the project work duration.
*
* @return project work duration
*/
public Duration getWork()
{
return (Duration) getCachedValue(ProjectField.WORK);
}
/**
* Set the baseline project work duration.
*
* @param baselineWork baseline project work duration
*/
public void setBaselineWork(Duration baselineWork)
{
set(ProjectField.BASELINE_WORK, baselineWork);
}
/**
* Retrieves the baseline project work duration.
*
* @return baseline project work duration
*/
public Duration getBaselineWork()
{
return (Duration) getCachedValue(ProjectField.BASELINE_WORK);
}
/**
* Sets the actual project work duration.
*
* @param actualWork actual project work duration
*/
public void setActualWork(Duration actualWork)
{
set(ProjectField.ACTUAL_WORK, actualWork);
}
/**
* Retrieves the actual project work duration.
*
* @return actual project work duration
*/
public Duration getActualWork()
{
return (Duration) getCachedValue(ProjectField.ACTUAL_WORK);
}
/**
* Retrieves the project's "Work 2" attribute.
*
* @return Work 2 attribute
*/
public Number getWork2()
{
return (Number) getCachedValue(ProjectField.WORK2);
}
/**
* Sets the project's "Work 2" attribute.
*
* @param work2 work2 percentage value
*/
public void setWork2(Number work2)
{
set(ProjectField.WORK2, work2);
}
/**
* Retrieves the project duration.
*
* @return project duration
*/
public Duration getDuration()
{
return (Duration) getCachedValue(ProjectField.DURATION);
}
/**
* Sets the project duration.
*
* @param duration project duration
*/
public void setDuration(Duration duration)
{
set(ProjectField.DURATION, duration);
}
/**
* Retrieves the baseline duration value.
*
* @return baseline project duration value
*/
public Duration getBaselineDuration()
{
return (Duration) getCachedValue(ProjectField.BASELINE_DURATION);
}
/**
* Sets the baseline project duration value.
*
* @param baselineDuration baseline project duration
*/
public void setBaselineDuration(Duration baselineDuration)
{
set(ProjectField.BASELINE_DURATION, baselineDuration);
}
/**
* Retrieves the actual project duration.
*
* @return actual project duration
*/
public Duration getActualDuration()
{
return (Duration) getCachedValue(ProjectField.ACTUAL_DURATION);
}
/**
* Sets the actual project duration.
*
* @param actualDuration actual project duration
*/
public void setActualDuration(Duration actualDuration)
{
set(ProjectField.ACTUAL_DURATION, actualDuration);
}
/**
* Retrieves the project percentage complete.
*
* @return percentage value
*/
public Number getPercentageComplete()
{
return (Number) getCachedValue(ProjectField.PERCENTAGE_COMPLETE);
}
/**
* Sets project percentage complete.
*
* @param percentComplete project percent complete
*/
public void setPercentageComplete(Number percentComplete)
{
set(ProjectField.PERCENTAGE_COMPLETE, percentComplete);
}
/**
* Sets the baseline project start date.
*
* @param baselineStartDate baseline project start date
*/
public void setBaselineStart(Date baselineStartDate)
{
set(ProjectField.BASELINE_START, baselineStartDate);
}
/**
* Retrieves the baseline project start date.
*
* @return baseline project start date
*/
public Date getBaselineStart()
{
return (Date) getCachedValue(ProjectField.BASELINE_START);
}
/**
* Sets the baseline project finish date.
*
* @param baselineFinishDate baseline project finish date
*/
public void setBaselineFinish(Date baselineFinishDate)
{
set(ProjectField.BASELINE_FINISH, baselineFinishDate);
}
/**
* Retrieves the baseline project finish date.
*
* @return baseline project finish date
*/
public Date getBaselineFinish()
{
return (Date) getCachedValue(ProjectField.BASELINE_FINISH);
}
/**
* Sets the actual project start date.
*
* @param actualStartDate actual project start date
*/
public void setActualStart(Date actualStartDate)
{
set(ProjectField.ACTUAL_START, actualStartDate);
}
/**
* Retrieves the actual project start date.
*
* @return actual project start date
*/
public Date getActualStart()
{
return (Date) getCachedValue(ProjectField.ACTUAL_START);
}
/**
* Sets the actual project finish date.
*
* @param actualFinishDate actual project finish date
*/
public void setActualFinish(Date actualFinishDate)
{
set(ProjectField.ACTUAL_FINISH, actualFinishDate);
}
/**
* Retrieves the actual project finish date.
*
* @return actual project finish date
*/
public Date getActualFinish()
{
return (Date) getCachedValue(ProjectField.ACTUAL_FINISH);
}
/**
* Retrieves the start variance duration.
*
* @return start date variance
*/
public Duration getStartVariance()
{
return (Duration) getCachedValue(ProjectField.START_VARIANCE);
}
/**
* Sets the start variance duration.
*
* @param startVariance the start date variance
*/
public void setStartVariance(Duration startVariance)
{
set(ProjectField.START_VARIANCE, startVariance);
}
/**
* Retrieves the project finish variance duration.
*
* @return project finish variance duration
*/
public Duration getFinishVariance()
{
return (Duration) getCachedValue(ProjectField.FINISH_VARIANCE);
}
/**
* Sets the project finish variance duration.
*
* @param finishVariance project finish variance duration
*/
public void setFinishVariance(Duration finishVariance)
{
set(ProjectField.FINISH_VARIANCE, finishVariance);
}
/**
* Returns the project subject text.
*
* @return subject text
*/
public String getSubject()
{
return (String) getCachedValue(ProjectField.SUBJECT);
}
/**
* Sets the project subject text.
*
* @param subject subject text
*/
public void setSubject(String subject)
{
set(ProjectField.SUBJECT, subject);
}
/**
* Retrieves the project author text.
*
* @return author text
*/
public String getAuthor()
{
return (String) getCachedValue(ProjectField.AUTHOR);
}
/**
* Sets the project author text.
*
* @param author project author text
*/
public void setAuthor(String author)
{
set(ProjectField.AUTHOR, author);
}
/**
* Retrieves the project keyword text.
*
* @return project keyword text
*/
public String getKeywords()
{
return (String) getCachedValue(ProjectField.KEYWORDS);
}
/**
* Sets the project keyword text.
*
* @param keywords project keyword text
*/
public void setKeywords(String keywords)
{
set(ProjectField.KEYWORDS, keywords);
}
/**
* Sets currency symbol.
*
* @param symbol currency symbol
*/
public void setCurrencySymbol(String symbol)
{
if (symbol == null)
{
symbol = DEFAULT_CURRENCY_SYMBOL;
}
set(ProjectField.CURRENCY_SYMBOL, symbol);
}
/**
* Retrieves the currency symbol.
*
* @return currency symbol
*/
public String getCurrencySymbol()
{
return (String) getCachedValue(ProjectField.CURRENCY_SYMBOL);
}
/**
* Sets the position of the currency symbol.
*
* @param posn currency symbol position.
*/
public void setSymbolPosition(CurrencySymbolPosition posn)
{
set(ProjectField.CURRENCY_SYMBOL_POSITION, posn);
}
/**
* Retrieves a constant representing the position of the currency symbol.
*
* @return position
*/
public CurrencySymbolPosition getSymbolPosition()
{
return (CurrencySymbolPosition) getCachedValue(ProjectField.CURRENCY_SYMBOL_POSITION);
}
/**
* Sets no of currency digits.
*
* @param currDigs Available values, 0,1,2
*/
public void setCurrencyDigits(Integer currDigs)
{
set(ProjectField.CURRENCY_DIGITS, currDigs);
}
/**
* Gets no of currency digits.
*
* @return Available values, 0,1,2
*/
public Integer getCurrencyDigits()
{
return (Integer) getCachedValue(ProjectField.CURRENCY_DIGITS);
}
/**
* Sets the thousands separator.
* Note that this separator defines the thousands separator for all decimal
* numbers that appear in the MPX file.
*
* @param sep character
*/
public void setThousandsSeparator(char sep)
{
set(ProjectField.THOUSANDS_SEPARATOR, Character.valueOf(sep));
}
/**
* Gets the thousands separator.
* Note that this separator defines the thousands separator for all decimal
* numbers that appear in the MPX file.
*
* @return character
*/
public char getThousandsSeparator()
{
return getCachedCharValue(ProjectField.THOUSANDS_SEPARATOR, DEFAULT_THOUSANDS_SEPARATOR);
}
/**
* Sets the decimal separator.
* Note that this separator defines the decimal separator for all decimal
* numbers that appear in the MPX file.
*
* @param decSep character
*/
public void setDecimalSeparator(char decSep)
{
set(ProjectField.DECIMAL_SEPARATOR, Character.valueOf(decSep));
}
/**
* Gets the decimal separator.
* Note that this separator defines the decimal separator for all decimal
* numbers that appear in the MPX file.
*
* @return character
*/
public char getDecimalSeparator()
{
return getCachedCharValue(ProjectField.DECIMAL_SEPARATOR, DEFAULT_DECIMAL_SEPARATOR);
}
/**
* Retrieve the externally edited flag.
*
* @return externally edited flag
*/
public boolean getProjectExternallyEdited()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.PROJECT_EXTERNALLY_EDITED));
}
/**
* Set the externally edited flag.
*
* @param projectExternallyEdited externally edited flag
*/
public void setProjectExternallyEdited(boolean projectExternallyEdited)
{
set(ProjectField.PROJECT_EXTERNALLY_EDITED, projectExternallyEdited);
}
/**
* Retrieves the category text.
*
* @return category text
*/
public String getCategory()
{
return (String) getCachedValue(ProjectField.CATEGORY);
}
/**
* Sets the category text.
*
* @param category category text
*/
public void setCategory(String category)
{
set(ProjectField.CATEGORY, category);
}
/**
* Retrieve the number of days per month.
*
* @return days per month
*/
public Number getDaysPerMonth()
{
return (Number) getCachedValue(ProjectField.DAYS_PER_MONTH);
}
/**
* Set the number of days per month.
*
* @param daysPerMonth days per month
*/
public void setDaysPerMonth(Number daysPerMonth)
{
if (daysPerMonth != null)
{
set(ProjectField.DAYS_PER_MONTH, daysPerMonth);
}
}
/**
* Retrieve the number of minutes per day.
*
* @return minutes per day
*/
public Number getMinutesPerDay()
{
return (Number) getCachedValue(ProjectField.MINUTES_PER_DAY);
}
/**
* Set the number of minutes per day.
*
* @param minutesPerDay minutes per day
*/
public void setMinutesPerDay(Number minutesPerDay)
{
if (minutesPerDay != null)
{
set(ProjectField.MINUTES_PER_DAY, minutesPerDay);
}
}
/**
* Retrieve the number of minutes per week.
*
* @return minutes per week
*/
public Number getMinutesPerWeek()
{
return (Number) getCachedValue(ProjectField.MINUTES_PER_WEEK);
}
/**
* Set the number of minutes per week.
*
* @param minutesPerWeek minutes per week
*/
public void setMinutesPerWeek(Number minutesPerWeek)
{
if (minutesPerWeek != null)
{
set(ProjectField.MINUTES_PER_WEEK, minutesPerWeek);
}
}
/**
* Retrieve the fiscal year start flag.
*
* @return fiscal year start flag
*/
public boolean getFiscalYearStart()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.FISCAL_YEAR_START));
}
/**
* Set the fiscal year start flag.
*
* @param fiscalYearStart fiscal year start
*/
public void setFiscalYearStart(boolean fiscalYearStart)
{
set(ProjectField.FISCAL_YEAR_START, fiscalYearStart);
}
/**
* Retrieves the default task earned value method.
*
* @return default task earned value method
*/
public EarnedValueMethod getDefaultTaskEarnedValueMethod()
{
return (EarnedValueMethod) getCachedValue(ProjectField.DEFAULT_TASK_EARNED_VALUE_METHOD);
}
/**
* Sets the default task earned value method.
*
* @param defaultTaskEarnedValueMethod default task earned value method
*/
public void setDefaultTaskEarnedValueMethod(EarnedValueMethod defaultTaskEarnedValueMethod)
{
set(ProjectField.DEFAULT_TASK_EARNED_VALUE_METHOD, defaultTaskEarnedValueMethod);
}
/**
* Retrieve the remove file properties flag.
*
* @return remove file properties flag
*/
public boolean getRemoveFileProperties()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.REMOVE_FILE_PROPERTIES));
}
/**
* Set the remove file properties flag.
*
* @param removeFileProperties remove file properties flag
*/
public void setRemoveFileProperties(boolean removeFileProperties)
{
set(ProjectField.REMOVE_FILE_PROPERTIES, removeFileProperties);
}
/**
* Retrieve the move completed ends back flag.
*
* @return move completed ends back flag
*/
public boolean getMoveCompletedEndsBack()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.MOVE_COMPLETED_ENDS_BACK));
}
/**
* Set the move completed ends back flag.
*
* @param moveCompletedEndsBack move completed ends back flag
*/
public void setMoveCompletedEndsBack(boolean moveCompletedEndsBack)
{
set(ProjectField.MOVE_COMPLETED_ENDS_BACK, moveCompletedEndsBack);
}
/**
* Retrieve the new tasks estimated flag.
*
* @return new tasks estimated flag
*/
public boolean getNewTasksEstimated()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.NEW_TASKS_ESTIMATED));
}
/**
* Set the new tasks estimated flag.
*
* @param newTasksEstimated new tasks estimated flag
*/
public void setNewTasksEstimated(boolean newTasksEstimated)
{
set(ProjectField.NEW_TASKS_ESTIMATED, newTasksEstimated);
}
/**
* Retrieve the spread actual cost flag.
*
* @return spread actual cost flag
*/
public boolean getSpreadActualCost()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.SPREAD_ACTUAL_COST));
}
/**
* Set the spread actual cost flag.
*
* @param spreadActualCost spread actual cost flag
*/
public void setSpreadActualCost(boolean spreadActualCost)
{
set(ProjectField.SPREAD_ACTUAL_COST, spreadActualCost);
}
/**
* Retrieve the multiple critical paths flag.
*
* @return multiple critical paths flag
*/
public boolean getMultipleCriticalPaths()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.MULTIPLE_CRITICAL_PATHS));
}
/**
* Set the multiple critical paths flag.
*
* @param multipleCriticalPaths multiple critical paths flag
*/
public void setMultipleCriticalPaths(boolean multipleCriticalPaths)
{
set(ProjectField.MULTIPLE_CRITICAL_PATHS, multipleCriticalPaths);
}
/**
* Retrieve the auto add new resources and tasks flag.
*
* @return auto add new resources and tasks flag
*/
public boolean getAutoAddNewResourcesAndTasks()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.AUTO_ADD_NEW_RESOURCES_AND_TASKS));
}
/**
* Set the auto add new resources and tasks flag.
*
* @param autoAddNewResourcesAndTasks auto add new resources and tasks flag
*/
public void setAutoAddNewResourcesAndTasks(boolean autoAddNewResourcesAndTasks)
{
set(ProjectField.AUTO_ADD_NEW_RESOURCES_AND_TASKS, autoAddNewResourcesAndTasks);
}
/**
* Retrieve the last saved date.
*
* @return last saved date
*/
public Date getLastSaved()
{
return (Date) getCachedValue(ProjectField.LAST_SAVED);
}
/**
* Set the last saved date.
*
* @param lastSaved last saved date
*/
public void setLastSaved(Date lastSaved)
{
set(ProjectField.LAST_SAVED, lastSaved);
}
/**
* Retrieve the status date.
*
* @return status date
*/
public Date getStatusDate()
{
return (Date) getCachedValue(ProjectField.STATUS_DATE);
}
/**
* Set the status date.
*
* @param statusDate status date
*/
public void setStatusDate(Date statusDate)
{
set(ProjectField.STATUS_DATE, statusDate);
}
/**
* Retrieves the move remaining starts back flag.
*
* @return move remaining starts back flag
*/
public boolean getMoveRemainingStartsBack()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.MOVE_REMAINING_STARTS_BACK));
}
/**
* Sets the move remaining starts back flag.
*
* @param moveRemainingStartsBack remaining starts back flag
*/
public void setMoveRemainingStartsBack(boolean moveRemainingStartsBack)
{
set(ProjectField.MOVE_REMAINING_STARTS_BACK, moveRemainingStartsBack);
}
/**
* Retrieves the autolink flag.
*
* @return autolink flag
*/
public boolean getAutolink()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.AUTO_LINK));
}
/**
* Sets the autolink flag.
*
* @param autolink autolink flag
*/
public void setAutolink(boolean autolink)
{
set(ProjectField.AUTO_LINK, autolink);
}
/**
* Retrieves the Microsoft Project Server URL flag.
*
* @return Microsoft Project Server URL flag
*/
public boolean getMicrosoftProjectServerURL()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.MICROSOFT_PROJECT_SERVER_URL));
}
/**
* Sets the Microsoft Project Server URL flag.
*
* @param microsoftProjectServerURL Microsoft Project Server URL flag
*/
public void setMicrosoftProjectServerURL(boolean microsoftProjectServerURL)
{
set(ProjectField.MICROSOFT_PROJECT_SERVER_URL, microsoftProjectServerURL);
}
/**
* Retrieves the honor constraints flag.
*
* @return honor constraints flag
*/
public boolean getHonorConstraints()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.HONOR_CONSTRAINTS));
}
/**
* Sets the honor constraints flag.
*
* @param honorConstraints honor constraints flag
*/
public void setHonorConstraints(boolean honorConstraints)
{
set(ProjectField.HONOR_CONSTRAINTS, honorConstraints);
}
/**
* Retrieve the admin project flag.
*
* @return admin project flag
*/
public boolean getAdminProject()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.ADMIN_PROJECT));
}
/**
* Set the admin project flag.
*
* @param adminProject admin project flag
*/
public void setAdminProject(boolean adminProject)
{
set(ProjectField.ADMIN_PROJECT, adminProject);
}
/**
* Retrieves the inserted projects like summary flag.
*
* @return inserted projects like summary flag
*/
public boolean getInsertedProjectsLikeSummary()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.INSERTED_PROJECTS_LIKE_SUMMARY));
}
/**
* Sets the inserted projects like summary flag.
*
* @param insertedProjectsLikeSummary inserted projects like summary flag
*/
public void setInsertedProjectsLikeSummary(boolean insertedProjectsLikeSummary)
{
set(ProjectField.INSERTED_PROJECTS_LIKE_SUMMARY, insertedProjectsLikeSummary);
}
/**
* Retrieves the project name.
*
* @return project name
*/
public String getName()
{
return (String) getCachedValue(ProjectField.NAME);
}
/**
* Sets the project name.
*
* @param name project name
*/
public void setName(String name)
{
set(ProjectField.NAME, name);
}
/**
* Retrieves the spread percent complete flag.
*
* @return spread percent complete flag
*/
public boolean getSpreadPercentComplete()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.SPREAD_PERCENT_COMPLETE));
}
/**
* Sets the spread percent complete flag.
*
* @param spreadPercentComplete spread percent complete flag
*/
public void setSpreadPercentComplete(boolean spreadPercentComplete)
{
set(ProjectField.SPREAD_PERCENT_COMPLETE, spreadPercentComplete);
}
/**
* Retrieve the move completed ends forward flag.
*
* @return move completed ends forward flag
*/
public boolean getMoveCompletedEndsForward()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.MOVE_COMPLETED_ENDS_FORWARD));
}
/**
* Sets the move completed ends forward flag.
*
* @param moveCompletedEndsForward move completed ends forward flag
*/
public void setMoveCompletedEndsForward(boolean moveCompletedEndsForward)
{
set(ProjectField.MOVE_COMPLETED_ENDS_FORWARD, moveCompletedEndsForward);
}
/**
* Retrieve the editable actual costs flag.
*
* @return editable actual costs flag
*/
public boolean getEditableActualCosts()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.EDITABLE_ACTUAL_COSTS));
}
/**
* Set the editable actual costs flag.
*
* @param editableActualCosts editable actual costs flag
*/
public void setEditableActualCosts(boolean editableActualCosts)
{
set(ProjectField.EDITABLE_ACTUAL_COSTS, editableActualCosts);
}
/**
* Retrieve the unique ID for this project.
*
* @return unique ID
*/
public String getUniqueID()
{
return (String) getCachedValue(ProjectField.UNIQUE_ID);
}
/**
* Set the unique ID for this project.
*
* @param uniqueID unique ID
*/
public void setUniqueID(String uniqueID)
{
set(ProjectField.UNIQUE_ID, uniqueID);
}
/**
* Retrieve the project revision number.
*
* @return revision number
*/
public Integer getRevision()
{
return (Integer) getCachedValue(ProjectField.REVISION);
}
/**
* Retrieve the new tasks effort driven flag.
*
* @return new tasks effort driven flag
*/
public boolean getNewTasksEffortDriven()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.NEW_TASKS_EFFORT_DRIVEN));
}
/**
* Sets the new tasks effort driven flag.
*
* @param newTasksEffortDriven new tasks effort driven flag
*/
public void setNewTasksEffortDriven(boolean newTasksEffortDriven)
{
set(ProjectField.NEW_TASKS_EFFORT_DRIVEN, newTasksEffortDriven);
}
/**
* Set the project revision number.
*
* @param revision revision number
*/
public void setRevision(Integer revision)
{
set(ProjectField.REVISION, revision);
}
/**
* Retrieve the move remaining starts forward flag.
*
* @return move remaining starts forward flag
*/
public boolean getMoveRemainingStartsForward()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.MOVE_REMAINING_STARTS_FORWARD));
}
/**
* Set the move remaining starts forward flag.
*
* @param moveRemainingStartsForward move remaining starts forward flag
*/
public void setMoveRemainingStartsForward(boolean moveRemainingStartsForward)
{
set(ProjectField.MOVE_REMAINING_STARTS_FORWARD, moveRemainingStartsForward);
}
/**
* Retrieve the actuals in sync flag.
*
* @return actuals in sync flag
*/
public boolean getActualsInSync()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.ACTUALS_IN_SYNC));
}
/**
* Set the actuals in sync flag.
*
* @param actualsInSync actuals in sync flag
*/
public void setActualsInSync(boolean actualsInSync)
{
set(ProjectField.ACTUALS_IN_SYNC, actualsInSync);
}
/**
* Retrieve the default task type.
*
* @return default task type
*/
public TaskType getDefaultTaskType()
{
return (TaskType) getCachedValue(ProjectField.DEFAULT_TASK_TYPE);
}
/**
* Set the default task type.
*
* @param defaultTaskType default task type
*/
public void setDefaultTaskType(TaskType defaultTaskType)
{
set(ProjectField.DEFAULT_TASK_TYPE, defaultTaskType);
}
/**
* Retrieve the earned value method.
*
* @return earned value method
*/
public EarnedValueMethod getEarnedValueMethod()
{
return (EarnedValueMethod) getCachedValue(ProjectField.EARNED_VALUE_METHOD);
}
/**
* Set the earned value method.
*
* @param earnedValueMethod earned value method
*/
public void setEarnedValueMethod(EarnedValueMethod earnedValueMethod)
{
set(ProjectField.EARNED_VALUE_METHOD, earnedValueMethod);
}
/**
* Retrieve the project creation date.
*
* @return project creation date
*/
public Date getCreationDate()
{
return (Date) getCachedValue(ProjectField.CREATION_DATE);
}
/**
* Set the project creation date.
*
* @param creationDate project creation date
*/
public void setCreationDate(Date creationDate)
{
set(ProjectField.CREATION_DATE, creationDate);
}
/**
* Retrieve the extended creation date.
*
* @return extended creation date
*/
public Date getExtendedCreationDate()
{
return (Date) getCachedValue(ProjectField.EXTENDED_CREATION_DATE);
}
/**
* Retrieve the default fixed cost accrual type.
*
* @return default fixed cost accrual type
*/
public AccrueType getDefaultFixedCostAccrual()
{
return (AccrueType) getCachedValue(ProjectField.DEFAULT_FIXED_COST_ACCRUAL);
}
/**
* Sets the default fixed cost accrual type.
*
* @param defaultFixedCostAccrual default fixed cost accrual type
*/
public void setDefaultFixedCostAccrual(AccrueType defaultFixedCostAccrual)
{
set(ProjectField.DEFAULT_FIXED_COST_ACCRUAL, defaultFixedCostAccrual);
}
/**
* Set the extended creation date.
*
* @param creationDate extended creation date
*/
public void setExtendedCreationDate(Date creationDate)
{
set(ProjectField.EXTENDED_CREATION_DATE, creationDate);
}
/**
* Retrieve the critical slack limit.
*
* @return critical slack limit
*/
public Integer getCriticalSlackLimit()
{
return (Integer) getCachedValue(ProjectField.CRITICAL_SLACK_LIMIT);
}
/**
* Set the critical slack limit.
*
* @param criticalSlackLimit critical slack limit
*/
public void setCriticalSlackLimit(Integer criticalSlackLimit)
{
set(ProjectField.CRITICAL_SLACK_LIMIT, criticalSlackLimit);
}
/**
* Retrieve the number of the baseline to use for earned value
* calculations.
*
* @return baseline for earned value
*/
public Integer getBaselineForEarnedValue()
{
return (Integer) getCachedValue(ProjectField.BASELINE_FOR_EARNED_VALUE);
}
/**
* Set the number of the baseline to use for earned value
* calculations.
*
* @param baselineForEarnedValue baseline for earned value
*/
public void setBaselineForEarnedValue(Integer baselineForEarnedValue)
{
set(ProjectField.BASELINE_FOR_EARNED_VALUE, baselineForEarnedValue);
}
/**
* Retrieves the fiscal year start month (January=1, December=12).
*
* @return fiscal year start month
*/
public Integer getFiscalYearStartMonth()
{
return (Integer) getCachedValue(ProjectField.FISCAL_YEAR_START_MONTH);
}
/**
* Sets the fiscal year start month (January=1, December=12).
*
* @param fiscalYearStartMonth fiscal year start month
*/
public void setFiscalYearStartMonth(Integer fiscalYearStartMonth)
{
set(ProjectField.FISCAL_YEAR_START_MONTH, fiscalYearStartMonth);
}
/**
* Retrieve the flag indicating if new tasks should default to the
* project start date (true) or the current date (false).
*
* @return new task start is project start
*/
public boolean getNewTaskStartIsProjectStart()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.NEW_TASK_START_IS_PROJECT_START));
}
/**
* Sets the flag indicating if new tasks should default to the
* project start date (true) or the current date (false).
*
* @param newTaskStartIsProjectStart new task start is project start
*/
public void setNewTaskStartIsProjectStart(boolean newTaskStartIsProjectStart)
{
set(ProjectField.NEW_TASK_START_IS_PROJECT_START, newTaskStartIsProjectStart);
}
/**
* Retrieve the week start day.
*
* @return week start day
*/
public Day getWeekStartDay()
{
return (Day) getCachedValue(ProjectField.WEEK_START_DAY);
}
/**
* Set the week start day.
*
* @param weekStartDay week start day
*/
public void setWeekStartDay(Day weekStartDay)
{
set(ProjectField.WEEK_START_DAY, weekStartDay);
}
/**
* Sets the calculate multiple critical paths flag.
*
* @param flag boolean flag
*/
public void setCalculateMultipleCriticalPaths(boolean flag)
{
set(ProjectField.CALCULATE_MULTIPLE_CRITICAL_PATHS, flag);
}
/**
* Retrieves the calculate multiple critical paths flag.
*
* @return boolean flag
*/
public boolean getCalculateMultipleCriticalPaths()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.CALCULATE_MULTIPLE_CRITICAL_PATHS));
}
/**
* Retrieve the currency code for this project.
*
* @return currency code
*/
public String getCurrencyCode()
{
return (String) getCachedValue(ProjectField.CURRENCY_CODE);
}
/**
* Set the currency code for this project.
*
* @param currencyCode currency code
*/
public void setCurrencyCode(String currencyCode)
{
set(ProjectField.CURRENCY_CODE, currencyCode);
}
/**
* Sets a map of custom document properties.
*
* @param customProperties The Document Summary Information Map
*/
public void setCustomProperties(Map<String, Object> customProperties)
{
set(ProjectField.CUSTOM_PROPERTIES, customProperties);
}
/**
* Retrieve a map of custom document properties.
*
* @return the Document Summary Information Map
*/
@SuppressWarnings("unchecked") public Map<String, Object> getCustomProperties()
{
return (Map<String, Object>) getCachedValue(ProjectField.CUSTOM_PROPERTIES);
}
/**
* Sets the hyperlink base for this Project.
*
* @param hyperlinkBase Hyperlink base
*/
public void setHyperlinkBase(String hyperlinkBase)
{
set(ProjectField.HYPERLINK_BASE, hyperlinkBase);
}
/**
* Gets the hyperlink base for this Project. If any.
*
* @return Hyperlink base
*/
public String getHyperlinkBase()
{
return (String) getCachedValue(ProjectField.HYPERLINK_BASE);
}
/**
* Retrieves the "show project summary task" flag.
*
* @return boolean flag
*/
public boolean getShowProjectSummaryTask()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.SHOW_PROJECT_SUMMARY_TASK));
}
/**
* Sets the "show project summary task" flag.
*
* @param value boolean flag
*/
public void setShowProjectSummaryTask(boolean value)
{
set(ProjectField.SHOW_PROJECT_SUMMARY_TASK, value);
}
/**
* Retrieve a baseline value.
*
* @return baseline value
*/
public Date getBaselineDate()
{
return (Date) getCachedValue(ProjectField.BASELINE_DATE);
}
/**
* Set a baseline value.
*
* @param value baseline value
*/
public void setBaselineDate(Date value)
{
set(ProjectField.BASELINE_DATE, value);
}
/**
* Retrieve a baseline value.
*
* @param baselineNumber baseline index (1-10)
* @return baseline value
*/
public Date getBaselineDate(int baselineNumber)
{
return (Date) getCachedValue(selectField(ProjectFieldLists.BASELINE_DATES, baselineNumber));
}
/**
* Set a baseline value.
*
* @param baselineNumber baseline index (1-10)
* @param value baseline value
*/
public void setBaselineDate(int baselineNumber, Date value)
{
set(selectField(ProjectFieldLists.BASELINE_DATES, baselineNumber), value);
}
/**
* Retrieve the template property.
*
* @return template property
*/
public String getTemplate()
{
return (String) getCachedValue(ProjectField.TEMPLATE);
}
/**
* Set the template property.
*
* @param template property value
*/
public void setTemplate(String template)
{
set(ProjectField.TEMPLATE, template);
}
/**
* Retrieve the project user property.
*
* @return project user property
*/
public String getLastAuthor()
{
return (String) getCachedValue(ProjectField.LAST_AUTHOR);
}
/**
* Set the project user property.
*
* @param projectUser project user property
*/
public void setLastAuthor(String projectUser)
{
set(ProjectField.LAST_AUTHOR, projectUser);
}
/**
* Retrieve the last printed property.
*
* @return last printed property
*/
public Date getLastPrinted()
{
return (Date) getCachedValue(ProjectField.LASTPRINTED);
}
/**
* Set the last printed property.
*
* @param lastPrinted property value
*/
public void setLastPrinted(Date lastPrinted)
{
set(ProjectField.LASTPRINTED, lastPrinted);
}
/**
* Retrieve the application property.
*
* @return property value
*/
public String getShortApplicationName()
{
return (String) getCachedValue(ProjectField.SHORT_APPLICATION_NAME);
}
/**
* Set the application property.
*
* @param application property value
*/
public void setShortApplicationName(String application)
{
set(ProjectField.SHORT_APPLICATION_NAME, application);
}
/**
* Retrieve the editing time property.
*
* @return property value
*/
public Integer getEditingTime()
{
return (Integer) getCachedValue(ProjectField.EDITING_TIME);
}
/**
* Set the editing time property.
*
* @param editingTime editing time property
*/
public void setEditingTime(Integer editingTime)
{
set(ProjectField.EDITING_TIME, editingTime);
}
/**
* Retrieve the format property.
*
* @return property value
*/
public String getPresentationFormat()
{
return (String) getCachedValue(ProjectField.PRESENTATION_FORMAT);
}
/**
* Set the format property.
*
* @param format property value
*/
public void setPresentationFormat(String format)
{
set(ProjectField.PRESENTATION_FORMAT, format);
}
/**
* Retrieve the content type property.
*
* @return content type property
*/
public String getContentType()
{
return (String) getCachedValue(ProjectField.CONTENT_TYPE);
}
/**
* Set the content type property.
*
* @param contentType property value
*/
public void setContentType(String contentType)
{
set(ProjectField.CONTENT_TYPE, contentType);
}
/**
* Retrieve the content status property.
*
* @return property value
*/
public String getContentStatus()
{
return (String) getCachedValue(ProjectField.CONTENT_STATUS);
}
/**
* Set the content status property.
*
* @param contentStatus property value
*/
public void setContentStatus(String contentStatus)
{
set(ProjectField.CONTENT_STATUS, contentStatus);
}
/**
* Retrieve the language property.
*
* @return property value
*/
public String getLanguage()
{
return (String) getCachedValue(ProjectField.LANGUAGE);
}
/**
* Set the language property.
*
* @param language property value
*/
public void setLanguage(String language)
{
set(ProjectField.LANGUAGE, language);
}
/**
* Retrieve the document version property.
*
* @return property value
*/
public String getDocumentVersion()
{
return (String) getCachedValue(ProjectField.DOCUMENT_VERSION);
}
/**
* Set the document version property.
*
* @param documentVersion property value
*/
public void setDocumentVersion(String documentVersion)
{
set(ProjectField.DOCUMENT_VERSION, documentVersion);
}
/**
* Sets the delimiter character, "," by default.
*
* @param delimiter delimiter character
*/
public void setMpxDelimiter(char delimiter)
{
set(ProjectField.MPX_DELIMITER, Character.valueOf(delimiter));
}
/**
* Retrieves the delimiter character, "," by default.
*
* @return delimiter character
*/
public char getMpxDelimiter()
{
return getCachedCharValue(ProjectField.MPX_DELIMITER, DEFAULT_MPX_DELIMITER);
}
/**
* Program name file created by.
*
* @param programName system name
*/
public void setMpxProgramName(String programName)
{
set(ProjectField.MPX_PROGRAM_NAME, programName);
}
/**
* Program name file created by.
*
* @return program name
*/
public String getMpxProgramName()
{
return (String) getCachedValue(ProjectField.MPX_PROGRAM_NAME);
}
/**
* Version of the MPX file.
*
* @param version MPX file version
*/
public void setMpxFileVersion(FileVersion version)
{
set(ProjectField.MPX_FILE_VERSION, version);
}
/**
* Version of the MPX file.
*
* @return MPX file version
*/
public FileVersion getMpxFileVersion()
{
return (FileVersion) getCachedValue(ProjectField.MPX_FILE_VERSION);
}
/**
* Sets the codepage.
*
* @param codePage code page type
*/
public void setMpxCodePage(CodePage codePage)
{
set(ProjectField.MPX_CODE_PAGE, codePage);
}
/**
* Retrieves the codepage.
*
* @return code page type
*/
public CodePage getMpxCodePage()
{
return (CodePage) getCachedValue(ProjectField.MPX_CODE_PAGE);
}
/**
* Sets the project file path.
*
* @param projectFilePath project file path
*/
public void setProjectFilePath(String projectFilePath)
{
set(ProjectField.PROJECT_FILE_PATH, projectFilePath);
}
/**
* Gets the project file path.
*
* @return project file path
*/
public String getProjectFilePath()
{
return (String) getCachedValue(ProjectField.PROJECT_FILE_PATH);
}
/**
* Retrieves the name of the application used to create this project data.
*
* @return application name
*/
public String getFullApplicationName()
{
return (String) getCachedValue(ProjectField.FULL_APPLICATION_NAME);
}
/**
* Sets the name of the application used to create this project data.
*
* @param name application name
*/
public void setFullApplicationName(String name)
{
set(ProjectField.FULL_APPLICATION_NAME, name);
}
/**
* Retrieves the version of the application used to create this project.
*
* @return application name
*/
public Integer getApplicationVersion()
{
return (Integer) getCachedValue(ProjectField.APPLICATION_VERSION);
}
/**
* Sets the version of the application used to create this project.
*
* @param version application version
*/
public void setApplicationVersion(Integer version)
{
set(ProjectField.APPLICATION_VERSION, version);
}
/**
* This method retrieves a value representing the type of MPP file
* that has been read. Currently this method will return the value 8 for
* an MPP8 file (Project 98), 9 for an MPP9 file (Project 2000 and
* Project 2002), 12 for an MPP12 file (Project 2003, Project 2007) and 14 for an
* MPP14 file (Project 2010 and Project 2013).
*
* @return integer representing the file type
*/
public Integer getMppFileType()
{
return (Integer) getCachedValue(ProjectField.MPP_FILE_TYPE);
}
/**
* Used internally to set the file type.
*
* @param fileType file type
*/
public void setMppFileType(Integer fileType)
{
set(ProjectField.MPP_FILE_TYPE, fileType);
}
/**
* Retrieve a flag indicating if auto filter is enabled.
*
* @return auto filter flag
*/
public boolean getAutoFilter()
{
return BooleanHelper.getBoolean((Boolean) getCachedValue(ProjectField.AUTOFILTER));
}
/**
* Sets a flag indicating if auto filter is enabled.
*
* @param autoFilter boolean flag
*/
public void setAutoFilter(boolean autoFilter)
{
set(ProjectField.AUTOFILTER, autoFilter);
}
/**
* {@inheritDoc}
*/
@Override public void addFieldListener(FieldListener listener)
{
if (m_listeners == null)
{
m_listeners = new LinkedList<FieldListener>();
}
m_listeners.add(listener);
}
/**
* {@inheritDoc}
*/
@Override public void removeFieldListener(FieldListener listener)
{
if (m_listeners != null)
{
m_listeners.remove(listener);
}
}
/**
* Maps a field index to a TaskField instance.
*
* @param fields array of fields used as the basis for the mapping.
* @param index required field index
* @return TaskField instance
*/
private ProjectField selectField(ProjectField[] fields, int index)
{
if (index < 1 || index > fields.length)
{
throw new IllegalArgumentException(index + " is not a valid field index");
}
return (fields[index - 1]);
}
/**
* Handles retrieval of primitive char type.
*
* @param field required field
* @param defaultValue default value if field is missing
* @return char value
*/
private char getCachedCharValue(FieldType field, char defaultValue)
{
Character c = (Character) getCachedValue(field);
return c == null ? defaultValue : c.charValue();
}
/**
* {@inheritDoc}
*/
@Override public Object getCachedValue(FieldType field)
{
return (field == null ? null : m_array[field.getValue()]);
}
/**
* {@inheritDoc}
*/
@Override public Object getCurrentValue(FieldType field)
{
return (getCachedValue(field));
}
/**
* {@inheritDoc}
*/
@Override public void set(FieldType field, Object value)
{
if (field != null)
{
int index = field.getValue();
m_array[index] = value;
}
}
/**
* This method inserts a name value pair into internal storage.
*
* @param field task field
* @param value attribute value
*/
private void set(FieldType field, boolean value)
{
set(field, (value ? Boolean.TRUE : Boolean.FALSE));
}
/**
* Array of field values.
*/
private Object[] m_array = new Object[ProjectField.MAX_VALUE];
/**
* Listeners.
*/
private List<FieldListener> m_listeners;
/**
* Default time separator character.
*/
private static final char DEFAULT_TIME_SEPARATOR = ':';
/**
* Default date separator character.
*/
private static final char DEFAULT_DATE_SEPARATOR = '/';
/**
* Default thousands separator character.
*/
private static final char DEFAULT_THOUSANDS_SEPARATOR = ',';
/**
* Default decimal separator character.
*/
private static final char DEFAULT_DECIMAL_SEPARATOR = '.';
/**
* Default currency symbol.
*/
private static final String DEFAULT_CURRENCY_SYMBOL = "$";
/**
* Default cost value.
*/
private static final Double DEFAULT_COST = Double.valueOf(0);
/**
* Default MPX delimiter.
*/
private static final char DEFAULT_MPX_DELIMITER = ',';
/**
* Default critical slack limit.
*/
private static final Integer DEFAULT_CRITICAL_SLACK_LIMIT = Integer.valueOf(0);
/**
* Default baseline for earned value.
*/
private static final Integer DEFAULT_BASELINE_FOR_EARNED_VALUE = Integer.valueOf(0);
/**
* Default fiscal year start month.
*/
private static final Integer DEFAULT_FISCAL_YEAR_START_MONTH = Integer.valueOf(1);
/**
* Default week start day.
*/
private static final Day DEFAULT_WEEK_START_DAY = Day.MONDAY;
/**
* Default work value.
*/
private static final Duration DEFAULT_WORK = Duration.getInstance(0, TimeUnit.HOURS);
/**
* Default work 2 value.
*/
private static final Double DEFAULT_WORK2 = Double.valueOf(0);
/**
* Default duration value.
*/
private static final Duration DEFAULT_DURATION = Duration.getInstance(0, TimeUnit.DAYS);
/**
* Default schedule from value.
*/
private static final ScheduleFrom DEFAULT_SCHEDULE_FROM = ScheduleFrom.START;
/**
* Default percent complete value.
*/
private static final Double DEFAULT_PERCENT_COMPLETE = Double.valueOf(0);
/**
* Default calendar name.
*/
private static final String DEFAULT_CALENDAR_NAME = "Standard";
/**
* Default minutes per day.
*/
private static final Integer DEFAULT_MINUTES_PER_DAY = Integer.valueOf(480);
/**
* Default days per month.
*/
private static final Integer DEFAULT_DAYS_PER_MONTH = Integer.valueOf(20);
/**
* Default minutes per week.
*/
private static final Integer DEFAULT_MINUTES_PER_WEEK = Integer.valueOf(2400);
}