package hudson.views; import hudson.scm.SCM; import java.util.ArrayList; import java.util.List; public class ScmFilterHelper { private static List<ScmValuesProvider> matchers = buildMatchers(); public static List<String> getValues(SCM scm) { List<String> values = new ArrayList<String>(); if (scm == null) { return values; } for (ScmValuesProvider matcher: matchers) { List<String> some = matcher.getValues(scm); if (some != null) { values.addAll(some); } } return values; } private static List<ScmValuesProvider> buildMatchers() { List<ScmValuesProvider> matchers = new ArrayList<ScmValuesProvider>(); try { matchers.add(buildSvn()); } catch (Throwable e) { // probably not loaded } try { matchers.add(buildCvs()); } catch (Throwable e) { // probably not loaded } return matchers; } private static ScmValuesProvider buildSvn() { return new SvnValuesProvider(); } private static ScmValuesProvider buildCvs() { return new CvsValuesProvider(); } }