code: private void populateTask(Row row, Task task)
     {
        task.setUniqueID(row.getInteger("Z_PK"));
        task.setName(row.getString("ZTITLE"));
        task.setPriority(Priority.getInstance(row.getInt("ZPRIORITY")));
        task.setMilestone(row.getBoolean("ZISMILESTONE"));
        task.setActualFinish(row.getTimestamp("ZGIVENACTUALENDDATE_"));
        task.setActualStart(row.getTimestamp("ZGIVENACTUALSTARTDATE_"));
        task.setNotes(row.getString("ZOBJECTDESCRIPTION"));
        task.setDuration(row.getDuration("ZGIVENDURATION_"));
        task.setOvertimeWork(row.getWork("ZGIVENWORKOVERTIME_"));
        task.setWork(row.getWork("ZGIVENWORK_"));
        task.setLevelingDelay(row.getDuration("ZLEVELINGDELAY_"));
        task.setActualOvertimeWork(row.getWork("ZGIVENACTUALWORKOVERTIME_"));
        task.setActualWork(row.getWork("ZGIVENACTUALWORK_"));
        task.setRemainingWork(row.getWork("ZGIVENACTUALWORK_"));
        task.setGUID(row.getUUID("ZUNIQUEID"));
  
        Integer calendarID = row.getInteger("ZGIVENCALENDAR");
        if (calendarID != null)
        {
           ProjectCalendar calendar = m_project.getCalendarByUniqueID(calendarID);
           if (calendar != null)
           {
              task.setCalendar(calendar);
           }
        }
  
        populateConstraints(row, task);
  
        // Percent complete is calculated bottom up from assignments and actual work vs. planned work
  
        m_eventManager.fireTaskReadEvent(task);
     }
docs: Read data for an individual task.
  
  @param row task data from database
  @param task Task instance