
com.undefinedlabs.scope.settings.ScopeSettingsFactoryResolver Maven / Gradle / Ivy
package com.undefinedlabs.scope.settings;
import org.apache.commons.lang3.StringUtils;
import com.undefinedlabs.scope.settings.factory.AppVeyorScopeSettingsFactory;
import com.undefinedlabs.scope.settings.factory.BitBucketScopeSettingsFactory;
import com.undefinedlabs.scope.settings.factory.BuildkiteScopeSettingsFactory;
import com.undefinedlabs.scope.settings.factory.CircleCiScopeSettingsFactory;
import com.undefinedlabs.scope.settings.factory.GitHubScopeSettingsFactory;
import com.undefinedlabs.scope.settings.factory.GitLabScopeSettingsFactory;
import com.undefinedlabs.scope.settings.factory.JenkinsScopeSettingsFactory;
import com.undefinedlabs.scope.settings.factory.LocalScopeSettingsFactory;
import com.undefinedlabs.scope.settings.factory.TeamCityScopeSettingsFactory;
import com.undefinedlabs.scope.settings.factory.TfsScopeSettingsFactory;
import com.undefinedlabs.scope.settings.factory.TravisScopeSettingsFactory;
import java.util.HashMap;
import java.util.Map;
public class ScopeSettingsFactoryResolver {
private final ScopeSettingsFactory selectedFactory;
public ScopeSettingsFactoryResolver(final ScopeSettingsFactoryResolverOpts opts) {
final Map factories = new HashMap<>();
factories.put(TravisScopeSettingsFactory.CI_PROVIDER, new TravisScopeSettingsFactory(opts));
factories.put(CircleCiScopeSettingsFactory.CI_PROVIDER, new CircleCiScopeSettingsFactory(opts));
factories.put(JenkinsScopeSettingsFactory.CI_PROVIDER, new JenkinsScopeSettingsFactory(opts));
factories.put(GitLabScopeSettingsFactory.CI_PROVIDER, new GitLabScopeSettingsFactory(opts));
factories.put(
BitBucketScopeSettingsFactory.CI_PROVIDER, new BitBucketScopeSettingsFactory(opts));
factories.put(TfsScopeSettingsFactory.CI_PROVIDER, new TfsScopeSettingsFactory(opts));
factories.put(AppVeyorScopeSettingsFactory.CI_PROVIDER, new AppVeyorScopeSettingsFactory(opts));
factories.put(GitHubScopeSettingsFactory.CI_PROVIDER, new GitHubScopeSettingsFactory(opts));
factories.put(TeamCityScopeSettingsFactory.CI_PROVIDER, new TeamCityScopeSettingsFactory(opts));
factories.put(
BuildkiteScopeSettingsFactory.CI_PROVIDER, new BuildkiteScopeSettingsFactory(opts));
final String selector = getSelector(opts.getExtProperties());
selectedFactory =
selector != null && factories.get(selector) != null
? factories.get(selector)
: new LocalScopeSettingsFactory(opts);
}
public ScopeSettingsFactory get() {
return selectedFactory;
}
private String getSelector(final ScopeExtProperties properties) {
String selector;
selector =
StringUtils.isNotEmpty(properties.get(TravisScopeSettingsFactory.ENV_PROP_SELECTOR))
? TravisScopeSettingsFactory.CI_PROVIDER
: null;
selector =
(selector != null)
? selector
: (StringUtils.isNotEmpty(
properties.get(CircleCiScopeSettingsFactory.ENV_PROP_SELECTOR)))
? CircleCiScopeSettingsFactory.CI_PROVIDER
: null;
selector =
(selector != null)
? selector
: (StringUtils.isNotEmpty(
properties.get(JenkinsScopeSettingsFactory.ENV_PROP_SELECTOR)))
? JenkinsScopeSettingsFactory.CI_PROVIDER
: null;
selector =
(selector != null)
? selector
: (StringUtils.isNotEmpty(properties.get(GitLabScopeSettingsFactory.ENV_PROP_SELECTOR)))
? GitLabScopeSettingsFactory.CI_PROVIDER
: null;
selector =
(selector != null)
? selector
: (StringUtils.isNotEmpty(
properties.get(BitBucketScopeSettingsFactory.ENV_PROP_SELECTOR)))
? BitBucketScopeSettingsFactory.CI_PROVIDER
: null;
selector =
(selector != null)
? selector
: (StringUtils.isNotEmpty(properties.get(TfsScopeSettingsFactory.ENV_PROP_SELECTOR)))
? TfsScopeSettingsFactory.CI_PROVIDER
: null;
selector =
(selector != null)
? selector
: (StringUtils.isNotEmpty(
properties.get(AppVeyorScopeSettingsFactory.ENV_PROP_SELECTOR)))
? AppVeyorScopeSettingsFactory.CI_PROVIDER
: null;
selector =
(selector != null)
? selector
: (StringUtils.isNotEmpty(properties.get(GitHubScopeSettingsFactory.ENV_PROP_SELECTOR)))
? GitHubScopeSettingsFactory.CI_PROVIDER
: null;
selector =
(selector != null)
? selector
: (StringUtils.isNotEmpty(
properties.get(TeamCityScopeSettingsFactory.ENV_PROP_SELECTOR)))
? TeamCityScopeSettingsFactory.CI_PROVIDER
: null;
selector =
(selector != null)
? selector
: (StringUtils.isNotEmpty(
properties.get(BuildkiteScopeSettingsFactory.ENV_PROP_SELECTOR)))
? BuildkiteScopeSettingsFactory.CI_PROVIDER
: null;
return selector;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy