text: package tahrir.tools;
  
  import tahrir.io.crypto.TrCrypto;
  import tahrir.io.net.PhysicalNetworkLocation;
  import tahrir.io.net.RemoteNodeAddress;
  import tahrir.io.net.TrPeerManager;
  import tahrir.io.net.udpV1.UdpNetworkLocation;
  
  import java.net.InetAddress;
  import java.net.UnknownHostException;
  import java.security.interfaces.RSAPublicKey;
  import java.util.Random;
  
  public class Generic {
  
      public static Integer randomInt(Integer i) {
          return new Random().nextInt(i);
      }
  
      public static Integer genericPort() {
          return randomInt(60000);
      }
  
      public static Integer genericSessionId() {
          return randomInt(1000);
      }
  
      public static Integer genericTopologyLocation() {
          return new Random().nextInt();
      }
  
      public static InetAddress genericInetAddress() {
          try {
              return InetAddress.getByName("127.0.0.1");
          } catch (UnknownHostException e) {
              throw new RuntimeException(e);
          }
      }
  
      public static RemoteNodeAddress genericRemoteNodeAddress() {
          final RSAPublicKey pubKey = TrCrypto.createRsaKeyPair().a;
          final PhysicalNetworkLocation location = new UdpNetworkLocation(genericInetAddress(), genericPort());
          return new RemoteNodeAddress(location, pubKey);
      }
  
      public static TrPeerManager.TopologyLocationInfo genericTopologyLocationInfo() {
          return new TrPeerManager.TopologyLocationInfo(null);
      }
  }