final class NodeAggregateCommandHandler implements CommandHandlerInterface (View source)

internal  from userland, you'll use ContentRepository::handle to dispatch commands
 

Traits

Properties

protected $propertyConverter

Methods

NodeTypeManager
getNodeTypeManager()

No description

DimensionSpacePointSet
getAllowedDimensionSubspace()

No description

void
requireContentStreamToExist(ContentStreamId $contentStreamId, ContentRepository $contentRepository)

No description

void
requireDimensionSpacePointToExist(DimensionSpacePoint $dimensionSpacePoint)

No description

NodeType
requireNodeType(NodeTypeName $nodeTypeName)

No description

void
requireNodeTypeToNotBeAbstract(NodeType $nodeType)

No description

void
requireNodeTypeToBeOfTypeRoot(NodeType $nodeType)

No description

void
requireNodeTypeToNotBeOfTypeRoot(NodeType $nodeType)

No description

void
requireTetheredDescendantNodeTypesToExist(NodeType $nodeType)

No description

void
requireTetheredDescendantNodeTypesToNotBeOfTypeRoot(NodeType $nodeType)

No description

void
requireNodeTypeToDeclareProperty(NodeTypeName $nodeTypeName, PropertyName $propertyName)

No description

void
requireNodeTypeToDeclareReference(NodeTypeName $nodeTypeName, ReferenceName $propertyName)

No description

void
requireNodeTypeToAllowNodesOfTypeInReference(NodeTypeName $nodeTypeName, ReferenceName $referenceName, NodeTypeName $nodeTypeNameInQuestion)

No description

void
requireConstraintsImposedByAncestorsAreMet(ContentStreamId $contentStreamId, NodeType $nodeType, NodeName|null $nodeName, array $parentNodeAggregateIds, ContentRepository $contentRepository)

NodeType and NodeName must belong together to the same node, which is the to-be-checked one.

void
requireNodeTypeConstraintsImposedByParentToBeMet(NodeType $parentsNodeType, NodeName|null $nodeName, NodeType $nodeType)

No description

bool
areNodeTypeConstraintsImposedByParentValid(NodeType $parentsNodeType, NodeName|null $nodeName, NodeType $nodeType)

No description

void
requireNodeTypeConstraintsImposedByGrandparentToBeMet(NodeType $grandParentsNodeType, NodeName|null $parentNodeName, NodeType $nodeType)

No description

bool
areNodeTypeConstraintsImposedByGrandparentValid(NodeType $grandParentsNodeType, NodeName|null $parentNodeName, NodeType $nodeType)

No description

NodeAggregate
requireProjectedNodeAggregate(ContentStreamId $contentStreamId, NodeAggregateId $nodeAggregateId, ContentRepository $contentRepository)

No description

void
requireProjectedNodeAggregateToNotExist(ContentStreamId $contentStreamId, NodeAggregateId $nodeAggregateId, ContentRepository $contentRepository)

No description

NodeAggregate
requireProjectedParentNodeAggregate(ContentStreamId $contentStreamId, NodeAggregateId $childNodeAggregateId, OriginDimensionSpacePoint $childOriginDimensionSpacePoint, ContentRepository $contentRepository)

No description

void
requireNodeAggregateToCoverDimensionSpacePoint(NodeAggregate $nodeAggregate, DimensionSpacePoint $dimensionSpacePoint)

No description

void
requireNodeAggregateToCoverDimensionSpacePoints(NodeAggregate $nodeAggregate, DimensionSpacePointSet $dimensionSpacePointSet)

No description

void
requireNodeAggregateToNotBeRoot(NodeAggregate $nodeAggregate)

No description

void
requireNodeAggregateToBeUntethered(NodeAggregate $nodeAggregate)

No description

void
requireNodeAggregateToNotBeDescendant(ContentStreamId $contentStreamId, NodeAggregate $nodeAggregate, NodeAggregate $referenceNodeAggregate, ContentRepository $contentRepository)

No description

