Mercurial > hg4j
diff src/org/tmatesoft/hg/internal/Internals.java @ 114:46291ec605a0
Filters to read and initialize according to configuration files
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Thu, 03 Feb 2011 22:13:55 +0100 |
parents | a3a2e5deb320 |
children | 6b55f10ef54b |
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/internal/Internals.java Wed Feb 02 21:19:02 2011 +0100 +++ b/src/org/tmatesoft/hg/internal/Internals.java Thu Feb 03 22:13:55 2011 +0100 @@ -16,10 +16,12 @@ */ package org.tmatesoft.hg.internal; -import static org.tmatesoft.hg.internal.RequiresFile.DOTENCODE; -import static org.tmatesoft.hg.internal.RequiresFile.FNCACHE; -import static org.tmatesoft.hg.internal.RequiresFile.STORE; +import static org.tmatesoft.hg.internal.RequiresFile.*; +import java.util.ArrayList; +import java.util.List; + +import org.tmatesoft.hg.repo.HgRepository; import org.tmatesoft.hg.util.PathRewrite; /** @@ -32,6 +34,11 @@ private int revlogVersion = 0; private int requiresFlags = 0; + private List<Filter.Factory> filterFactories; + + + public Internals() { + } public/*for tests, otherwise pkg*/ void setStorageConfig(int version, int flags) { revlogVersion = version; @@ -59,4 +66,25 @@ }; } } + + public ConfigFile newConfigFile() { + return new ConfigFile(); + } + + public List<Filter.Factory> getFilters(HgRepository hgRepo, ConfigFile cfg) { + if (filterFactories == null) { + filterFactories = new ArrayList<Filter.Factory>(); + if (cfg.hasEnabledExtension("eol")) { + NewlineFilter.Factory ff = new NewlineFilter.Factory(); + ff.initialize(hgRepo, cfg); + filterFactories.add(ff); + } + if (cfg.hasEnabledExtension("keyword")) { + KeywordFilter.Factory ff = new KeywordFilter.Factory(); + ff.initialize(hgRepo, cfg); + filterFactories.add(ff); + } + } + return filterFactories; + } }