Interface Sites

All Known Implementing Classes:
SitesImpl

public interface Sites
Registry to manage the association between site keys (such as "enwiki") and base URLs (such as "http://en.wikipedia.org/wiki/") that is needed to interpret SiteLink objects. These associations are part of the configuration of a MediaWiki site and therefore not fixed.

This is not a Wikibase data object as such, but part of the general configuration of a Wikibase site. The interface supports modification, e.g., to insert additional associations. This can be useful to augment data manually (even when loading most of the data from a file dump). For example, some of Wikimedia's data exports are more frequent than their sites table exports, so it might be useful to add some very recent sites.

Author:
Markus Kroetzsch
  • Method Summary

    Modifier and Type
    Method
    Description
    getFileUrl(String siteKey, String fileName)
    Returns the URL for the file of the given name, or null if the site is not known.
    getGroup(String siteKey)
    Returns the group for the given site, or null if there is no such data for this site key.
    Returns the MediaWiki language code for the given site, or null if there is no such data for this site key.
    getPageUrl(String siteKey, String pageTitle)
    Returns the URL for the page of the given name, or null if the site is not known.
    Returns the URL for the given site link, or null if its site key is not known.
    Returns the type for the given site, or null if there is no such data for this site key.
    void
    setSiteInformation(String siteKey, String group, String languageCode, String siteType, String filePath, String pagePath)
    Sets the stored information for the site of the given key to the given values.
  • Method Details

    • setSiteInformation

      void setSiteInformation(String siteKey, String group, String languageCode, String siteType, String filePath, String pagePath)
      Sets the stored information for the site of the given key to the given values.

      Note that the path URLs given here should be absolute. In MediaWiki, it is common to use protocol-relative paths (starting with "//" rather than with "http://" or "https://"). The code in this class is not prepared to handle this yet (URL-returning methods would need to allow for a preferred protocol to be specified).

      Parameters:
      siteKey - the global site key, e.g., "enwiki" or "fawikivoyage"
      group - the site group, e.g., "wikipedia" or "wikivoyage"
      languageCode - the site MediaWiki language code, e.g., "en" or "fa"
      siteType - the site type, typically "mediawiki"
      filePath - the file path with $1 as a placeholder for the file name, e.g., "http://en.wikipedia.org/w/$1" or "http://fa.wikivoyage.org/w/$1"
      pagePath - the page path with $1 as a placeholder for the page title, e.g., "http://en.wikipedia.org/wiki/$1" or "http://fa.wikivoyage.org/wiki/$1"
    • getLanguageCode

      String getLanguageCode(String siteKey)
      Returns the MediaWiki language code for the given site, or null if there is no such data for this site key.

      The language code follows the MediaWiki conventions for language codes, which do not follow any standard. Most codes agree with those in BCP 47 , but there are a number of exceptions.

      Parameters:
      siteKey - the global site key
      Returns:
      the corresponding MediaWiki language code, or null if not known
    • getGroup

      String getGroup(String siteKey)
      Returns the group for the given site, or null if there is no such data for this site key. The group is a string identifier used for configuration purposes. Typical groups on Wikimedia sites include "wikipedia", "wikisource", "wikivoyage", and "wikiquote", used for most sites of these projects, but also singleton groups like "commons" and "wikimania2013".
      Parameters:
      siteKey - the global site key
      Returns:
      the corresponding group, or null if not known
    • getPageUrl

      String getPageUrl(String siteKey, String pageTitle)
      Returns the URL for the page of the given name, or null if the site is not known. All characters in the page title will be escaped for use in URLs.
      Parameters:
      siteKey - the global site key
      pageTitle - the title of the page, including namespace prefixes if any
      Returns:
      the URL to link to this page on the given site, or null if not known
    • getSiteLinkUrl

      String getSiteLinkUrl(SiteLink siteLink)
      Returns the URL for the given site link, or null if its site key is not known.
      Parameters:
      siteLink - the SiteLink object
      Returns:
      the page URL for this site link, or null if not known
    • getFileUrl

      String getFileUrl(String siteKey, String fileName)
      Returns the URL for the file of the given name, or null if the site is not known. The file name is not escaped for use in URLs, so that one can use this method to construct URLs with parameters, e.g., when calling the API of the site. Also note that this method does not construct URLs for files uploaded to a MediaWiki site using the given file name; such files are usually placed in some subdirectory.
      Parameters:
      siteKey - the global site key
      fileName - the name of the file
      Returns:
      the URL to link to this page on the given site, or null if not known
    • getSiteType

      String getSiteType(String siteKey)
      Returns the type for the given site, or null if there is no such data for this site key. For MediaWiki sites, this is "mediawiki".
      Parameters:
      siteKey - the global site key
      Returns:
      the corresponding type, or null if not known