void
requireNodeNameToBeUnoccupied(ContentStreamId $contentStreamId, NodeName|null $nodeName, NodeAggregateId $parentNodeAggregateId, OriginDimensionSpacePoint $parentOriginDimensionSpacePoint, DimensionSpacePointSet $dimensionSpacePoints, ContentRepository $contentRepository)

No description

void
requireNodeNameToBeUncovered(ContentStreamId $contentStreamId, NodeName|null $nodeName, NodeAggregateId $parentNodeAggregateId, DimensionSpacePointSet $dimensionSpacePointsToBeCovered, ContentRepository $contentRepository)

No description

void
requireNodeAggregateToOccupyDimensionSpacePoint(NodeAggregate $nodeAggregate, OriginDimensionSpacePoint $originDimensionSpacePoint)

No description

void
requireNodeAggregateToNotOccupyDimensionSpacePoint(NodeAggregate $nodeAggregate, OriginDimensionSpacePoint $originDimensionSpacePoint)

No description

void
requireNodeAggregateToDisableDimensionSpacePoint(NodeAggregate $nodeAggregate, DimensionSpacePoint $dimensionSpacePoint)

No description

void
requireNodeAggregateToNotDisableDimensionSpacePoint(NodeAggregate $nodeAggregate, DimensionSpacePoint $dimensionSpacePoint)

No description

void
validateReferenceProperties(ReferenceName $referenceName, PropertyValuesToWrite $referenceProperties, NodeTypeName $nodeTypeName)

No description

populateNodeAggregateIds(NodeType $nodeType, NodeAggregateIdsByNodePaths $nodeAggregateIds, NodePath $childPath = null)

No description

EventsToPublish
handleEnableNodeAggregate(EnableNodeAggregate $command, ContentRepository $contentRepository)

No description

void
requireNodeAggregateNotToBeTethered(NodeAggregate $nodeAggregate)

No description

Events
createEventsForMissingTetheredNode(NodeAggregate $parentNodeAggregate, Node $parentNode, NodeName $tetheredNodeName, NodeAggregateId|null $tetheredNodeAggregateId, NodeType $expectedTetheredNodeType, ContentRepository $contentRepository)

This is the remediation action for non-existing tethered nodes.

Events
createEventsForVariations(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, ContentRepository $contentRepository)

No description

Events
handleCreateNodeSpecializationVariant(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, ContentRepository $contentRepository)

No description

array
collectNodeSpecializationVariantsThatWillHaveBeenCreated(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, DimensionSpacePointSet $specializationVisibility, array $events, ContentRepository $contentRepository)

No description

Events
handleCreateNodeGeneralizationVariant(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, ContentRepository $contentRepository)

No description

array
collectNodeGeneralizationVariantsThatWillHaveBeenCreated(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, DimensionSpacePointSet $generalizationVisibility, array $events, ContentRepository $contentRepository)

No description

Events
handleCreateNodePeerVariant(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, ContentRepository $contentRepository)

No description

array
collectNodePeerVariantsThatWillHaveBeenCreated(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, DimensionSpacePointSet $peerVisibility, array $events, ContentRepository $contentRepository)

No description

__construct(NodeTypeManager $nodeTypeManager, ContentDimensionZookeeper $contentDimensionZookeeper, InterDimensionalVariationGraph $interDimensionalVariationGraph, PropertyConverter $propertyConverter)

No description

bool
canHandle(CommandInterface $command)

No description

EventsToPublish
handle(CommandInterface $command, ContentRepository $contentRepository)

No description

void
withoutAncestorNodeTypeConstraintChecks(Closure $callback)

Use this closure to run code with the Ancestor Node Type Checks disabled; e.g.

void
checkConstraintsImposedByAncestors(ChangeNodeAggregateType $command, ContentRepository $contentRepository)

No description

Details

protected NodeTypeManager getNodeTypeManager()

No description

Return Value

NodeTypeManager

protected DimensionSpacePointSet getAllowedDimensionSubspace()

