package org.jfrog.hudson;
import org.apache.commons.lang.StringUtils;
import org.kohsuke.stapler.DataBoundConstructor;
/**
* This class represents specific configuration for a repository in {@link org.jfrog.hudson.ServerDetails}
* @author Aviad Shikloshi
*/
public class RepositoryConf {
private final String keyFromText;
private final String keyFromSelect;
private final boolean dynamicMode;
/**
* Data bound constructor to build RepositoryConf from Jenkins UI
*
* @param keyFromText repository key retrieved from the text box of the repository
* @param keyFromSelect repository key retrieved from the select box of the repository
* @param dynamicMode indicates where to take the repository key from - text or select box
*/
@DataBoundConstructor
public RepositoryConf(String keyFromText, String keyFromSelect, boolean dynamicMode) {
this.keyFromText = keyFromText;
this.keyFromSelect = keyFromSelect;
this.dynamicMode = dynamicMode;
}
/**
* Used to get the current repository key
* @return keyFromText or keyFromSelect reflected by the dynamicMode flag
*/
public String getRepoKey() {
String repoKey;
if (dynamicMode) {
repoKey = keyFromText;
} else {
repoKey = keyFromSelect;
}
return repoKey;
}
public String getRepoName() {
return getRepoKey();
}
public String getKeyFromText() {
return keyFromText;
}
public String getKeyFromSelect() {
return keyFromSelect;
}
/**
* Check if the current mode for the Repository is dynamic (text box) or static (select box)
* @return true if dynamic mode is used, false otherwise.
*/
public boolean isDynamicMode() {
return dynamicMode;
}
// null object
public static final RepositoryConf emptyRepositoryConfig = new RepositoryConf(StringUtils.EMPTY, StringUtils.EMPTY, false);
}