/** Method checks file selected by user is valid and call method which extracts data from it. */
 public static void handleFile(String fileName, Project project) {
   if (fileName != null && !fileName.isEmpty()) {
     File file = new File(fileName);
     PublishData publishDataToCache = handlePublishSettings(file, project);
     if (publishDataToCache == null) {
       return;
     }
     WizardCacheManager.setCurrentPublishData(publishDataToCache);
     // Make centralized storage registry.
     prepareListFromPublishData(project);
   }
 }
 /** Method prepares storage account list. Adds data from publish settings file. */
 public static void prepareListFromPublishData(Project project) {
   List<StorageAccount> strgList = StorageAccountRegistry.getStrgList();
   Collection<PublishData> publishDatas = WizardCacheManager.getPublishDatas();
   for (PublishData pd : publishDatas) {
     for (Subscription sub : pd.getPublishProfile().getSubscriptions()) {
       /*
        * Get collection of storage services in each subscription.
        */
       StorageServices services = pd.getStoragesPerSubscription().get(sub.getId());
       // iterate over collection of services.
       for (StorageService strgService : services) {
         StorageAccount strEle =
             new StorageAccount(
                 strgService.getServiceName(),
                 strgService.getPrimaryKey(),
                 strgService.getStorageAccountProperties().getEndpoints().get(0).toString());
         /*
          * Check if storage account is already present
          * in centralized repository,
          * if present then do not add.
          * if not present then check
          * access key is valid or not.
          * If not then update with correct one in registry.
          */
         if (strgList.contains(strEle)) {
           int index = strgList.indexOf(strEle);
           StorageAccount account = strgList.get(index);
           String newKey = strEle.getStrgKey();
           if (!account.getStrgKey().equals(newKey)) {
             account.setStrgKey(newKey);
           }
         } else {
           strgList.add(strEle);
         }
       }
     }
   }
   AzureSettings.getSafeInstance(project).saveStorage();
 }