code: final synchronized Connection establishConnection(String uri) throws IOException {
      	int colon= uri.indexOf(':');
      	if (colon <= 0) {
      		return null;
      	}
      	
      	String scheme= uri.substring(0, colon);
      	
      	for(Node n= installedElements.head(), end= installedElements.tail(); (n= n.next()) != end;) {
      		ElementContext context= (ElementContext) n;
      		if (context.scheme != null && context.scheme.equalsIgnoreCase(scheme)) {
      			IConnectionFactory factory= (IConnectionFactory) context.getElement();
      			Connection c= factory.openConnection(uri);
      			if (c != null) {
      				return c;
      			}
      		}
      	}
      	return null;
      }
docs: /* package