private void readPredecessors ( net . sf . mpxj . planner . schema . Task plannerTask ) { Task mpxjTask = m_projectFile . getTaskByUniqueID ( getInteger ( plannerTask . getId ( ) ) ) ; Predecessors predecessors = plannerTask . getPredecessors ( ) ; if ( predecessors != null ) { List < Predecessor > predecessorList = predecessors . getPredecessor ( ) ; for ( Predecessor predecessor : predecessorList ) { Integer predecessorID = getInteger ( predecessor . getPredecessorId ( ) ) ; Task predecessorTask = m_projectFile . getTaskByUniqueID ( predecessorID ) ; if ( predecessorTask != null ) { Duration lag = getDuration ( predecessor . getLag ( ) ) ; if ( lag == null ) { lag = Duration . getInstance ( 0 , TimeUnit . HOURS ) ; } Relation relation = mpxjTask . addPredecessor ( predecessorTask , RELATIONSHIP_TYPES . get ( predecessor . getType ( ) ) , lag ) ; m_eventManager . fireRelationReadEvent ( relation ) ; } } } // // Process child tasks // List < net . sf . mpxj . planner . schema . Task > childTasks = plannerTask . getTask ( ) ; for ( net . sf . mpxj . planner . schema . Task childTask : childTasks ) { readPredecessors ( childTask ) ; } }
This method extracts predecessor data from a Planner file .