SenseNet.ContentRepository.Storage.Schema.SchemaWriter.ModifyNodeType C# (CSharp) Метод

ModifyNodeType() публичный абстрактный Метод

public abstract ModifyNodeType ( NodeType nodeType, NodeType parent, string className ) : void
nodeType NodeType
parent NodeType
className string
Результат void
		public abstract void ModifyNodeType(NodeType nodeType, NodeType parent, string className);
		/// <summary>

Usage Example

Пример #1
0
        private static void WriteCreateOrModifyNodeTypes(SchemaEditor origSchema, SchemaEditor newSchema, List <PropertySet> modifiedPropertySets, SchemaWriter writer)
        {
            List <NodeType> _nodeTypesToEnumerate = new List <NodeType>();

            // collect only roots
            foreach (NodeType rootNodeType in newSchema.NodeTypes)
            {
                if (rootNodeType.Parent == null)
                {
                    _nodeTypesToEnumerate.Add(rootNodeType);
                }
            }

            int index = 0;

            while (index < _nodeTypesToEnumerate.Count)
            {
                NodeType currentType = _nodeTypesToEnumerate[index++];
                NodeType origType    = null;

                if (NeedToCreate <NodeType>(origSchema.NodeTypes, currentType))
                {
                    if (currentType.ClassName == null)
                    {
                        throw new InvalidSchemaException("ClassName cannot be null. NodeType: " + currentType.Name);
                    }
                    writer.CreateNodeType(currentType.Parent, currentType.Name, currentType.ClassName);
                }
                else
                {
                    origType = origSchema.NodeTypes[currentType.Name];
                    string origParentName = origType.Parent == null ? null : origType.Parent.Name;
                    string newParentName  = currentType.Parent == null ? null : currentType.Parent.Name;
                    bool   parentChanged  = origParentName != newParentName;
                    if (parentChanged || origType.ClassName != currentType.ClassName)
                    {
                        writer.ModifyNodeType(origType, currentType.Parent, currentType.ClassName);
                        if (!modifiedPropertySets.Contains(origType))
                        {
                            modifiedPropertySets.Add(origType);
                        }
                    }
                }

                // Property list (origType can be null)
                WriteAddOrRemovePropertyTypes(origType, currentType, modifiedPropertySets, writer);

                // Add children to enumerator
                _nodeTypesToEnumerate.AddRange(currentType.GetChildren());
            }
        }