classDomainOperations
final class DomainOperations
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
Checks domain laws and inclusion before admitting facts into the evaluation.
Methods§
public function registration(AbstractDomain $domain): array{string, string}Validates a domain before registering its identity and version.
Parameters
$domain | AbstractDomain | Registered implementation |
Returns
array{string, string} Identity and semantic versionThrows
EvaluationContractException If the domain violates a lattice lawTest cases 3
Called from 1
Calls 8
- method-call DomainLaws::violations() line 25
- new DomainLaws line 25
- method-call AbstractDomain::bottom() line 25
- method-call AbstractDomain::top() line 25
- new EvaluationContractException line 27
- function-call
implodeline 27 - method-call AbstractDomain::id() line 29
- method-call AbstractDomain::version() line 29
public function apply(
AbstractDomain $domain,
string $operation,
Term $left,
Term|null $right = null,
Projection $projection = new \Deriver\Deriver\Evaluator\Projection(),
): TermApplies join, widening, or projection and checks the returned fact.
Parameters
$domain | AbstractDomain | Registered lattice |
$operation | string | join, widen, or project |
$left | Term | First encoded domain fact |
$right | Term|null | Second fact for join or widening |
$projection | Projection | Requested fields |
Returns
Term Checked encoded factThrows
EvaluationContractException If the operation or returned fact violates its contractTest cases 6
DomainOperationsTest::testApplyJoinContainsBothInputFactscallsDomainOperationsTest::testApplyProjectsTheDomainRepresentationcallsDomainOperationsTest::testApplyPropagatesProviderFailurescallsDomainOperationsTest::testApplyRejectsFactsOwnedByAnotherDomaincallsDomainOperationsTest::testApplyRejectsUnknownOperationscallsDomainOperationsTest::testApplyRejectsWideningThatDoesNotContainBothInputscalls
Called from 2
Calls 9
- new Projection line 42
- new DomainFact line 44
- method-call AbstractDomain::id() line 44
- static-call Term::opaque() line 44
- method-call AbstractDomain::join() line 47
- method-call AbstractDomain::widen() line 48
- method-call AbstractDomain::project() line 49
- new EvaluationContractException line 50
- method-call AbstractDomain::lessOrEqual() line 52
public function contains(AbstractDomain $domain, Term $upper, Term $lower): boolTests inclusion without treating a provider failure as a negative answer.
Parameters
$domain | AbstractDomain | Registered lattice |
$upper | Term | Candidate containing fact |
$lower | Term | Candidate contained fact |
Returns
bool Whether the domain establishes inclusionTest cases 2
Called from 1
Calls 4
- method-call AbstractDomain::lessOrEqual() line 67
- new DomainFact line 67
- method-call AbstractDomain::id() line 67
- static-call Term::opaque() line 67
Test cases 14§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 11
DomainOperationsTest::testApplyJoinContainsBothInputFactscallsDomainOperationsTest::testApplyProjectsTheDomainRepresentationcallsDomainOperationsTest::testApplyPropagatesProviderFailurescallsDomainOperationsTest::testApplyRejectsFactsOwnedByAnotherDomaincallsDomainOperationsTest::testApplyRejectsUnknownOperationscallsDomainOperationsTest::testApplyRejectsWideningThatDoesNotContainBothInputscallsDomainOperationsTest::testContainsCannotTreatAPluginExceptionAsConvergencecallsDomainOperationsTest::testContainsRequiresTheDeclaredInclusionDirectioncallsDomainOperationsTest::testRegistrationChecksTheLatticeBeforeAcceptingItsIdentitycallsDomainOperationsTest::testRegistrationPropagatesProviderFailurescallsDomainOperationsTest::testRegistrationRejectsViolationsOfTheDeclaredLawscalls
Other tests reaching this symbol 3
ExtensionsTestcallsLatticeTestcallsObservationCollectorTestcalls
Relations§
Instantiated in 4
- new Deriver\Deriver\Evaluator\Call\Extensions::__construct() packages/deriver/src/Deriver/Evaluator/Call/Extensions.php:53
- new Deriver\Deriver\Evaluator\Domain\Lattice::compatible() packages/deriver/src/Deriver/Evaluator/Domain/Lattice.php:129
- new Deriver\Deriver\Evaluator\Domain\Lattice::widen() packages/deriver/src/Deriver/Evaluator/Domain/Lattice.php:174
- new Deriver\Deriver\Evaluator\Execution\ObservationCollector::project() packages/deriver/src/Deriver/Evaluator/Execution/ObservationCollector.php:159
Method calls 4
- method-call Deriver\Deriver\Evaluator\Call\Extensions::__construct() packages/deriver/src/Deriver/Evaluator/Call/Extensions.php:53
- method-call Deriver\Deriver\Evaluator\Domain\Lattice::compatible() packages/deriver/src/Deriver/Evaluator/Domain/Lattice.php:129
- method-call Deriver\Deriver\Evaluator\Domain\Lattice::widen() packages/deriver/src/Deriver/Evaluator/Domain/Lattice.php:174
- method-call Deriver\Deriver\Evaluator\Execution\ObservationCollector::project() packages/deriver/src/Deriver/Evaluator/Execution/ObservationCollector.php:159