code: @Override
      public synchronized String generateToken(Class<?> groupType) {
          assertArgumentNotNull("groupType", groupType);
          final byte[] sessionIdBytes = prepareSessionIdBytes();
          final byte[] currentBytes = prepareCurrentBytes();
          final byte[] groupTypeBytes = prepareGroupTypeBytes(groupType);
          return buildHex(sessionIdBytes, currentBytes, groupTypeBytes);
      }
docs: --------