public abstract class AbstractCriticalPathMethod extends java.lang.Object implements ICriticalPathMethod
Modifier and Type | Field and Description |
---|---|
protected java.lang.Object |
model |
protected SKDActivityDuration |
skdActivityDuration |
protected UserInfo |
userInfo |
protected java.util.TimeZone |
userTimeZone |
Constructor and Description |
---|
AbstractCriticalPathMethod(java.lang.Object model,
UserInfo userInfo) |
Modifier and Type | Method and Description |
---|---|
protected abstract java.util.Iterator |
activityAncestorsIterator(IMXActivity activity) |
protected abstract java.util.Iterator |
activityPreorderIterator() |
protected abstract java.util.Iterator |
activityPreorderIterator(IMXActivity activity) |
protected java.util.Date |
addDurationToDate(java.util.Date date,
ilog.views.gantt.IlvDuration duration)
Returns a new Date that is the sum of the specified time and this duration
|
protected java.util.Date[] |
applyPredecessorConstraints(IMXActivity activity,
java.util.Date parentEarlyStart,
ilog.views.gantt.IlvDuration activityDuration)
Apply constraint type to the activity and get early and finish dates
|
protected java.util.Date[] |
applySuccessorConstraints(IMXActivity activity,
java.util.Date parentLatestFinish,
ilog.views.gantt.IlvDuration activityDuration)
Apply constraint type to the activity and get latest start and finish dates
|
protected abstract java.util.Iterator |
childActivityIterator(IMXActivity activity) |
protected void |
clearCPMProperties()
Clear the CPM properties for all activities.
|
protected void |
clearCPMProperties(IMXActivity[] selectedActivities)
Clear the CPM properties for selected activities.
|
protected void |
computeEarlyStartAndFinish(IMXActivity activity)
Forward pass to compute the early start and early finish
|
protected void |
computeEarlyStartAndFinish(IMXActivity activity,
java.util.Date parentEarlyStart)
Forward pass to compute the early start and early finish
|
protected void |
computeFloat(IMXActivity activity)
Compute float for an activity
|
protected void |
computeLateStartAndFinish(IMXActivity activity)
Backward pass to compute the late start and late finish
|
protected void |
computeLateStartAndFinish(IMXActivity activity,
java.util.Date parentLatestFinish)
Backward pass to compute the late start and late finish
|
boolean |
computeSchedule()
Computed the critical path for the project
|
IMXActivity[] |
computeSchedule(IMXActivity[] selectedActivities)
Computes the critical path for selected activities
|
protected abstract java.util.Iterator |
constraintIteratorFromActivity(IMXActivity activity) |
protected abstract java.util.Iterator |
constraintIteratorToActivity(IMXActivity activity) |
protected abstract IMXActivity |
getActivityByID(java.lang.String activityID) |
protected double |
getActivityDuration(IMXActivity activity) |
protected abstract int |
getChildActivityCount(IMXActivity activity) |
protected ilog.views.gantt.IlvDuration |
getLeadLagDuration(java.lang.Double leadLagHours)
Get the lead/lag in IlvDuration
|
protected abstract IMXActivity |
getRootActivity() |
protected ilog.views.gantt.IlvTimeInterval |
getTimeInterval(IMXActivity activity,
boolean useEarlyDates) |
protected abstract void |
handleModifiedActivity(IMXActivity activity) |
protected abstract boolean |
recalculateParentActivity(IMXActivity activity) |
protected void |
setCriticalThreshold(ilog.views.gantt.IlvDuration ilvduration)
Sets the critical threshold for the project
|
void |
setProjectEnd(java.util.Date projectEnd)
Sets project end date
|
void |
setProjectStart(java.util.Date projectStart)
Sets project start date
|
protected java.util.Date |
subtractDurationFromDate(java.util.Date date,
ilog.views.gantt.IlvDuration duration)
Returns a new Date that is the subtraction of the specified time and this duration
|
protected java.util.Date |
truncateDate(java.util.Date date)
Removes seconds and milliseconds from Activity dates, in order to avoid interference
on float values calculations.
|
protected UserInfo userInfo
protected java.util.TimeZone userTimeZone
protected java.lang.Object model
protected SKDActivityDuration skdActivityDuration
public AbstractCriticalPathMethod(java.lang.Object model, UserInfo userInfo)
public void setProjectStart(java.util.Date projectStart)
setProjectStart
in interface ICriticalPathMethod
projectStart
- public void setProjectEnd(java.util.Date projectEnd)
projectEnd
- protected void setCriticalThreshold(ilog.views.gantt.IlvDuration ilvduration)
ilvduration
- protected void clearCPMProperties()
protected void clearCPMProperties(IMXActivity[] selectedActivities)
public boolean computeSchedule() throws java.lang.Exception
computeSchedule
in interface ICriticalPathMethod
ilog.views.gantt.model.IlvConstraintCycleException
java.lang.Exception
public IMXActivity[] computeSchedule(IMXActivity[] selectedActivities) throws java.lang.Exception
computeSchedule
in interface ICriticalPathMethod
selectedActivities
- ilog.views.gantt.model.IlvConstraintCycleException
java.lang.Exception
protected void computeEarlyStartAndFinish(IMXActivity activity) throws java.lang.Exception
activity
- ilog.views.gantt.model.IlvConstraintCycleException
java.lang.Exception
protected void computeEarlyStartAndFinish(IMXActivity activity, java.util.Date parentEarlyStart) throws java.lang.Exception
activity
- parentEarlyStart
- that must be used if not null.ilog.views.gantt.model.IlvConstraintCycleException
java.lang.Exception
protected java.util.Date[] applyPredecessorConstraints(IMXActivity activity, java.util.Date parentEarlyStart, ilog.views.gantt.IlvDuration activityDuration) throws java.lang.Exception
activity
- parentEarlyStart
- activityDuration
- ilog.views.gantt.model.IlvConstraintCycleException
java.lang.Exception
protected void computeLateStartAndFinish(IMXActivity activity) throws java.lang.Exception
activity
- ilog.views.gantt.model.IlvConstraintCycleException
java.lang.Exception
protected void computeLateStartAndFinish(IMXActivity activity, java.util.Date parentLatestFinish) throws java.lang.Exception
activity
- ilog.views.gantt.model.IlvConstraintCycleException
java.lang.Exception
protected java.util.Date[] applySuccessorConstraints(IMXActivity activity, java.util.Date parentLatestFinish, ilog.views.gantt.IlvDuration activityDuration) throws java.lang.Exception
activity
- parentLatestFinish
- activityDuration
- ilog.views.gantt.model.IlvConstraintCycleException
java.lang.Exception
protected void computeFloat(IMXActivity activity) throws java.lang.Exception
activity
- java.lang.Exception
protected java.util.Date addDurationToDate(java.util.Date date, ilog.views.gantt.IlvDuration duration)
activity
- date
- duration
- protected java.util.Date subtractDurationFromDate(java.util.Date date, ilog.views.gantt.IlvDuration duration)
activity
- date
- duration
- protected ilog.views.gantt.IlvDuration getLeadLagDuration(java.lang.Double leadLagHours)
leadLagHours
- protected java.util.Date truncateDate(java.util.Date date)
date
- protected double getActivityDuration(IMXActivity activity) throws java.lang.Exception
java.lang.Exception
protected ilog.views.gantt.IlvTimeInterval getTimeInterval(IMXActivity activity, boolean useEarlyDates)
protected abstract IMXActivity getRootActivity()
protected abstract java.util.Iterator activityAncestorsIterator(IMXActivity activity)
protected abstract java.util.Iterator activityPreorderIterator()
protected abstract java.util.Iterator activityPreorderIterator(IMXActivity activity)
protected abstract java.util.Iterator childActivityIterator(IMXActivity activity)
protected abstract java.util.Iterator constraintIteratorFromActivity(IMXActivity activity)
protected abstract java.util.Iterator constraintIteratorToActivity(IMXActivity activity)
protected abstract int getChildActivityCount(IMXActivity activity)
protected abstract void handleModifiedActivity(IMXActivity activity)
protected abstract IMXActivity getActivityByID(java.lang.String activityID)
protected abstract boolean recalculateParentActivity(IMXActivity activity)