/* ******************************************************************************
* Copyright (c) 2006-2012 XMind Ltd. and others.
*
* This file is a part of XMind 3. XMind releases 3 and
* above are dual-licensed under the Eclipse Public License (EPL),
* which is available at http://www.eclipse.org/legal/epl-v10.html
* and the GNU Lesser General Public License (LGPL),
* which is available at http://www.gnu.org/licenses/lgpl.html
* See http://www.xmind.net/license.html for details.
*
* Contributors:
* XMind Ltd. - initial API and implementation
*******************************************************************************/
/**
*
*/
package org.xmind.core.command.remote.socket;
import org.xmind.core.command.remote.CommandServiceInfo;
import org.xmind.core.command.remote.ICommandServiceInfo;
/**
* Command service info used by a socket command server.
*
* @author Frank Shaka
*/
public class SocketCommandServiceInfo extends CommandServiceInfo {
private ISocketAddress address;
/**
*
*/
public SocketCommandServiceInfo() {
super();
}
/**
* @param source
*/
public SocketCommandServiceInfo(ICommandServiceInfo source) {
super(source);
if (source instanceof SocketCommandServiceInfo) {
this.address = ((SocketCommandServiceInfo) source).address;
}
}
@SuppressWarnings("rawtypes")
public Object getAdapter(Class adapter) {
if (adapter == ISocketAddress.class)
return address;
return super.getAdapter(adapter);
}
public ISocketAddress getAddress() {
return address;
}
public void setAddress(ISocketAddress address) {
this.address = address;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("SocketCommandServiceInfo{id="); //$NON-NLS-1$
sb.append(getId());
sb.append(",name="); //$NON-NLS-1$
sb.append(getName());
sb.append(",address="); //$NON-NLS-1$
sb.append(address);
sb.append(",metadata="); //$NON-NLS-1$
sb.append(getMetadataImpl());
sb.append('}');
return sb.toString();
}
}