FileDocCategorySizeDatePackage
DefaultIORToSocketInfoImpl.javaAPI DocJava SE 5 API2374Fri Aug 26 14:54:32 BST 2005com.sun.corba.se.impl.transport

DefaultIORToSocketInfoImpl

public class DefaultIORToSocketInfoImpl extends Object implements com.sun.corba.se.spi.transport.IORToSocketInfo

Fields Summary
Constructors Summary
Methods Summary
private com.sun.corba.se.spi.transport.SocketInfocreateSocketInfo(java.lang.String hostname, int port)

	return new SocketInfo() {
	    public String getType() { return SocketInfo.IIOP_CLEAR_TEXT; }
	    public String getHost() { return hostname; }
	    public int    getPort() { return port; }};
    
public java.util.ListgetSocketInfo(com.sun.corba.se.spi.ior.IOR ior)

	SocketInfo socketInfo;
	List result = new ArrayList();

	IIOPProfileTemplate iiopProfileTemplate = (IIOPProfileTemplate)
	    ior.getProfile().getTaggedProfileTemplate() ;
	IIOPAddress primary = iiopProfileTemplate.getPrimaryAddress() ;
	String hostname = primary.getHost().toLowerCase();
	int    port     = primary.getPort();
	// NOTE: we could check for 0 (i.e., CSIv2) but, for a 
	// non-CSIv2-configured client ORB talking to a CSIv2 configured
	// server ORB you might end up with an empty contact info list
	// which would then report a failure which would not be as
	// instructive as leaving a ContactInfo with a 0 port in the list.
	socketInfo = createSocketInfo(hostname, port);
	result.add(socketInfo);

	Iterator iterator = iiopProfileTemplate.iteratorById(
            TAG_ALTERNATE_IIOP_ADDRESS.value);

	while (iterator.hasNext()) {
	    AlternateIIOPAddressComponent alternate =
		(AlternateIIOPAddressComponent) iterator.next();
	    hostname = alternate.getAddress().getHost().toLowerCase();
	    port     = alternate.getAddress().getPort();
	    socketInfo= createSocketInfo(hostname, port);
	    result.add(socketInfo);
	}
	return result;