org.sandev.TaskHeap.structs
Class PlanComponentStruct
java.lang.Object
org.sandev.TaskHeap.structs.PlanComponentStruct
- Direct Known Subclasses:
- ExternalPlanStruct, PlanComponent, PlanStruct, TaskStruct
public class PlanComponentStruct
- extends java.lang.Object
A PlanComponent represents part of a Plan. It holds the base fields
common to both Tasks and Plans. PlanComponents may be queried, but
are not be modified directly.
This message is persistent.
This message is a tree of values.
summary fields: name
This message has the following verb forms: update query collection
declared printname: Plan Component
help text: A common description of anything that can be part of a plan. Tasks,
Plans, and External Plans are all Plan Components since they can be
part of another Plan.
|
Field Summary |
protected long |
assignedTo
The specific person this work is assigned to, if any. |
protected java.lang.String |
description
The description of this plan component. |
protected java.util.Date |
dueDate
The date when this plan component must be completed. |
protected int |
dueDelta
The time difference between when this is due, and when the
reference is due. |
protected int |
dueDeltaSense
Whether this is due before or after the reference. |
protected int |
dueDeltaValue
The absolute value of the dueDelta field. |
protected long |
dueReference
The plan or task to use as a reference when calculating the due
date. |
protected int |
dueTimeUnits
The time units for the due date delta value. |
protected int |
dueType
The type of deadline due date calculation to be applied. |
protected long |
heap
The heap this work belongs to. |
protected java.lang.String |
name
Each plan component requires a name so that humans can refer to it
by something other than its unique identifier. |
protected NoteStruct[] |
notes
Attached comments. |
protected long |
parent
If a PlanComponent is part of a Plan, then this is a reference
to the plan that contains it. |
protected int |
relRoundDay
The day of the week the rounding should default to. |
protected int |
relRounding
The rounding to be applied when calculating a relative due date. |
protected long[] |
responsibilities
The roles responsible for completion or oversight of this work. |
protected int |
timeEstimate
An estimate of the number of hours necessary to complete this
plan component. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
name
protected java.lang.String name
- Each plan component requires a name so that humans can refer to it
by something other than its unique identifier. Names should be short,
but descriptive enough to identify the element within a report.
Originally the name was declared to be unique, to avoid creating
heaps with multiple tasks or plans with generic names like "test" or
"requirements". Generic naming is strongly discouraged because
duplicate names
- are less meaningful
- make it harder to follow heap evolution when tasks are moved
from one plan to another, or into recycling
- make it more difficult to search for specific work by searching
within the displayed page or report.
However, there are times when having two tasks with the same
name may be reasonable, and having the application disallow this
generally can get in the way. So the unique constraint was
removed, even though experience has shown that unique naming
greatly increases manageability, especially over time. Good names
are strongly recommended. The few additional seconds spent coming
up with a good name will easily save minutes when working through
the heap as a whole.
declared invalid value: "TASKHEAP_INVALID_NAME"
Length in characters, normal: 60 max: 128
help text: A few words to identify this component in the summary display.
description
protected java.lang.String description
- The description of this plan component. Organizational plans
or milestones may have relatively short descriptions, while tasks
typically have fairly significant text describing the work to be
done.
declared invalid value: "TASKHEAP_INVALID_DESCRIPTION"
Length in characters, normal: 512 max: 1048576
help text: The description of this plan component. Organizational plans
or milestones may have relatively short descriptions, while tasks
typically have fairly significant text describing the work to be
done.
To provide maximum display flexibility, the description field
is plain text (no HTML or word processor formatting). Only line
breaks are preserved. However the display will convert recognized
email addresses and URLs to display links, to allow for including
references to supporting documentation or email contacts.
parent
protected long parent
- If a PlanComponent is part of a Plan, then this is a reference
to the plan that contains it. If the reference is null, then this
is a top level heap element.
reference to class: org.sandev.TaskHeap.structs.PlanStruct
help text: If a PlanComponent is part of a Plan, then this is a reference
to the plan that contains it. If the reference is null, then this
is a top level heap element.
heap
protected long heap
- The heap this work belongs to.
reference to class: org.sandev.TaskHeap.structs.HeapAttributesStruct
help text: The heap this work belongs to.
timeEstimate
protected int timeEstimate
- An estimate of the number of hours necessary to complete this
plan component. All estimates are in hours. The conversion of time
estimates into calendar elapsed time is based on the hours per day
in the heap attributes.
For a Task, the time estimate is simply the value entered. For
a Plan, this is the value calculated from the tasks it contains.
For an ExternalPlan, this is the value retrieved from the Plan
being referenced. All automatic processing is done on behalf of
the current user by the system, so any cascading changes are
recorded based on the user that triggered them.
declared default value: 0
range match expression: >= 0
Length in characters, normal: 3 max: 20
declared metatype: hours
declared printname: time estimate
help text: An estimate of the number of hours necessary to complete this
plan component. All estimates are in even hours. Fractional
hours are not supported, see the
user manual for details. The
conversion of time estimates into calendar elapsed time is
based on the hours per day in the heap attributes.
For a Task, the time estimate is simply the value entered. For
a Plan, this is the value calculated from the tasks it contains.
For an ExternalPlan, this is the value retrieved from the Plan
being referenced. All automatic processing is done on behalf of
the current user by the system, so any cascading changes are
recorded based on the user that triggered them.
responsibilities
protected long[] responsibilities
- The roles responsible for completion or oversight of this work.
a dynamic selection display may be generated for this field.
reference to class: org.sandev.TaskHeap.structs.RoleStruct
help text: The roles responsible for completion or oversight of this work.
assignedTo
protected long assignedTo
- The specific person this work is assigned to, if any.
a dynamic selection display may be generated for this field.
reference to class: org.sandev.TaskHeap.structs.HeapAssociationStruct
help text: The specific person this work is assigned to, if any.
dueType
protected int dueType
- The type of deadline due date calculation to be applied.
declared default value: NONE
enumerated constant values:
NONE("None") = 0
FIXED("Fixed") = 1
RELATIVE("Relative") = 2
declared invalid value: -1
declared printname: due date type
help text: The type of deadline due date calculation to be applied.
dueDate
protected java.util.Date dueDate
- The date when this plan component must be completed. If the
estimated completion date goes beyond this date, then this
work item will be noted prominently in the heap display as
being overdue.
declared default value: 1428458375000L
Display format: "MMM d, yyyy h:mm a" editing format: "MMM d, yyyy h:mm a"
declared printname: due date
help text: The date when this plan component must be completed. If the
estimated completion date goes beyond this date, then this
work item will be noted prominently in the heap display as
being overdue.
Note that this means that work items are flagged as overdue
as soon as they slip, not when their due date is exceeded. This
provides advanced warning that additional work prioritization
planning will be required in order to meet the deadline established
by the due date.
dueDelta
protected int dueDelta
- The time difference between when this is due, and when the
reference is due.
declared printname: due date delta
help text: The time difference between when this is due, and when the
reference is due. So for example if this needs to be finished
five days before the reference, then the delta would be -5. If it
needs to be finished two days after the reference, the the delta
would be 2. If this needs to be finished at the same time then the
delta is 0.
dueDeltaValue
protected transient int dueDeltaValue
- The absolute value of the dueDelta field. Used for display.
declared printname: due date delta value
help text: How much before or after the reference is this due.
dueDeltaSense
protected transient int dueDeltaSense
- Whether this is due before or after the reference.
declared default value: BEFORE
enumerated constant values:
BEFORE("before") = 0
AFTER("after") = 1
declared invalid value: -1
declared printname: due date delta sense
help text: Whether this is due before or after the reference.
dueTimeUnits
protected int dueTimeUnits
- The time units for the due date delta value.
declared default value: DAYS
enumerated constant values:
HOURS("Hours") = 0
DAYS("Days") = 1
WEEKS("Weeks") = 2
declared invalid value: -1
declared printname: delta time units
help text: The time units for the due date delta value.
dueReference
protected long dueReference
- The plan or task to use as a reference when calculating the due
date. Referenced only if the due date type is "Relative". A
zero value indicates the date is relative to the root due date
from the heap settings.
This field should generally only be displayed when the the
dueDateType is "Relative", and then as a dropdown selection
rather than an open reference find. The idea is to display
dropdown selection containing the list of parent plans back to
the root (dueDate and name for each).
a dynamic selection display may be generated for this field.
reference to class: org.sandev.TaskHeap.structs.PlanStruct
declared printname: due date reference
help text: The plan or task to use as a reference when calculating the due
date. Referenced only if the due date type is "Relative".
relRounding
protected int relRounding
- The rounding to be applied when calculating a relative due date.
The print values are lower case since they are sandwiched between
the target reference and the following day value when displayed.
declared default value: EXACT
enumerated constant values:
EXACT("Exact (no rounding)") = 0
NEAREST("rounded to nearest") = 1
PRECEDING("rounded to preceding") = 2
FOLLOWING("rounded to following") = 3
MIDMONTH("rounded to mid-month") = 4
declared invalid value: -1
declared printname: rounding
help text: The rounding to be applied when calculating a relative due date.
relRoundDay
protected int relRoundDay
- The day of the week the rounding should default to. These values
correspond to the constant values declared in java.util.Calendar,
but structs aren't allowed to have external dependencies like
that so the integer values are used for the declaration here.
declared default value: MONDAY
enumerated constant values:
MONDAY("Monday") = 2
TUESDAY("Tuesday") = 3
WEDNESDAY("Wednesday") = 4
THURSDAY("Thursday") = 5
FRIDAY("Friday") = 6
SATURDAY("Saturday") = 7
SUNDAY("Sunday") = 1
declared invalid value: -1
declared printname: round to day
help text: The day of the week the rounding should default to.
notes
protected NoteStruct[] notes
- Attached comments.
values for this field are persisted in their string form.
Length in characters, normal: 512 max: 1048576
help text: Attached comments providing additional detail about status, links
to background material, etc.
PlanComponentStruct
public PlanComponentStruct()