@@ -3,61 +3,61 @@ import "dart:math";
3
3
import "../irl/parser.dart" ;
4
4
5
5
/// RFC6570 URI Template.
6
- class URLTemplate {
7
- final List <_URLTemplatePart > _parts;
6
+ class UrlTemplate {
7
+ final List <_UrlTemplatePart > _parts;
8
8
9
9
/// Construct a new URL template with the given parts
10
- URLTemplate (this ._parts);
10
+ UrlTemplate (this ._parts);
11
11
12
12
/// Expand the template into a Uri with the given values
13
13
Uri expand (values) {
14
14
var result = _parts.map ((p) => p._expand (values)).join ();
15
- var parser = IRLParser (result);
15
+ var parser = IrlParser (result);
16
16
return Uri .parse (parser.parse ().asciiValue);
17
17
}
18
18
19
19
@override
20
20
String toString () => _parts.map ((p) => p.toString ()).join ();
21
21
}
22
22
23
- enum _URLTemplateParserContext {
23
+ enum _UrlTemplateParserContext {
24
24
start,
25
25
literal,
26
26
expansion,
27
27
}
28
28
29
29
/// Parses a string into a URLTemplate
30
- class URLTemplateParser {
30
+ class UrlTemplateParser {
31
31
static final _unreserved = RegExp (r"[a-zA-Z0-9\-._~]" );
32
32
static final _reserved = RegExp (r"[:/?#\[\]@!$&'()*+,;=]" );
33
33
34
34
final String _string;
35
35
int _index = 0 ;
36
36
37
37
/// Construct a new URL template parser for parsing the given string
38
- URLTemplateParser (this ._string);
38
+ UrlTemplateParser (this ._string);
39
39
40
40
/// Parse the string into a URL template
41
- URLTemplate parse () {
42
- List <_URLTemplatePart > result = [];
43
- _URLTemplatePart ? token;
41
+ UrlTemplate parse () {
42
+ List <_UrlTemplatePart > result = [];
43
+ _UrlTemplatePart ? token;
44
44
while ((token = _nextToken ()) != null ) {
45
45
result.add (token! );
46
46
}
47
- return URLTemplate (result);
47
+ return UrlTemplate (result);
48
48
}
49
49
50
- _URLTemplatePart ? _nextToken () {
50
+ _UrlTemplatePart ? _nextToken () {
51
51
var buffer = '' ;
52
- var context = _URLTemplateParserContext .start;
53
- late _URLTemplatePart expansion;
52
+ var context = _UrlTemplateParserContext .start;
53
+ late _UrlTemplatePart expansion;
54
54
while (true ) {
55
55
var c = _index < _string.length ? _string[_index] : null ;
56
56
switch (context) {
57
- case _URLTemplateParserContext .start:
57
+ case _UrlTemplateParserContext .start:
58
58
switch (c) {
59
59
case '{' :
60
- context = _URLTemplateParserContext .expansion;
60
+ context = _UrlTemplateParserContext .expansion;
61
61
buffer = '' ;
62
62
var n = _index < _string.length - 1 ? _string[_index + 1 ] : null ;
63
63
switch (n) {
@@ -93,11 +93,11 @@ class URLTemplateParser {
93
93
default :
94
94
buffer = c;
95
95
_index++ ;
96
- context = _URLTemplateParserContext .literal;
96
+ context = _UrlTemplateParserContext .literal;
97
97
break ;
98
98
}
99
99
break ;
100
- case _URLTemplateParserContext .literal:
100
+ case _UrlTemplateParserContext .literal:
101
101
switch (c) {
102
102
case '{' :
103
103
case null :
@@ -108,7 +108,7 @@ class URLTemplateParser {
108
108
break ;
109
109
}
110
110
break ;
111
- case _URLTemplateParserContext .expansion:
111
+ case _UrlTemplateParserContext .expansion:
112
112
switch (c) {
113
113
case '}' :
114
114
_index++ ;
@@ -126,11 +126,11 @@ class URLTemplateParser {
126
126
}
127
127
}
128
128
129
- void _parseVariables (String string, _URLTemplatePart part) {
129
+ void _parseVariables (String string, _UrlTemplatePart part) {
130
130
part._variables = string.split (',' ).map ((str) {
131
131
var match = RegExp (r"^(.*)\*$" ).firstMatch (str);
132
132
if (match != null ) {
133
- return _URLTemplateVariable (
133
+ return _UrlTemplateVariable (
134
134
match[1 ]! ,
135
135
explode: true ,
136
136
allowReserved: part._allowReserved,
@@ -140,15 +140,15 @@ class URLTemplateParser {
140
140
}
141
141
match = RegExp (r"^(.*):(\d+)$" ).firstMatch (str);
142
142
if (match != null ) {
143
- return _URLTemplateVariable (
143
+ return _UrlTemplateVariable (
144
144
match[1 ]! ,
145
145
limit: int .parse (match[2 ]! ),
146
146
allowReserved: part._allowReserved,
147
147
withName: part._withName,
148
148
keepEmpties: part._keepEmpties,
149
149
);
150
150
}
151
- return _URLTemplateVariable (
151
+ return _UrlTemplateVariable (
152
152
str,
153
153
allowReserved: part._allowReserved,
154
154
withName: part._withName,
@@ -158,15 +158,15 @@ class URLTemplateParser {
158
158
}
159
159
}
160
160
161
- class _URLTemplateVariable {
161
+ class _UrlTemplateVariable {
162
162
String name;
163
163
int ? limit;
164
164
bool explode;
165
165
bool allowReserved;
166
166
bool withName;
167
167
bool keepEmpties;
168
168
169
- _URLTemplateVariable (this .name,
169
+ _UrlTemplateVariable (this .name,
170
170
{this .limit,
171
171
this .explode = false ,
172
172
this .allowReserved = false ,
@@ -228,11 +228,11 @@ class _URLTemplateVariable {
228
228
var result = '' ;
229
229
for (int i = 0 ; i < string.length; i++ ) {
230
230
var c = string[i];
231
- if (URLTemplateParser ._unreserved.hasMatch (c) ||
232
- (allowReserved && URLTemplateParser ._reserved.hasMatch (c))) {
231
+ if (UrlTemplateParser ._unreserved.hasMatch (c) ||
232
+ (allowReserved && UrlTemplateParser ._reserved.hasMatch (c))) {
233
233
result += c;
234
234
} else {
235
- result += IRLParser .percentEncode (c);
235
+ result += IrlParser .percentEncode (c);
236
236
}
237
237
}
238
238
return result;
@@ -255,10 +255,10 @@ class _URLTemplateVariable {
255
255
}
256
256
}
257
257
258
- abstract class _URLTemplatePart {
259
- List <_URLTemplateVariable > _variables;
258
+ abstract class _UrlTemplatePart {
259
+ List <_UrlTemplateVariable > _variables;
260
260
261
- _URLTemplatePart ([this ._variables = const []]);
261
+ _UrlTemplatePart ([this ._variables = const []]);
262
262
263
263
_expandVariables (Map <String , dynamic > values) {
264
264
var list = [];
@@ -278,7 +278,7 @@ abstract class _URLTemplatePart {
278
278
String _expand (values);
279
279
}
280
280
281
- class _StringLiteral extends _URLTemplatePart {
281
+ class _StringLiteral extends _UrlTemplatePart {
282
282
String value;
283
283
284
284
_StringLiteral (this .value) : super ([]);
@@ -290,7 +290,7 @@ class _StringLiteral extends _URLTemplatePart {
290
290
String toString () => value;
291
291
}
292
292
293
- class _StringExpansion extends _URLTemplatePart {
293
+ class _StringExpansion extends _UrlTemplatePart {
294
294
@override
295
295
_expand (values) {
296
296
var expanded = _expandVariables (values);
0 commit comments