49 lines
1.2 KiB
PHP
49 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace Core\Objects\DatabaseEntity\Controller;
|
|
|
|
use Core\Driver\SQL\SQL;
|
|
|
|
class NMRelationReference implements Persistable {
|
|
|
|
private DatabaseEntityHandler $handler;
|
|
private string $thisProperty;
|
|
private string $refProperty;
|
|
|
|
public function __construct(DatabaseEntityHandler $handler, string $thisProperty, string $refProperty) {
|
|
$this->handler = $handler;
|
|
$this->thisProperty = $thisProperty;
|
|
$this->refProperty = $refProperty;
|
|
}
|
|
|
|
public function dependsOn(): array {
|
|
return [$this->handler->getTableName()];
|
|
}
|
|
|
|
public function getTableName(): string {
|
|
return $this->handler->getTableName();
|
|
}
|
|
|
|
public function getCreateQueries(SQL $sql): array {
|
|
return []; // nothing to do here, will be managed by other handler
|
|
}
|
|
|
|
public function getThisProperty(): string {
|
|
return $this->thisProperty;
|
|
}
|
|
|
|
public function getRefProperty(): string {
|
|
return $this->refProperty;
|
|
}
|
|
|
|
public function getRefColumns(): array {
|
|
return [
|
|
$this->handler->getColumnName($this->getThisProperty(), false),
|
|
$this->handler->getColumnName($this->getRefProperty(), false),
|
|
];
|
|
}
|
|
|
|
public function getRelHandler(): DatabaseEntityHandler {
|
|
return $this->handler;
|
|
}
|
|
} |