Skip to content

Commit 801d653

Browse files
committed
wip
1 parent ac0b25a commit 801d653

File tree

128 files changed

+1286
-1118
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

128 files changed

+1286
-1118
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"nette/utils": "^3.1.0|^4.0.0",
3434
"orisai/exceptions": "^1.0.0",
3535
"orisai/object-mapper-contracts": "^1.0.0",
36-
"orisai/reflection-meta": "^1.0.0",
36+
"orisai/reflection-meta": "^1.0.4",
3737
"orisai/source-map": "^1.0.0",
3838
"orisai/utils": "^1.0.0",
3939
"symfony/polyfill-php80": "^1.27.0"

src/Callbacks/AfterMapping.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* @Target({"CLASS"})
1313
*/
1414
#[Attribute(Attribute::TARGET_CLASS)]
15-
final class AfterMapping implements CallbackDefinition
15+
final class AfterMapping extends CallbackDefinition
1616
{
1717

1818
private string $method;
@@ -22,7 +22,7 @@ public function __construct(string $method)
2222
$this->method = $method;
2323
}
2424

25-
public function getType(): string
25+
public function getHandler(): string
2626
{
2727
return AfterMappingCallback::class;
2828
}

src/Callbacks/AfterValidation.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* @Target({"CLASS", "PROPERTY"})
1313
*/
1414
#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_PROPERTY)]
15-
final class AfterValidation implements CallbackDefinition
15+
final class AfterValidation extends CallbackDefinition
1616
{
1717

1818
private string $method;
@@ -29,7 +29,7 @@ public function __construct(string $method, string $runtime = CallbackRuntime::P
2929
$this->runtime = $runtime;
3030
}
3131

32-
public function getType(): string
32+
public function getHandler(): string
3333
{
3434
return AfterValidationCallback::class;
3535
}

src/Callbacks/BeforeValidation.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* @Target({"CLASS", "PROPERTY"})
1313
*/
1414
#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_PROPERTY)]
15-
final class BeforeValidation implements CallbackDefinition
15+
final class BeforeValidation extends CallbackDefinition
1616
{
1717

1818
private string $method;
@@ -29,7 +29,7 @@ public function __construct(string $method, string $runtime = CallbackRuntime::P
2929
$this->runtime = $runtime;
3030
}
3131

32-
public function getType(): string
32+
public function getHandler(): string
3333
{
3434
return BeforeValidationCallback::class;
3535
}

src/Callbacks/CallbackDefinition.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,17 @@
55
use Orisai\ObjectMapper\Args\Args;
66
use Orisai\ObjectMapper\Meta\MetaDefinition;
77

8-
interface CallbackDefinition extends MetaDefinition
8+
abstract class CallbackDefinition implements MetaDefinition
99
{
1010

1111
/**
1212
* @return class-string<Callback<Args>>
1313
*/
14-
public function getType(): string;
14+
abstract public function getHandler(): string;
15+
16+
final public function getScope(): string
17+
{
18+
return Callback::class;
19+
}
1520

1621
}

src/Docs/Description.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* @Target({"CLASS", "PROPERTY"})
1414
*/
1515
#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_PROPERTY)]
16-
final class Description implements DocDefinition
16+
final class Description extends DocDefinition
1717
{
1818

1919
private string $message;
@@ -23,7 +23,7 @@ public function __construct(string $message)
2323
$this->message = AnnotationFilter::filterMultilineDocblock($message);
2424
}
2525

26-
public function getType(): string
26+
public function getHandler(): string
2727
{
2828
return DescriptionDoc::class;
2929
}
@@ -35,4 +35,9 @@ public function getArgs(): array
3535
];
3636
}
3737

38+
public function getScope(): string
39+
{
40+
return DescriptionDoc::class;
41+
}
42+
3843
}

src/Docs/DocDefinition.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44

55
use Orisai\ObjectMapper\Meta\MetaDefinition;
66

7-
interface DocDefinition extends MetaDefinition
7+
abstract class DocDefinition implements MetaDefinition
88
{
99

1010
/**
1111
* @return class-string<Doc>
1212
*/
13-
public function getType(): string;
13+
abstract public function getHandler(): string;
1414

1515
}

src/Docs/Example.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* @NamedArgumentConstructor()
1212
* @Target({"ANNOTATION"})
1313
*/
14-
final class Example implements DocDefinition
14+
final class Example extends DocDefinition
1515
{
1616

1717
private string $content;
@@ -26,7 +26,7 @@ public function __construct(string $content, ?string $description = null)
2626
: AnnotationFilter::filterMultilineDocblock($description);
2727
}
2828

29-
public function getType(): string
29+
public function getHandler(): string
3030
{
3131
return ExampleDoc::class;
3232
}
@@ -39,4 +39,9 @@ public function getArgs(): array
3939
];
4040
}
4141

42+
public function getScope(): string
43+
{
44+
return ExampleDoc::class;
45+
}
46+
4247
}

src/Docs/Examples.php

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
use Attribute;
66
use Doctrine\Common\Annotations\Annotation\NamedArgumentConstructor;
77
use Orisai\Exceptions\Logic\InvalidArgument;
8-
use Orisai\ObjectMapper\Meta\Shared\DocMeta;
98
use function sprintf;
109

1110
/**
@@ -14,10 +13,10 @@
1413
* @Target({"CLASS", "PROPERTY"})
1514
*/
1615
#[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_PROPERTY)]
17-
final class Examples implements DocDefinition
16+
final class Examples extends DocDefinition
1817
{
1918

20-
/** @var array<DocMeta> */
19+
/** @var array<Example> */
2120
private array $examples;
2221

2322
/**
@@ -30,7 +29,7 @@ public function __construct(array $examples)
3029

3130
/**
3231
* @param array<mixed> $examples
33-
* @return array<DocMeta>
32+
* @return array<Example>
3433
*/
3534
private function resolveExamples(array $examples): array
3635
{
@@ -43,13 +42,13 @@ private function resolveExamples(array $examples): array
4342
));
4443
}
4544

46-
$examples[$key] = new DocMeta($example->getType(), $example->getArgs());
45+
$examples[$key] = $example;
4746
}
4847

4948
return $examples;
5049
}
5150

52-
public function getType(): string
51+
public function getHandler(): string
5352
{
5453
return ExamplesDoc::class;
5554
}
@@ -61,4 +60,9 @@ public function getArgs(): array
6160
];
6261
}
6362

63+
public function getScope(): string
64+
{
65+
return ExamplesDoc::class;
66+
}
67+
6468
}

src/Docs/ExamplesDoc.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
use Orisai\ObjectMapper\Args\ArgsChecker;
66
use Orisai\ObjectMapper\Meta\Context\MetaContext;
7-
use Orisai\ObjectMapper\Meta\Shared\DocMeta;
87

98
final class ExamplesDoc implements Doc
109
{
@@ -21,14 +20,14 @@ public static function resolveArgs(array $args, MetaContext $context): array
2120
$checker->checkAllowedArgs([self::Examples]);
2221

2322
$checker->checkRequiredArg(self::Examples);
24-
/** @var array<DocMeta> $examples */
23+
/** @var array<DocDefinition> $examples */
2524
$examples = $checker->checkArray(self::Examples);
2625

2726
$resolver = $context->getMetaResolver();
2827
$optimized = [];
2928

3029
foreach ($examples as $example) {
31-
$optimized[$example->getName()::getUniqueName()]
30+
$optimized[$example->getHandler()::getUniqueName()]
3231
= $resolver->resolveDocMeta($example, $context);
3332
}
3433

0 commit comments

Comments
 (0)