package jetbrains.buildserver.sonarplugin.sqrunner.manager.projectfeatures;
import jetbrains.buildServer.serverSide.SProjectFeatureDescriptor;
import jetbrains.buildServer.serverSide.crypt.EncryptUtil;
import jetbrains.buildServer.util.StringUtil;
import jetbrains.buildserver.sonarplugin.sqrunner.manager.BaseSQSInfo;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.HashMap;
import java.util.Map;
/**
* Created by linfar on 03.10.16.
*/
public class SQSInfoImpl extends BaseSQSInfo {
public SQSInfoImpl(@Nullable final Map<String, String> properties) {
super(properties);
}
public SQSInfoImpl(@NotNull final SProjectFeatureDescriptor fd) {
super(projectFeatureToMap(fd));
}
public SQSInfoImpl(@NotNull String id, @Nullable String name, @Nullable String url, @Nullable String login, @Nullable String password, @Nullable String jdbcUrl, @Nullable String jdbcUsername, @Nullable String jdbcPassword) {
super(id, name, url, login, password, jdbcUrl, jdbcUsername, jdbcPassword);
}
public SQSInfoImpl(@NotNull String id) {
super(id);
}
private static Map<String, String> projectFeatureToMap(@NotNull final SProjectFeatureDescriptor projectFeatureDescriptor) {
final Map<String, String> res = new HashMap<>(projectFeatureDescriptor.getParameters());
for (String f : ENCRYPTED_FIELDS) {
final String val = res.get(f);
if (!StringUtil.isEmpty(val)) {
res.put(f, EncryptUtil.unscramble(val));
}
}
return res;
}
}