private void updateFileStatus(CaArrayFileSet fileSet, FileStatus status) {
   final CaArrayFileSet mageTabFileSet = new CaArrayFileSet(fileSet);
   for (final CaArrayFile file : fileSet.getFiles()) {
     if (!isMageTabFile(file)) {
       mageTabFileSet.getFiles().remove(file);
     }
   }
   mageTabFileSet.updateStatus(status);
 }
  private MageTabFileSet getInputFileSet(Project project, CaArrayFileSet fileSet) {
    final CaArrayFileSet fullSet = new CaArrayFileSet(fileSet);
    fullSet.addAll(
        Collections2.filter(
            project.getImportedFiles(),
            new Predicate<CaArrayFile>() {
              @Override
              public boolean apply(CaArrayFile f) {
                return f.getFileType().isArrayData();
              }
            }));

    final MageTabFileSet inputFileSet = new MageTabFileSet();
    for (final CaArrayFile caArrayFile : fullSet.getFiles()) {
      addInputFile(inputFileSet, caArrayFile);
    }

    return inputFileSet;
  }
 private void handleSelectRefFilesResult(CaArrayFileSet fileSet, ValidationResult result) {
   for (final String fileName : result.getFileNames()) {
     final CaArrayFile caArrayFile = fileSet.getFile(fileName);
     final FileValidationResult fileResult = result.getFileValidationResult(fileName);
     if (!fileResult.isValid()) {
       // check whether any of the validation errors are other than data file checks
       saveErrorMessages(fileResult, caArrayFile);
     }
   }
 }
 private void handleResult(CaArrayFileSet fileSet, ValidationResult result) {
   for (final String fileName : result.getFileNames()) {
     final CaArrayFile caArrayFile = fileSet.getFile(fileName);
     final FileValidationResult fileResult = result.getFileValidationResult(fileName);
     if (!fileResult.isValid()) {
       caArrayFile.setFileStatus(FileStatus.VALIDATION_ERRORS);
     } else {
       caArrayFile.setFileStatus(FileStatus.VALIDATED);
     }
     caArrayFile.setValidationResult(fileResult);
     this.projectDao.save(caArrayFile);
   }
 }
 public MageTabDocumentSet validateFiles(Project targetProject, CaArrayFileSet fileSet) {
   LOG.info("Validating MAGE-TAB document set");
   updateFileStatus(fileSet, FileStatus.VALIDATING);
   MageTabDocumentSet documentSet = null;
   final MageTabFileSet inputSet = getInputFileSet(targetProject, fileSet);
   try {
     updateFileStatus(fileSet, FileStatus.VALIDATED);
     documentSet = MageTabParser.INSTANCE.parse(inputSet);
     handleResult(fileSet, this.translator.validate(documentSet, fileSet));
   } catch (final MageTabParsingException e) {
     updateFileStatus(fileSet, FileStatus.VALIDATION_ERRORS);
   } catch (final InvalidDataException e) {
     handleResult(fileSet, e.getValidationResult());
   }
   this.searchDao.save(fileSet.getFiles());
   return documentSet;
 }
 /** {@inheritDoc} */
 @Override
 public MageTabDocumentSet importFiles(Project targetProject, CaArrayFileSet fileSet)
     throws MageTabParsingException {
   LOG.info("Importing MAGE-TAB document set");
   updateFileStatus(fileSet, FileStatus.IMPORTING);
   final MageTabFileSet inputSet = getInputFileSet(targetProject, fileSet);
   MageTabDocumentSet documentSet = null;
   try {
     documentSet = MageTabParser.INSTANCE.parse(inputSet);
     final CaArrayTranslationResult translationResult =
         this.translator.translate(documentSet, fileSet);
     save(targetProject, translationResult);
     updateFileStatus(fileSet, FileStatus.IMPORTED);
   } catch (final InvalidDataException e) {
     handleResult(fileSet, e.getValidationResult());
   }
   this.searchDao.save(fileSet.getFiles());
   return documentSet;
 }