/*---------------------------------------------------------------*/
/*          STANFORD UNIVERSITY NOTICES FOR SLAC SOFTWARE        */
/*               ON WHICH COPYRIGHT IS DISCLAIMED                */
/*                                                               */
/* AUTHORSHIP                                                    */
/* This software was created by Mohammad Asif, Stanford Linear     */
/* Accelerator Center, Stanford University.                      */
/*                                                               */
/* ACKNOWLEDGEMENT OF SPONSORSHIP                                */
/* This software was produced by the Stanford Linear Accelerator */
/* Center, Stanford University, under Contract DE-AC03-76SFO0515 */
/* with the Department of Energy.                                */
/*                                                               */
/* GOVERNMENT DISCLAIMER OF LIABILITY                            */
/* Neither the United States nor the United States Department of */
/* Energy, nor any of their employees, makes any warranty,       */
/* express or implied, or assumes any legal liability or         */
/* responsibility for the accuracy, completeness, or usefulness  */
/* of any data, apparatus, product, or process disclosed, or     */
/* represents that its use would not infringe privately owned    */
/* rights.                                                       */
/*                                                               */
/* STANFORD DISCLAIMER OF LIABILITY                              */
/* Stanford University makes no representations or warranties,   */
/* express or implied, nor assumes any liability for the use of  */
/* this software.                                                */
/*                                                               */
/* STANFORD DISCLAIMER OF COPYRIGHT                              */
/* Stanford University, owner of the copyright, hereby disclaims */
/* its copyright and all other rights in this software.  Hence,  */
/* anyone may freely use it for any purpose without restriction. */
/*                                                               */
/*                                                               */
/* MAINTENANCE OF NOTICES                                        */
/* In the interest of clarity regarding the origin and status of */
/* this SLAC software, this and all the preceding Stanford       */
/* University notices are to remain affixed to any copy or       */
/* derivative of this software made or distributed by the        */
/* recipient and are to be affixed to any copy of software made  */
/* or distributed by the recipient that contains a copy or       */
/* derivative of this software.                                  */
/*                                                               */
/* SLAC Software Notices, Set 4 (OTT.002a, 2004 FEB 03)          */
/*---------------------------------------------------------------*/

/* Utility.java
 *
 * Created on March 28, 2007, 11:43 AM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package org.perfsonar.client.util;

import java.io.*;
import java.util.*;


/*
 * @author Mohammad Asif
 * Created on March 28, 2007, 11:43 AM
 */

public class Utility {

    static Hashtable ma_map = new Hashtable();
    static {
        File f = new File ("MAs.conf");
        if (! f.exists() )
        {
            System.out.println ("File ma.conf doesn't exists\n");
            System.exit(0);
        }

        String line = new String ();

        try {
            BufferedReader br = new BufferedReader(new FileReader(f));
            while ((line = br.readLine()) != null) {
                line.replace(";",",");
                String str[] = line.trim().split(",",3);

                if ( str[0].startsWith(";"))
                {
                 str[0] = str[0].substring(1);
                }

                ma_map.put(str[0], str[1]);

              }
            }
            catch (IOException e) {
                System.err.println("Error: " + e);
            }
    }

    public static Vector getKeys (Hashtable ht)
    {
        Vector keys = new Vector ();
        Enumeration enums = ht.keys();

        while (enums.hasMoreElements())
        {
            keys.addElement(enums.nextElement());
        }

        return keys;
    }

    public static String getMAEndPoint (String cannonical_name)
    {
        if ( cannonical_name.trim().toLowerCase().endsWith("es.net"))
        {
            return ma_map.get("ESNET").toString();
        }
        else if ( cannonical_name.trim().toLowerCase().endsWith("cesnet.cz"))
        {
            return ma_map.get("CESNET").toString();
        }
        else if ( cannonical_name.trim().toLowerCase().endsWith("fnal.gov"))
        {
            return ma_map.get("FERMILAB").toString();
        }
        else if ( cannonical_name.trim().toLowerCase().endsWith("geant2.net"))
        {
            return ma_map.get("GEANT2").toString();
        }
        else if ( cannonical_name.trim().toLowerCase().endsWith("garr.it"))
        {
            return ma_map.get("GARR").toString();
        }
        else if ( cannonical_name.trim().toLowerCase().endsWith("grnet.gr"))
        {
            return ma_map.get("GRNET").toString();
        }
        else if ( cannonical_name.trim().toLowerCase().endsWith("carnet.hr"))
        {
            return ma_map.get("CARNET").toString();
        }
         else if ( cannonical_name.trim().toLowerCase().endsWith("pionier.gov.pl"))
        {
            return ma_map.get("PIONIER-RRD").toString();
        }
         else if ( cannonical_name.trim().toLowerCase().endsWith("seeren.org"))
        {
            return ma_map.get("SEEREN").toString();
        }
         else if ( cannonical_name.trim().toLowerCase().endsWith("surfnet.nl") ||
                                cannonical_name.trim().toLowerCase().endsWith("surf.net"))
        {
            return ma_map.get("SURFNET").toString();
        }
        else if ( cannonical_name.trim().toLowerCase().endsWith("switch.ch"))
        {
            return ma_map.get("SWITCH").toString();
        }
        else if ( cannonical_name.trim().toLowerCase().endsWith("renater.fr"))
        {
            return ma_map.get("RENATER").toString();
        }


        return null;
    }

    public static void main (String []arg)
    {

    }
}
  • No labels