11using System . Collections . Generic ;
2- using System . Linq ;
32using System . Xml . Linq ;
43using ReClassNET . DataExchange . ReClass ;
54using ReClassNET . Logger ;
@@ -27,32 +26,10 @@ public class WeakPtrNodeConverter : ICustomNodeSerializer
2726 /// <param name="parent">The parent of the node.</param>
2827 /// <param name="classes">The list of classes which correspond to the node.</param>
2928 /// <param name="logger">The logger used to output messages.</param>
30- /// <param name="node">[out] The node for the xml element.</param>
3129 /// <returns>True if a node was created, otherwise false.</returns>
32- public bool TryCreateNodeFromElement ( XElement element , BaseNode parent , IEnumerable < ClassNode > classes , ILogger logger , CreateNodeFromElementHandler defaultHandler , out BaseNode node )
30+ public BaseNode CreateNodeFromElement ( XElement element , BaseNode parent , IEnumerable < ClassNode > classes , ILogger logger , CreateNodeFromElementHandler defaultHandler )
3331 {
34- node = null ;
35-
36- var reference = NodeUuid . FromBase64String ( element . Attribute ( ReClassNetFile . XmlReferenceAttribute ) ? . Value , false ) ;
37- var innerClass = classes . FirstOrDefault ( c => c . Uuid . Equals ( reference ) ) ;
38- if ( innerClass == null )
39- {
40- logger . Log ( LogLevel . Warning , $ "Skipping node with unknown reference: { reference } ") ;
41- logger . Log ( LogLevel . Warning , element . ToString ( ) ) ;
42-
43- return false ;
44- }
45-
46- var weakPtrNode = new WeakPtrNode
47- {
48- Name = element . Attribute ( ReClassNetFile . XmlNameAttribute ) ? . Value ?? string . Empty ,
49- Comment = element . Attribute ( ReClassNetFile . XmlCommentAttribute ) ? . Value ?? string . Empty
50- } ;
51- weakPtrNode . ChangeInnerNode ( innerClass ) ;
52-
53- node = weakPtrNode ;
54-
55- return true ;
32+ return new WeakPtrNode ( ) ;
5633 }
5734
5835 /// <summary>Creates a xml element from the node. This method gets only called if <see cref="CanHandleNode(BaseNode)"/> returned true.</summary>
@@ -63,10 +40,7 @@ public XElement CreateElementFromNode(BaseNode node, ILogger logger, CreateEleme
6340 {
6441 return new XElement (
6542 ReClassNetFile . XmlNodeElement ,
66- new XAttribute ( ReClassNetFile . XmlNameAttribute , node . Name ?? string . Empty ) ,
67- new XAttribute ( ReClassNetFile . XmlCommentAttribute , node . Comment ?? string . Empty ) ,
68- new XAttribute ( ReClassNetFile . XmlTypeAttribute , XmlType ) ,
69- new XAttribute ( ReClassNetFile . XmlReferenceAttribute , ( ( ClassNode ) ( ( WeakPtrNode ) node ) . InnerNode ) . Uuid . ToBase64String ( ) )
43+ new XAttribute ( ReClassNetFile . XmlTypeAttribute , XmlType )
7044 ) ;
7145 }
7246 }
0 commit comments