fix(TextProcessing): Make task type template param covariant

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
pull/41844/head
Marcel Klehr 2 years ago
parent 546cf0ed2f
commit fe6d9e33b4
  1. 2
      lib/public/TextProcessing/IProvider.php
  2. 14
      lib/public/TextProcessing/Task.php

@ -31,7 +31,7 @@ use RuntimeException;
/**
* This is the interface that is implemented by apps that
* implement a text processing provider
* @template T of ITaskType
* @psalm-template-covariant T of ITaskType
* @since 27.1.0
*/
interface IProvider {

@ -28,9 +28,7 @@ namespace OCP\TextProcessing;
/**
* This is a text processing task
* @since 27.1.0
* @psalm-template T of ITaskType
* @psalm-template S as class-string<T>
* @psalm-template P as IProvider<T>
* @psalm-template-covariant T of ITaskType
*/
final class Task implements \JsonSerializable {
protected ?int $id = null;
@ -74,7 +72,7 @@ final class Task implements \JsonSerializable {
protected int $status = self::STATUS_UNKNOWN;
/**
* @psalm-param S $type
* @psalm-param class-string<T> $type
* @param string $type
* @param string $input
* @param string $appId
@ -92,7 +90,7 @@ final class Task implements \JsonSerializable {
}
/**
* @psalm-param P $provider
* @psalm-param IProvider<T> $provider
* @param IProvider $provider
* @return string
* @since 27.1.0
@ -109,7 +107,7 @@ final class Task implements \JsonSerializable {
}
/**
* @psalm-param P $provider
* @psalm-param IProvider<T> $provider
* @param IProvider $provider
* @return bool
* @since 27.1.0
@ -119,7 +117,7 @@ final class Task implements \JsonSerializable {
}
/**
* @psalm-return S
* @psalm-return class-string<T>
* @since 27.1.0
*/
final public function getType(): string {
@ -207,7 +205,7 @@ final class Task implements \JsonSerializable {
}
/**
* @psalm-return array{id: ?int, type: S, status: 0|1|2|3|4, userId: ?string, appId: string, input: string, output: ?string, identifier: string, completionExpectedAt: ?int}
* @psalm-return array{id: ?int, type: class-string<T>, status: 0|1|2|3|4, userId: ?string, appId: string, input: string, output: ?string, identifier: string, completionExpectedAt: ?int}
* @since 27.1.0
*/
public function jsonSerialize(): array {

Loading…
Cancel
Save