Index: dart/client/util/Uri.dart |
diff --git a/dart/client/util/Uri.dart b/dart/client/util/Uri.dart |
index 203e86aa2d31dad9baf005849f5d2cd50a2a8dfb..d99deb2c1dac1d7ca05e48e117d52b07b2d8470e 100644 |
--- a/dart/client/util/Uri.dart |
+++ b/dart/client/util/Uri.dart |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |
// BSD-style license that can be found in the LICENSE file. |
@@ -6,7 +6,7 @@ |
* A parsed URI, inspired by: |
* http://closure-library.googlecode.com/svn/docs/class_goog_Uri.html |
*/ |
-class Uri { |
+class Uri extends uri.Uri { |
/** |
* Parses a URL query string into a map. Because you can have multiple values |
* for the same parameter name, each parameter name maps to a list of |
@@ -73,73 +73,5 @@ class Uri { |
.replaceAll('%20', ' '); |
} |
- String scheme; |
- String userInfo; |
- String domain; |
- int port; |
- String path; |
- String query; |
- String fragment; |
- |
- Uri.fromString(String uri) { |
- final m = _splitRe.firstMatch(uri); |
- |
- scheme = _decodeOrEmpty(m[_COMPONENT_SCHEME]); |
- userInfo = _decodeOrEmpty(m[_COMPONENT_USER_INFO]); |
- domain = _decodeOrEmpty(m[_COMPONENT_DOMAIN]); |
- port = _parseIntOrZero(m[_COMPONENT_PORT]); |
- path = _decodeOrEmpty(m[_COMPONENT_PATH]); |
- query = _decodeOrEmpty(m[_COMPONENT_QUERY_DATA]); |
- fragment = _decodeOrEmpty(m[_COMPONENT_FRAGMENT]); |
- } |
- |
- static String _decodeOrEmpty(String val) { |
- // TODO(jmesserly): use Uri.decodeComponent when available |
- //return val ? Uri.decodeComponent(val) : ''; |
- return val != null ? val : ''; |
- } |
- |
- static int _parseIntOrZero(String val) { |
- if (val !== null && val != '') { |
- return Math.parseInt(val); |
- } else { |
- return 0; |
- } |
- } |
- |
- // NOTE: This code was ported from: closure-library/closure/goog/uri/utils.js |
- static RegExp _splitReLazy; |
- |
- static RegExp get _splitRe() { |
- if (_splitReLazy == null) { |
- _splitReLazy = new RegExp( |
- '^' + |
- '(?:' + |
- '([^:/?#.]+)' + // scheme - ignore special characters |
- // used by other URL parts such as :, |
- // ?, /, #, and . |
- ':)?' + |
- '(?://' + |
- '(?:([^/?#]*)@)?' + // userInfo |
- '([\\w\\d\\-\\u0100-\\uffff.%]*)' + |
- // domain - restrict to letters, |
- // digits, dashes, dots, percent |
- // escapes, and unicode characters. |
- '(?::([0-9]+))?' + // port |
- ')?' + |
- '([^?#]+)?' + // path |
- '(?:\\?([^#]*))?' + // query |
- '(?:#(.*))?' + // fragment |
- '\$'); |
- } |
- return _splitReLazy; |
- } |
- |
- static final _COMPONENT_SCHEME = 1; |
- static final _COMPONENT_USER_INFO = 2; |
- static final _COMPONENT_DOMAIN = 3; |
- static final _COMPONENT_PORT = 4; |
- static final _COMPONENT_PATH = 5; |
- static final _COMPONENT_QUERY_DATA = 6; |
- static final _COMPONENT_FRAGMENT = 7; |
+ Uri.fromString(String uri) : super.fromString(uri); |
} |