No description

Return Value

DimensionSpacePointSet

protected void requireContentStreamToExist(ContentStreamId $contentStreamId, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
ContentRepository $contentRepository

Return Value

void

Exceptions

ContentStreamDoesNotExistYet

protected void requireDimensionSpacePointToExist(DimensionSpacePoint $dimensionSpacePoint)

No description

Parameters

DimensionSpacePoint $dimensionSpacePoint

Return Value

void

Exceptions

DimensionSpacePointNotFound

protected NodeType requireNodeType(NodeTypeName $nodeTypeName)

No description

Parameters

NodeTypeName $nodeTypeName

Return Value

NodeType

Exceptions

NodeTypeNotFound

protected void requireNodeTypeToNotBeAbstract(NodeType $nodeType)

No description

Parameters

NodeType $nodeType

Return Value

void

protected void requireNodeTypeToBeOfTypeRoot(NodeType $nodeType)

No description

Parameters

NodeType $nodeType

Return Value

void

Exceptions

NodeTypeIsNotOfTypeRoot

protected void requireNodeTypeToNotBeOfTypeRoot(NodeType $nodeType)

No description

Parameters

NodeType $nodeType

Return Value

void

Exceptions

NodeTypeIsOfTypeRoot

protected void requireTetheredDescendantNodeTypesToExist(NodeType $nodeType)

No description

Parameters

NodeType $nodeType

Return Value

void

Exceptions

NodeTypeNotFoundException

protected void requireTetheredDescendantNodeTypesToNotBeOfTypeRoot(NodeType $nodeType)

No description

Parameters

NodeType $nodeType

Return Value

void

Exceptions

NodeTypeIsOfTypeRoot

protected void requireNodeTypeToDeclareProperty(NodeTypeName $nodeTypeName, PropertyName $propertyName)

No description

Parameters

NodeTypeName $nodeTypeName
PropertyName $propertyName

Return Value

void

protected void requireNodeTypeToDeclareReference(NodeTypeName $nodeTypeName, ReferenceName $propertyName)

No description

Parameters

NodeTypeName $nodeTypeName
ReferenceName $propertyName

Return Value

void

protected void requireNodeTypeToAllowNodesOfTypeInReference(NodeTypeName $nodeTypeName, ReferenceName $referenceName, NodeTypeName $nodeTypeNameInQuestion)

No description

Parameters

NodeTypeName $nodeTypeName
ReferenceName $referenceName
NodeTypeName $nodeTypeNameInQuestion

Return Value

void

protected void requireConstraintsImposedByAncestorsAreMet(ContentStreamId $contentStreamId, NodeType $nodeType, NodeName|null $nodeName, array $parentNodeAggregateIds, ContentRepository $contentRepository)

NodeType and NodeName must belong together to the same node, which is the to-be-checked one.

Parameters

ContentStreamId $contentStreamId
NodeType $nodeType
NodeName|null $nodeName
array $parentNodeAggregateIds
ContentRepository $contentRepository

Return Value

void

Exceptions

NodeConstraintException

protected void requireNodeTypeConstraintsImposedByParentToBeMet(NodeType $parentsNodeType, NodeName|null $nodeName, NodeType $nodeType)

No description

Parameters

NodeType $parentsNodeType
NodeName|null $nodeName
NodeType $nodeType

Return Value

void

Exceptions

NodeTypeNotFoundException
NodeConstraintException

protected bool areNodeTypeConstraintsImposedByParentValid(NodeType $parentsNodeType, NodeName|null $nodeName, NodeType $nodeType)

No description

Parameters

NodeType $parentsNodeType
NodeName|null $nodeName
NodeType $nodeType

Return Value

bool

protected void requireNodeTypeConstraintsImposedByGrandparentToBeMet(NodeType $grandParentsNodeType, NodeName|null $parentNodeName, NodeType $nodeType)

No description

Parameters

NodeType $grandParentsNodeType
NodeName|null $parentNodeName
NodeType $nodeType

Return Value

void

Exceptions

NodeConstraintException

protected bool areNodeTypeConstraintsImposedByGrandparentValid(NodeType $grandParentsNodeType, NodeName|null $parentNodeName, NodeType $nodeType)

No description

Parameters

NodeType $grandParentsNodeType
NodeName|null $parentNodeName
NodeType $nodeType

Return Value

bool

protected NodeAggregate requireProjectedNodeAggregate(ContentStreamId $contentStreamId, NodeAggregateId $nodeAggregateId, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
NodeAggregateId $nodeAggregateId
ContentRepository $contentRepository

Return Value

NodeAggregate

Exceptions

NodeAggregatesTypeIsAmbiguous
NodeAggregateCurrentlyDoesNotExist

protected void requireProjectedNodeAggregateToNotExist(ContentStreamId $contentStreamId, NodeAggregateId $nodeAggregateId, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
NodeAggregateId $nodeAggregateId
ContentRepository $contentRepository

Return Value

void

Exceptions

NodeAggregatesTypeIsAmbiguous
NodeAggregateCurrentlyExists

NodeAggregate requireProjectedParentNodeAggregate(ContentStreamId $contentStreamId, NodeAggregateId $childNodeAggregateId, OriginDimensionSpacePoint $childOriginDimensionSpacePoint, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
NodeAggregateId $childNodeAggregateId
OriginDimensionSpacePoint $childOriginDimensionSpacePoint
ContentRepository $contentRepository

Return Value

NodeAggregate

Exceptions

NodeAggregateCurrentlyDoesNotExist

protected void requireNodeAggregateToCoverDimensionSpacePoint(NodeAggregate $nodeAggregate, DimensionSpacePoint $dimensionSpacePoint)

No description

Parameters

NodeAggregate $nodeAggregate
DimensionSpacePoint $dimensionSpacePoint

Return Value

void

Exceptions

NodeAggregateDoesCurrentlyNotCoverDimensionSpacePoint

protected void requireNodeAggregateToCoverDimensionSpacePoints(NodeAggregate $nodeAggregate, DimensionSpacePointSet $dimensionSpacePointSet)

No description

Parameters

NodeAggregate $nodeAggregate
DimensionSpacePointSet $dimensionSpacePointSet

Return Value

void

Exceptions

NodeAggregateDoesCurrentlyNotCoverDimensionSpacePointSet

protected void requireNodeAggregateToNotBeRoot(NodeAggregate $nodeAggregate)

No description

Parameters

NodeAggregate $nodeAggregate

Return Value

void

Exceptions

NodeAggregateIsRoot

protected void requireNodeAggregateToBeUntethered(NodeAggregate $nodeAggregate)

No description

Parameters

NodeAggregate $nodeAggregate

Return Value

void

Exceptions

NodeAggregateIsTethered

protected void requireNodeAggregateToNotBeDescendant(ContentStreamId $contentStreamId, NodeAggregate $nodeAggregate, NodeAggregate $referenceNodeAggregate, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
NodeAggregate $nodeAggregate
NodeAggregate $referenceNodeAggregate
ContentRepository $contentRepository

Return Value

void

Exceptions

NodeAggregateIsDescendant

protected void requireNodeNameToBeUnoccupied(ContentStreamId $contentStreamId, NodeName|null $nodeName, NodeAggregateId $parentNodeAggregateId, OriginDimensionSpacePoint $parentOriginDimensionSpacePoint, DimensionSpacePointSet $dimensionSpacePoints, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
NodeName|null $nodeName
NodeAggregateId $parentNodeAggregateId
OriginDimensionSpacePoint $parentOriginDimensionSpacePoint
DimensionSpacePointSet $dimensionSpacePoints
ContentRepository $contentRepository

Return Value

void

Exceptions

NodeNameIsAlreadyOccupied

protected void requireNodeNameToBeUncovered(ContentStreamId $contentStreamId, NodeName|null $nodeName, NodeAggregateId $parentNodeAggregateId, DimensionSpacePointSet $dimensionSpacePointsToBeCovered, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
NodeName|null $nodeName
NodeAggregateId $parentNodeAggregateId
DimensionSpacePointSet $dimensionSpacePointsToBeCovered
ContentRepository $contentRepository

Return Value

void

Exceptions

NodeNameIsAlreadyCovered

protected void requireNodeAggregateToOccupyDimensionSpacePoint(NodeAggregate $nodeAggregate, OriginDimensionSpacePoint $originDimensionSpacePoint)

No description

Parameters

NodeAggregate $nodeAggregate
OriginDimensionSpacePoint $originDimensionSpacePoint

Return Value

void

Exceptions

DimensionSpacePointIsNotYetOccupied

protected void requireNodeAggregateToNotOccupyDimensionSpacePoint(NodeAggregate $nodeAggregate, OriginDimensionSpacePoint $originDimensionSpacePoint)

No description

Parameters

NodeAggregate $nodeAggregate
OriginDimensionSpacePoint $originDimensionSpacePoint

Return Value

void

Exceptions

DimensionSpacePointIsAlreadyOccupied

protected void requireNodeAggregateToDisableDimensionSpacePoint(NodeAggregate $nodeAggregate, DimensionSpacePoint $dimensionSpacePoint)

No description

Parameters

NodeAggregate $nodeAggregate
DimensionSpacePoint $dimensionSpacePoint

Return Value

void

Exceptions

NodeAggregateCurrentlyDoesNotDisableDimensionSpacePoint

protected void requireNodeAggregateToNotDisableDimensionSpacePoint(NodeAggregate $nodeAggregate, DimensionSpacePoint $dimensionSpacePoint)

No description

Parameters

NodeAggregate $nodeAggregate
DimensionSpacePoint $dimensionSpacePoint

Return Value

void

Exceptions

NodeAggregateCurrentlyDisablesDimensionSpacePoint

protected void validateReferenceProperties(ReferenceName $referenceName, PropertyValuesToWrite $referenceProperties, NodeTypeName $nodeTypeName)

No description

Parameters

ReferenceName $referenceName
PropertyValuesToWrite $referenceProperties
NodeTypeName $nodeTypeName

Return Value

void

protected InterDimensionalVariationGraph getInterDimensionalVariationGraph()

No description

protected bool areAncestorNodeTypeConstraintChecksEnabled()

No description

Return Value

bool

PropertyConverter getPropertyConverter()

No description

Return Value

PropertyConverter

abstract static protected NodeAggregateIdsByNodePaths populateNodeAggregateIds(NodeType $nodeType, NodeAggregateIdsByNodePaths $nodeAggregateIds, NodePath $childPath = null)

No description

Parameters

NodeType $nodeType
NodeAggregateIdsByNodePaths $nodeAggregateIds
NodePath $childPath

Return Value

NodeAggregateIdsByNodePaths

EventsToPublish handleEnableNodeAggregate(EnableNodeAggregate $command, ContentRepository $contentRepository)

No description

Parameters

EnableNodeAggregate $command
ContentRepository $contentRepository

Return Value

EventsToPublish

Exceptions

ContentStreamDoesNotExistYet
DimensionSpacePointNotFound
NodeAggregatesTypeIsAmbiguous

protected void requireNodeAggregateNotToBeTethered(NodeAggregate $nodeAggregate)

No description

Parameters

NodeAggregate $nodeAggregate

Return Value

void

protected Events createEventsForMissingTetheredNode(NodeAggregate $parentNodeAggregate, Node $parentNode, NodeName $tetheredNodeName, NodeAggregateId|null $tetheredNodeAggregateId, NodeType $expectedTetheredNodeType, ContentRepository $contentRepository)

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.

Parameters

NodeAggregate $parentNodeAggregate
Node $parentNode
NodeName $tetheredNodeName
NodeAggregateId|null $tetheredNodeAggregateId
NodeType $expectedTetheredNodeType
ContentRepository $contentRepository

Return Value

Events

Exceptions

Exception

protected Events createEventsForVariations(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
OriginDimensionSpacePoint $sourceOrigin
OriginDimensionSpacePoint $targetOrigin
NodeAggregate $nodeAggregate
ContentRepository $contentRepository

Return Value

Events

protected Events handleCreateNodeSpecializationVariant(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
OriginDimensionSpacePoint $sourceOrigin
OriginDimensionSpacePoint $targetOrigin
NodeAggregate $nodeAggregate
ContentRepository $contentRepository

Return Value

Events

protected array collectNodeSpecializationVariantsThatWillHaveBeenCreated(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, DimensionSpacePointSet $specializationVisibility, array $events, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
OriginDimensionSpacePoint $sourceOrigin
OriginDimensionSpacePoint $targetOrigin
NodeAggregate $nodeAggregate
DimensionSpacePointSet $specializationVisibility
array $events
ContentRepository $contentRepository

Return Value

array

protected Events handleCreateNodeGeneralizationVariant(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
OriginDimensionSpacePoint $sourceOrigin
OriginDimensionSpacePoint $targetOrigin
NodeAggregate $nodeAggregate
ContentRepository $contentRepository

Return Value

Events

protected array collectNodeGeneralizationVariantsThatWillHaveBeenCreated(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, DimensionSpacePointSet $generalizationVisibility, array $events, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
OriginDimensionSpacePoint $sourceOrigin
OriginDimensionSpacePoint $targetOrigin
NodeAggregate $nodeAggregate
DimensionSpacePointSet $generalizationVisibility
array $events
ContentRepository $contentRepository

Return Value

array

protected Events handleCreateNodePeerVariant(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
OriginDimensionSpacePoint $sourceOrigin
OriginDimensionSpacePoint $targetOrigin
NodeAggregate $nodeAggregate
ContentRepository $contentRepository

Return Value

Events

protected array collectNodePeerVariantsThatWillHaveBeenCreated(ContentStreamId $contentStreamId, OriginDimensionSpacePoint $sourceOrigin, OriginDimensionSpacePoint $targetOrigin, NodeAggregate $nodeAggregate, DimensionSpacePointSet $peerVisibility, array $events, ContentRepository $contentRepository)

No description

Parameters

ContentStreamId $contentStreamId
OriginDimensionSpacePoint $sourceOrigin
OriginDimensionSpacePoint $targetOrigin
NodeAggregate $nodeAggregate
DimensionSpacePointSet $peerVisibility
array $events
ContentRepository $contentRepository

Return Value

array

__construct(NodeTypeManager $nodeTypeManager, ContentDimensionZookeeper $contentDimensionZookeeper, InterDimensionalVariationGraph $interDimensionalVariationGraph, PropertyConverter $propertyConverter)

No description

Parameters

NodeTypeManager $nodeTypeManager
ContentDimensionZookeeper $contentDimensionZookeeper
InterDimensionalVariationGraph $interDimensionalVariationGraph
PropertyConverter $propertyConverter

bool canHandle(CommandInterface $command)

No description

Parameters

CommandInterface $command

Return Value

bool

EventsToPublish handle(CommandInterface $command, ContentRepository $contentRepository)

No description

Parameters

CommandInterface $command
ContentRepository $contentRepository

Return Value

EventsToPublish

void withoutAncestorNodeTypeConstraintChecks(Closure $callback)

Use this closure to run code with the Ancestor Node Type Checks disabled; e.g.

during imports.

You can disable this because many old sites have this constraint violated more or less; and it's easy to fix later on; as it does not touch the fundamental integrity of the CR.

Parameters

Closure $callback

Return Value

void

protected void checkConstraintsImposedByAncestors(ChangeNodeAggregateType $command, ContentRepository $contentRepository)

No description

perhaps reuse when ChangeNodeAggregateType is reimplemented

Parameters

ChangeNodeAggregateType $command
ContentRepository $contentRepository

Return Value

void