aboutsummaryrefslogtreecommitdiffstats
path: root/includes/content/IContentHandlerFactory.php
blob: 1d34e5b2d37bd76bfea8bde1f51af65c0aa0cbc2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php

namespace MediaWiki\Content;

use MediaWiki\Exception\MWUnknownContentModelException;

/**
 * @ingroup Content
 */
interface IContentHandlerFactory {

	/**
	 * Returns a ContentHandler instance for the given $modelID.
	 *
	 * @param string $modelID
	 *
	 * @return ContentHandler
	 * @throws MWUnknownContentModelException If no handler is known for the model ID.
	 */
	public function getContentHandler( string $modelID ): ContentHandler;

	/**
	 * Returns a list of defined content models.
	 * getContentHandler() can be expected to return a ContentHandler for the models returned
	 * by this method.
	 *
	 * @return string[]
	 */
	public function getContentModels(): array;

	/**
	 * Returns a list of all serialization formats supported for any of the defined content models.
	 * @see ContentHandler::getSupportedFormats()
	 * @return string[]
	 */
	public function getAllContentFormats(): array;

	/**
	 * Returns true if $modelID is a defined content model for which getContentHandler() can be
	 * expected to return a ContentHandler instance.
	 * @param string $modelID
	 *
	 * @return bool
	 */
	public function isDefinedModel( string $modelID ): bool;
}