public void processPredecessors(List<Row> rows, List<Row> completedSections)
   {
      Map<Integer, Integer> completedSectionMap = new HashMap<Integer, Integer>();
      for (Row section : completedSections)
      {
         completedSectionMap.put(section.getInteger("TASK_COMPLETED_SECTIONID"), section.getInteger("TASK"));
      }

      for (Row row : rows)
      {
         Integer startTaskID = row.getInteger("START_TASK");                 
         Task startTask = m_project.getTaskByUniqueID(startTaskID);
         if (startTask == null)
         {
            startTaskID = completedSectionMap.get(startTaskID);            
            if (startTaskID != null)
            {
               startTask = m_project.getTaskByUniqueID(startTaskID);
            }   
         }
         
         Integer endTaskID = row.getInteger("END_TASK");
         Task endTask = m_project.getTaskByUniqueID(endTaskID);
         if (endTask == null)
         {
            endTaskID = completedSectionMap.get(endTaskID);            
            if (endTaskID != null)
            {
               endTask = m_project.getTaskByUniqueID(endTaskID);
            }   
         }

         if (startTask != null && endTask != null)
         {
            RelationType type = getRelationType(row.getInt("TYPI"));

            double startLag = row.getDuration("START_LAG_TIMEHOURS").getDuration();
            double endLag = row.getDuration("END_LAG_TIMEHOURS").getDuration();
            double totalLag = startLag - endLag;

            Relation relation = endTask.addPredecessor(startTask, type, Duration.getInstance(totalLag, TimeUnit.HOURS));
            relation.setUniqueID(row.getInteger("LINKID"));
         }

         //PROJID
         //LINKID
         //START_LAG_TIMETYPF
         //START_LAG_TIMEELA_MONTHS
         //START_LAG_TIMEHOURS
         //END_LAG_TIMETYPF
         //END_LAG_TIMEELA_MONTHS
         //END_LAG_TIMEHOURS
         //MAXIMUM_LAGTYPF
         //MAXIMUM_LAGELA_MONTHS
         //MAXIMUM_LAGHOURS
         //STARV_DATE
         //ENF_DATE
         //CURVATURE_PERCENTAGE
         //START_LAG_PERCENT_FLOAT
         //END_LAG_PERCENT_FLOAT
         //COMMENTS
         //LINK_CATEGORY
         //START_LAG_TIME_UNIT
         //END_LAG_TIME_UNIT
         //MAXIMUM_LAG_TIME_UNIT
         //START_TASK
         //END_TASK
         //TYPI
         //START_LAG_TYPE
         //END_LAG_TYPE
         //MAINTAIN_TASK_OFFSETS
         //UNSCHEDULABLF
         //CRITICAL
         //ON_LOOP
         //MAXIMUM_LAG_MODE
         //ANNOTATE_LEAD_LAG
         //START_REPOSITION_ON_TAS_MOVE
         //END_REPOSITION_ON_TASK_MOVE
         //DRAW_CURVED_IF_VERTICAL
         //AUTOMATIC_CURVED_LI_SETTINGS
         //DRAW_CURVED_LINK_TO_LEFT
         //LOCAL_LINK
         //DRIVING
         //ALT_ID
         //LAST_EDITED_DATE
         //LAST_EDITED_BY
      }
   }
public void processPredecessors ( List < Row > rows , List < Row > completedSections ) { Map < Integer , Integer > completedSectionMap = new HashMap < Integer , Integer > ( ) ; for ( Row section : completedSections ) { completedSectionMap . put ( section . getInteger ( "TASK_COMPLETED_SECTIONID" ) , section . getInteger ( "TASK" ) ) ; } for ( Row row : rows ) { Integer startTaskID = row . getInteger ( "START_TASK" ) ; Task startTask = m_project . getTaskByUniqueID ( startTaskID ) ; if ( startTask == null ) { startTaskID = completedSectionMap . get ( startTaskID ) ; if ( startTaskID != null ) { startTask = m_project . getTaskByUniqueID ( startTaskID ) ; } } Integer endTaskID = row . getInteger ( "END_TASK" ) ; Task endTask = m_project . getTaskByUniqueID ( endTaskID ) ; if ( endTask == null ) { endTaskID = completedSectionMap . get ( endTaskID ) ; if ( endTaskID != null ) { endTask = m_project . getTaskByUniqueID ( endTaskID ) ; } } if ( startTask != null && endTask != null ) { RelationType type = getRelationType ( row . getInt ( "TYPI" ) ) ; double startLag = row . getDuration ( "START_LAG_TIMEHOURS" ) . getDuration ( ) ; double endLag = row . getDuration ( "END_LAG_TIMEHOURS" ) . getDuration ( ) ; double totalLag = startLag - endLag ; Relation relation = endTask . addPredecessor ( startTask , type , Duration . getInstance ( totalLag , TimeUnit . HOURS ) ) ; relation . setUniqueID ( row . getInteger ( "LINKID" ) ) ; } } }
Processes predecessor data.

@param rows predecessor data
@param completedSections completed section data