code: private void readActivities()
     {
        List<MapRow> items = new ArrayList<MapRow>();
        for (MapRow row : m_tables.get("ACT"))
        {
           items.add(row);
        }
        final AlphanumComparator comparator = new AlphanumComparator();
        Collections.sort(items, new Comparator<MapRow>()
        {
           @Override public int compare(MapRow o1, MapRow o2)
           {
              return comparator.compare(o1.getString("ACTIVITY_ID"), o2.getString("ACTIVITY_ID"));
           }
        });
  
        for (MapRow row : items)
        {
           String activityID = row.getString("ACTIVITY_ID");
  
           String wbs;
           if (m_wbsFormat == null)
           {
              wbs = null;
           }
           else
           {
              m_wbsFormat.parseRawValue(row.getString("WBS"));
              wbs = m_wbsFormat.getFormattedValue();
           }
  
           ChildTaskContainer parent = m_wbsMap.get(wbs);
           if (parent == null)
           {
              parent = m_projectFile;
           }
  
           Task task = parent.addTask();
           setFields(TASK_FIELDS, row, task);
           task.setStart(task.getEarlyStart());
           task.setFinish(task.getEarlyFinish());
           task.setMilestone(task.getDuration().getDuration() == 0);
           task.setWBS(wbs);
           Duration duration = task.getDuration();
           Duration remainingDuration = task.getRemainingDuration();
           task.setActualDuration(Duration.getInstance(duration.getDuration() - remainingDuration.getDuration(), TimeUnit.HOURS));
           m_activityMap.put(activityID, task);
        }
     }
docs: Read activities.