summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/MwCollaboratorFactory.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/MwCollaboratorFactory.php')
-rw-r--r--www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/MwCollaboratorFactory.php229
1 files changed, 229 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/MwCollaboratorFactory.php b/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/MwCollaboratorFactory.php
new file mode 100644
index 00000000..1c0d0a22
--- /dev/null
+++ b/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/MwCollaboratorFactory.php
@@ -0,0 +1,229 @@
+<?php
+
+namespace SMW\MediaWiki;
+
+use Language;
+use Parser;
+use Revision;
+use SMW\ApplicationFactory;
+use SMW\MediaWiki\Connection\LoadBalancerConnectionProvider;
+use SMW\MediaWiki\Connection\ConnectionProvider;
+use SMW\MediaWiki\Renderer\HtmlColumnListRenderer;
+use SMW\MediaWiki\Renderer\HtmlFormRenderer;
+use SMW\MediaWiki\Renderer\HtmlTableRenderer;
+use SMW\MediaWiki\Renderer\HtmlTemplateRenderer;
+use SMW\MediaWiki\Renderer\WikitextTemplateRenderer;
+use StripState;
+use Title;
+use User;
+use WikiPage;
+
+/**
+ * @license GNU GPL v2+
+ * @since 2.1
+ *
+ * @author mwjames
+ */
+class MwCollaboratorFactory {
+
+ /**
+ * @var ApplicationFactory
+ */
+ private $applicationFactory;
+
+ /**
+ * @since 2.1
+ *
+ * @param ApplicationFactory $applicationFactory
+ */
+ public function __construct( ApplicationFactory $applicationFactory ) {
+ $this->applicationFactory = $applicationFactory;
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @param Language|null $language
+ *
+ * @return MessageBuilder
+ */
+ public function newMessageBuilder( Language $language = null ) {
+ return new MessageBuilder( $language );
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return MagicWordsFinder
+ */
+ public function newMagicWordsFinder() {
+ return new MagicWordsFinder();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return RedirectTargetFinder
+ */
+ public function newRedirectTargetFinder() {
+ return new RedirectTargetFinder();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return DeepRedirectTargetResolver
+ */
+ public function newDeepRedirectTargetResolver() {
+ return new DeepRedirectTargetResolver( $this->applicationFactory->newPageCreator() );
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @param Title $title
+ * @param Language|null $language
+ *
+ * @return HtmlFormRenderer
+ */
+ public function newHtmlFormRenderer( Title $title, Language $language = null ) {
+
+ if ( $language === null ) {
+ $language = $title->getPageLanguage();
+ }
+
+ $messageBuilder = $this->newMessageBuilder( $language );
+
+ return new HtmlFormRenderer( $title, $messageBuilder );
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return HtmlTableRenderer
+ */
+ public function newHtmlTableRenderer() {
+ return new HtmlTableRenderer();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return HtmlColumnListRenderer
+ */
+ public function newHtmlColumnListRenderer() {
+ return new HtmlColumnListRenderer();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return LoadBalancerConnectionProvider
+ */
+ public function newLoadBalancerConnectionProvider( $connectionType ) {
+ return new LoadBalancerConnectionProvider( $connectionType );
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @param string|null $provider
+ *
+ * @return ConnectionProvider
+ */
+ public function newConnectionProvider( $provider = null ) {
+
+ $connectionProvider = new ConnectionProvider(
+ $provider
+ );
+
+ $connectionProvider->setLocalConnectionConf(
+ $this->applicationFactory->getSettings()->get( 'smwgLocalConnectionConf' )
+ );
+
+ $connectionProvider->setLogger(
+ $this->applicationFactory->getMediaWikiLogger()
+ );
+
+ return $connectionProvider;
+ }
+
+ /**
+ * @since 2.0
+ *
+ * @param WikiPage $wkiPage
+ * @param Revision|null $revision
+ * @param User|null $user
+ *
+ * @return PageInfoProvider
+ */
+ public function newPageInfoProvider( WikiPage $wkiPage, Revision $revision = null, User $user = null ) {
+ return new PageInfoProvider( $wkiPage, $revision, $user );
+ }
+
+ /**
+ * @since 2.5
+ *
+ * @param WikiPage $wkiPage
+ * @param Revision $revision
+ * @param User|null $user
+ *
+ * @return EditInfoProvider
+ */
+ public function newEditInfoProvider( WikiPage $wkiPage, Revision $revision, User $user = null ) {
+ return new EditInfoProvider( $wkiPage, $revision, $user );
+ }
+
+ /**
+ * @since 2.2
+ *
+ * @return WikitextTemplateRenderer
+ */
+ public function newWikitextTemplateRenderer() {
+ return new WikitextTemplateRenderer();
+ }
+
+ /**
+ * @since 2.2
+ *
+ * @param Parser $parser
+ *
+ * @return HtmlTemplateRenderer
+ */
+ public function newHtmlTemplateRenderer( Parser $parser ) {
+ return new HtmlTemplateRenderer(
+ $this->newWikitextTemplateRenderer(),
+ $parser
+ );
+ }
+
+ /**
+ * @since 2.2
+ *
+ * @return MediaWikiNsContentReader
+ */
+ public function newMediaWikiNsContentReader() {
+ return new MediaWikiNsContentReader();
+ }
+
+ /**
+ * @since 3.0
+ *
+ * @param StripState $stripState
+ *
+ * @return StripMarkerDecoder
+ */
+ public function newStripMarkerDecoder( StripState $stripState ) {
+
+ $stripMarkerDecoder = new StripMarkerDecoder(
+ $stripState
+ );
+
+ $stripMarkerDecoder->isSupported(
+ $this->applicationFactory->getSettings()->isFlagSet( 'smwgParserFeatures', SMW_PARSER_UNSTRIP )
+ );
+
+ return $stripMarkerDecoder;
+ }
+
+}