docs: public String generate() {
          StringBuilder strRetVal = new StringBuilder();
          String strTemp;
          try {
              // IPAddress segment
              InetAddress addr = InetAddress.getLocalHost();
              byte[] ipaddr = addr.getAddress();
              for (byte anIpaddr : ipaddr) {
                  Byte b = new Byte(anIpaddr);
                  strTemp = Integer.toHexString(b.intValue() & 0x000000ff);
                  strRetVal.append(ZEROS.substring(0, 2 - strTemp.length()));
                  strRetVal.append(strTemp);
              }
              strRetVal.append(':');
  
              // CurrentTimeMillis() segment
              strTemp = Long.toHexString(System.currentTimeMillis());
              strRetVal.append(ZEROS.substring(0, 12 - strTemp.length()));
              strRetVal.append(strTemp).append(':');
  
              // random segment
              SecureRandom prng = SecureRandom.getInstance("SHA1PRNG");
              strTemp = Integer.toHexString(prng.nextInt());
              while (strTemp.length() < 8) {
                  strTemp = '0' + strTemp;
              }
              strRetVal.append(strTemp.substring(4)).append(':');
  
              // IdentityHash() segment
              strTemp = Long.toHexString(System.identityHashCode(this));
              strRetVal.append(ZEROS.substring(0, 8 - strTemp.length()));
              strRetVal.append(strTemp);
          } catch (UnknownHostException uhex) {
              throw new RuntimeException("Unknown host.", uhex);
          } catch (NoSuchAlgorithmException nsaex) {
              throw new RuntimeException("Algorithm 'SHA1PRNG' is unavailiable.", nsaex);
          }
          return strRetVal.toString().toUpperCase();
      }