/** Returns <SCHEME-#Key> server ID */ protected String createUniqueID(ServerInfo info) { String scheme = info.getScheme(); synchronized (this.serverInfos) { for (int i = 0; i < 1000; i++) { String key = scheme.toUpperCase() + "-" + i; if (this.serverInfos.get(key) == null) { // debug(">>> New Server ID="+key); return key; } } } throw new Error("To much server configurations."); }
/** Update Actual ServerInfo ID */ protected void updateServerInfoID(ServerInfo info) { synchronized (this.serverInfos) { // Check whether muliple user IDs are allowed! String userInf = ""; if (info.getNeedUserinfo() || (StringUtil.isWhiteSpace(info.getUserinfo()) == false)) { // use explicit userinfo userInf = info.getUserinfo() + "@"; } // Normalize capitals. String fixedID = userInf + info.getScheme().toUpperCase() + "-" + StringUtil.noNull(info.getHostname()).toUpperCase() + ":" + info.getPort(); info.setID(fixedID); } }