TetheredNodeInternals
trait TetheredNodeInternals (View source)
| internal | implementation details of command handlers |
Traits
Methods
A node aggregate's order of {NodeAggregate::$occupiedDimensionSpacePoints} is undefined as returned from the database.
FIXME: This method might make sense on the InterDimensionVariationGraph but for this an explicit distinctions of unordered Set and List value objects for dimension space points is required. Currently we have Set value objects that still have sometimes an order with meaning.
No description
No description
No description
No description
No description
No description
No description
No description
No description
This is the remediation action for non-existing tethered nodes.
No description
No description
Details
final protected OriginDimensionSpacePointSet
requireOrderedOccupiedDimensionSpacePoints(NodeAggregate $nodeAggregate)
A node aggregate's order of {NodeAggregate::$occupiedDimensionSpacePoints} is undefined as returned from the database.
Before using this unorder to emit events we use the interdimensional variation graph to order them into a flattened tree according to configuration.
final protected OriginDimensionSpacePointSet
requireOrderedOriginDimensionSpacePoints(OriginDimensionSpacePointSet $affectedOriginDimensionSpacePoints)
FIXME: This method might make sense on the InterDimensionVariationGraph but for this an explicit distinctions of unordered Set and List value objects for dimension space points is required. Currently we have Set value objects that still have sometimes an order with meaning.
abstract protected InterDimensionalVariationGraph
getInterDimensionalVariationGraph()
No description
abstract protected Events
createEventsForVariations(ContentGraphInterface $contentGraph, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, NodeAggregate|null $parentNodeAggregateForCoverageFilter)
No description
protected Events
handleCreateNodeSpecializationVariant(ContentGraphInterface $contentGraph, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, NodeAggregate|null $parentNodeAggregateForCoverageFilter)
No description
protected array
collectNodeSpecializationVariantsThatWillHaveBeenCreated(ContentGraphInterface $contentGraph, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, DimensionSpacePointSet $specializationVisibility, array $events)
No description
protected Events
handleCreateNodeGeneralizationVariant(ContentGraphInterface $contentGraph, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, NodeAggregate|null $parentNodeAggregateForCoverageFilter)
No description
protected array
collectNodeGeneralizationVariantsThatWillHaveBeenCreated(ContentGraphInterface $contentGraph, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, DimensionSpacePointSet $generalizationVisibility, array $events)
No description
protected Events
handleCreateNodePeerVariant(ContentGraphInterface $contentGraph, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, NodeAggregate|null $parentNodeAggregateForCoverageFilter)
No description
protected array
collectNodePeerVariantsThatWillHaveBeenCreated(ContentGraphInterface $contentGraph, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, DimensionSpacePointSet $peerVisibility, array $events)
No description
abstract protected PropertyConverter
getPropertyConverter()
No description
protected Events
createEventsForMissingTetheredNode(ContentGraphInterface $contentGraph, NodeAggregateId $parentNodeAggregateId, NodeTypeName $parentNodeTypeName, DimensionSpacePointSet $parentNodeAggregateCoverageByOccupant, OriginDimensionSpacePoint $originDimensionSpacePoint, TetheredNodeTypeDefinition $tetheredNodeTypeDefinition, NodeAggregateId|null $tetheredNodeAggregateId)
This is the remediation action for non-existing tethered nodes.
It handles two cases:
- there is no tethered node IN ANY DimensionSpacePoint -> we can simply create it
- there is a tethered node already in some DimensionSpacePoint -> we need to specialize/generalize/... the other Tethered Node.
protected array
createEventsForMissingTetheredNodeAggregate(ContentGraphInterface $contentGraph, TetheredNodeTypeDefinition $tetheredNodeTypeDefinition, OriginDimensionSpacePointSet $affectedOriginDimensionSpacePoints, CoverageByOrigin $coverageByOrigin, NodeAggregateId $parentNodeAggregateId, NodeAggregateId|null $succeedingSiblingNodeAggregateId, NodeAggregateIdsByNodePaths $nodeAggregateIdsByNodePaths, NodePath $currentNodePath)
No description
protected Events
createEventsForWronglyTypedNodeAggregate(ContentGraphInterface $contentGraph, NodeAggregate $nodeAggregate, NodeTypeName $newNodeTypeName, NodeAggregateIdsByNodePaths $nodeAggregateIdsByNodePaths, NodePath $currentNodePath, NodeAggregateTypeChangeChildConstraintConflictResolutionStrategy|NodeAggregateTypeChangeChildConstraintConflictResolutionMarkWithTagStrategy $conflictResolutionStrategy, NodeAggregateIds $alreadyRemovedNodeAggregateIds)
No description