class MPXJ::Task
Represents a task in a project plan
Attributes
assignments[R]
child_tasks[R]
predecessors[R]
successors[R]
Public Class Methods
new(parent_project, attribute_values)
click to toggle source
Calls superclass method
MPXJ::Container::new
# File lib/mpxj/task.rb, line 11 def initialize(parent_project, attribute_values) super(parent_project, attribute_values) @assignments = [] @child_tasks = [] process_relations process_hierarchy end
Public Instance Methods
parent_task()
click to toggle source
Retrieve the parent task of this task
@return [Task] if this task is the child of another task @return [nil] if this is the root task
# File lib/mpxj/task.rb, line 23 def parent_task parent_project.get_task_by_unique_id(attribute_values['parent_task_unique_id']&.to_i) end
Private Instance Methods
process_hierarchy()
click to toggle source
# File lib/mpxj/task.rb, line 44 def process_hierarchy if parent_task parent_task.child_tasks << self else parent_project.child_tasks << self end end
process_relation_list(list)
click to toggle source
# File lib/mpxj/task.rb, line 34 def process_relation_list(list) result = [] if list list.each do |attribute_values| result << Relation.new(self, attribute_values) end end result end
process_relations()
click to toggle source
# File lib/mpxj/task.rb, line 29 def process_relations @predecessors = process_relation_list(attribute_values["predecessors"]) @successors = process_relation_list(attribute_values["successors"]) end