// Path: sonar-plugin-server/src/main/java/jetbrains/buildserver/sonarplugin/manager/SQSInfo.java
// public interface SQSInfo {
//     @Nullable
//     String getUrl();
// 
//     boolean isTokenLoginUsed();
// 
//     @Nullable
//     String getToken();
// 
//      @Nullable
//     String getLogin();
// 
//      @Nullable
//     String getPassword();
// 
//     @Nullable
//     String getJDBCUrl();
// 
//     @Nullable
//     String getJDBCUsername();
// 
//     @Nullable
//     String getJDBCPassword();
// 
//     @NotNull
//     String getId();
// 
//     @Nullable
//     String getName();
// 
//     @Nullable
//     String getDescription();
// 
//     @NotNull
//     Map<String, String> getParameters();
// }
// 
// Path: sonar-plugin-server/src/main/java/jetbrains/buildserver/sonarplugin/manager/SQSManager.java
// 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);
// 
//     @NotNull
//     String getDescription();
// 
//     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;
//         }
//     }
// }


import jetbrains.buildServer.controllers.admin.projects.EditProjectTab;
import jetbrains.buildServer.serverSide.SProject;
import jetbrains.buildServer.serverSide.auth.AuthUtil;
import jetbrains.buildServer.serverSide.auth.SecurityContext;
import jetbrains.buildServer.web.openapi.PagePlaces;
import jetbrains.buildServer.web.openapi.PluginDescriptor;
import jetbrains.buildserver.sonarplugin.manager.SQSInfo;
import jetbrains.buildserver.sonarplugin.manager.SQSManager;
import org.jetbrains.annotations.NotNull;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/*
 * Copyright 2000-2022 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package jetbrains.buildserver.sonarplugin.manager;



/**
 * Created by Andrey Titov on 4/4/14.
 *
 * Controller for SonarQube Server management page
 */
public class ServerManagementProjectTab extends EditProjectTab {

    @NotNull
// Path: sonar-plugin-server/src/main/java/jetbrains/buildserver/sonarplugin/manager/SQSInfo.java
// public interface SQSInfo {
//     @Nullable
//     String getUrl();
// 
//     boolean isTokenLoginUsed();
// 
//     @Nullable
//     String getToken();
// 
//      @Nullable
//     String getLogin();
// 
//      @Nullable
//     String getPassword();
// 
//     @Nullable
//     String getJDBCUrl();
// 
//     @Nullable
//     String getJDBCUsername();
// 
//     @Nullable
//     String getJDBCPassword();
// 
//     @NotNull
//     String getId();
// 
//     @Nullable
//     String getName();
// 
//     @Nullable
//     String getDescription();
// 
//     @NotNull
//     Map<String, String> getParameters();
// }
// 
// Path: sonar-plugin-server/src/main/java/jetbrains/buildserver/sonarplugin/manager/SQSManager.java
// 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);
// 
//     @NotNull
//     String getDescription();
// 
//     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;
//         }
//     }
// }


// Path: sonar-plugin-server/src/main/java/jetbrains/buildserver/sonarplugin/manager/ServerManagementProjectTab.java
import jetbrains.buildServer.controllers.admin.projects.EditProjectTab;
import jetbrains.buildServer.serverSide.SProject;
import jetbrains.buildServer.serverSide.auth.AuthUtil;
import jetbrains.buildServer.serverSide.auth.SecurityContext;
import jetbrains.buildServer.web.openapi.PagePlaces;
import jetbrains.buildServer.web.openapi.PluginDescriptor;
import jetbrains.buildserver.sonarplugin.manager.SQSInfo;
import jetbrains.buildserver.sonarplugin.manager.SQSManager;
import org.jetbrains.annotations.NotNull;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/*
 * Copyright 2000-2022 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package jetbrains.buildserver.sonarplugin.manager;



/**
 * Created by Andrey Titov on 4/4/14.
 *
 * Controller for SonarQube Server management page
 */
public class ServerManagementProjectTab extends EditProjectTab {

    @NotNull
    private final SQSManager mySqsManager;