7
7
8
8
namespace FrostbitePlugin
9
9
{
10
+ /// <summary>A schema for the WeakPtrNode.</summary>
10
11
class WeakPtrSchemaNode : SchemaCustomNode
11
12
{
12
13
public SchemaClassNode InnerNode { get ; }
@@ -21,15 +22,30 @@ public WeakPtrSchemaNode(SchemaClassNode inner)
21
22
22
23
class WeakPtrSchemaConverter : ICustomSchemaConverter
23
24
{
25
+ /// <summary>Name of the type used in the XML data.</summary>
24
26
private const string XmlType = "FrostBite::WeakPtr" ;
25
27
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 ;
27
32
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 ;
29
37
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 ;
31
42
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 )
33
49
{
34
50
return new WeakPtrSchemaNode ( classes [ ( node as WeakPtrNode ) . InnerNode as ClassNode ] )
35
51
{
@@ -38,7 +54,12 @@ public SchemaCustomNode ReadFromNode(BaseNode node, IReadOnlyDictionary<ClassNod
38
54
} ;
39
55
}
40
56
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 )
42
63
{
43
64
var reference = element . Attribute ( ReClassNetFile . XmlReferenceAttribute ) ? . Value ;
44
65
if ( reference == null || ! classes . ContainsKey ( reference ) )
@@ -56,7 +77,12 @@ public SchemaCustomNode ReadFromXml(XElement element, IReadOnlyDictionary<string
56
77
} ;
57
78
}
58
79
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 )
60
86
{
61
87
return new WeakPtrNode ( )
62
88
{
@@ -66,14 +92,18 @@ public BaseNode WriteToNode(SchemaCustomNode schema, IReadOnlyDictionary<SchemaC
66
92
} ;
67
93
}
68
94
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 )
70
100
{
71
101
return new XElement (
72
102
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 ) ,
75
105
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 )
77
107
) ;
78
108
}
79
109
}
0 commit comments