private function GetDepedencyOrderBetweenInternal($ForPersising, ITable $OtherTable, $Reversed = false)
{
foreach ($this->AllRelations as $Relation) {
if ($Relation->GetTable()->Is($OtherTable)) {
if ($ForPersising) {
return $Relation->GetPersistingDependencyOrder();
} else {
return $Relation->GetDiscardingDependencyOrder();
}
}
}
if ($Reversed) {
return null;
} else {
$DependendencyOrder = $OtherTable->GetDepedencyOrderBetweenInternal($ForPersising, $this, true);
if ($DependendencyOrder === DependencyOrder::After) {
return DependencyOrder::Before;
} else {
if ($DependendencyOrder === DependencyOrder::Before) {
return DependencyOrder::After;
} else {
return null;
}
}
}
}