package jetbrains.buildserver.sonarplugin.sqrunner.manager;
import jetbrains.buildServer.serverSide.SProject;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
/**
* Created by Andrey Titov on 7/9/14.
* <p>
* SonarQube Server data manager
*/
public interface SQSManager {
@NotNull
List<SQSInfo> getAvailableServers(@NotNull final SProject project);
@NotNull
List<SQSInfo> getOwnAvailableServers(@NotNull final SProject project);
@Nullable
SQSInfo getServer(@NotNull final SProject project, @NotNull String serverId);
@Nullable
SQSInfo getOwnServer(@NotNull final SProject project, @NotNull String serverId);
@NotNull
SQSActionResult editServer(@NotNull final SProject project, @NotNull final SQSInfo sqsInfo);
@NotNull
SQSActionResult addServer(@NotNull final SProject project, @NotNull final SQSInfo sqsInfo);
@NotNull
SQSActionResult removeServer(@NotNull final SProject project, @NotNull final String serverId);
class SQSActionResult {
final SQSInfo myBeforeAction;
final SQSInfo myAfterAction;
final String myReason;
final boolean myIsError;
public SQSActionResult(@Nullable final SQSInfo beforeAction, @Nullable final SQSInfo afterAction, @NotNull final String reason) {
this(beforeAction, afterAction, reason, false);
}
public SQSActionResult(@Nullable final SQSInfo beforeAction, @Nullable final SQSInfo afterAction, @NotNull final String reason, final boolean isError) {
myBeforeAction = beforeAction;
myAfterAction = afterAction;
myReason = reason;
myIsError = isError;
}
public SQSInfo getBeforeAction() {
return myBeforeAction;
}
public SQSInfo getAfterAction() {
return myAfterAction;
}
public String getReason() {
return myReason;
}
public boolean isError() {
return myIsError;
}
}
}