org.sandev.TaskHeap.structs
Class PlanComponentStruct

java.lang.Object
  extended byorg.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 has the following verb forms: update query collection

Field Summary
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  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 a PlanComponent is part of a Plan, then this is a reference to the plan that contains it.
protected  long resourceID
          A component may be owned by a resource.
protected  long timeEstimate
          An estimate of the number of hours necessary to complete this plan component.
 
Constructor Summary
PlanComponentStruct()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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

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: 30 max: 80

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.

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 contact info.

declared invalid value: "TASKHEAP_INVALID_DESCRIPTION"
Length in characters, normal: 512 max: 1048576

parent

protected long parent
If a 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

resourceID

protected long resourceID
A component may be owned by a resource. This allows for work responsibility to be assigned, and provides a contact link for other heap users with interest in the given task or plan.

a dynamic selection display may be generated for this field.
reference to class: org.sandev.TaskHeap.structs.ResourceStruct
declared printname for field: resource

timeEstimate

protected long 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
declared printname for field: time estimate

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.

declared default value: 1428458375000L
declared printname for field: due date

notes

protected NoteStruct[] notes
Attached comments.

values for this field are persisted in their string form.
Length in characters, normal: 512 max: 1048576
Constructor Detail

PlanComponentStruct

public PlanComponentStruct()