1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.atlassian.theplugin.idea.config;
17
18 import com.atlassian.connector.cfg.ProjectCfgManager;
19 import com.atlassian.connector.intellij.configuration.UserCfgBean;
20 import com.atlassian.theplugin.cfg.CfgUtil;
21 import com.atlassian.theplugin.commons.ServerType;
22 import com.atlassian.theplugin.commons.cfg.*;
23 import com.atlassian.theplugin.commons.remoteapi.ServerData;
24 import com.atlassian.theplugin.commons.util.StringUtil;
25 import com.atlassian.theplugin.configuration.WorkspaceConfigurationBean;
26 import com.intellij.openapi.project.Project;
27 import org.jetbrains.annotations.NotNull;
28 import org.jetbrains.annotations.Nullable;
29
30 import java.util.ArrayList;
31 import java.util.Collection;
32
33 public class ProjectCfgManagerImpl implements ProjectCfgManager {
34
35 private final CfgManager cfgManager;
36 private final ProjectId projectId;
37 private final WorkspaceConfigurationBean projectConfigurationBean;
38
39 public ProjectCfgManagerImpl(Project project,
40 CfgManager cfgManager, WorkspaceConfigurationBean projectConfigurationBean) {
41 this.projectConfigurationBean = projectConfigurationBean;
42 this.projectId = CfgUtil.getProjectId(project);
43 this.cfgManager = cfgManager;
44 }
45
46
47 @NotNull
48 public CfgManager getCfgManager() {
49 return cfgManager;
50 }
51
52
53 public boolean isDefaultCredentialsAsked() {
54 return projectConfigurationBean.isDefaultCredentialsAsked();
55 }
56
57 public void setDefaultCredentialsAsked(final boolean defaultCredentialsAsked) {
58 projectConfigurationBean.setDefaultCredentialsAsked(defaultCredentialsAsked);
59 }
60
61 @NotNull
62 public ServerData getServerData(@NotNull Server serverCfg) {
63 return getServerDataImpl(serverCfg);
64 }
65
66 public ServerCfg getServer(final ServerData serverData) {
67 return cfgManager.getServer(projectId, serverData);
68 }
69
70 public ProjectConfiguration getProjectConfiguration() {
71 return cfgManager.getProjectConfiguration(projectId);
72 }
73
74 @NotNull
75 public UserCfg getDefaultCredentials() {
76 return new UserCfg(projectConfigurationBean.getDefaultCredentials().getUsername(),
77 StringUtil.decode(projectConfigurationBean.getDefaultCredentials().getEncodedPassword()));
78 }
79
80 @NotNull
81 private ServerData getServerDataImpl(@NotNull Server serverCfg) {
82 return ServerData.create(serverCfg, getDefaultCredentials());
83 }
84
85 public ServerData getServerData(final ServerId serverId) {
86 final ServerCfg serverCfg = cfgManager.getServer(projectId, serverId);
87
88 if (serverCfg != null) {
89 return getServerDataImpl(serverCfg);
90 }
91 return null;
92 }
93
94
95
96
97
98
99
100 @Nullable
101 public ServerData getEnabledServerData(final ServerId serverId) {
102 final ServerCfg serverCfg = cfgManager.getServer(projectId, serverId);
103
104 if (serverCfg != null && serverCfg.isEnabled()) {
105 return getServerDataImpl(serverCfg);
106 }
107 return null;
108 }
109
110 public Collection<BambooServerCfg> getAllEnabledBambooServers() {
111 return cfgManager.getAllEnabledBambooServers(projectId);
112 }
113
114 public Collection<ServerCfg> getAllEnabledServers() {
115 return cfgManager.getAllEnabledServers(projectId);
116 }
117
118 public Collection<ServerCfg> getAllEnabledServers(ServerType serverType) {
119 return cfgManager.getAllEnabledServers(projectId, serverType);
120 }
121
122 public void updateProjectConfiguration(final ProjectConfiguration projectConfiguration) {
123 getCfgManager().updateProjectConfiguration(projectId, projectConfiguration);
124 }
125
126 public void setDefaultCredentials(@NotNull final UserCfg defaultCredentials) {
127 projectConfigurationBean.setDefaultCredentials(
128 new UserCfgBean(defaultCredentials.getUserName(),
129 StringUtil.encode(defaultCredentials.getPassword())));
130 }
131
132
133 public Collection<ServerData> getAllEnabledServersWithDefaultCredentials(final ServerType serverType) {
134 Collection<ServerData> servers = new ArrayList<ServerData>();
135 for (ServerCfg server : cfgManager.getAllEnabledServers(projectId, serverType)) {
136 if (server.isUseDefaultCredentials() && server.isEnabled()) {
137 servers.add(getServerData(server));
138 }
139 }
140 return servers;
141 }
142
143 @Nullable
144 public ServerData getDefaultCrucibleServer() {
145 ProjectConfiguration prjCfg = getProjectConfiguration();
146 if (prjCfg != null) {
147 CrucibleServerCfg crucibleServer = prjCfg.getDefaultCrucibleServer();
148 if (crucibleServer != null) {
149 return getServerData(crucibleServer);
150 }
151 }
152 return null;
153 }
154
155
156 @Nullable
157 public ServerData getDefaultJiraServer() {
158 ProjectConfiguration prjCfg = getProjectConfiguration();
159 if (prjCfg != null) {
160 JiraServerCfg jiraServer = prjCfg.getDefaultJiraServer();
161 if (jiraServer != null) {
162 return getServerData(jiraServer);
163 }
164 }
165 return null;
166 }
167
168 @Nullable
169 public ServerData getDefaultFishEyeServer() {
170 ProjectConfiguration prjCfg = getProjectConfiguration();
171 if (prjCfg != null) {
172 FishEyeServer fishEyeServer = prjCfg.getDefaultFishEyeServer();
173 if (fishEyeServer != null) {
174 return getServerData(fishEyeServer);
175 }
176 }
177 return null;
178 }
179 }