Neos\Neos\Service\NodeTypeSchemaBuilder::generateConstraints PHP Method

generateConstraints() protected method

Generate the list of allowed sub-node-types per parent-node-type and child-node-name.
protected generateConstraints ( ) : array
return array constraints
    protected function generateConstraints()
    {
        $constraints = array();
        $nodeTypes = $this->nodeTypeManager->getNodeTypes(true);
        /** @var NodeType $nodeType */
        foreach ($nodeTypes as $nodeTypeName => $nodeType) {
            $constraints[$nodeTypeName] = array('nodeTypes' => array(), 'childNodes' => array());
            foreach ($nodeTypes as $innerNodeTypeName => $innerNodeType) {
                if ($nodeType->allowsChildNodeType($innerNodeType)) {
                    $constraints[$nodeTypeName]['nodeTypes'][$innerNodeTypeName] = true;
                }
            }
            foreach ($nodeType->getAutoCreatedChildNodes() as $key => $_x) {
                foreach ($nodeTypes as $innerNodeTypeName => $innerNodeType) {
                    if ($nodeType->allowsGrandchildNodeType($key, $innerNodeType)) {
                        $constraints[$nodeTypeName]['childNodes'][$key]['nodeTypes'][$innerNodeTypeName] = true;
                    }
                }
            }
        }
        return $constraints;
    }