code: @Override public ProjectFile read(InputStream stream) throws MPXJException
     {
        try
        {
           m_projectFile = new ProjectFile();
           m_eventManager = m_projectFile.getEventManager();
           m_tables = new HashMap<String, Table>();
  
           ProjectConfig config = m_projectFile.getProjectConfig();
           config.setAutoResourceID(false);
           config.setAutoCalendarUniqueID(false);
           config.setAutoResourceUniqueID(false);
           config.setAutoTaskID(false);
           config.setAutoTaskUniqueID(false);
           config.setAutoOutlineLevel(true);
           config.setAutoOutlineNumber(true);
           config.setAutoWBS(true);
  
           m_projectFile.getProjectProperties().setFileApplication("TurboProject");
           m_projectFile.getProjectProperties().setFileType("PEP");
  
           m_eventManager.addProjectListeners(m_projectListeners);
  
           applyAliases();
  
           readFile(stream);
           readCalendars();
           readResources();
           readTasks();
           readRelationships();
           readResourceAssignments();
  
           //
           // Ensure that the unique ID counters are correct
           //
           config.updateUniqueCounters();
  
           return m_projectFile;
        }
  
        catch (IOException ex)
        {
           throw new MPXJException("Failed to parse file", ex);
        }
  
        finally
        {
           m_projectFile = null;
           m_eventManager = null;
           m_projectListeners = null;
           m_tables = null;
        }
     }
docs: {@inheritDoc}