Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
QilStrConcatenator.cs
Go to the documentation of this file.
1
using
System.Text
;
2
using
System.Xml.Xsl.Qil
;
3
using
System.Xml.Xsl.XPath
;
4
5
namespace
System.Xml.Xsl.Xslt
;
6
7
internal
sealed
class
QilStrConcatenator
8
{
9
private
readonly
XPathQilFactory
_f
;
10
11
private
readonly
StringBuilder
_builder
;
12
13
private
QilList
_concat
;
14
15
private
bool
_inUse
;
16
17
public
QilStrConcatenator
(
XPathQilFactory
f)
18
{
19
_f
= f;
20
_builder
=
new
StringBuilder
();
21
}
22
23
public
void
Reset
()
24
{
25
_inUse
=
true
;
26
_builder.Length
= 0;
27
_concat
=
null
;
28
}
29
30
private
void
FlushBuilder
()
31
{
32
if
(
_concat
==
null
)
33
{
34
_concat
=
_f
.
BaseFactory
.
Sequence
();
35
}
36
if
(
_builder
.
Length
!= 0)
37
{
38
_concat
.
Add
(
_f
.
String
(
_builder
.
ToString
()));
39
_builder.Length
= 0;
40
}
41
}
42
43
public
void
Append
(
string
value
)
44
{
45
_builder
.
Append
(
value
);
46
}
47
48
public
void
Append
(
char
value
)
49
{
50
_builder
.
Append
(
value
);
51
}
52
53
public
void
Append
(
QilNode
value
)
54
{
55
if
(
value
!=
null
)
56
{
57
if
(
value
.NodeType ==
QilNodeType
.LiteralString)
58
{
59
_builder
.
Append
((
string
)(
QilLiteral
)
value
);
60
return
;
61
}
62
FlushBuilder
();
63
_concat
.
Add
(
value
);
64
}
65
}
66
67
public
QilNode
ToQil
()
68
{
69
_inUse
=
false
;
70
if
(
_concat
==
null
)
71
{
72
return
_f
.
String
(
_builder
.
ToString
());
73
}
74
FlushBuilder
();
75
return
_f
.
StrConcat
(
_concat
);
76
}
77
}
System.Text.StringBuilder.Length
int Length
Definition
StringBuilder.cs:360
System.Text.StringBuilder.ToString
override string ToString()
Definition
StringBuilder.cs:679
System.Text.StringBuilder.Append
StringBuilder Append(char value, int repeatCount)
Definition
StringBuilder.cs:744
System.Text.StringBuilder
Definition
StringBuilder.cs:14
System.Xml.Xsl.Qil.QilFactory.Sequence
QilList Sequence(IList< QilNode > values)
Definition
QilFactory.cs:44
System.Xml.Xsl.Qil.QilList
Definition
QilList.cs:4
System.Xml.Xsl.Qil.QilLiteral
Definition
QilLiteral.cs:4
System.Xml.Xsl.Qil.QilNode.Add
virtual void Add(QilNode node)
Definition
QilNode.cs:121
System.Xml.Xsl.Qil.QilNode
Definition
QilNode.cs:7
System.Xml.Xsl.Qil.QilPatternFactory.BaseFactory
QilFactory BaseFactory
Definition
QilPatternFactory.cs:12
System.Xml.Xsl.Qil.QilPatternFactory.String
QilLiteral String(string val)
Definition
QilPatternFactory.cs:20
System.Xml.Xsl.Qil.QilPatternFactory.StrConcat
QilNode StrConcat(QilNode values)
Definition
QilPatternFactory.cs:368
System.Xml.Xsl.XPath.XPathQilFactory
Definition
XPathQilFactory.cs:8
System.Xml.Xsl.Xslt.QilStrConcatenator.QilStrConcatenator
QilStrConcatenator(XPathQilFactory f)
Definition
QilStrConcatenator.cs:17
System.Xml.Xsl.Xslt.QilStrConcatenator.ToQil
QilNode ToQil()
Definition
QilStrConcatenator.cs:67
System.Xml.Xsl.Xslt.QilStrConcatenator._f
readonly XPathQilFactory _f
Definition
QilStrConcatenator.cs:9
System.Xml.Xsl.Xslt.QilStrConcatenator.Append
void Append(QilNode value)
Definition
QilStrConcatenator.cs:53
System.Xml.Xsl.Xslt.QilStrConcatenator.Reset
void Reset()
Definition
QilStrConcatenator.cs:23
System.Xml.Xsl.Xslt.QilStrConcatenator.Append
void Append(char value)
Definition
QilStrConcatenator.cs:48
System.Xml.Xsl.Xslt.QilStrConcatenator.Append
void Append(string value)
Definition
QilStrConcatenator.cs:43
System.Xml.Xsl.Xslt.QilStrConcatenator._inUse
bool _inUse
Definition
QilStrConcatenator.cs:15
System.Xml.Xsl.Xslt.QilStrConcatenator._concat
QilList _concat
Definition
QilStrConcatenator.cs:13
System.Xml.Xsl.Xslt.QilStrConcatenator._builder
readonly StringBuilder _builder
Definition
QilStrConcatenator.cs:11
System.Xml.Xsl.Xslt.QilStrConcatenator.FlushBuilder
void FlushBuilder()
Definition
QilStrConcatenator.cs:30
System.Xml.Xsl.Xslt.QilStrConcatenator
Definition
QilStrConcatenator.cs:8
System.Text
Definition
ConsoleEncoding.cs:1
System.Xml.Xsl.Qil.QilNodeType
QilNodeType
Definition
QilNodeType.cs:4
System.Xml.Xsl.Qil
Definition
IQilAnnotation.cs:1
System.Xml.Xsl.XPath
Definition
IFocus.cs:3
System.Xml.Xsl.Xslt
Definition
AstFactory.cs:3
System.Xml.ValueHandleType.Dictionary
@ Dictionary
System.ExceptionArgument.value
@ value
source
System.Private.Xml
System.Xml.Xsl.Xslt
QilStrConcatenator.cs
Generated by
1.10.0