Author: chatellier Date: 2011-02-01 13:25:48 +0000 (Tue, 01 Feb 2011) New Revision: 633 Log: Gestion des resultats sans type (suppression de r?\195?\169sultats) Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-02-01 13:19:15 UTC (rev 632) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/services/WebService.java 2011-02-01 13:25:48 UTC (rev 633) @@ -675,8 +675,16 @@ ZipUtil.uncompress(archiveFile, tempDirectory); File projectsDirectory = config.getWebIndicatorsProjectsDirectory(); + File mapsDirectory = config.getWebMapsProjectsDirectory(); + + // suppression des resultats qui ont été envoyé mais + // ne sont ni maps result, ni indicator result + List<String> noTypeResultZoneIds = getZonesIds(tempDirectory, false, false); + cleanCurrentProjectDirectory(projectsDirectory, noTypeResultZoneIds); + cleanCurrentProjectDirectory(mapsDirectory, noTypeResultZoneIds); + // recuperation des noms zone des nouveau fichiers - List<String> indicatorsResultZoneIds = getZonesIds(tempDirectory, false); + List<String> indicatorsResultZoneIds = getZonesIds(tempDirectory, true, false); // suppression dans l'ancien répertoire des resultat deja present // dans le nouveau (pour les conflits) cleanCurrentProjectDirectory(projectsDirectory, indicatorsResultZoneIds); @@ -686,9 +694,8 @@ //FileUtils.copyDirectory(tempDirectory, projectsDirectory, indicatorsFileFilter); customCopyDirectory(tempDirectory, projectsDirectory, indicatorsFileFilter); - File mapsDirectory = config.getWebMapsProjectsDirectory(); // recuperation des noms zone des nouveau fichiers - List<String> mapsResultZoneIds = getZonesIds(tempDirectory, true); + List<String> mapsResultZoneIds = getZonesIds(tempDirectory, false, true); // suppression dans l'ancien répertoire des resultat deja present // dans le nouveau (pour les conflits) cleanCurrentProjectDirectory(mapsDirectory, mapsResultZoneIds); @@ -816,11 +823,12 @@ * Recupere dans un repertoire donné, les zoneid des resultat. * * @param scanDirectory le repertoire a scanner - * @param mapResults if true get only map result (otherwise, get indicator results) + * @param indicatorResults if true get indicator results + * @param mapResults if true get map results * @return la liste des resultid * @throws CoserBusinessException */ - protected List<String> getZonesIds(File scanDirectory, boolean mapResults) throws CoserBusinessException { + protected List<String> getZonesIds(File scanDirectory, boolean indicatorResults, boolean mapResults) throws CoserBusinessException { List<String> resultIds = new ArrayList<String>(); File[] projectFiles = scanDirectory.listFiles(); @@ -842,8 +850,8 @@ RSufiResult rsufiResult = projectService.getRSufiResult(resultFile); // return result depending on result type - if ( (mapResults && rsufiResult.isMapsResult()) || - (!mapResults && rsufiResult.isIndicatorsResult())) { + if ( rsufiResult.isIndicatorsResult() == indicatorResults && + rsufiResult.isMapsResult() == mapResults ) { String resultResultId = rsufiResult.getZone(); if (StringUtils.isNotBlank(resultResultId)) { resultIds.add(resultResultId);