assertRequiredOptions( self::CONSTRUCTOR_OPTIONS ); // Multiple $this->options = $options; $this->loggerFactory = $loggerFactory; // UserBlockConstraint $this->permissionManager = $permissionManager; // EditFilterMergedContentHookConstraint $this->hookContainer = $hookContainer; // ReadOnlyConstraint $this->readOnlyMode = $readOnlyMode; // SpamRegexConstraint $this->spamRegexChecker = $spamRegexChecker; } /** * @param Content $content * @param IContextSource $context * @param string $summary * @param bool $minorEdit * @return EditFilterMergedContentHookConstraint */ public function newEditFilterMergedContentHookConstraint( Content $content, IContextSource $context, string $summary, bool $minorEdit ): EditFilterMergedContentHookConstraint { return new EditFilterMergedContentHookConstraint( $this->hookContainer, $content, $context, $summary, $minorEdit ); } /** * @param int $contentSize * @param string $type * @return PageSizeConstraint */ public function newPageSizeConstraint( int $contentSize, string $type ): PageSizeConstraint { return new PageSizeConstraint( $this->options->get( 'MaxArticleSize' ), $contentSize, $type ); } /** * @return ReadOnlyConstraint */ public function newReadOnlyConstraint(): ReadOnlyConstraint { return new ReadOnlyConstraint( $this->readOnlyMode ); } /** * @param string $input * @param UserIdentity $user * @param Title $title * @return SimpleAntiSpamConstraint */ public function newSimpleAntiSpamConstraint( string $input, UserIdentity $user, Title $title ): SimpleAntiSpamConstraint { return new SimpleAntiSpamConstraint( $this->loggerFactory->getLogger( 'SimpleAntiSpam' ), $input, $user, $title ); } /** * @param string $summary * @param string $section * @param string $sectionHeading * @param string $text * @param string $reqIP * @param Title $title * @return SpamRegexConstraint */ public function newSpamRegexConstraint( string $summary, string $section, string $sectionHeading, string $text, string $reqIP, Title $title ): SpamRegexConstraint { return new SpamRegexConstraint( $this->loggerFactory->getLogger( 'SpamRegex' ), $this->spamRegexChecker, $summary, $section, $sectionHeading, $text, $reqIP, $title ); } /** * @param LinkTarget $title * @param User $user * @return UserBlockConstraint */ public function newUserBlockConstraint( LinkTarget $title, User $user ): UserBlockConstraint { return new UserBlockConstraint( $this->permissionManager, $title, $user ); } }