public BaseNode CreateNodeFromElement(XElement element, BaseNode parent, IEnumerable <ClassNode> classes, ILogger logger, CreateNodeFromElementHandler defaultHandler)
        {
            Contract.Requires(element != null);
            Contract.Requires(CanHandleElement(element));
            Contract.Requires(parent != null);
            Contract.Requires(classes != null);
            Contract.Requires(Contract.ForAll(classes, c => c != null));
            Contract.Requires(logger != null);
            Contract.Requires(defaultHandler != null);

            throw new NotImplementedException();
        }
        public BaseNode CreateNodeFromElement(XElement element, BaseNode parent, IEnumerable <ClassNode> classes, ILogger logger, CreateNodeFromElementHandler createNodeFromElement)
        {
            if (!stringToTypeMap.TryGetValue(element.Attribute(ReClassNetFile.XmlTypeAttribute)?.Value ?? string.Empty, out var nodeType))
            {
                logger.Log(LogLevel.Error, $"Skipping node with unknown type: {element.Attribute(ReClassNetFile.XmlTypeAttribute)?.Value}");
                logger.Log(LogLevel.Warning, element.ToString());

                return(null);
            }

            return(BaseNode.CreateInstanceFromType(nodeType, false));
        }
Exemple #3
0
 /// <summary>Creates a node from the xml element. This method gets only called if <see cref="CanHandleElement(XElement)"/> returned true.</summary>
 /// <param name="element">The element to create the node from.</param>
 /// <param name="parent">The parent of the node.</param>
 /// <param name="classes">The list of classes which correspond to the node.</param>
 /// <param name="logger">The logger used to output messages.</param>
 /// <returns>True if a node was created, otherwise false.</returns>
 public BaseNode CreateNodeFromElement(XElement element, BaseNode parent, IEnumerable <ClassNode> classes, ILogger logger, CreateNodeFromElementHandler defaultHandler)
 {
     return(new WeakPtrNode());
 }