userQueryFactory = $factory; return $this; } /** * @return callable */ public function getUserQueryFactory() { if (!is_callable($this->userQueryFactory)) { throw new \LogicException('User Query factory was not set'); } return $this->userQueryFactory; } /** * @return \User_Query */ public function createUserQuery() { $userQuery = call_user_func($this->getUserQueryFactory()); if (!$userQuery instanceof \User_Query) { throw new \LogicException(sprintf( 'User Query factory does not create %s instance, got "%s" instead', \User_Query::class, is_object($userQuery) ? get_class($userQuery) : gettype($userQuery) )); } return $userQuery; } }