Files
sdk/pkg/analyzer/lib/src/string_source.dart
T
scheglov@google.com c5263aae9f Breaking changes in 'analyzer' package.
1. Source.uri added.

2. DartSdk.fromEncoding() replaced with fromFileUri().

  This CL cannot be committed as is until pkg/code_transformers is fixed.

R=brianwilkerson@google.com, sigmund@google.com
BUG=

Review URL: https://codereview.chromium.org//428303004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38949 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-06 20:41:42 +00:00

50 lines
1.5 KiB
Dart

// Copyright (c) 2013, 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.
library analyzer.string_source;
import 'generated/source.dart';
import 'generated/engine.dart' show TimestampedData;
/// An implementation of [Source] that's based on an in-memory Dart string.
class StringSource implements Source {
final String _contents;
final String fullName;
final int modificationStamp;
StringSource(this._contents, this.fullName)
: modificationStamp = new DateTime.now().millisecondsSinceEpoch;
bool operator==(Object object) {
if (object is StringSource) {
StringSource ssObject = object;
return ssObject._contents == _contents && ssObject.fullName == fullName;
}
return false;
}
bool exists() => true;
TimestampedData<String> get contents => new TimestampedData(modificationStamp, _contents);
String get encoding => throw new UnsupportedError("StringSource doesn't support "
"encoding.");
String get shortName => fullName;
UriKind get uriKind => throw new UnsupportedError("StringSource doesn't support "
"uriKind.");
int get hashCode => _contents.hashCode ^ fullName.hashCode;
bool get isInSystemLibrary => false;
@override
Uri get uri => throw new UnsupportedError(
"StringSource doesn't support uri.");
Uri resolveRelativeUri(Uri relativeUri) => throw new UnsupportedError(
"StringSource doesn't support resolveRelative.");
}