call fileobject pre processor api

This commit is contained in:
Sebastian Sdorra
2011-11-28 17:10:17 +01:00
parent d7c1ccaf54
commit 1b9f537009

View File

@@ -45,6 +45,7 @@ import sonia.scm.NotSupportedFeatuerException;
import sonia.scm.cache.Cache; import sonia.scm.cache.Cache;
import sonia.scm.cache.CacheManager; import sonia.scm.cache.CacheManager;
import sonia.scm.util.AssertUtil; import sonia.scm.util.AssertUtil;
import sonia.scm.util.Util;
//~--- JDK imports ------------------------------------------------------------ //~--- JDK imports ------------------------------------------------------------
@@ -52,6 +53,7 @@ import java.io.IOException;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* *
@@ -77,14 +79,20 @@ public class RepositoryBrowserUtil extends PartCacheClearHook
* *
* @param repositoryManager * @param repositoryManager
* @param cacheManager * @param cacheManager
* @param preProcessorSet
* @param preProcessorFactorySet
*/ */
@Inject @Inject
public RepositoryBrowserUtil(RepositoryManager repositoryManager, public RepositoryBrowserUtil(
CacheManager cacheManager) RepositoryManager repositoryManager, CacheManager cacheManager,
Set<FileObjectPreProcessor> preProcessorSet,
Set<FileObjectPreProcessorFactory> preProcessorFactorySet)
{ {
this.repositoryManager = repositoryManager; this.repositoryManager = repositoryManager;
this.cache = cacheManager.getCache(RepositoryBrowserCacheKey.class, this.cache = cacheManager.getCache(RepositoryBrowserCacheKey.class,
BrowserResult.class, CACHE_NAME); BrowserResult.class, CACHE_NAME);
this.preProcessorSet = preProcessorSet;
this.preProcessorFactorySet = preProcessorFactorySet;
init(repositoryManager, cache); init(repositoryManager, cache);
} }
@@ -162,6 +170,8 @@ public class RepositoryBrowserUtil extends PartCacheClearHook
if (result != null) if (result != null)
{ {
sort(result); sort(result);
callPreProcessors(result);
callPreProcessorFactories(repository, result);
} }
else else
{ {
@@ -180,6 +190,70 @@ public class RepositoryBrowserUtil extends PartCacheClearHook
//~--- methods -------------------------------------------------------------- //~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @param fopp
* @param result
*/
private void callPreProcessor(FileObjectPreProcessor fopp,
BrowserResult result)
{
if (fopp != null)
{
List<FileObject> 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 * Method description
* *
@@ -329,6 +403,12 @@ public class RepositoryBrowserUtil extends PartCacheClearHook
/** Field description */ /** Field description */
private Cache<RepositoryBrowserCacheKey, BrowserResult> cache; private Cache<RepositoryBrowserCacheKey, BrowserResult> cache;
/** Field description */
private Set<FileObjectPreProcessorFactory> preProcessorFactorySet;
/** Field description */
private Set<FileObjectPreProcessor> preProcessorSet;
/** Field description */ /** Field description */
private RepositoryManager repositoryManager; private RepositoryManager repositoryManager;
} }