code: private void processCalendars() throws SQLException, ParseException
     {
        List<Row> rows = getRows("select id as exceptionnid, * from exceptionn");
        Map<Integer, DayType> exceptionTypeMap = m_reader.createExceptionTypeMap(rows);
  
        rows = getRows("select id as work_patternid, name as namn, * from work_pattern");
        Map<Integer, Row> workPatternMap = m_reader.createWorkPatternMap(rows);
  
        rows = getRows("select id, work_patterns from calendar");
        Map<Integer, List<Row>> workPatternAssignmentMap = createWorkPatternAssignmentMap(rows);
  
        rows = getRows("select id, exceptions from calendar");
        Map<Integer, List<Row>> exceptionAssignmentMap = createExceptionAssignmentMap(rows);
  
        rows = getRows("select id, shifts from work_pattern");
        Map<Integer, List<Row>> timeEntryMap = createTimeEntryMap(rows);
  
        rows = getRows("select id as calendarid, name as namk, * from calendar where projid=? order by id", m_projectID);
        for (Row row : rows)
        {
           m_reader.processCalendar(row, workPatternMap, workPatternAssignmentMap, exceptionAssignmentMap, timeEntryMap, exceptionTypeMap);
        }
  
        //
        // Update unique counters at this point as we will be generating
        // resource calendars, and will need to auto generate IDs
        //
        m_reader.getProject().getProjectConfig().updateUniqueCounters();
     }
docs: Process calendars.
  
  @throws SQLException
  @throws ParseException