Project#analyze#
Computes analytics over dates without scheduling them. It reads either a supplied ProjectData or the current dates of a Project, including unsolved edits. It never installs data and never changes the solved status. Works on an unsolved project.
Signature#
public ScheduleResult
Synchronous and CPU-only. Doesn't change the project's state. Not synchronized: serialize calls on one instance.
Parameters#
| Name | Type | Description |
|---|---|---|
data |
ProjectData |
Dates to analyze, or null for the project's current dates |
options |
AnalyzeOptions |
Which analytics to compute. Must not be null |
Behavior#
- A non-null
datais validated and read as is. The method doesn't install it or modify the caller's object.ProjectOptions.validationdecides whether invalid data is rejected or repaired. WithValidation.REPAIR, the repairs apply to a copy and appear innotesasNote.Repaired. nullreads the project's current dates, including edits fromapplythat nosolvehas scheduled yet.
Returns#
A ScheduleResult with cycles, notes, analytics and overallocations. Its updates and conflicts are empty, converged is true and profile is null. Its baselineId is set only for null data on a solved project with no unsolved edits.
Errors#
All exceptions are unchecked.
| Error | When |
|---|---|
InputException |
A non-null data fails validation |
NullPointerException |
options is null |
Example#
Get the critical path of dates stored elsewhere, without scheduling them.
;
;
Related#
AnalyzeOptions- which analytics to computeAnalytics- the slack and critical path in the resultScheduleResult- the result type, with empty updates- Analyzing without scheduling - analytics over dates you supply
- Reading results - cycles, notes and overallocations in a result