code: public static String getName(GuacamoleConfiguration config)
              throws GuacamoleException {
  
          if (config == null)
              return null;
  
          String protocol = config.getProtocol();
          String host = config.getParameter("hostname");
          String port = config.getParameter("port");
          String user = config.getParameter("username");
  
          StringBuilder name = new StringBuilder();
  
          if (protocol != null && !protocol.isEmpty())
              name.append(protocol).append("://");
  
          if (user != null && !user.isEmpty())
              name.append(user).append("@");
  
          if (host != null && !host.isEmpty())
              name.append(host);
  
          if (port != null && !port.isEmpty())
              name.append(":").append(port);
  
          name.append("/");
  
          return name.toString();
      }
docs: Given a GuacamoleConfiguration object, generate a name
  for the configuration based on the protocol, host, user
  and port in the configuration, and return the string value.
  
  @param config
  The GuacamoleConfiguration object to use to generate
  the name.
  
  @return
  The String value of the name that is generated.
  
  @throws GuacamoleException
  If an error occurs getting items in the configuration.