From 1b9f537009e25756694e9640ee4624f48576c097 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 28 Nov 2011 17:10:17 +0100 Subject: [PATCH] call fileobject pre processor api --- .../scm/repository/RepositoryBrowserUtil.java | 84 ++++++++++++++++++- 1 file changed, 82 insertions(+), 2 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/repository/RepositoryBrowserUtil.java b/scm-core/src/main/java/sonia/scm/repository/RepositoryBrowserUtil.java index 9291647784..f229c90c09 100644 --- a/scm-core/src/main/java/sonia/scm/repository/RepositoryBrowserUtil.java +++ b/scm-core/src/main/java/sonia/scm/repository/RepositoryBrowserUtil.java @@ -45,6 +45,7 @@ import sonia.scm.NotSupportedFeatuerException; import sonia.scm.cache.Cache; import sonia.scm.cache.CacheManager; import sonia.scm.util.AssertUtil; +import sonia.scm.util.Util; //~--- JDK imports ------------------------------------------------------------ @@ -52,6 +53,7 @@ import java.io.IOException; import java.util.Collections; import java.util.List; +import java.util.Set; /** * @@ -77,14 +79,20 @@ public class RepositoryBrowserUtil extends PartCacheClearHook * * @param repositoryManager * @param cacheManager + * @param preProcessorSet + * @param preProcessorFactorySet */ @Inject - public RepositoryBrowserUtil(RepositoryManager repositoryManager, - CacheManager cacheManager) + public RepositoryBrowserUtil( + RepositoryManager repositoryManager, CacheManager cacheManager, + Set preProcessorSet, + Set preProcessorFactorySet) { this.repositoryManager = repositoryManager; this.cache = cacheManager.getCache(RepositoryBrowserCacheKey.class, BrowserResult.class, CACHE_NAME); + this.preProcessorSet = preProcessorSet; + this.preProcessorFactorySet = preProcessorFactorySet; init(repositoryManager, cache); } @@ -162,6 +170,8 @@ public class RepositoryBrowserUtil extends PartCacheClearHook if (result != null) { sort(result); + callPreProcessors(result); + callPreProcessorFactories(repository, result); } else { @@ -180,6 +190,70 @@ public class RepositoryBrowserUtil extends PartCacheClearHook //~--- methods -------------------------------------------------------------- + /** + * Method description + * + * + * @param fopp + * @param result + */ + private void callPreProcessor(FileObjectPreProcessor fopp, + BrowserResult result) + { + if (fopp != null) + { + List foList = result.getFiles(); + + if (Util.isNotEmpty(foList)) + { + for (FileObject fo : foList) + { + fopp.process(fo); + } + } + } + } + + /** + * Method description + * + * + * + * @param repository + * @param result + */ + private void callPreProcessorFactories(Repository repository, + BrowserResult result) + { + if (Util.isNotEmpty(preProcessorFactorySet)) + { + for (FileObjectPreProcessorFactory factory : preProcessorFactorySet) + { + FileObjectPreProcessor fopp = factory.createPreProcessor(repository); + + callPreProcessor(fopp, result); + } + } + } + + /** + * Method description + * + * + * + * @param result + */ + private void callPreProcessors(BrowserResult result) + { + if (Util.isNotEmpty(preProcessorSet)) + { + for (FileObjectPreProcessor fopp : preProcessorSet) + { + callPreProcessor(fopp, result); + } + } + } + /** * Method description * @@ -329,6 +403,12 @@ public class RepositoryBrowserUtil extends PartCacheClearHook /** Field description */ private Cache cache; + /** Field description */ + private Set preProcessorFactorySet; + + /** Field description */ + private Set preProcessorSet; + /** Field description */ private RepositoryManager repositoryManager; }