View Javadoc

1   /**
2    * Copyright (C) 2008 Atlassian
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *    http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
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  	//	private final ProjectConfigurationComponent projectConfigurationComponent;
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  	 * Returns ServerData for enabled server with serverId specified by parameter
96  	 *
97  	 * @param serverId
98  	 * @return ServerData for enabled server with serverId specified by parameter
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 }