Factory.java

  1. package gov.usgs.earthquake.distribution;

  2. import gov.usgs.earthquake.eidsutil.EIDSClient;

  3. import java.io.File;
  4. import java.net.URL;

  5. public class Factory {

  6.     /**
  7.      * Creates EIDS Client using given params
  8.      * @param serverHost host
  9.      * @param serverPort port
  10.      * @param alternateServers for list of alternate servers
  11.      * @param trackingFileName tracking file name
  12.      * @return EIDSClient
  13.      */
  14.     public EIDSClient createEIDSClient(final String serverHost,
  15.             final Integer serverPort, final String alternateServers,
  16.             final String trackingFileName) {
  17.         EIDSClient client = new EIDSClient();

  18.         client.setServerHost(serverHost);
  19.         client.setServerPort(serverPort);
  20.         client.setAlternateServersList(alternateServers);
  21.         client.setTrackingFileName(trackingFileName);

  22.         return client;
  23.     }

  24.     /**
  25.      * Creates EIDS Notification Receiver
  26.      * @param serverList serverlist
  27.      * @param receiverStorageDirectory file of storage directory
  28.      * @param receiverIndexFile file of receiver index
  29.      * @param client EIDSClient
  30.      * @return new EIDSNotificationReceiver
  31.      * @throws Exception if error occurs
  32.      */
  33.     public EIDSNotificationReceiver createEIDSNotificationReceiver(
  34.             final String serverList, final File receiverStorageDirectory,
  35.             final File receiverIndexFile, final EIDSClient client)
  36.             throws Exception {
  37.         EIDSNotificationReceiver receiver = new EIDSNotificationReceiver();

  38.         receiver.setName("eids");

  39.         receiver.setProductStorage(new FileProductStorage(
  40.                 receiverStorageDirectory));
  41.         receiver.setNotificationIndex(new JDBCNotificationIndex(
  42.                 receiverIndexFile.getCanonicalPath()));

  43.         return receiver;
  44.     }

  45.     /**
  46.      * Create new socket product receiver
  47.      * @param port int of port
  48.      * @param numThreads int of threads
  49.      * @param receiverStorageDirectory file of storage directory
  50.      * @param receiverIndexFile file of receiver index
  51.      * @return new SocketProductReceiver
  52.      * @throws Exception if error occurs
  53.      */
  54.     public SocketProductReceiver createSocketProductReceiver(final int port,
  55.             final int numThreads, final File receiverStorageDirectory,
  56.             final File receiverIndexFile) throws Exception {
  57.         SocketProductReceiver receiver = new SocketProductReceiver();

  58.         receiver.setName("socket");
  59.         receiver.setProductStorage(new FileProductStorage(
  60.                 receiverStorageDirectory));
  61.         receiver.setNotificationIndex(new JDBCNotificationIndex(
  62.                 receiverIndexFile.getCanonicalPath()));

  63.         return receiver;
  64.     }

  65.     /**
  66.      * create new EIDS Notification Sender
  67.      * @param corbaHost String of host
  68.      * @param corbaPort String of port
  69.      * @param eidsPolldir file of eidsPoll directory
  70.      * @param htdocs file of htdocs
  71.      * @param htdocsURL URL of htdocs
  72.      * @return new EIDSNotificationSender
  73.      */
  74.     public EIDSNotificationSender createEIDSNotificationSender(
  75.             final String corbaHost, final String corbaPort,
  76.             final File eidsPolldir, final File htdocs, final URL htdocsURL) {
  77.         EIDSNotificationSender sender = new EIDSNotificationSender();

  78.         sender.setName("eids");
  79.         sender.setServerHost(corbaHost);
  80.         sender.setServerPort(corbaPort);
  81.         sender.setServerPolldir(eidsPolldir);
  82.         sender.setProductStorage(new URLProductStorage(htdocs, htdocsURL));

  83.         return sender;
  84.     }

  85. }