3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation; either version 2 of the License, or
6 * (at your option) any later version.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License along
14 * with this program; if not, write to the Free Software Foundation, Inc.,
15 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 * http://www.gnu.org/copyleft/gpl.html
21 namespace MediaWiki\Linker
;
26 interface LinkTarget
{
29 * Get the namespace index.
32 * @return int Namespace index
34 public function getNamespace();
37 * Convenience function to test if it is in the namespace
43 public function inNamespace( $ns );
46 * Get the link fragment (i.e. the bit after the #) in text form.
49 * @return string link fragment
51 public function getFragment();
54 * Whether the link target has a fragment
59 public function hasFragment();
62 * Get the main part with underscores.
65 * @return string Main part of the link, with underscores (for use in href attributes)
67 public function getDBkey();
70 * Returns the link in text form, without namespace prefix or fragment.
71 * This is computed from the DB key by replacing any underscores with spaces.
76 public function getText();
79 * Creates a new LinkTarget for a different fragment of the same page.
80 * It is expected that the same type of object will be returned, but the
81 * only requirement is that it is a LinkTarget.
84 * @param string $fragment The fragment name, or "" for the entire page.
88 public function createFragmentTarget( $fragment );
91 * Whether this LinkTarget has an interwiki component
96 public function isExternal();
99 * The interwiki component of this LinkTarget
104 public function getInterwiki();
107 * Returns an informative human readable representation of the link target,
108 * for use in logging and debugging. There is no requirement for the return
109 * value to have any relationship with the input of TitleParser.
114 public function __toString();