OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of dart.io; | 5 part of dart.io; |
6 | 6 |
7 class _HttpHeaders implements HttpHeaders { | 7 class _HttpHeaders implements HttpHeaders { |
8 _HttpHeaders(String this.protocolVersion) | 8 _HttpHeaders(String this.protocolVersion) |
9 : _headers = new Map<String, List<String>>(); | 9 : _headers = new HashMap<String, List<String>>(); |
10 | 10 |
11 List<String> operator[](String name) { | 11 List<String> operator[](String name) { |
12 name = name.toLowerCase(); | 12 name = name.toLowerCase(); |
13 return _headers[name]; | 13 return _headers[name]; |
14 } | 14 } |
15 | 15 |
16 String value(String name) { | 16 String value(String name) { |
17 name = name.toLowerCase(); | 17 name = name.toLowerCase(); |
18 List<String> values = _headers[name]; | 18 List<String> values = _headers[name]; |
19 if (values == null) return null; | 19 if (values == null) return null; |
(...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
477 } | 477 } |
478 | 478 |
479 | 479 |
480 class _HeaderValue implements HeaderValue { | 480 class _HeaderValue implements HeaderValue { |
481 String _value; | 481 String _value; |
482 _UnmodifiableMap<String, String> _parameters; | 482 _UnmodifiableMap<String, String> _parameters; |
483 | 483 |
484 _HeaderValue([String this._value = "", Map<String, String> parameters]) { | 484 _HeaderValue([String this._value = "", Map<String, String> parameters]) { |
485 if (parameters != null) { | 485 if (parameters != null) { |
486 _parameters = | 486 _parameters = |
487 new _UnmodifiableMap(new Map<String, String>.from(parameters)); | 487 new _UnmodifiableMap(new HashMap<String, String>.from(parameters)); |
488 } | 488 } |
489 } | 489 } |
490 | 490 |
491 static _HeaderValue parse(String value, | 491 static _HeaderValue parse(String value, |
492 {parameterSeparator: ";", | 492 {parameterSeparator: ";", |
493 preserveBackslash: false}) { | 493 preserveBackslash: false}) { |
494 // Parse the string. | 494 // Parse the string. |
495 var result = new _HeaderValue(); | 495 var result = new _HeaderValue(); |
496 result._parse(value, parameterSeparator, preserveBackslash); | 496 result._parse(value, parameterSeparator, preserveBackslash); |
497 return result; | 497 return result; |
498 } | 498 } |
499 | 499 |
500 String get value => _value; | 500 String get value => _value; |
501 | 501 |
502 void _ensureParameters() { | 502 void _ensureParameters() { |
503 if (_parameters == null) { | 503 if (_parameters == null) { |
504 _parameters = new _UnmodifiableMap(new Map<String, String>()); | 504 _parameters = new _UnmodifiableMap(new HashMap<String, String>()); |
505 } | 505 } |
506 } | 506 } |
507 | 507 |
508 Map<String, String> get parameters { | 508 Map<String, String> get parameters { |
509 _ensureParameters(); | 509 _ensureParameters(); |
510 return _parameters; | 510 return _parameters; |
511 } | 511 } |
512 | 512 |
513 String toString() { | 513 String toString() { |
514 StringBuffer sb = new StringBuffer(); | 514 StringBuffer sb = new StringBuffer(); |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
552 throw new HttpException("Failed to parse header value"); | 552 throw new HttpException("Failed to parse header value"); |
553 } | 553 } |
554 index++; | 554 index++; |
555 } | 555 } |
556 | 556 |
557 void maybeExpect(String expected) { | 557 void maybeExpect(String expected) { |
558 if (s[index] == expected) index++; | 558 if (s[index] == expected) index++; |
559 } | 559 } |
560 | 560 |
561 void parseParameters() { | 561 void parseParameters() { |
562 var parameters = new Map<String, String>(); | 562 var parameters = new HashMap<String, String>(); |
563 _parameters = new _UnmodifiableMap(parameters); | 563 _parameters = new _UnmodifiableMap(parameters); |
564 | 564 |
565 String parseParameterName() { | 565 String parseParameterName() { |
566 int start = index; | 566 int start = index; |
567 while (!done()) { | 567 while (!done()) { |
568 if (s[index] == " " || s[index] == "\t" || s[index] == "=") break; | 568 if (s[index] == " " || s[index] == "\t" || s[index] == "=") break; |
569 index++; | 569 index++; |
570 } | 570 } |
571 return s.substring(start, index).toLowerCase(); | 571 return s.substring(start, index).toLowerCase(); |
572 } | 572 } |
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
828 void clear() { | 828 void clear() { |
829 throw new UnsupportedError("Cannot modify an unmodifiable map"); | 829 throw new UnsupportedError("Cannot modify an unmodifiable map"); |
830 } | 830 } |
831 void forEach(void f(K key, V value)) => _map.forEach(f); | 831 void forEach(void f(K key, V value)) => _map.forEach(f); |
832 Iterable<K> get keys => _map.keys; | 832 Iterable<K> get keys => _map.keys; |
833 Iterable<V> get values => _map.values; | 833 Iterable<V> get values => _map.values; |
834 int get length => _map.length; | 834 int get length => _map.length; |
835 bool get isEmpty => _map.isEmpty; | 835 bool get isEmpty => _map.isEmpty; |
836 bool get isNotEmpty => _map.isNotEmpty; | 836 bool get isNotEmpty => _map.isNotEmpty; |
837 } | 837 } |
OLD | NEW |