sonar-plugin-server/src/main/java/jetbrains/buildserver/sonarplugin/manager/BaseSQSInfo.java (119 lines of code) (raw):
package jetbrains.buildserver.sonarplugin.manager;
import jetbrains.buildServer.controllers.BasePropertiesBean;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Map;
/**
* Created by linfar on 03.10.16.
*/
public class BaseSQSInfo extends BasePropertiesBean implements SQSInfo {
public static final String ID = "id";
public static final String JDBC_URL = "jdbcUrl";
public static final String JDBC_USERNAME = "jdbcUsername";
public static final String JDBC_PASSWORD = "secure:jdbcPassword";
public static final String URL = "url";
public static final String USE_TOKEN = "useToken";
public static final String TOKEN = "secure:token";
public static final String LOGIN = "login";
public static final String PASSWORD = "secure:password";
public static final String NAME = "name";
public static final String DESCRIPTION = "description";
public static final String[] OPEN_FIELDS = new String[] {ID, JDBC_URL, JDBC_USERNAME, URL, LOGIN, NAME, DESCRIPTION, USE_TOKEN};
public static final String[] ENCRYPTED_FIELDS = new String[] {JDBC_PASSWORD, PASSWORD, TOKEN};
public BaseSQSInfo(@Nullable final Map<String, String> properties) {
super(properties);
}
public BaseSQSInfo(@NotNull final String id,
@Nullable final String name,
@Nullable final String url,
@NotNull final String useToken,
@Nullable final String token,
@Nullable final String login,
@Nullable final String password,
@Nullable final String jdbcUrl,
@Nullable final String jdbcUsername,
@Nullable final String jdbcPassword) {
super(null);
setProperty(ID, id);
setProperty(NAME, name);
setProperty(URL, url);
setProperty(USE_TOKEN, useToken);
setProperty(TOKEN, token);
setProperty(LOGIN, login);
setProperty(PASSWORD, password);
setProperty(JDBC_PASSWORD, jdbcPassword);
setProperty(JDBC_URL, jdbcUrl);
setProperty(JDBC_USERNAME, jdbcUsername);
}
public BaseSQSInfo(@NotNull final String id) {
super(null);
setProperty(ID, id);
}
@Override
public synchronized void setProperty(String name, String value) {
if (value == null) getProperties().remove(name);
else super.setProperty(name, value);
}
protected String get(@NotNull final String key) {
return getProperties().get(key);
}
@Nullable
public String getUrl() {
return get(URL);
}
@Override
public boolean isTokenLoginUsed() {
final String useToken = getToken();
return useToken != null ? Boolean.parseBoolean(useToken) : getToken() != null;
}
@Nullable
@Override
public String getToken() {
// Firstly, read new parameter name, if not present, check if this entity still has old parameter
return get(TOKEN) != null ? get(TOKEN) : get("token");
}
@Nullable
public String getLogin() {
return get(LOGIN);
}
@Nullable
public String getPassword() {
// Firstly, read new parameter name, if not present, check if this entity still has old parameter
return get(PASSWORD) != null ? get(PASSWORD) : get("password");
}
@Nullable
public String getJDBCUrl() {
return get(JDBC_URL);
}
@Nullable
public String getJDBCUsername() {
return get(JDBC_USERNAME);
}
@Nullable
public String getJDBCPassword() {
// Firstly, read new parameter name, if not present, check if this entity still has old parameter
return get(JDBC_PASSWORD) != null ? get(JDBC_PASSWORD) : get("jdbcPassword");
}
@NotNull
public String getId() {
return get(ID);
}
@Nullable
public String getName() {
return get(NAME);
}
@Nullable
public String getDescription() {
return get(DESCRIPTION);
}
@NotNull
@Override
public Map<String, String> getParameters() {
return getProperties();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof BaseSQSInfo)) return false;
BaseSQSInfo that = (BaseSQSInfo) o;
return getId().equals(that.getId());
}
@Override
public int hashCode() {
return getId().hashCode();
}
}