Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(396)

Unified Diff: packages/smoke/lib/smoke.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « packages/smoke/lib/mirrors.dart ('k') | packages/smoke/lib/src/common.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packages/smoke/lib/smoke.dart
diff --git a/packages/smoke/lib/smoke.dart b/packages/smoke/lib/smoke.dart
deleted file mode 100644
index 0fd9f3c533715d83c48c0ca3d6d5403c0a75d003..0000000000000000000000000000000000000000
--- a/packages/smoke/lib/smoke.dart
+++ /dev/null
@@ -1,273 +0,0 @@
-// Copyright (c) 2014, 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.
-
-/// Collects services that can be used to access objects dynamically, inspect
-/// type information, and convert between symbols and strings.
-library smoke;
-
-import 'src/implementation.dart' as implementation;
-
-export 'src/common.dart' show minArgs, maxArgs, canAcceptNArgs, SUPPORTED_ARGS;
-import 'src/common.dart' show compareLists;
-
-/// Configures this library to use [objectAccessor] for all read/write/invoke
-/// APIs, [typeInspector] for all type query APIs, and [symbolConverter] for all
-/// symbol convertion operations.
-///
-/// This function doesn't need to be called during development, but frameworks
-/// should autogenerate a call to this function when running in deployment.
-void configure(ObjectAccessorService objectAccessor,
- TypeInspectorService typeInspector,
- SymbolConverterService symbolConverter) {
- implementation.objectAccessor = objectAccessor;
- implementation.typeInspector = typeInspector;
- implementation.symbolConverter = symbolConverter;
-}
-
-/// Return the value of [field] in [object].
-read(Object object, Symbol field) =>
- implementation.objectAccessor.read(object, field);
-
-/// Update the [value] of [field] in [object].
-void write(Object object, Symbol field, value) =>
- implementation.objectAccessor.write(object, field, value);
-
-/// Invoke [method] in [receiver] with [args]. The [receiver] can be either an
-/// object (to invoke instance methods) or a type (to invoke static methods).
-/// This function optionally [adjust]s the list of arguments to match the number
-/// of formal parameters by either adding nulls for missing arguments, or by
-/// truncating the list.
-invoke(receiver, Symbol method, List args,
- {Map namedArgs, bool adjust: false}) => implementation.objectAccessor
- .invoke(receiver, method, args, namedArgs: namedArgs, adjust: adjust);
-
-/// Tells whether [type] is transitively a subclass of [supertype].
-bool isSubclassOf(Type type, Type supertype) =>
- implementation.typeInspector.isSubclassOf(type, supertype);
-
-// TODO(sigmund): consider adding also:
-// * isImplementationOf(type, subtype) to tells whether [type] declares that it
-// implements the [supertype] interface.
-// * isSubtypeOf(type, subtype): Tells whether [type]'s interface is a sybtype
-// of [supertype]. That is, whether it is a subclass or if [type] implements
-// [supertype].
-
-/// Tells whether [type] has a field or getter for [field].
-bool hasGetter(Type type, Symbol field) =>
- implementation.typeInspector.hasGetter(type, field);
-
-/// Tells whether [type] has a field or setter for [field].
-bool hasSetter(Type type, Symbol field) =>
- implementation.typeInspector.hasSetter(type, field);
-
-/// Tells whether [type] or a superclass (other than [Object]) defines
-/// `noSuchMethod`.
-bool hasNoSuchMethod(Type type) => hasInstanceMethod(type, #noSuchMethod);
-
-/// Tells whether [type] has or a superclass contains a specific instance
-/// [method] (excluding methods in [Object]).
-bool hasInstanceMethod(Type type, Symbol method) =>
- implementation.typeInspector.hasInstanceMethod(type, method);
-
-/// Tells whether [type] has a specific static [method].
-bool hasStaticMethod(Type type, Symbol method) =>
- implementation.typeInspector.hasStaticMethod(type, method);
-
-/// Get the declaration associated with field [name] found in [type] or a
-/// superclass of [type].
-Declaration getDeclaration(Type type, Symbol name) =>
- implementation.typeInspector.getDeclaration(type, name);
-
-/// Retrieve all symbols of [type] that match [options].
-List<Declaration> query(Type type, QueryOptions options) =>
- implementation.typeInspector.query(type, options);
-
-/// Returns the name associated with a [symbol].
-String symbolToName(Symbol symbol) =>
- implementation.symbolConverter.symbolToName(symbol);
-
-/// Returns the symbol associated with a [name].
-Symbol nameToSymbol(String name) =>
- implementation.symbolConverter.nameToSymbol(name);
-
-/// Establishes the parameters for [query] to search for symbols in a type
-/// hierarchy. For now only public instance symbols can be queried (no private,
-/// no static).
-class QueryOptions {
- /// Whether to include fields (default is true).
- final bool includeFields;
-
- /// Whether to include getters and setters (default is true). Note that to
- /// include fields you also need to enable [includeFields].
- final bool includeProperties;
-
- /// Whether to include symbols from the given type and its superclasses
- /// (except [Object]).
- final bool includeInherited;
-
- /// If [includeInherited], walk up the type hierarchy up to this type
- /// (defaults to [Object]).
- final Type includeUpTo;
-
- /// Whether to include final fields and getter-only properties.
- final bool excludeFinal;
-
- /// Whether to include symbols that are overriden within the subclass
- /// (default is false).
- final bool excludeOverriden;
-
- /// Whether to include methods (default is false).
- final bool includeMethods;
-
- /// If [withAnnotation] is not null, then it should be a list of types, so
- /// only symbols that are annotated with instances of those types are
- /// included.
- final List withAnnotations;
-
- /// If [matches] is not null, then include only those fields, properties, or
- /// methods that match the predicate.
- final NameMatcher matches;
-
- const QueryOptions({this.includeFields: true, this.includeProperties: true,
- this.includeInherited: true, this.includeUpTo: Object,
- this.excludeFinal: false, this.excludeOverriden: false,
- this.includeMethods: false, this.withAnnotations: null,
- this.matches: null});
-
- String toString() => (new StringBuffer()
- ..write('(options:')
- ..write(includeFields ? 'fields ' : '')
- ..write(includeProperties ? 'properties ' : '')
- ..write(includeMethods ? 'methods ' : '')
- ..write(includeInherited ? 'inherited ' : '_')
- ..write(excludeFinal ? 'no finals ' : '')
- ..write(excludeOverriden ? 'no overriden ': '')
- ..write('annotations: $withAnnotations')
- ..write(matches != null ? 'with matcher' : '')
- ..write(')')).toString();
-}
-
-/// Used to filter query results based on a predicate on [name]. Returns true if
-/// [name] should be included in the query results.
-typedef bool NameMatcher(Symbol name);
-
-/// Information associated with a symbol declaration (like a property or
-/// method).
-class Declaration {
- /// Name of the property or method
- final Symbol name;
-
- /// Kind of declaration (field, property, or method).
- final DeclarationKind kind;
-
- /// Whether the symbol is a field (and not a getter/setter property).
- bool get isField => kind == FIELD;
-
- /// Whether the symbol is a getter/setter and not a field.
- bool get isProperty => kind == PROPERTY;
-
- /// Whether the symbol is a method.
- bool get isMethod => kind == METHOD;
-
- /// For fields, whether they are final, for properties, whether they are
- /// read-only (they have no setter).
- final bool isFinal;
-
- /// If this is a field or property, it's declared type (including dynamic if
- /// it's not declared). For methods, the returned type.
- final Type type;
-
- /// Whether this symbol is static.
- final bool isStatic;
-
- /// List of annotations in this declaration.
- final List annotations;
-
- const Declaration(this.name, this.type, {this.kind: FIELD,
- this.isFinal: false, this.isStatic: false, this.annotations: const []});
-
- int get hashCode => name.hashCode;
- operator ==(other) => other is Declaration &&
- name == other.name &&
- kind == other.kind &&
- isFinal == other.isFinal &&
- type == other.type &&
- isStatic == other.isStatic &&
- compareLists(annotations, other.annotations);
-
- String toString() {
- return (new StringBuffer()
- ..write('(declaration ')
- ..write(name)
- ..write(isProperty ? ' (property) ' : ' (method) ')
- ..write(isFinal ? 'final ' : '')
- ..write(isStatic ? 'static ' : '')
- ..write(annotations)
- ..write(')')).toString();
- }
-}
-
-/// Enumeration for declaration kinds (field, property, or method)
-class DeclarationKind {
- final int kind;
- const DeclarationKind(this.kind);
-}
-
-/// Declaration kind used to denote a raw field.
-const FIELD = const DeclarationKind(0);
-
-/// Declaration kind used to denote a getter/setter.
-const PROPERTY = const DeclarationKind(1);
-
-/// Declaration kind used to denote a method.
-const METHOD = const DeclarationKind(2);
-
-/// A service that provides a way to implement simple operations on objects like
-/// read, write, and invoke.
-abstract class ObjectAccessorService {
- /// Return the value of [field] in [object].
- read(Object object, Symbol field);
-
- /// Update the [value] of [field] in [object].
- void write(Object object, Symbol field, value);
-
- /// Invoke [method] in [object] with [args]. It optionally [adjust]s the list
- /// of arguments to match the number of formal parameters by either adding
- /// nulls for missing arguments, or by truncating the list.
- invoke(Object object, Symbol method, List args,
- {Map namedArgs, bool adjust: false});
-}
-
-/// A service that provides partial inspection into Dart types.
-abstract class TypeInspectorService {
- /// Tells whether [type] is transitively a subclass of [supertype].
- bool isSubclassOf(Type type, Type supertype);
-
- /// Tells whether [type] has a field or getter for [name].
- bool hasGetter(Type type, Symbol name);
-
- /// Tells whether [type] has a field or setter for [name].
- bool hasSetter(Type type, Symbol name);
-
- /// Tells whether [type] has a specific instance [method].
- bool hasInstanceMethod(Type type, Symbol method);
-
- /// Tells whether [type] has a specific static [method].
- bool hasStaticMethod(Type type, Symbol method);
-
- /// Get the declaration associated with field [name] in [type].
- Declaration getDeclaration(Type type, Symbol name);
-
- /// Retrieve all symbols of [type] that match [options].
- List<Declaration> query(Type type, QueryOptions options);
-}
-
-/// A service that converts between [Symbol]s and [String]s.
-abstract class SymbolConverterService {
- /// Returns the name associated with a [symbol].
- String symbolToName(Symbol symbol);
-
- /// Returns the symbol associated with a [name].
- Symbol nameToSymbol(String name);
-}
« no previous file with comments | « packages/smoke/lib/mirrors.dart ('k') | packages/smoke/lib/src/common.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698