| Index: observatory_pub_packages/analyzer/src/generated/java_core.dart
|
| ===================================================================
|
| --- observatory_pub_packages/analyzer/src/generated/java_core.dart (revision 0)
|
| +++ observatory_pub_packages/analyzer/src/generated/java_core.dart (working copy)
|
| @@ -0,0 +1,546 @@
|
| +library java.core;
|
| +
|
| +import "dart:math" as math;
|
| +
|
| +final Stopwatch nanoTimeStopwatch = new Stopwatch();
|
| +
|
| +class JavaSystem {
|
| + static int currentTimeMillis() {
|
| + return (new DateTime.now()).millisecondsSinceEpoch;
|
| + }
|
| +
|
| + static int nanoTime() {
|
| + if (!nanoTimeStopwatch.isRunning) {
|
| + nanoTimeStopwatch.start();
|
| + }
|
| + return nanoTimeStopwatch.elapsedMicroseconds * 1000;
|
| + }
|
| +
|
| + static void arraycopy(List src, int srcPos, List dest, int destPos, int length) {
|
| + for (int i = 0; i < length; i++) {
|
| + dest[destPos + i] = src[srcPos + i];
|
| + }
|
| + }
|
| +}
|
| +
|
| +class JavaArrays {
|
| + static bool equals(List a, List b) {
|
| + if (identical(a, b)) {
|
| + return true;
|
| + }
|
| + if (a.length != b.length) {
|
| + return false;
|
| + }
|
| + var len = a.length;
|
| + for (int i = 0; i < len; i++) {
|
| + if (a[i] != b[i]) {
|
| + return false;
|
| + }
|
| + }
|
| + return true;
|
| + }
|
| + static int makeHashCode(List a) {
|
| + if (a == null) {
|
| + return 0;
|
| + }
|
| + int result = 1;
|
| + for (var element in a) {
|
| + result = 31 * result + (element == null ? 0 : element.hashCode);
|
| + }
|
| + return result;
|
| + }
|
| + static List asList(List list) => list;
|
| +}
|
| +
|
| +class Character {
|
| + static const int MAX_VALUE = 0xffff;
|
| + static const int MAX_CODE_POINT = 0x10ffff;
|
| + static const int MIN_SUPPLEMENTARY_CODE_POINT = 0x010000;
|
| + static const int MIN_LOW_SURROGATE = 0xDC00;
|
| + static const int MIN_HIGH_SURROGATE = 0xD800;
|
| + static bool isDigit(int c) {
|
| + return c >= 0x30 && c <= 0x39;
|
| + }
|
| + static bool isLetter(int c) {
|
| + return c >= 0x41 && c <= 0x5A || c >= 0x61 && c <= 0x7A;
|
| + }
|
| + static bool isLetterOrDigit(int c) {
|
| + return isLetter(c) || isDigit(c);
|
| + }
|
| + static bool isLowerCase(int c) {
|
| + return c >= 0x61 && c <= 0x7A;
|
| + }
|
| + static bool isUpperCase(int c) {
|
| + return c >= 0x41 && c <= 0x5A;
|
| + }
|
| + static int toLowerCase(int c) {
|
| + if (c >= 0x41 && c <= 0x5A) {
|
| + return 0x61 + (c - 0x41);
|
| + }
|
| + return c;
|
| + }
|
| + static int toUpperCase(int c) {
|
| + if (c >= 0x61 && c <= 0x7A) {
|
| + return 0x41 + (c - 0x61);
|
| + }
|
| + return c;
|
| + }
|
| + static bool isWhitespace(int c) {
|
| + return c == 0x09 || c == 0x20 || c == 0x0A || c == 0x0D;
|
| + }
|
| + static int digit(int codePoint, int radix) {
|
| + if (radix != 16) {
|
| + throw new ArgumentError("only radix == 16 is supported");
|
| + }
|
| + if (0x30 <= codePoint && codePoint <= 0x39) {
|
| + return codePoint - 0x30;
|
| + }
|
| + if (0x41 <= codePoint && codePoint <= 0x46) {
|
| + return 0xA + (codePoint - 0x41);
|
| + }
|
| + if (0x61 <= codePoint && codePoint <= 0x66) {
|
| + return 0xA + (codePoint - 0x61);
|
| + }
|
| + return -1;
|
| + }
|
| + static String toChars(int codePoint) {
|
| + if (codePoint < 0 || codePoint > MAX_CODE_POINT) {
|
| + throw new IllegalArgumentException();
|
| + }
|
| + if (codePoint < MIN_SUPPLEMENTARY_CODE_POINT) {
|
| + return new String.fromCharCode(codePoint);
|
| + }
|
| + int offset = codePoint - MIN_SUPPLEMENTARY_CODE_POINT;
|
| + int c0 = ((offset & 0x7FFFFFFF) >> 10) + MIN_HIGH_SURROGATE;
|
| + int c1 = (offset & 0x3ff) + MIN_LOW_SURROGATE;
|
| + return new String.fromCharCodes([c0, c1]);
|
| + }
|
| +}
|
| +
|
| +class CharSequence {
|
| + final String _content;
|
| + CharSequence(this._content);
|
| + static CharSequence wrap(String content) => new CharBuffer(content);
|
| + int charAt(int index) => _content.codeUnitAt(index);
|
| + int length() => _content.length;
|
| + String subSequence(int start, int end) => _content.substring(start, end);
|
| +}
|
| +
|
| +class CharBuffer extends CharSequence {
|
| + CharBuffer(String content) : super(content);
|
| + static CharBuffer wrap(String content) => new CharBuffer(content);
|
| +}
|
| +
|
| +class JavaString {
|
| + static int indexOf(String target, String str, int fromIndex) {
|
| + if (fromIndex > target.length) return -1;
|
| + if (fromIndex < 0) fromIndex = 0;
|
| + return target.indexOf(str, fromIndex);
|
| + }
|
| + static int lastIndexOf(String target, String str, int fromIndex) {
|
| + if (fromIndex > target.length) return -1;
|
| + if (fromIndex < 0) fromIndex = 0;
|
| + return target.lastIndexOf(str, fromIndex);
|
| + }
|
| + static bool startsWithBefore(String s, String other, int start) {
|
| + return s.indexOf(other, start) != -1;
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * Very limited printf implementation, supports only %s and %d.
|
| + */
|
| +String _printf(String fmt, List args) {
|
| + StringBuffer sb = new StringBuffer();
|
| + bool markFound = false;
|
| + int argIndex = 0;
|
| + for (int i = 0; i < fmt.length; i++) {
|
| + int c = fmt.codeUnitAt(i);
|
| + if (c == 0x25) {
|
| + if (markFound) {
|
| + sb.writeCharCode(c);
|
| + markFound = false;
|
| + } else {
|
| + markFound = true;
|
| + }
|
| + continue;
|
| + }
|
| + if (markFound) {
|
| + markFound = false;
|
| + // %d
|
| + if (c == 0x64) {
|
| + sb.writeCharCode(args[argIndex++]);
|
| + continue;
|
| + }
|
| + // %s
|
| + if (c == 0x73) {
|
| + sb.writeCharCode(args[argIndex++]);
|
| + continue;
|
| + }
|
| + // unknown
|
| + throw new IllegalArgumentException('[$fmt][$i] = 0x${c.toRadixString(16)}');
|
| + } else {
|
| + sb.writeCharCode(c);
|
| + }
|
| + }
|
| + return sb.toString();
|
| +}
|
| +
|
| +abstract class PrintWriter {
|
| + void print(x);
|
| +
|
| + void newLine() {
|
| + this.print('\n');
|
| + }
|
| +
|
| + void println(String s) {
|
| + this.print(s);
|
| + this.newLine();
|
| + }
|
| +
|
| + void printf(String fmt, List args) {
|
| + this.print(_printf(fmt, args));
|
| + }
|
| +}
|
| +
|
| +class PrintStringWriter extends PrintWriter {
|
| + final StringBuffer _sb = new StringBuffer();
|
| +
|
| + void print(x) {
|
| + _sb.write(x);
|
| + }
|
| +
|
| + String toString() => _sb.toString();
|
| +}
|
| +
|
| +class StringUtils {
|
| + static String capitalize(String str) {
|
| + if (isEmpty(str)) {
|
| + return str;
|
| + }
|
| + return str.substring(0, 1).toUpperCase() + str.substring(1);
|
| + }
|
| +
|
| + static bool equals(String cs1, String cs2) {
|
| + if (cs1 == cs2) {
|
| + return true;
|
| + }
|
| + if (cs1 == null || cs2 == null) {
|
| + return false;
|
| + }
|
| + return cs1 == cs2;
|
| + }
|
| +
|
| + static bool isEmpty(String str) {
|
| + return str == null || str.isEmpty;
|
| + }
|
| +
|
| + static String join(Iterable iter, [String separator = ' ', int start = 0, int
|
| + end = -1]) {
|
| + if (start != 0) {
|
| + iter = iter.skip(start);
|
| + }
|
| + if (end != -1) {
|
| + iter = iter.take(end - start);
|
| + }
|
| + return iter.join(separator);
|
| + }
|
| +
|
| + static String remove(String str, String remove) {
|
| + if (isEmpty(str) || isEmpty(remove)) {
|
| + return str;
|
| + }
|
| + return str.replaceAll(remove, '');
|
| + }
|
| +
|
| + static String removeStart(String str, String remove) {
|
| + if (isEmpty(str) || isEmpty(remove)) {
|
| + return str;
|
| + }
|
| + if (str.startsWith(remove)) {
|
| + return str.substring(remove.length);
|
| + }
|
| + return str;
|
| + }
|
| +
|
| + static String repeat(String s, int n) {
|
| + StringBuffer sb = new StringBuffer();
|
| + for (int i = 0; i < n; i++) {
|
| + sb.write(s);
|
| + }
|
| + return sb.toString();
|
| + }
|
| +
|
| + static List<String> split(String s, [String pattern = '']) {
|
| + return s.split(pattern);
|
| + }
|
| +
|
| + static List<String> splitByWholeSeparatorPreserveAllTokens(String s, String
|
| + pattern) {
|
| + return s.split(pattern);
|
| + }
|
| +}
|
| +
|
| +class Math {
|
| + static num max(num a, num b) => math.max(a, b);
|
| + static num min(num a, num b) => math.min(a, b);
|
| +}
|
| +
|
| +class RuntimeException extends JavaException {
|
| + RuntimeException({String message: "", Exception cause: null}) :
|
| + super(message, cause);
|
| +}
|
| +
|
| +class JavaException implements Exception {
|
| + final String message;
|
| + final Exception cause;
|
| + JavaException([this.message = "", this.cause = null]);
|
| + JavaException.withCause(this.cause) : message = null;
|
| + String toString() => "${runtimeType}: $message $cause";
|
| +}
|
| +
|
| +class JavaIOException extends JavaException {
|
| + JavaIOException([message = "", cause = null]) : super(message, cause);
|
| +}
|
| +
|
| +class IllegalArgumentException extends JavaException {
|
| + IllegalArgumentException([message = "", cause = null]) : super(message, cause);
|
| +}
|
| +
|
| +class StringIndexOutOfBoundsException extends JavaException {
|
| + StringIndexOutOfBoundsException(int index) : super('$index');
|
| +}
|
| +
|
| +class IllegalStateException extends JavaException {
|
| + IllegalStateException([message = ""]) : super(message);
|
| +}
|
| +
|
| +class NotImplementedException extends JavaException {
|
| + NotImplementedException(message) : super(message);
|
| +}
|
| +
|
| +class UnsupportedOperationException extends JavaException {
|
| + UnsupportedOperationException([message = ""]) : super(message);
|
| +}
|
| +
|
| +class NoSuchElementException extends JavaException {
|
| + String toString() => "NoSuchElementException";
|
| +}
|
| +
|
| +class NumberFormatException extends JavaException {
|
| + String toString() => "NumberFormatException";
|
| +}
|
| +
|
| +/// Parses given string to [Uri], throws [URISyntaxException] if invalid.
|
| +Uri parseUriWithException(String str) {
|
| + Uri uri = Uri.parse(str);
|
| + if (uri.path.isEmpty) {
|
| + throw new URISyntaxException();
|
| + }
|
| + return uri;
|
| +}
|
| +
|
| +class URISyntaxException implements Exception {
|
| + String toString() => "URISyntaxException";
|
| +}
|
| +
|
| +class MissingFormatArgumentException implements Exception {
|
| + final String s;
|
| +
|
| + String toString() => "MissingFormatArgumentException: $s";
|
| +
|
| + MissingFormatArgumentException(this.s);
|
| +}
|
| +
|
| +class JavaIterator<E> {
|
| + Iterable<E> _iterable;
|
| + List<E> _elements = new List<E>();
|
| + int _coPos = 0;
|
| + int _elPos = 0;
|
| + E _current = null;
|
| + JavaIterator(this._iterable) {
|
| + Iterator iterator = _iterable.iterator;
|
| + while (iterator.moveNext()) {
|
| + _elements.add(iterator.current);
|
| + }
|
| + }
|
| +
|
| + bool get hasNext {
|
| + return _elPos < _elements.length;
|
| + }
|
| +
|
| + E next() {
|
| + _current = _elements[_elPos];
|
| + _coPos++;
|
| + _elPos++;
|
| + return _current;
|
| + }
|
| +
|
| + void remove() {
|
| + if (_iterable is List) {
|
| + _coPos--;
|
| + (_iterable as List).remove(_coPos);
|
| + } else if (_iterable is Set) {
|
| + (_iterable as Set).remove(_current);
|
| + } else {
|
| + throw new StateError("Unsupported iterable ${_iterable.runtimeType}");
|
| + }
|
| + }
|
| +}
|
| +
|
| +class MapEntry<K, V> {
|
| + final Map<K, V> _map;
|
| + final K _key;
|
| + V _value;
|
| + MapEntry(this._map, this._key, this._value);
|
| + K getKey() => _key;
|
| + V getValue() => _value;
|
| + V setValue(V v) {
|
| + V prevValue = _value;
|
| + _value = v;
|
| + _map[_key] = v;
|
| + return prevValue;
|
| + }
|
| +}
|
| +
|
| +Iterable<MapEntry> getMapEntrySet(Map m) {
|
| + List<MapEntry> result = [];
|
| + m.forEach((k, v) {
|
| + result.add(new MapEntry(m, k, v));
|
| + });
|
| + return result;
|
| +}
|
| +
|
| +javaListSet(List list, int index, newValue) {
|
| + var oldValue = list[index];
|
| + list[index] = newValue;
|
| + return oldValue;
|
| +}
|
| +
|
| +bool javaCollectionContainsAll(Iterable list, Iterable c) {
|
| + return c.fold(true, (bool prev, e) => prev && list.contains(e));
|
| +}
|
| +
|
| +bool javaSetEquals(Set a, Set b) {
|
| + return a.containsAll(b) && b.containsAll(a);
|
| +}
|
| +
|
| +javaMapPut(Map target, key, value) {
|
| + var oldValue = target[key];
|
| + target[key] = value;
|
| + return oldValue;
|
| +}
|
| +
|
| +bool javaStringEqualsIgnoreCase(String a, String b) {
|
| + return a.toLowerCase() == b.toLowerCase();
|
| +}
|
| +
|
| +bool javaStringRegionMatches(String t, int toffset, String o, int ooffset, int len) {
|
| + if (toffset < 0) return false;
|
| + if (ooffset < 0) return false;
|
| + var tend = toffset + len;
|
| + var oend = ooffset + len;
|
| + if (tend > t.length) return false;
|
| + if (oend > o.length) return false;
|
| + return t.substring(toffset, tend) == o.substring(ooffset, oend);
|
| +}
|
| +
|
| +bool javaBooleanOr(bool a, bool b) {
|
| + return a || b;
|
| +}
|
| +
|
| +bool javaBooleanAnd(bool a, bool b) {
|
| + return a && b;
|
| +}
|
| +
|
| +int javaByte(Object o) {
|
| + return (o as int) & 0xFF;
|
| +}
|
| +
|
| +class JavaStringBuilder {
|
| + StringBuffer sb = new StringBuffer();
|
| + String toString() => sb.toString();
|
| + JavaStringBuilder append(x) {
|
| + sb.write(x);
|
| + return this;
|
| + }
|
| + JavaStringBuilder appendChar(int c) {
|
| + sb.writeCharCode(c);
|
| + return this;
|
| + }
|
| + int get length => sb.length;
|
| + void set length(int newLength) {
|
| + if (newLength < 0) {
|
| + throw new StringIndexOutOfBoundsException(newLength);
|
| + }
|
| + if (sb.length < newLength) {
|
| + while (sb.length < newLength) {
|
| + sb.writeCharCode(0);
|
| + }
|
| + } else if (sb.length > newLength) {
|
| + var s = sb.toString().substring(0, newLength);
|
| + sb = new StringBuffer(s);
|
| + }
|
| + }
|
| + void clear() {
|
| + sb = new StringBuffer();
|
| + }
|
| +}
|
| +
|
| +abstract class Enum<E extends Enum> implements Comparable<E> {
|
| + /// The name of this enum constant, as declared in the enum declaration.
|
| + final String name;
|
| + /// The position in the enum declaration.
|
| + final int ordinal;
|
| + const Enum(this.name, this.ordinal);
|
| + int get hashCode => ordinal;
|
| + String toString() => name;
|
| + int compareTo(E other) => ordinal - other.ordinal;
|
| +}
|
| +
|
| +class JavaPatternMatcher {
|
| + Iterator<Match> _matches;
|
| + Match _match;
|
| + JavaPatternMatcher(RegExp re, String input) {
|
| + _matches = re.allMatches(input).iterator;
|
| + }
|
| + bool matches() => find();
|
| + bool find() {
|
| + if (!_matches.moveNext()) {
|
| + return false;
|
| + }
|
| + _match = _matches.current;
|
| + return true;
|
| + }
|
| + String group(int i) => _match[i];
|
| + int start() => _match.start;
|
| + int end() => _match.end;
|
| +}
|
| +
|
| +/**
|
| + * Inserts the given arguments into [pattern].
|
| + *
|
| + * format('Hello, {0}!', 'John') = 'Hello, John!'
|
| + * format('{0} are you {1}ing?', 'How', 'do') = 'How are you doing?'
|
| + * format('{0} are you {1}ing?', 'What', 'read') = 'What are you reading?'
|
| + */
|
| +String format(String pattern, [arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7])
|
| + {
|
| + return formatList(pattern, [arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7]);
|
| +}
|
| +
|
| +/**
|
| + * Inserts the given [args] into [pattern].
|
| + *
|
| + * format('Hello, {0}!', ['John']) = 'Hello, John!'
|
| + * format('{0} are you {1}ing?', ['How', 'do']) = 'How are you doing?'
|
| + * format('{0} are you {1}ing?', ['What', 'read']) = 'What are you reading?'
|
| + */
|
| +String formatList(String pattern, List args) {
|
| + return pattern.replaceAllMapped(new RegExp(r'\{(\d+)\}'), (match) {
|
| + String indexStr = match.group(1);
|
| + int index = int.parse(indexStr);
|
| + var arg = args[index];
|
| + return arg != null ? arg.toString() : null;
|
| + });
|
| +}
|
|
|