Linter Demo Errors: 0Warnings: 1File: /home/fstrocco/Dart/dart/benchmark/analyzer/lib/src/task/general.dart // Copyright (c) 2015, 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.src.task.general; import 'package:analyzer/src/generated/engine.dart' hide AnalysisTask; import 'package:analyzer/src/generated/source.dart'; import 'package:analyzer/task/general.dart'; import 'package:analyzer/task/model.dart'; import 'package:analyzer/src/generated/java_engine.dart'; /** * A task that gets the contents of the source associated with an analysis * target. */ class GetContentTask extends SourceBasedAnalysisTask { /** * The task descriptor describing this kind of task. */ static final TaskDescriptor DESCRIPTOR = new TaskDescriptor('GET_CONTENT', createTask, buildInputs, [CONTENT, MODIFICATION_TIME]); /** * Initialize a newly created task to access the content of the source * associated with the given [target] in the given [context]. */ GetContentTask(AnalysisContext context, AnalysisTarget target) : super(context, target); @override TaskDescriptor get descriptor => DESCRIPTOR; @override internalPerform() { Source source = getRequiredSource(); try { TimestampedData data = context.getContents(source); outputs[CONTENT] = data.data; outputs[MODIFICATION_TIME] = data.modificationTime; } catch (exception, stackTrace) { throw new AnalysisException('Could not get contents of $source', new CaughtException(exception, stackTrace)); } } /** * Return a map from the names of the inputs of this kind of task to the task * input descriptors describing those inputs for a task with the given [target]. */ static Map buildInputs(AnalysisTarget target) { return {}; } /** * Create a [GetContentTask] based on the given [target] in the given * [context]. */ static GetContentTask createTask( AnalysisContext context, AnalysisTarget target) { return new GetContentTask(context, target); } } /** * A base class for analysis tasks whose target is expected to be a source. */ abstract class SourceBasedAnalysisTask extends AnalysisTask { /** * Initialize a newly created task to perform analysis within the given * [context] in order to produce results for the given [target]. */ SourceBasedAnalysisTask(AnalysisContext context, AnalysisTarget target) : super(context, target); @override String get description { Source source = target.source; String sourceName = source == null ? '' : source.fullName; return '${descriptor.name} for source $sourceName'; } }