001: /*
002: * Lucane - a collaborative platform
003: * Copyright (C) 2002 Vincent Fiack <vfiack@mail15.com>
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation; either
008: * version 2.1 of the License, or (at your option) any later version.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: *
015: * You should have received a copy of the GNU Lesser General Public
016: * License along with this library; if not, write to the Free Software
017: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
018: */
019: package org.lucane.common;
020:
021: import java.io.Serializable;
022:
023: /**
024: * Contains connection related informations for clients and services
025: */
026: public class ConnectInfo implements Serializable {
027: private String name; //login
028: private String hostname; //where to connect
029: private int port;
030: private String type; //server, service, client or plugin
031:
032: private String key;
033:
034: /**
035: * Constructor.
036: *
037: * @param name the user name
038: * @param hostname the host where the client is listening
039: * @param port the port where the client is listening
040: * @param key the public key associated with a user to verify its signatures
041: * @param type client or service ?
042: */
043: public ConnectInfo(String name, String hostname, int port,
044: String key, String type) {
045: this .name = name;
046: this .hostname = hostname;
047: this .port = port;
048: this .type = type;
049: this .key = key;
050:
051: Logging.getLogger().fine("** new ConnectInfo: " + this );
052: }
053:
054: /**
055: * Useful for debugging
056: *
057: * @return c
058: */
059: public String toString() {
060: return this .name + "@" + this .hostname + ":" + this .port + " ("
061: + this .type + ")";
062: }
063:
064: /**
065: * Useful to transmit ConnectInfos between elements.
066: *
067: * @return a String representing the ConnectInfo
068: */
069: public String getRepresentation() {
070: return this .name + " " + this .hostname + " " + this .port + " "
071: + this .key + " " + this .type;
072: }
073:
074: /**
075: * Get the username
076: *
077: * @return the user name
078: */
079: public String getName() {
080: return this .name;
081: }
082:
083: /**
084: * Get the hostname
085: *
086: * @return the host name
087: */
088: public String getHostName() {
089: return this .hostname;
090: }
091:
092: /**
093: * Change the host name
094: *
095: * @param hostname the new hostname
096: */
097: public void setHostName(String hostname) {
098: this .hostname = hostname;
099: }
100:
101: /**
102: * Get the host port
103: *
104: * @return the poer
105: */
106: public int getPort() {
107: return this .port;
108: }
109:
110: /**
111: * Change the port
112: *
113: * @param port the new port
114: */
115: public void setPort(int port) {
116: this .port = port;
117: }
118:
119: /**
120: * Set the public key
121: *
122: * @param key the public key
123: */
124: public void setPublicKey(String key) {
125: this .key = key;
126: }
127:
128: /**
129: * Get the public key
130: *
131: * @return the public key
132: */
133: public String getPublicKey() {
134: return this .key;
135: }
136:
137: /**
138: * Is the object pointed by this ConnectInfo a service ?
139: *
140: * @return true if it is a service
141: */
142: public boolean isService() {
143: return this .type.equalsIgnoreCase("service");
144: }
145:
146: /**
147: * Is the object pointed by this ConnectInfo a Server ?
148: *
149: * @return true if it is a server
150: */
151: public boolean isServer() {
152: return this .type.equalsIgnoreCase("Server");
153: }
154:
155: /**
156: * Is the object pointed by this ConnectInfo a Client ?
157: *
158: * @return true if it is a client
159: */
160: public boolean isClient() {
161: return this .type.equalsIgnoreCase("Client");
162: }
163:
164: /**
165: * Is the object pointed by this ConnectInfo a WebClient ?
166: *
167: * @return true if it is a web client
168: */
169: public boolean isWebClient() {
170: return this .type.equalsIgnoreCase("WebClient");
171: }
172:
173: /**
174: * Is the object pointed by this ConnectInfo using SSL ?
175: * @return true if it is using SSL.
176: */
177: public boolean useSSL() {
178: return !this .key.equals("nokey");
179: }
180: }
|