1: <?php
2:
3: namespace LaravelUi5\Core\Contracts;
4:
5: use LaravelUi5\Core\Introspection\Ui5Framework;
6: use LaravelUi5\Core\Introspection\Ui5I18n;
7: use LaravelUi5\Core\Introspection\Ui5PackageMeta;
8:
9: /**
10: * Represents an introspection-capable UI5 source.
11: *
12: * A Ui5Source provides structured access to metadata extracted
13: * from a UI5 project or a packaged descriptor.
14: *
15: * Not all metadata is guaranteed to be available in all contexts
16: * (e.g. packaged modules vs. workspace projects).
17: */
18: abstract readonly class Ui5Source
19: {
20: public abstract function getSourcePath(): string;
21:
22: public abstract function getPackageMeta(): ?Ui5PackageMeta;
23:
24: public abstract function getFramework(): ?Ui5Framework;
25:
26: public abstract function getI18n(): Ui5I18n;
27: }
28: