2121
2222/**
2323 * @author Javier Eguiluz <javier.eguiluz@gmail.com>
24+ *
25+ * @template TEntity of object
2426 */
2527final class EntityDto
2628{
2729 private bool $ isAccessible = true ;
30+ /** @var class-string<TEntity> */
2831 private string $ fqcn ;
32+ /** @var ClassMetadata<TEntity> */
2933 private ClassMetadata $ metadata ;
34+ /** @var TEntity|null */
3035 private $ instance ;
3136 private $ primaryKeyName ;
3237 private mixed $ primaryKeyValue = null ;
3338 private string |Expression |null $ permission ;
3439 private ?FieldCollection $ fields = null ;
3540 private ?ActionCollection $ actions = null ;
3641
42+ /**
43+ * @param class-string<TEntity> $entityFqcn
44+ * @param ClassMetadata<TEntity> $entityMetadata
45+ * @param TEntity|null $entityInstance
46+ */
3747 public function __construct (string $ entityFqcn , ClassMetadata $ entityMetadata , string |Expression |null $ entityPermission = null , /* ?object */ $ entityInstance = null )
3848 {
3949 if (!\is_object ($ entityInstance )
@@ -61,6 +71,9 @@ public function __toString(): string
6171 return $ this ->toString ();
6272 }
6373
74+ /**
75+ * @return class-string<TEntity>
76+ */
6477 public function getFqcn (): string
6578 {
6679 return $ this ->fqcn ;
@@ -84,6 +97,9 @@ public function toString(): string
8497 return sprintf ('%s #%s ' , $ this ->getName (), substr ($ this ->getPrimaryKeyValueAsString (), 0 , 16 ));
8598 }
8699
100+ /**
101+ * @return TEntity|null
102+ */
87103 public function getInstance ()/* : ?object */
88104 {
89105 return $ this ->instance ;
@@ -246,6 +262,9 @@ public function isEmbeddedClassProperty(string $propertyName): bool
246262 return \array_key_exists ($ propertyNameParts [0 ], $ this ->metadata ->embeddedClasses );
247263 }
248264
265+ /**
266+ * @param TEntity|null $newEntityInstance
267+ */
249268 public function setInstance (?object $ newEntityInstance ): void
250269 {
251270 if (null !== $ this ->instance && null !== $ newEntityInstance && !$ newEntityInstance instanceof $ this ->fqcn ) {
@@ -256,6 +275,9 @@ public function setInstance(?object $newEntityInstance): void
256275 $ this ->primaryKeyValue = null ;
257276 }
258277
278+ /**
279+ * @param TEntity $newEntityInstance
280+ */
259281 public function newWithInstance (/* object */ $ newEntityInstance ): self
260282 {
261283 if (!\is_object ($ newEntityInstance )) {
0 commit comments