package org.eclipse.ecf.provider.nntp; import org.eclipse.ecf.core.AbstractContainer; import org.eclipse.ecf.core.BaseContainer; import org.eclipse.ecf.core.ContainerConnectException; import org.eclipse.ecf.core.ContainerCreateException; import org.eclipse.ecf.core.events.ContainerConnectedEvent; import org.eclipse.ecf.core.events.ContainerConnectingEvent; import org.eclipse.ecf.core.events.ContainerDisconnectedEvent; import org.eclipse.ecf.core.events.ContainerDisconnectingEvent; import org.eclipse.ecf.core.identity.ID; import org.eclipse.ecf.core.identity.IDFactory; import org.eclipse.ecf.core.identity.Namespace; import org.eclipse.ecf.core.security.IConnectContext; import org.eclipse.ecf.protocol.nntp.model.IServer; import org.eclipse.ecf.provider.nntp.internal.NNTPNameSpace; public class NNTPServerContainer extends AbstractContainer { private ID targetID; private ID containerID; private IServer server; protected NNTPServerContainer(ID id) { super(); this.containerID = id; } public Namespace getConnectNamespace() { return IDFactory.getDefault().getNamespaceByName(NNTPNameSpace.NAME); } public void connect(ID targetID, IConnectContext connectContext) throws ContainerConnectException { if (!targetID.getNamespace().getName().equals( getConnectNamespace().getName())) throw new ContainerConnectException( "targetID not of appropriate Namespace"); fireContainerEvent(new ContainerConnectingEvent(getID(), targetID)); // XXX connect to remote service here this.targetID = targetID; fireContainerEvent(new ContainerConnectedEvent(getID(), targetID)); } public void disconnect() { fireContainerEvent(new ContainerDisconnectingEvent(getID(), targetID)); final ID oldID = targetID; // XXX disconnect here fireContainerEvent(new ContainerDisconnectedEvent(getID(), oldID)); } public ID getConnectedID() { return targetID; } /* * (non-Javadoc) * * @see org.eclipse.ecf.core.identity.IIdentifiable#getID() */ public ID getID() { return containerID; } public void setServer(IServer server) { this.server = server; } public IServer getServer() { return server; } }