77
88namespace FrostbitePlugin
99{
10+ /// <summary>A schema for the WeakPtrNode.</summary>
1011 class WeakPtrSchemaNode : SchemaCustomNode
1112 {
1213 public SchemaClassNode InnerNode { get ; }
@@ -21,15 +22,30 @@ public WeakPtrSchemaNode(SchemaClassNode inner)
2122
2223 class WeakPtrSchemaConverter : ICustomSchemaConverter
2324 {
25+ /// <summary>Name of the type used in the XML data.</summary>
2426 private const string XmlType = "FrostBite::WeakPtr" ;
2527
26- public bool CanReadNode ( BaseNode node ) => node is WeakPtrNode ;
28+ /// <summary>Checks if the node can be handled.</summary>
29+ /// <param name="node">The node to check.</param>
30+ /// <returns>True if we can handle the node, false if not.</returns>
31+ public bool CanHandleNode ( BaseNode node ) => node is WeakPtrNode ;
2732
28- public bool CanReadNode ( XElement element ) => element . Attribute ( ReClassNetFile . XmlTypeAttribute ) ? . Value == XmlType ;
33+ /// <summary>Checks if the element can be handled.</summary>
34+ /// <param name="element">The element to check.</param>
35+ /// <returns>True if we can read node, false if not.</returns>
36+ public bool CanHandleElement ( XElement element ) => element . Attribute ( ReClassNetFile . XmlTypeAttribute ) ? . Value == XmlType ;
2937
30- public bool CanWriteNode ( SchemaCustomNode node ) => node is WeakPtrSchemaNode ;
38+ /// <summary>Checks if the schema can be handled.</summary>
39+ /// <param name="schema">The schema to check.</param>
40+ /// <returns>True if we can handle schema, false if not.</returns>
41+ public bool CanHandleSchema ( SchemaCustomNode schema ) => schema is WeakPtrSchemaNode ;
3142
32- public SchemaCustomNode ReadFromNode ( BaseNode node , IReadOnlyDictionary < ClassNode , SchemaClassNode > classes , ILogger logger )
43+ /// <summary>Creates the schema which represents the node.</summary>
44+ /// <param name="node">The node to convert.</param>
45+ /// <param name="classes">The mapping from classes to their schema.</param>
46+ /// <param name="logger">The logger.</param>
47+ /// <returns>The schema which represents the node.</returns>
48+ public SchemaCustomNode CreateSchemaFromNode ( BaseNode node , IReadOnlyDictionary < ClassNode , SchemaClassNode > classes , ILogger logger )
3349 {
3450 return new WeakPtrSchemaNode ( classes [ ( node as WeakPtrNode ) . InnerNode as ClassNode ] )
3551 {
@@ -38,7 +54,12 @@ public SchemaCustomNode ReadFromNode(BaseNode node, IReadOnlyDictionary<ClassNod
3854 } ;
3955 }
4056
41- public SchemaCustomNode ReadFromXml ( XElement element , IReadOnlyDictionary < string , SchemaClassNode > classes , ILogger logger )
57+ /// <summary>Creates the schema which represents the element.</summary>
58+ /// <param name="element">The element to convert.</param>
59+ /// <param name="classes">The mapping from class names to their schema.</param>
60+ /// <param name="logger">The logger.</param>
61+ /// <returns>The schema which represents the element.</returns>
62+ public SchemaCustomNode CreateSchemaFromElement ( XElement element , IReadOnlyDictionary < string , SchemaClassNode > classes , ILogger logger )
4263 {
4364 var reference = element . Attribute ( ReClassNetFile . XmlReferenceAttribute ) ? . Value ;
4465 if ( reference == null || ! classes . ContainsKey ( reference ) )
@@ -56,7 +77,12 @@ public SchemaCustomNode ReadFromXml(XElement element, IReadOnlyDictionary<string
5677 } ;
5778 }
5879
59- public BaseNode WriteToNode ( SchemaCustomNode schema , IReadOnlyDictionary < SchemaClassNode , ClassNode > classes , ILogger logger )
80+ /// <summary>Creates the node which is represented by the schema.</summary>
81+ /// <param name="schema">The schema to convert.</param>
82+ /// <param name="classes">The mapping from class schemas to their nodes.</param>
83+ /// <param name="logger">The logger.</param>
84+ /// <returns>The node which is represented by the schema.</returns>
85+ public BaseNode CreateNodeFromSchema ( SchemaCustomNode schema , IReadOnlyDictionary < SchemaClassNode , ClassNode > classes , ILogger logger )
6086 {
6187 return new WeakPtrNode ( )
6288 {
@@ -66,14 +92,18 @@ public BaseNode WriteToNode(SchemaCustomNode schema, IReadOnlyDictionary<SchemaC
6692 } ;
6793 }
6894
69- public XElement WriteToXml ( SchemaCustomNode node , ILogger logger )
95+ /// <summary>Creates the element which represents the schema.</summary>
96+ /// <param name="schema">The schema to convert.</param>
97+ /// <param name="logger">The logger.</param>
98+ /// <returns>The element which represents the schema.</returns>
99+ public XElement CreateElementFromSchema ( SchemaCustomNode schema , ILogger logger )
70100 {
71101 return new XElement (
72102 ReClassNetFile . XmlNodeElement ,
73- new XAttribute ( ReClassNetFile . XmlNameAttribute , node . Name ?? string . Empty ) ,
74- new XAttribute ( ReClassNetFile . XmlCommentAttribute , node . Comment ?? string . Empty ) ,
103+ new XAttribute ( ReClassNetFile . XmlNameAttribute , schema . Name ?? string . Empty ) ,
104+ new XAttribute ( ReClassNetFile . XmlCommentAttribute , schema . Comment ?? string . Empty ) ,
75105 new XAttribute ( ReClassNetFile . XmlTypeAttribute , XmlType ) ,
76- new XAttribute ( ReClassNetFile . XmlReferenceAttribute , ( node as WeakPtrSchemaNode ) . InnerNode . Name ?? string . Empty )
106+ new XAttribute ( ReClassNetFile . XmlReferenceAttribute , ( schema as WeakPtrSchemaNode ) . InnerNode . Name ?? string . Empty )
77107 ) ;
78108 }
79109 }
0 commit comments