Class URLs


  • public class URLs
    extends java.lang.Object
    Functions that construct URLs for external services. Most of the functions here just do string manipulation to build up URL strings, using knowledge of the parameters required for various services.
    Since:
    18 Oct 2019
    Author:
    Mark Taylor
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String arxivUrl​(java.lang.String arxivId)
      Maps an arXiv identifier to the URL that will display its arXiv web page.
      static java.lang.String bibcodeUrl​(java.lang.String bibcode)
      Maps a bibcode to the URL that will display the relevant entry in ADS.
      static java.lang.String doiUrl​(java.lang.String doi)
      Maps a DOI (Digital Object Identifier) to its dislay URL.
      static java.lang.String hips2fitsUrl​(java.lang.String hipsId, java.lang.String fmt, double raDeg, double decDeg, double fovDeg, int npix)
      Returns the URL of a cutout from the Hips2Fits service operated by CDS.
      static java.lang.String nedUrl​(java.lang.String sourceId)
      Maps a source identifier to the URL of its NED web page.
      static java.lang.String paramsUrl​(java.lang.String baseUrl, java.lang.String... nameValuePairs)
      Builds a query-type URL string given a base URL and a list of name, value pairs.
      static java.lang.String simbadUrl​(java.lang.String sourceId)
      Maps a source identifier to the URL of its SIMBAD web page.
      static java.lang.String urlDecode​(java.lang.String txt)
      Reverses the quoting performed by urlEncode.
      static java.lang.String urlEncode​(java.lang.String txt)
      Performs necessary quoting of a string for it to be included safely in the data part of a URL.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • urlEncode

        public static java.lang.String urlEncode​(java.lang.String txt)
        Performs necessary quoting of a string for it to be included safely in the data part of a URL. Alphanumeric characters and the characters underscore ("_"), minus sign ("-"), period (".") and tilde ("~") are passed through unchanged, and any other 7-bit ASCII character is represented by a percent sign ("%") followed by its 2-digit hexadecimal code. Characters with values of 128 or greater are simply dropped.
        Parameters:
        txt - input (unencoded) string
        Returns:
        output (encoded) string
        See Also:
        RFC 3986
        Examples:
        urlEncode("RR Lyr") = "RR%20Lyr"
      • urlDecode

        public static java.lang.String urlDecode​(java.lang.String txt)
        Reverses the quoting performed by urlEncode. Percent-encoded sequences (%xx) are replaced by the ASCII character with the hexadecimal code xx.
        Parameters:
        txt - input (encoded) string
        Returns:
        output (unencoded) string
        See Also:
        RFC 3986
        Examples:
        urlDecode("RR%20Lyr") = "RR Lyr"
      • paramsUrl

        public static java.lang.String paramsUrl​(java.lang.String baseUrl,
                                                 java.lang.String... nameValuePairs)
        Builds a query-type URL string given a base URL and a list of name, value pairs.

        The parameters are encoded on the command line according to the "application/x-www-form-urlencoded" convention, which appends a "?" to the base URL, and then adds name=value pairs separated by "&" characters, with percent-encoding of non-URL-friendly characters. This format is used by many services that require a list of parameters to be conveyed on the URL.

        Parameters:
        baseUrl - basic URL (may or may not already contain a "?")
        nameValuePairs - an even number of arguments (or an even-length string array) giving parameter name1,value1,name2,value2,...nameN,valueN
        Returns:
        form-encoded URL
        Examples:
        paramsUrl("http://x.org/", "a", "1", "b", "two", "c", "3&4") = "http://x.org/?a=1&b=two&c=3%264"
      • bibcodeUrl

        public static java.lang.String bibcodeUrl​(java.lang.String bibcode)
        Maps a bibcode to the URL that will display the relevant entry in ADS. If the supplied string does not appear to be a bibcode, null will be returned.

        If the supplied string appears to be a bibcode, it just prepends the string "https://ui.adsabs.harvard.edu/abs/" and performs any character escaping that is required.

        Parameters:
        bibcode - ADS-style bibcode string
        Returns:
        display URL pointing at bibcode record, or null if it doesn't look like a bibcode
        See Also:
        http://adsabs.harvard.edu/abs_doc/help_pages/data.html
        Examples:
        bibcodeUrl("2018A&A...616A...2L") = "https://ui.adsabs.harvard.edu/abs/2018A%26A...616A...2L"
      • doiUrl

        public static java.lang.String doiUrl​(java.lang.String doi)
        Maps a DOI (Digital Object Identifier) to its dislay URL. If the supplied string does not appear to be a DOI, null will be returned.

        If the supplied string appears to be a DOI, it strips any "doi:" prefix if present, prepends the string "https://doi.org/", and performs any character escaping that is required.

        Parameters:
        doi - DOI string, with or without "doi:" prefix
        Returns:
        display URL pointing at DOI content, or null if it doesn't look like a DOI
        See Also:
        https://www.doi.org/
        Examples:
        doiUrl("10.3390/informatics4030018") = "https://doi.org/10.3390/informatics4030018"
      • arxivUrl

        public static java.lang.String arxivUrl​(java.lang.String arxivId)
        Maps an arXiv identifier to the URL that will display its arXiv web page. If the supplied string does not appear to be an arXiv identifier, null will be returned.

        If the supplied string appears to be an arXiv identifier, it strips any "arXiv: prefix and prepends the string "https://arxiv.org/abs/".

        Parameters:
        arxivId - arXiv identifier, with or without "arXiv:" prefix
        Returns:
        display URL pointing at bibcode record, or null if it doesn't look like a bibcode
        See Also:
        https://arxiv.org/help/arxiv_identifier
        Examples:
        arxivUrl("arXiv:1804.09379") = "https://arxiv.org/abs/1804.09381"
      • simbadUrl

        public static java.lang.String simbadUrl​(java.lang.String sourceId)
        Maps a source identifier to the URL of its SIMBAD web page. SIMBAD is the astronomical source information service run by the Centre de Données astronomiques de Strasbourg.

        The string "http://simbad.u-strasbg.fr/simbad/sim-id?Ident=" is prepended to the given id string, and any necessary character escaping is applied. No attempt is made to validate whether the supplied string is a real source identifier, so there is no guarantee that the returned URL will contain actual results.

        Parameters:
        sourceId - free text assumed to represent a source identifier known by SIMBAD
        Returns:
        URL of the Simbad web page describing the identified source
        Examples:
        simbadUrl("Beta Pictoris") = "http://simbad.u-strasbg.fr/simbad/sim-id?Ident=Beta%20Pictoris"
      • nedUrl

        public static java.lang.String nedUrl​(java.lang.String sourceId)
        Maps a source identifier to the URL of its NED web page. NED is the NASA/IPAC Extragalactic Database.

        The string "http://ned.ipac.caltech.edu/byname?objname=" is prepended to the given id string, and any necessary character escaping is applied. No attempt is made to validate whether the supplied string is a real source identifier, so there is no guarantee that the returned URL will contain actual results.

        Parameters:
        sourceId - free text assumed to represent a source identifier known by NED
        Returns:
        URL of the NED web page describing the identified source
        Examples:
        nedUrl("NGC 3952") = "http://ned.ipac.caltech.edu/byname?objname=NGC%203952"
      • hips2fitsUrl

        public static java.lang.String hips2fitsUrl​(java.lang.String hipsId,
                                                    java.lang.String fmt,
                                                    double raDeg,
                                                    double decDeg,
                                                    double fovDeg,
                                                    int npix)
        Returns the URL of a cutout from the Hips2Fits service operated by CDS. The result will be the URL of a FITS or image file resampled to order from one of the HiPS surveys available at CDS.

        This function requests a square cutout using the SIN projection, which is suitable for small cutouts. If the details of this function don't suit your purposes, you can construct the URL yourself.

        Parameters:
        hipsId - identifier or partial identifier for the HiPS survey
        fmt - required output format, for instance "fits", "png", "jpg"
        raDeg - central Right Ascension (longitude) in degrees
        decDeg - central Declination (latitude) in degrees
        fovDeg - field of view; extent of the cutout in degrees
        npix - extent of the cutout in pixels (width=height=npix)
        Returns:
        URL of the required cutout
        See Also:
        http://alasky.u-strasbg.fr/hips-image-services/hips2fits