mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 00:15:44 +01:00
call fileobject pre processor api
This commit is contained in:
@@ -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<FileObjectPreProcessor> preProcessorSet,
|
||||
Set<FileObjectPreProcessorFactory> 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<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
|
||||
*
|
||||
@@ -329,6 +403,12 @@ public class RepositoryBrowserUtil extends PartCacheClearHook
|
||||
/** Field description */
|
||||
private Cache<RepositoryBrowserCacheKey, BrowserResult> cache;
|
||||
|
||||
/** Field description */
|
||||
private Set<FileObjectPreProcessorFactory> preProcessorFactorySet;
|
||||
|
||||
/** Field description */
|
||||
private Set<FileObjectPreProcessor> preProcessorSet;
|
||||
|
||||
/** Field description */
|
||||
private RepositoryManager repositoryManager;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user