1 /*
2 * $HeadURL: $
3 * $Date: $
4 * $Revision: $
5 * $Author: $
6 *
7 * Copyright (c) 2005 MindTree Consulting Ltd.
8 *
9 * This file is part of Insight.
10 *
11 * Insight is free software: you can redistribute it and/or modify it under the
12 * terms of the GNU General Public License as published by the Free Software
13 * Foundation, either version 3 of the License, or (at your option) any later
14 * version.
15 *
16 * Insight is distributed in the hope that it will be useful, but
17 * WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
19 * Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License along with
22 * Insight. If not, see <http://www.gnu.org/licenses/>.
23 */
24
25 package com.mindtree.techworks.insight.download;
26
27 import java.net.PasswordAuthentication;
28
29 /**
30 * <code>ProxyInfo</code> is a data object that holds information about proxy
31 * related parameters.
32 *
33 * @author: balajiseshadri
34 * @version:
35 */
36 public class ProxyInfo {
37
38 //
39 // Instance variables
40 //
41
42 /**
43 * Contains information about the HTTP Proxy
44 */
45 private ProtocolProxyInfo httpProxyInfo;
46
47 /**
48 * Contains information about the FTP Proxy
49 */
50 private ProtocolProxyInfo ftpProxyInfo;
51
52 /**
53 * Contains information about the SOCKS Proxy
54 */
55 private ProtocolProxyInfo socksProxyInfo;
56
57 /**
58 * Identifies if authentication is required
59 */
60 private boolean isAuthenticationRequired;
61
62 /**
63 * Password information for proxy
64 */
65 private PasswordAuthentication passwordInformation;
66
67
68 //
69 // Accessors
70 //
71
72 /**
73 * Sets the HTTP Proxy information.
74 *
75 * @param host HTTP Proxy host
76 * @param port HTTP Proxy port
77 */
78 public void setHttpProxyInfo (String host, int port) {
79
80 this.httpProxyInfo = new ProtocolProxyInfo(host, port);
81 }
82
83 /**
84 * Gets the HTTP Proxy information
85 *
86 * @return ProtocolProxyInfo object containing the HTTP Proxy information.
87 */
88 public ProtocolProxyInfo getHttpProxyInfo () {
89
90 return this.httpProxyInfo;
91 }
92
93 /**
94 * Sets the FTP Proxy information.
95 *
96 * @param host FTP Proxy host
97 * @param port FTP Proxy port
98 */
99 public void setFtpProxyInfo (String host, int port) {
100
101 this.ftpProxyInfo = new ProtocolProxyInfo(host, port);
102 }
103
104 /**
105 * Gets the FTP Proxy information
106 *
107 * @return ProtocolProxyInfo object containing the FTP Proxy information.
108 */
109 public ProtocolProxyInfo getFtpProxyInfo () {
110
111 return this.ftpProxyInfo;
112 }
113
114 /**
115 * Sets the SOCKS Proxy information.
116 *
117 * @param host SOCKS Proxy host
118 * @param port SOCKS Proxy port
119 */
120 public void setSocksProxyInfo (String host, int port) {
121
122 this.socksProxyInfo = new ProtocolProxyInfo(host, port);
123 }
124
125 /**
126 * Gets the SOCKS Proxy information
127 *
128 * @return ProtocolProxyInfo object containing the SOCKS Proxy information.
129 */
130 public ProtocolProxyInfo getSocksProxyInfo () {
131
132 return this.socksProxyInfo;
133 }
134
135
136 /**
137 * @return Returns the isAuthenticationRequired.
138 */
139 public boolean isAuthenticationRequired () {
140
141 return isAuthenticationRequired;
142 }
143
144 /**
145 * @param isAuthenticationRequired The isAuthenticationRequired to set.
146 */
147 public void setAuthenticationRequired (boolean isAuthenticationRequired) {
148
149 this.isAuthenticationRequired = isAuthenticationRequired;
150 }
151
152 /**
153 * @return Returns the passwordInformation.
154 */
155 public PasswordAuthentication getPasswordInformation () {
156
157 return passwordInformation;
158 }
159
160 /**
161 * @param userName The username to set.
162 * @param password The password to set.
163 */
164 public void setPasswordInformation (String userName, String password) {
165
166 this.passwordInformation = new PasswordAuthentication(userName,
167 password.toCharArray());
168 }
169
170 //
171 // Bean to contain proxy information
172 //
173
174 /**
175 * Contains information about a particular proxy host for a protocol.
176 *
177 * @author Bindul Bhowmik
178 * @version $Revision: 27 $ $Date: 2007-12-16 04:58:03 -0700 (Sun, 16 Dec 2007) $
179 */
180 public class ProtocolProxyInfo {
181
182 /**
183 * The hostname of the proxy
184 */
185 private String host;
186
187 /**
188 * The port to connect to
189 */
190 private int port;
191
192 /**
193 * Creates a ProtocolProxyInfo class
194 *
195 * @param host The host to set
196 * @param port The port to set
197 */
198 public ProtocolProxyInfo (String host, int port) {
199
200 this.host = host;
201 this.port = port;
202 }
203
204
205 /**
206 * @return Returns the host.
207 */
208 public String getHost () {
209
210 return host;
211 }
212
213 /**
214 * @return Returns the port.
215 */
216 public int getPort () {
217
218 return port;
219 }
220
221 /**
222 * Checks if the proxy information is set.
223 * @return If the proxy host is set.
224 */
225 public boolean isSet() {
226 return !(null == host || host.length() == 0);
227 }
228 }
229 }