private void initCache() throws PhrescoException {
    if (debugEnabled) {
      S_LOGGER.debug("Entering Method ServiceManagerImpl.initCache()");
    }
    List<ApplicationType> apptypes = null;
    List<VideoInfo> videoInfos = null;
    List<SettingsTemplate> settingsTemplate = null;
    List<Environment> enveInfo = null;

    if (PhrescoFrameworkFactory.getFrameworkConfig().isCacheEnabled()) {
      apptypes = loadAppTypesFromFile();
      videoInfos = loadVideosFromFile();
      settingsTemplate = loadSettingsTemplateFromFile();
    }

    // Load AppTypes into Cache
    if (apptypes == null) {
      apptypes = getApplicationTypesFromServer();
    }

    // Load Videos into Cache
    if (videoInfos == null) {
      videoInfos = loadVideosFromService();
    }

    // Load Settings into Cache
    if (settingsTemplate == null) {
      settingsTemplate = loadSettingsTemplateFromService();
    }

    if (enveInfo == null) {
      enveInfo = getEnvInfoFromService();
    }

    if (PhrescoFrameworkFactory.getFrameworkConfig().isCacheEnabled()) {
      writeToFile(VIDEOS_FILE, videoInfos);
      writeToFile(APPTYPES_FILE, apptypes);
      writeToFile(SETTINGS_FILE, settingsTemplate);
    }

    cache.add(APPTYPES_FILE, apptypes);
    cache.add(VIDEOS_FILE, videoInfos);
    cache.add(SETTINGS_FILE, settingsTemplate);
  }