| Index: pkg/analysis_services/lib/correction/status.dart
|
| diff --git a/pkg/analysis_services/lib/correction/status.dart b/pkg/analysis_services/lib/correction/status.dart
|
| deleted file mode 100644
|
| index 58d2693143952a5646ab006200dd805dba8d565b..0000000000000000000000000000000000000000
|
| --- a/pkg/analysis_services/lib/correction/status.dart
|
| +++ /dev/null
|
| @@ -1,399 +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.
|
| -
|
| -library services.status;
|
| -
|
| -import 'package:analysis_services/search/search_engine.dart';
|
| -import 'package:analysis_services/src/correction/source_range.dart';
|
| -import 'package:analyzer/src/generated/ast.dart';
|
| -import 'package:analyzer/src/generated/element.dart';
|
| -import 'package:analyzer/src/generated/engine.dart';
|
| -import 'package:analyzer/src/generated/java_core.dart';
|
| -import 'package:analyzer/src/generated/source.dart';
|
| -
|
| -
|
| -/**
|
| - * An outcome of a condition checking operation.
|
| - */
|
| -class RefactoringStatus {
|
| - /**
|
| - * The current severity of this [RefactoringStatus] - the maximum of the
|
| - * severities of its [entries].
|
| - */
|
| - RefactoringStatusSeverity _severity = RefactoringStatusSeverity.OK;
|
| -
|
| - /**
|
| - * A list of [RefactoringStatusEntry]s.
|
| - */
|
| - final List<RefactoringStatusEntry> entries = [];
|
| -
|
| - /**
|
| - * Creates a new OK [RefactoringStatus].
|
| - */
|
| - RefactoringStatus();
|
| -
|
| - /**
|
| - * Creates a new [RefactoringStatus] with the ERROR severity.
|
| - */
|
| - factory RefactoringStatus.error(String msg,
|
| - [RefactoringStatusContext context]) {
|
| - RefactoringStatus status = new RefactoringStatus();
|
| - status.addError(msg, context);
|
| - return status;
|
| - }
|
| -
|
| - /**
|
| - * Creates a new [RefactoringStatus] with the FATAL severity.
|
| - */
|
| - factory RefactoringStatus.fatal(String msg,
|
| - [RefactoringStatusContext context]) {
|
| - RefactoringStatus status = new RefactoringStatus();
|
| - status.addFatalError(msg, context);
|
| - return status;
|
| - }
|
| -
|
| - /**
|
| - * Creates a new [RefactoringStatus] with the WARNING severity.
|
| - */
|
| - factory RefactoringStatus.warning(String msg,
|
| - [RefactoringStatusContext context]) {
|
| - RefactoringStatus status = new RefactoringStatus();
|
| - status.addWarning(msg, context);
|
| - return status;
|
| - }
|
| -
|
| - /**
|
| - * Returns the first [RefactoringStatusEntry] with the highest severity.
|
| - *
|
| - * If there is more than one entry with the highest severity then there is no
|
| - * guarantee as to which will be returned.
|
| - *
|
| - * Returns `null` if no entries.
|
| - */
|
| - RefactoringStatusEntry get entryWithHighestSeverity {
|
| - for (RefactoringStatusEntry entry in entries) {
|
| - if (entry.severity == _severity) {
|
| - return entry;
|
| - }
|
| - }
|
| - return null;
|
| - }
|
| -
|
| - /**
|
| - * Returns `true` if the severity is FATAL or ERROR.
|
| - */
|
| - bool get hasError =>
|
| - _severity == RefactoringStatusSeverity.FATAL ||
|
| - _severity == RefactoringStatusSeverity.ERROR;
|
| -
|
| - /**
|
| - * Returns `true` if the severity is FATAL.
|
| - */
|
| - bool get hasFatalError => _severity == RefactoringStatusSeverity.FATAL;
|
| -
|
| - /**
|
| - * Returns `true` if the severity is WARNING.
|
| - */
|
| - bool get hasWarning => _severity == RefactoringStatusSeverity.WARNING;
|
| -
|
| - /**
|
| - * Return `true` if the severity is `OK`.
|
| - */
|
| - bool get isOK => _severity == RefactoringStatusSeverity.OK;
|
| -
|
| - /**
|
| - * Returns the message of the [RefactoringStatusEntry] with highest severity;
|
| - * may be `null` if no entries.
|
| - */
|
| - String get message {
|
| - RefactoringStatusEntry entry = entryWithHighestSeverity;
|
| - if (entry == null) {
|
| - return null;
|
| - }
|
| - return entry.message;
|
| - }
|
| -
|
| - /**
|
| - * Returns the current severity of this [RefactoringStatus].
|
| - */
|
| - RefactoringStatusSeverity get severity => _severity;
|
| -
|
| - /**
|
| - * Adds an ERROR entry with the given message and status.
|
| - */
|
| - void addError(String msg, [RefactoringStatusContext context]) {
|
| - _addEntry(
|
| - new RefactoringStatusEntry(RefactoringStatusSeverity.ERROR, msg, context));
|
| - }
|
| -
|
| - /**
|
| - * Adds a FATAL entry with the given message and status.
|
| - */
|
| - void addFatalError(String msg, [RefactoringStatusContext context]) {
|
| - _addEntry(
|
| - new RefactoringStatusEntry(RefactoringStatusSeverity.FATAL, msg, context));
|
| - }
|
| -
|
| - /**
|
| - * Merges [other] into this [RefactoringStatus].
|
| - *
|
| - * The [other]'s entries are added to this.
|
| - *
|
| - * The resulting severity is the more severe of this and [other] severities.
|
| - *
|
| - * Merging with `null` is allowed - it has no effect.
|
| - */
|
| - void addStatus(RefactoringStatus other) {
|
| - if (other == null) {
|
| - return;
|
| - }
|
| - entries.addAll(other.entries);
|
| - _severity = RefactoringStatusSeverity._max(_severity, other.severity);
|
| - }
|
| -
|
| - /**
|
| - * Adds a WARNING entry with the given message and status.
|
| - */
|
| - void addWarning(String msg, [RefactoringStatusContext context]) {
|
| - _addEntry(
|
| - new RefactoringStatusEntry(RefactoringStatusSeverity.WARNING, msg, context));
|
| - }
|
| -
|
| - /**
|
| - * Returns a copy of this [RefactoringStatus] with ERROR replaced with FATAL.
|
| - */
|
| - RefactoringStatus escalateErrorToFatal() {
|
| - RefactoringStatus result = new RefactoringStatus();
|
| - for (RefactoringStatusEntry entry in entries) {
|
| - if (entry.severity == RefactoringStatusSeverity.ERROR) {
|
| - entry = new RefactoringStatusEntry(
|
| - RefactoringStatusSeverity.FATAL,
|
| - entry.message,
|
| - entry.context);
|
| - }
|
| - result._addEntry(entry);
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - @override
|
| - String toString() {
|
| - StringBuffer sb = new StringBuffer();
|
| - sb.write("<");
|
| - sb.write(_severity.name);
|
| - if (!isOK) {
|
| - sb.write("\n");
|
| - for (RefactoringStatusEntry entry in entries) {
|
| - sb.write("\t");
|
| - sb.write(entry);
|
| - sb.write("\n");
|
| - }
|
| - }
|
| - sb.write(">");
|
| - return sb.toString();
|
| - }
|
| -
|
| - /**
|
| - * Adds the given [RefactoringStatusEntry] and updates [severity].
|
| - */
|
| - void _addEntry(RefactoringStatusEntry entry) {
|
| - entries.add(entry);
|
| - _severity = RefactoringStatusSeverity._max(_severity, entry.severity);
|
| - }
|
| -}
|
| -
|
| -
|
| -/**
|
| - * [RefactoringStatusContext] can be used to annotate [RefactoringStatusEntry]s
|
| - * with additional information typically presented in the user interface.
|
| - */
|
| -class RefactoringStatusContext {
|
| - /**
|
| - * The [AnalysisContext] in which this status occurs.
|
| - */
|
| - final AnalysisContext context;
|
| -
|
| - /**
|
| - * The [Source] in which this status occurs.
|
| - */
|
| - final Source source;
|
| -
|
| - /**
|
| - * The [SourceRange] with specific location where this status occurs.
|
| - */
|
| - final SourceRange range;
|
| -
|
| - /**
|
| - * Creates a new [RefactoringStatusContext].
|
| - */
|
| - RefactoringStatusContext(this.context, this.source, this.range);
|
| -
|
| - /**
|
| - * Creates a new [RefactoringStatusContext] for the given [Element].
|
| - */
|
| - factory RefactoringStatusContext.forElement(Element element) {
|
| - AnalysisContext context = element.context;
|
| - Source source = element.source;
|
| - SourceRange range = rangeElementName(element);
|
| - return new RefactoringStatusContext(context, source, range);
|
| - }
|
| -
|
| - /**
|
| - * Creates a new [RefactoringStatusContext] for the given [SearchMatch].
|
| - */
|
| - factory RefactoringStatusContext.forMatch(SearchMatch match) {
|
| - Element enclosingElement = match.element;
|
| - return new RefactoringStatusContext(
|
| - enclosingElement.context,
|
| - enclosingElement.source,
|
| - match.sourceRange);
|
| - }
|
| -
|
| - /**
|
| - * Creates a new [RefactoringStatusContext] for the given [AstNode].
|
| - */
|
| - factory RefactoringStatusContext.forNode(AstNode node) {
|
| - CompilationUnit unit = node.getAncestor((node) => node is CompilationUnit);
|
| - CompilationUnitElement unitElement = unit.element;
|
| - AnalysisContext context = unitElement.context;
|
| - Source source = unitElement.source;
|
| - SourceRange range = rangeNode(node);
|
| - return new RefactoringStatusContext(context, source, range);
|
| - }
|
| -
|
| - /**
|
| - * Creates a new [RefactoringStatusContext] for the given [CompilationUnit].
|
| - */
|
| - factory RefactoringStatusContext.forUnit(CompilationUnit unit,
|
| - SourceRange range) {
|
| - CompilationUnitElement unitElement = unit.element;
|
| - AnalysisContext context = unitElement.context;
|
| - Source source = unitElement.source;
|
| - return new RefactoringStatusContext(context, source, range);
|
| - }
|
| -
|
| - @override
|
| - String toString() {
|
| - JavaStringBuilder builder = new JavaStringBuilder();
|
| - builder.append("[source=");
|
| - builder.append(source);
|
| - builder.append(", range=");
|
| - builder.append(range);
|
| - builder.append("]");
|
| - return builder.toString();
|
| - }
|
| -}
|
| -
|
| -
|
| -/**
|
| - * An immutable object representing an entry in a [RefactoringStatus].
|
| - *
|
| - * A [RefactoringStatusEntry] consists of a severity, a message and a context.
|
| - */
|
| -class RefactoringStatusEntry {
|
| - /**
|
| - * The severity level.
|
| - */
|
| - final RefactoringStatusSeverity severity;
|
| -
|
| - /**
|
| - * The message of the status entry.
|
| - */
|
| - final String message;
|
| -
|
| - /**
|
| - * The [RefactoringStatusContext] which can be used to show more detailed
|
| - * information regarding this status entry in the UI.
|
| - *
|
| - * May be `null` indicating that no context is available.
|
| - */
|
| - final RefactoringStatusContext context;
|
| -
|
| - RefactoringStatusEntry(this.severity, this.message, [this.context]);
|
| -
|
| - /**
|
| - * Returns whether the entry represents an error or not.
|
| - */
|
| - bool get isError => severity == RefactoringStatusSeverity.ERROR;
|
| -
|
| - /**
|
| - * Returns whether the entry represents a fatal error or not.
|
| - */
|
| - bool get isFatalError => severity == RefactoringStatusSeverity.FATAL;
|
| -
|
| - /**
|
| - * Returns whether the entry represents a warning or not.
|
| - */
|
| - bool get isWarning => severity == RefactoringStatusSeverity.WARNING;
|
| -
|
| - @override
|
| - String toString() {
|
| - if (context != null) {
|
| - return "${severity}: ${message}; Context: ${context}";
|
| - } else {
|
| - return "${severity}: ${message}";
|
| - }
|
| - }
|
| -}
|
| -
|
| -
|
| -/**
|
| - * Severity of [RefactoringStatus].
|
| - */
|
| -class RefactoringStatusSeverity {
|
| - /**
|
| - * The severity indicating the nominal case.
|
| - */
|
| - static const OK = const RefactoringStatusSeverity('OK', 0);
|
| -
|
| - /**
|
| - * The severity indicating a warning.
|
| - *
|
| - * Use this severity if the refactoring can be performed, but you assume that
|
| - * the user could not be aware of problems or confusions resulting from the
|
| - * execution.
|
| - */
|
| - static const WARNING = const RefactoringStatusSeverity('WARNING', 2);
|
| -
|
| - /**
|
| - * The severity indicating an error.
|
| - *
|
| - * Use this severity if the refactoring can be performed, but the refactoring
|
| - * will not be behavior preserving and/or the partial execution will lead to
|
| - * an inconsistent state (e.g. compile errors).
|
| - */
|
| - static const ERROR = const RefactoringStatusSeverity('ERROR', 3);
|
| -
|
| - /**
|
| - * The severity indicating a fatal error.
|
| - *
|
| - * Use this severity if the refactoring cannot be performed, and execution
|
| - * would lead to major problems. Note that this completely blocks the user
|
| - * from performing this refactoring.
|
| - *
|
| - * It is often preferable to use an [ERROR] status and allow a partial
|
| - * execution (e.g. if just one reference to a refactored element cannot be
|
| - * updated).
|
| - */
|
| - static const FATAL = const RefactoringStatusSeverity('FATAL', 4);
|
| -
|
| - final String name;
|
| - final int ordinal;
|
| -
|
| - const RefactoringStatusSeverity(this.name, this.ordinal);
|
| -
|
| - @override
|
| - String toString() => name;
|
| -
|
| - /**
|
| - * Returns the most severe [RefactoringStatusSeverity].
|
| - */
|
| - static RefactoringStatusSeverity _max(RefactoringStatusSeverity a,
|
| - RefactoringStatusSeverity b) {
|
| - if (b.ordinal > a.ordinal) {
|
| - return b;
|
| - }
|
| - return a;
|
| - }
|
| -}
|
|
|