10577 lines
294 KiB
Dart
10577 lines
294 KiB
Dart
// Copyright (c) 2017, 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.
|
||
//
|
||
// This file has been automatically generated. Please do not edit it manually.
|
||
// To regenerate the file, use the script
|
||
// "pkg/analysis_server/tool/spec/generate_files".
|
||
|
||
import 'dart:convert' hide JsonDecoder;
|
||
|
||
import 'package:analyzer/src/generated/utilities_general.dart';
|
||
import 'package:analyzer_plugin/protocol/protocol.dart';
|
||
import 'package:analyzer_plugin/src/protocol/protocol_internal.dart';
|
||
|
||
/**
|
||
* AddContentOverlay
|
||
*
|
||
* {
|
||
* "type": "add"
|
||
* "content": String
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AddContentOverlay implements HasToJson {
|
||
String _content;
|
||
|
||
/**
|
||
* The new content of the file.
|
||
*/
|
||
String get content => _content;
|
||
|
||
/**
|
||
* The new content of the file.
|
||
*/
|
||
void set content(String value) {
|
||
assert(value != null);
|
||
this._content = value;
|
||
}
|
||
|
||
AddContentOverlay(String content) {
|
||
this.content = content;
|
||
}
|
||
|
||
factory AddContentOverlay.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
if (json["type"] != "add") {
|
||
throw jsonDecoder.mismatch(jsonPath, "equal " + "add", json);
|
||
}
|
||
String content;
|
||
if (json.containsKey("content")) {
|
||
content = jsonDecoder.decodeString(jsonPath + ".content", json["content"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "content");
|
||
}
|
||
return new AddContentOverlay(content);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "AddContentOverlay", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["type"] = "add";
|
||
result["content"] = content;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AddContentOverlay) {
|
||
return content == other.content;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, 704418402);
|
||
hash = JenkinsSmiHash.combine(hash, content.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* AnalysisError
|
||
*
|
||
* {
|
||
* "severity": AnalysisErrorSeverity
|
||
* "type": AnalysisErrorType
|
||
* "location": Location
|
||
* "message": String
|
||
* "correction": optional String
|
||
* "code": String
|
||
* "hasFix": optional bool
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisError implements HasToJson {
|
||
AnalysisErrorSeverity _severity;
|
||
|
||
AnalysisErrorType _type;
|
||
|
||
Location _location;
|
||
|
||
String _message;
|
||
|
||
String _correction;
|
||
|
||
String _code;
|
||
|
||
bool _hasFix;
|
||
|
||
/**
|
||
* The severity of the error.
|
||
*/
|
||
AnalysisErrorSeverity get severity => _severity;
|
||
|
||
/**
|
||
* The severity of the error.
|
||
*/
|
||
void set severity(AnalysisErrorSeverity value) {
|
||
assert(value != null);
|
||
this._severity = value;
|
||
}
|
||
|
||
/**
|
||
* The type of the error.
|
||
*/
|
||
AnalysisErrorType get type => _type;
|
||
|
||
/**
|
||
* The type of the error.
|
||
*/
|
||
void set type(AnalysisErrorType value) {
|
||
assert(value != null);
|
||
this._type = value;
|
||
}
|
||
|
||
/**
|
||
* The location associated with the error.
|
||
*/
|
||
Location get location => _location;
|
||
|
||
/**
|
||
* The location associated with the error.
|
||
*/
|
||
void set location(Location value) {
|
||
assert(value != null);
|
||
this._location = value;
|
||
}
|
||
|
||
/**
|
||
* The message to be displayed for this error. The message should indicate
|
||
* what is wrong with the code and why it is wrong.
|
||
*/
|
||
String get message => _message;
|
||
|
||
/**
|
||
* The message to be displayed for this error. The message should indicate
|
||
* what is wrong with the code and why it is wrong.
|
||
*/
|
||
void set message(String value) {
|
||
assert(value != null);
|
||
this._message = value;
|
||
}
|
||
|
||
/**
|
||
* The correction message to be displayed for this error. The correction
|
||
* message should indicate how the user can fix the error. The field is
|
||
* omitted if there is no correction message associated with the error code.
|
||
*/
|
||
String get correction => _correction;
|
||
|
||
/**
|
||
* The correction message to be displayed for this error. The correction
|
||
* message should indicate how the user can fix the error. The field is
|
||
* omitted if there is no correction message associated with the error code.
|
||
*/
|
||
void set correction(String value) {
|
||
this._correction = value;
|
||
}
|
||
|
||
/**
|
||
* The name, as a string, of the error code associated with this error.
|
||
*/
|
||
String get code => _code;
|
||
|
||
/**
|
||
* The name, as a string, of the error code associated with this error.
|
||
*/
|
||
void set code(String value) {
|
||
assert(value != null);
|
||
this._code = value;
|
||
}
|
||
|
||
/**
|
||
* A hint to indicate to interested clients that this error has an associated
|
||
* fix (or fixes). The absence of this field implies there are not known to
|
||
* be fixes. Note that since the operation to calculate whether fixes apply
|
||
* needs to be performant it is possible that complicated tests will be
|
||
* skipped and a false negative returned. For this reason, this attribute
|
||
* should be treated as a "hint". Despite the possibility of false negatives,
|
||
* no false positives should be returned. If a client sees this flag set they
|
||
* can proceed with the confidence that there are in fact associated fixes.
|
||
*/
|
||
bool get hasFix => _hasFix;
|
||
|
||
/**
|
||
* A hint to indicate to interested clients that this error has an associated
|
||
* fix (or fixes). The absence of this field implies there are not known to
|
||
* be fixes. Note that since the operation to calculate whether fixes apply
|
||
* needs to be performant it is possible that complicated tests will be
|
||
* skipped and a false negative returned. For this reason, this attribute
|
||
* should be treated as a "hint". Despite the possibility of false negatives,
|
||
* no false positives should be returned. If a client sees this flag set they
|
||
* can proceed with the confidence that there are in fact associated fixes.
|
||
*/
|
||
void set hasFix(bool value) {
|
||
this._hasFix = value;
|
||
}
|
||
|
||
AnalysisError(AnalysisErrorSeverity severity, AnalysisErrorType type, Location location, String message, String code, {String correction, bool hasFix}) {
|
||
this.severity = severity;
|
||
this.type = type;
|
||
this.location = location;
|
||
this.message = message;
|
||
this.correction = correction;
|
||
this.code = code;
|
||
this.hasFix = hasFix;
|
||
}
|
||
|
||
factory AnalysisError.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
AnalysisErrorSeverity severity;
|
||
if (json.containsKey("severity")) {
|
||
severity = new AnalysisErrorSeverity.fromJson(jsonDecoder, jsonPath + ".severity", json["severity"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "severity");
|
||
}
|
||
AnalysisErrorType type;
|
||
if (json.containsKey("type")) {
|
||
type = new AnalysisErrorType.fromJson(jsonDecoder, jsonPath + ".type", json["type"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "type");
|
||
}
|
||
Location location;
|
||
if (json.containsKey("location")) {
|
||
location = new Location.fromJson(jsonDecoder, jsonPath + ".location", json["location"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "location");
|
||
}
|
||
String message;
|
||
if (json.containsKey("message")) {
|
||
message = jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "message");
|
||
}
|
||
String correction;
|
||
if (json.containsKey("correction")) {
|
||
correction = jsonDecoder.decodeString(jsonPath + ".correction", json["correction"]);
|
||
}
|
||
String code;
|
||
if (json.containsKey("code")) {
|
||
code = jsonDecoder.decodeString(jsonPath + ".code", json["code"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "code");
|
||
}
|
||
bool hasFix;
|
||
if (json.containsKey("hasFix")) {
|
||
hasFix = jsonDecoder.decodeBool(jsonPath + ".hasFix", json["hasFix"]);
|
||
}
|
||
return new AnalysisError(severity, type, location, message, code, correction: correction, hasFix: hasFix);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "AnalysisError", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["severity"] = severity.toJson();
|
||
result["type"] = type.toJson();
|
||
result["location"] = location.toJson();
|
||
result["message"] = message;
|
||
if (correction != null) {
|
||
result["correction"] = correction;
|
||
}
|
||
result["code"] = code;
|
||
if (hasFix != null) {
|
||
result["hasFix"] = hasFix;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisError) {
|
||
return severity == other.severity &&
|
||
type == other.type &&
|
||
location == other.location &&
|
||
message == other.message &&
|
||
correction == other.correction &&
|
||
code == other.code &&
|
||
hasFix == other.hasFix;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, severity.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, type.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, location.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, message.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, correction.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, code.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, hasFix.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* AnalysisErrorFixes
|
||
*
|
||
* {
|
||
* "error": AnalysisError
|
||
* "fixes": List<SourceChange>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisErrorFixes implements HasToJson {
|
||
AnalysisError _error;
|
||
|
||
List<SourceChange> _fixes;
|
||
|
||
/**
|
||
* The error with which the fixes are associated.
|
||
*/
|
||
AnalysisError get error => _error;
|
||
|
||
/**
|
||
* The error with which the fixes are associated.
|
||
*/
|
||
void set error(AnalysisError value) {
|
||
assert(value != null);
|
||
this._error = value;
|
||
}
|
||
|
||
/**
|
||
* The fixes associated with the error.
|
||
*/
|
||
List<SourceChange> get fixes => _fixes;
|
||
|
||
/**
|
||
* The fixes associated with the error.
|
||
*/
|
||
void set fixes(List<SourceChange> value) {
|
||
assert(value != null);
|
||
this._fixes = value;
|
||
}
|
||
|
||
AnalysisErrorFixes(AnalysisError error, {List<SourceChange> fixes}) {
|
||
this.error = error;
|
||
if (fixes == null) {
|
||
this.fixes = <SourceChange>[];
|
||
} else {
|
||
this.fixes = fixes;
|
||
}
|
||
}
|
||
|
||
factory AnalysisErrorFixes.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
AnalysisError error;
|
||
if (json.containsKey("error")) {
|
||
error = new AnalysisError.fromJson(jsonDecoder, jsonPath + ".error", json["error"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "error");
|
||
}
|
||
List<SourceChange> fixes;
|
||
if (json.containsKey("fixes")) {
|
||
fixes = jsonDecoder.decodeList(jsonPath + ".fixes", json["fixes"], (String jsonPath, Object json) => new SourceChange.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "fixes");
|
||
}
|
||
return new AnalysisErrorFixes(error, fixes: fixes);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorFixes", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["error"] = error.toJson();
|
||
result["fixes"] = fixes.map((SourceChange value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisErrorFixes) {
|
||
return error == other.error &&
|
||
listEqual(fixes, other.fixes, (SourceChange a, SourceChange b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, error.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, fixes.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* AnalysisErrorSeverity
|
||
*
|
||
* enum {
|
||
* INFO
|
||
* WARNING
|
||
* ERROR
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisErrorSeverity implements Enum {
|
||
static const AnalysisErrorSeverity INFO = const AnalysisErrorSeverity._("INFO");
|
||
|
||
static const AnalysisErrorSeverity WARNING = const AnalysisErrorSeverity._("WARNING");
|
||
|
||
static const AnalysisErrorSeverity ERROR = const AnalysisErrorSeverity._("ERROR");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<AnalysisErrorSeverity> VALUES = const <AnalysisErrorSeverity>[INFO, WARNING, ERROR];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const AnalysisErrorSeverity._(this.name);
|
||
|
||
factory AnalysisErrorSeverity(String name) {
|
||
switch (name) {
|
||
case "INFO":
|
||
return INFO;
|
||
case "WARNING":
|
||
return WARNING;
|
||
case "ERROR":
|
||
return ERROR;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory AnalysisErrorSeverity.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new AnalysisErrorSeverity(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorSeverity", json);
|
||
}
|
||
|
||
@override
|
||
String toString() => "AnalysisErrorSeverity.$name";
|
||
|
||
String toJson() => name;
|
||
}
|
||
|
||
/**
|
||
* AnalysisErrorType
|
||
*
|
||
* enum {
|
||
* CHECKED_MODE_COMPILE_TIME_ERROR
|
||
* COMPILE_TIME_ERROR
|
||
* HINT
|
||
* LINT
|
||
* STATIC_TYPE_WARNING
|
||
* STATIC_WARNING
|
||
* SYNTACTIC_ERROR
|
||
* TODO
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisErrorType implements Enum {
|
||
static const AnalysisErrorType CHECKED_MODE_COMPILE_TIME_ERROR = const AnalysisErrorType._("CHECKED_MODE_COMPILE_TIME_ERROR");
|
||
|
||
static const AnalysisErrorType COMPILE_TIME_ERROR = const AnalysisErrorType._("COMPILE_TIME_ERROR");
|
||
|
||
static const AnalysisErrorType HINT = const AnalysisErrorType._("HINT");
|
||
|
||
static const AnalysisErrorType LINT = const AnalysisErrorType._("LINT");
|
||
|
||
static const AnalysisErrorType STATIC_TYPE_WARNING = const AnalysisErrorType._("STATIC_TYPE_WARNING");
|
||
|
||
static const AnalysisErrorType STATIC_WARNING = const AnalysisErrorType._("STATIC_WARNING");
|
||
|
||
static const AnalysisErrorType SYNTACTIC_ERROR = const AnalysisErrorType._("SYNTACTIC_ERROR");
|
||
|
||
static const AnalysisErrorType TODO = const AnalysisErrorType._("TODO");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<AnalysisErrorType> VALUES = const <AnalysisErrorType>[CHECKED_MODE_COMPILE_TIME_ERROR, COMPILE_TIME_ERROR, HINT, LINT, STATIC_TYPE_WARNING, STATIC_WARNING, SYNTACTIC_ERROR, TODO];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const AnalysisErrorType._(this.name);
|
||
|
||
factory AnalysisErrorType(String name) {
|
||
switch (name) {
|
||
case "CHECKED_MODE_COMPILE_TIME_ERROR":
|
||
return CHECKED_MODE_COMPILE_TIME_ERROR;
|
||
case "COMPILE_TIME_ERROR":
|
||
return COMPILE_TIME_ERROR;
|
||
case "HINT":
|
||
return HINT;
|
||
case "LINT":
|
||
return LINT;
|
||
case "STATIC_TYPE_WARNING":
|
||
return STATIC_TYPE_WARNING;
|
||
case "STATIC_WARNING":
|
||
return STATIC_WARNING;
|
||
case "SYNTACTIC_ERROR":
|
||
return SYNTACTIC_ERROR;
|
||
case "TODO":
|
||
return TODO;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory AnalysisErrorType.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new AnalysisErrorType(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorType", json);
|
||
}
|
||
|
||
@override
|
||
String toString() => "AnalysisErrorType.$name";
|
||
|
||
String toJson() => name;
|
||
}
|
||
|
||
/**
|
||
* analysis.errors params
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "errors": List<AnalysisError>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisErrorsParams implements HasToJson {
|
||
String _file;
|
||
|
||
List<AnalysisError> _errors;
|
||
|
||
/**
|
||
* The file containing the errors.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file containing the errors.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The errors contained in the file.
|
||
*/
|
||
List<AnalysisError> get errors => _errors;
|
||
|
||
/**
|
||
* The errors contained in the file.
|
||
*/
|
||
void set errors(List<AnalysisError> value) {
|
||
assert(value != null);
|
||
this._errors = value;
|
||
}
|
||
|
||
AnalysisErrorsParams(String file, List<AnalysisError> errors) {
|
||
this.file = file;
|
||
this.errors = errors;
|
||
}
|
||
|
||
factory AnalysisErrorsParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
List<AnalysisError> errors;
|
||
if (json.containsKey("errors")) {
|
||
errors = jsonDecoder.decodeList(jsonPath + ".errors", json["errors"], (String jsonPath, Object json) => new AnalysisError.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "errors");
|
||
}
|
||
return new AnalysisErrorsParams(file, errors);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.errors params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisErrorsParams.fromNotification(Notification notification) {
|
||
return new AnalysisErrorsParams.fromJson(
|
||
new ResponseDecoder(null), "params", notification.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["errors"] = errors.map((AnalysisError value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
Notification toNotification() {
|
||
return new Notification("analysis.errors", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisErrorsParams) {
|
||
return file == other.file &&
|
||
listEqual(errors, other.errors, (AnalysisError a, AnalysisError b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, errors.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.folding params
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "regions": List<FoldingRegion>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisFoldingParams implements HasToJson {
|
||
String _file;
|
||
|
||
List<FoldingRegion> _regions;
|
||
|
||
/**
|
||
* The file containing the folding regions.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file containing the folding regions.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The folding regions contained in the file.
|
||
*/
|
||
List<FoldingRegion> get regions => _regions;
|
||
|
||
/**
|
||
* The folding regions contained in the file.
|
||
*/
|
||
void set regions(List<FoldingRegion> value) {
|
||
assert(value != null);
|
||
this._regions = value;
|
||
}
|
||
|
||
AnalysisFoldingParams(String file, List<FoldingRegion> regions) {
|
||
this.file = file;
|
||
this.regions = regions;
|
||
}
|
||
|
||
factory AnalysisFoldingParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
List<FoldingRegion> regions;
|
||
if (json.containsKey("regions")) {
|
||
regions = jsonDecoder.decodeList(jsonPath + ".regions", json["regions"], (String jsonPath, Object json) => new FoldingRegion.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "regions");
|
||
}
|
||
return new AnalysisFoldingParams(file, regions);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.folding params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisFoldingParams.fromNotification(Notification notification) {
|
||
return new AnalysisFoldingParams.fromJson(
|
||
new ResponseDecoder(null), "params", notification.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["regions"] = regions.map((FoldingRegion value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
Notification toNotification() {
|
||
return new Notification("analysis.folding", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisFoldingParams) {
|
||
return file == other.file &&
|
||
listEqual(regions, other.regions, (FoldingRegion a, FoldingRegion b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, regions.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.handleWatchEvents params
|
||
*
|
||
* {
|
||
* "events": List<WatchEvent>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisHandleWatchEventsParams implements HasToJson {
|
||
List<WatchEvent> _events;
|
||
|
||
/**
|
||
* The watch events that the plugin should handle.
|
||
*/
|
||
List<WatchEvent> get events => _events;
|
||
|
||
/**
|
||
* The watch events that the plugin should handle.
|
||
*/
|
||
void set events(List<WatchEvent> value) {
|
||
assert(value != null);
|
||
this._events = value;
|
||
}
|
||
|
||
AnalysisHandleWatchEventsParams(List<WatchEvent> events) {
|
||
this.events = events;
|
||
}
|
||
|
||
factory AnalysisHandleWatchEventsParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
List<WatchEvent> events;
|
||
if (json.containsKey("events")) {
|
||
events = jsonDecoder.decodeList(jsonPath + ".events", json["events"], (String jsonPath, Object json) => new WatchEvent.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "events");
|
||
}
|
||
return new AnalysisHandleWatchEventsParams(events);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.handleWatchEvents params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisHandleWatchEventsParams.fromRequest(Request request) {
|
||
return new AnalysisHandleWatchEventsParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["events"] = events.map((WatchEvent value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "analysis.handleWatchEvents", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisHandleWatchEventsParams) {
|
||
return listEqual(events, other.events, (WatchEvent a, WatchEvent b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, events.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.handleWatchEvents result
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisHandleWatchEventsResult implements ResponseResult {
|
||
@override
|
||
Map<String, dynamic> toJson() => <String, dynamic>{};
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: null);
|
||
}
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisHandleWatchEventsResult) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 779767607;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.highlights params
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "regions": List<HighlightRegion>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisHighlightsParams implements HasToJson {
|
||
String _file;
|
||
|
||
List<HighlightRegion> _regions;
|
||
|
||
/**
|
||
* The file containing the highlight regions.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file containing the highlight regions.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The highlight regions contained in the file.
|
||
*/
|
||
List<HighlightRegion> get regions => _regions;
|
||
|
||
/**
|
||
* The highlight regions contained in the file.
|
||
*/
|
||
void set regions(List<HighlightRegion> value) {
|
||
assert(value != null);
|
||
this._regions = value;
|
||
}
|
||
|
||
AnalysisHighlightsParams(String file, List<HighlightRegion> regions) {
|
||
this.file = file;
|
||
this.regions = regions;
|
||
}
|
||
|
||
factory AnalysisHighlightsParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
List<HighlightRegion> regions;
|
||
if (json.containsKey("regions")) {
|
||
regions = jsonDecoder.decodeList(jsonPath + ".regions", json["regions"], (String jsonPath, Object json) => new HighlightRegion.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "regions");
|
||
}
|
||
return new AnalysisHighlightsParams(file, regions);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.highlights params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisHighlightsParams.fromNotification(Notification notification) {
|
||
return new AnalysisHighlightsParams.fromJson(
|
||
new ResponseDecoder(null), "params", notification.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["regions"] = regions.map((HighlightRegion value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
Notification toNotification() {
|
||
return new Notification("analysis.highlights", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisHighlightsParams) {
|
||
return file == other.file &&
|
||
listEqual(regions, other.regions, (HighlightRegion a, HighlightRegion b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, regions.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.navigation params
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "regions": List<NavigationRegion>
|
||
* "targets": List<NavigationTarget>
|
||
* "files": List<FilePath>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisNavigationParams implements HasToJson {
|
||
String _file;
|
||
|
||
List<NavigationRegion> _regions;
|
||
|
||
List<NavigationTarget> _targets;
|
||
|
||
List<String> _files;
|
||
|
||
/**
|
||
* The file containing the navigation regions.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file containing the navigation regions.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The navigation regions contained in the file.
|
||
*/
|
||
List<NavigationRegion> get regions => _regions;
|
||
|
||
/**
|
||
* The navigation regions contained in the file.
|
||
*/
|
||
void set regions(List<NavigationRegion> value) {
|
||
assert(value != null);
|
||
this._regions = value;
|
||
}
|
||
|
||
/**
|
||
* The navigation targets referenced in the file. They are referenced by
|
||
* NavigationRegions by their index in this array.
|
||
*/
|
||
List<NavigationTarget> get targets => _targets;
|
||
|
||
/**
|
||
* The navigation targets referenced in the file. They are referenced by
|
||
* NavigationRegions by their index in this array.
|
||
*/
|
||
void set targets(List<NavigationTarget> value) {
|
||
assert(value != null);
|
||
this._targets = value;
|
||
}
|
||
|
||
/**
|
||
* The files containing navigation targets referenced in the file. They are
|
||
* referenced by NavigationTargets by their index in this array.
|
||
*/
|
||
List<String> get files => _files;
|
||
|
||
/**
|
||
* The files containing navigation targets referenced in the file. They are
|
||
* referenced by NavigationTargets by their index in this array.
|
||
*/
|
||
void set files(List<String> value) {
|
||
assert(value != null);
|
||
this._files = value;
|
||
}
|
||
|
||
AnalysisNavigationParams(String file, List<NavigationRegion> regions, List<NavigationTarget> targets, List<String> files) {
|
||
this.file = file;
|
||
this.regions = regions;
|
||
this.targets = targets;
|
||
this.files = files;
|
||
}
|
||
|
||
factory AnalysisNavigationParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
List<NavigationRegion> regions;
|
||
if (json.containsKey("regions")) {
|
||
regions = jsonDecoder.decodeList(jsonPath + ".regions", json["regions"], (String jsonPath, Object json) => new NavigationRegion.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "regions");
|
||
}
|
||
List<NavigationTarget> targets;
|
||
if (json.containsKey("targets")) {
|
||
targets = jsonDecoder.decodeList(jsonPath + ".targets", json["targets"], (String jsonPath, Object json) => new NavigationTarget.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "targets");
|
||
}
|
||
List<String> files;
|
||
if (json.containsKey("files")) {
|
||
files = jsonDecoder.decodeList(jsonPath + ".files", json["files"], jsonDecoder.decodeString);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "files");
|
||
}
|
||
return new AnalysisNavigationParams(file, regions, targets, files);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.navigation params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisNavigationParams.fromNotification(Notification notification) {
|
||
return new AnalysisNavigationParams.fromJson(
|
||
new ResponseDecoder(null), "params", notification.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["regions"] = regions.map((NavigationRegion value) => value.toJson()).toList();
|
||
result["targets"] = targets.map((NavigationTarget value) => value.toJson()).toList();
|
||
result["files"] = files;
|
||
return result;
|
||
}
|
||
|
||
Notification toNotification() {
|
||
return new Notification("analysis.navigation", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisNavigationParams) {
|
||
return file == other.file &&
|
||
listEqual(regions, other.regions, (NavigationRegion a, NavigationRegion b) => a == b) &&
|
||
listEqual(targets, other.targets, (NavigationTarget a, NavigationTarget b) => a == b) &&
|
||
listEqual(files, other.files, (String a, String b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, regions.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, targets.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, files.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.occurrences params
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "occurrences": List<Occurrences>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisOccurrencesParams implements HasToJson {
|
||
String _file;
|
||
|
||
List<Occurrences> _occurrences;
|
||
|
||
/**
|
||
* The file in which the references occur.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file in which the references occur.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The occurrences of references to elements within the file.
|
||
*/
|
||
List<Occurrences> get occurrences => _occurrences;
|
||
|
||
/**
|
||
* The occurrences of references to elements within the file.
|
||
*/
|
||
void set occurrences(List<Occurrences> value) {
|
||
assert(value != null);
|
||
this._occurrences = value;
|
||
}
|
||
|
||
AnalysisOccurrencesParams(String file, List<Occurrences> occurrences) {
|
||
this.file = file;
|
||
this.occurrences = occurrences;
|
||
}
|
||
|
||
factory AnalysisOccurrencesParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
List<Occurrences> occurrences;
|
||
if (json.containsKey("occurrences")) {
|
||
occurrences = jsonDecoder.decodeList(jsonPath + ".occurrences", json["occurrences"], (String jsonPath, Object json) => new Occurrences.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "occurrences");
|
||
}
|
||
return new AnalysisOccurrencesParams(file, occurrences);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.occurrences params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisOccurrencesParams.fromNotification(Notification notification) {
|
||
return new AnalysisOccurrencesParams.fromJson(
|
||
new ResponseDecoder(null), "params", notification.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["occurrences"] = occurrences.map((Occurrences value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
Notification toNotification() {
|
||
return new Notification("analysis.occurrences", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisOccurrencesParams) {
|
||
return file == other.file &&
|
||
listEqual(occurrences, other.occurrences, (Occurrences a, Occurrences b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, occurrences.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.outline params
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "outline": List<Outline>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisOutlineParams implements HasToJson {
|
||
String _file;
|
||
|
||
List<Outline> _outline;
|
||
|
||
/**
|
||
* The file with which the outline is associated.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file with which the outline is associated.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The outline fragments associated with the file.
|
||
*/
|
||
List<Outline> get outline => _outline;
|
||
|
||
/**
|
||
* The outline fragments associated with the file.
|
||
*/
|
||
void set outline(List<Outline> value) {
|
||
assert(value != null);
|
||
this._outline = value;
|
||
}
|
||
|
||
AnalysisOutlineParams(String file, List<Outline> outline) {
|
||
this.file = file;
|
||
this.outline = outline;
|
||
}
|
||
|
||
factory AnalysisOutlineParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
List<Outline> outline;
|
||
if (json.containsKey("outline")) {
|
||
outline = jsonDecoder.decodeList(jsonPath + ".outline", json["outline"], (String jsonPath, Object json) => new Outline.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "outline");
|
||
}
|
||
return new AnalysisOutlineParams(file, outline);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.outline params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisOutlineParams.fromNotification(Notification notification) {
|
||
return new AnalysisOutlineParams.fromJson(
|
||
new ResponseDecoder(null), "params", notification.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["outline"] = outline.map((Outline value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
Notification toNotification() {
|
||
return new Notification("analysis.outline", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisOutlineParams) {
|
||
return file == other.file &&
|
||
listEqual(outline, other.outline, (Outline a, Outline b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, outline.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.reanalyze params
|
||
*
|
||
* {
|
||
* "roots": optional List<FilePath>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisReanalyzeParams implements HasToJson {
|
||
List<String> _roots;
|
||
|
||
/**
|
||
* A list of the context roots that are to be re-analyzed.
|
||
*
|
||
* If no context roots are provided, then all current context roots should be
|
||
* re-analyzed.
|
||
*/
|
||
List<String> get roots => _roots;
|
||
|
||
/**
|
||
* A list of the context roots that are to be re-analyzed.
|
||
*
|
||
* If no context roots are provided, then all current context roots should be
|
||
* re-analyzed.
|
||
*/
|
||
void set roots(List<String> value) {
|
||
this._roots = value;
|
||
}
|
||
|
||
AnalysisReanalyzeParams({List<String> roots}) {
|
||
this.roots = roots;
|
||
}
|
||
|
||
factory AnalysisReanalyzeParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
List<String> roots;
|
||
if (json.containsKey("roots")) {
|
||
roots = jsonDecoder.decodeList(jsonPath + ".roots", json["roots"], jsonDecoder.decodeString);
|
||
}
|
||
return new AnalysisReanalyzeParams(roots: roots);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.reanalyze params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisReanalyzeParams.fromRequest(Request request) {
|
||
return new AnalysisReanalyzeParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
if (roots != null) {
|
||
result["roots"] = roots;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "analysis.reanalyze", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisReanalyzeParams) {
|
||
return listEqual(roots, other.roots, (String a, String b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, roots.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.reanalyze result
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisReanalyzeResult implements ResponseResult {
|
||
@override
|
||
Map<String, dynamic> toJson() => <String, dynamic>{};
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: null);
|
||
}
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisReanalyzeResult) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 846803925;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* AnalysisService
|
||
*
|
||
* enum {
|
||
* FOLDING
|
||
* HIGHLIGHTS
|
||
* NAVIGATION
|
||
* OCCURRENCES
|
||
* OUTLINE
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisService implements Enum {
|
||
static const AnalysisService FOLDING = const AnalysisService._("FOLDING");
|
||
|
||
static const AnalysisService HIGHLIGHTS = const AnalysisService._("HIGHLIGHTS");
|
||
|
||
static const AnalysisService NAVIGATION = const AnalysisService._("NAVIGATION");
|
||
|
||
static const AnalysisService OCCURRENCES = const AnalysisService._("OCCURRENCES");
|
||
|
||
static const AnalysisService OUTLINE = const AnalysisService._("OUTLINE");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<AnalysisService> VALUES = const <AnalysisService>[FOLDING, HIGHLIGHTS, NAVIGATION, OCCURRENCES, OUTLINE];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const AnalysisService._(this.name);
|
||
|
||
factory AnalysisService(String name) {
|
||
switch (name) {
|
||
case "FOLDING":
|
||
return FOLDING;
|
||
case "HIGHLIGHTS":
|
||
return HIGHLIGHTS;
|
||
case "NAVIGATION":
|
||
return NAVIGATION;
|
||
case "OCCURRENCES":
|
||
return OCCURRENCES;
|
||
case "OUTLINE":
|
||
return OUTLINE;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory AnalysisService.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new AnalysisService(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "AnalysisService", json);
|
||
}
|
||
|
||
@override
|
||
String toString() => "AnalysisService.$name";
|
||
|
||
String toJson() => name;
|
||
}
|
||
|
||
/**
|
||
* analysis.setContextBuilderOptions params
|
||
*
|
||
* {
|
||
* "options": ContextBuilderOptions
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisSetContextBuilderOptionsParams implements HasToJson {
|
||
ContextBuilderOptions _options;
|
||
|
||
/**
|
||
* The options used to build the analysis contexts.
|
||
*/
|
||
ContextBuilderOptions get options => _options;
|
||
|
||
/**
|
||
* The options used to build the analysis contexts.
|
||
*/
|
||
void set options(ContextBuilderOptions value) {
|
||
assert(value != null);
|
||
this._options = value;
|
||
}
|
||
|
||
AnalysisSetContextBuilderOptionsParams(ContextBuilderOptions options) {
|
||
this.options = options;
|
||
}
|
||
|
||
factory AnalysisSetContextBuilderOptionsParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
ContextBuilderOptions options;
|
||
if (json.containsKey("options")) {
|
||
options = new ContextBuilderOptions.fromJson(jsonDecoder, jsonPath + ".options", json["options"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "options");
|
||
}
|
||
return new AnalysisSetContextBuilderOptionsParams(options);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.setContextBuilderOptions params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisSetContextBuilderOptionsParams.fromRequest(Request request) {
|
||
return new AnalysisSetContextBuilderOptionsParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["options"] = options.toJson();
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "analysis.setContextBuilderOptions", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisSetContextBuilderOptionsParams) {
|
||
return options == other.options;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, options.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.setContextBuilderOptions result
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisSetContextBuilderOptionsResult implements ResponseResult {
|
||
@override
|
||
Map<String, dynamic> toJson() => <String, dynamic>{};
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: null);
|
||
}
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisSetContextBuilderOptionsResult) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 645412314;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.setContextRoots params
|
||
*
|
||
* {
|
||
* "roots": List<ContextRoot>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisSetContextRootsParams implements HasToJson {
|
||
List<ContextRoot> _roots;
|
||
|
||
/**
|
||
* A list of the context roots that should be analyzed.
|
||
*/
|
||
List<ContextRoot> get roots => _roots;
|
||
|
||
/**
|
||
* A list of the context roots that should be analyzed.
|
||
*/
|
||
void set roots(List<ContextRoot> value) {
|
||
assert(value != null);
|
||
this._roots = value;
|
||
}
|
||
|
||
AnalysisSetContextRootsParams(List<ContextRoot> roots) {
|
||
this.roots = roots;
|
||
}
|
||
|
||
factory AnalysisSetContextRootsParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
List<ContextRoot> roots;
|
||
if (json.containsKey("roots")) {
|
||
roots = jsonDecoder.decodeList(jsonPath + ".roots", json["roots"], (String jsonPath, Object json) => new ContextRoot.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "roots");
|
||
}
|
||
return new AnalysisSetContextRootsParams(roots);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.setContextRoots params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisSetContextRootsParams.fromRequest(Request request) {
|
||
return new AnalysisSetContextRootsParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["roots"] = roots.map((ContextRoot value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "analysis.setContextRoots", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisSetContextRootsParams) {
|
||
return listEqual(roots, other.roots, (ContextRoot a, ContextRoot b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, roots.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.setContextRoots result
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisSetContextRootsResult implements ResponseResult {
|
||
@override
|
||
Map<String, dynamic> toJson() => <String, dynamic>{};
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: null);
|
||
}
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisSetContextRootsResult) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 969645618;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.setPriorityFiles params
|
||
*
|
||
* {
|
||
* "files": List<FilePath>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisSetPriorityFilesParams implements HasToJson {
|
||
List<String> _files;
|
||
|
||
/**
|
||
* The files that are to be a priority for analysis.
|
||
*/
|
||
List<String> get files => _files;
|
||
|
||
/**
|
||
* The files that are to be a priority for analysis.
|
||
*/
|
||
void set files(List<String> value) {
|
||
assert(value != null);
|
||
this._files = value;
|
||
}
|
||
|
||
AnalysisSetPriorityFilesParams(List<String> files) {
|
||
this.files = files;
|
||
}
|
||
|
||
factory AnalysisSetPriorityFilesParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
List<String> files;
|
||
if (json.containsKey("files")) {
|
||
files = jsonDecoder.decodeList(jsonPath + ".files", json["files"], jsonDecoder.decodeString);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "files");
|
||
}
|
||
return new AnalysisSetPriorityFilesParams(files);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.setPriorityFiles params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisSetPriorityFilesParams.fromRequest(Request request) {
|
||
return new AnalysisSetPriorityFilesParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["files"] = files;
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "analysis.setPriorityFiles", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisSetPriorityFilesParams) {
|
||
return listEqual(files, other.files, (String a, String b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, files.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.setPriorityFiles result
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisSetPriorityFilesResult implements ResponseResult {
|
||
@override
|
||
Map<String, dynamic> toJson() => <String, dynamic>{};
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: null);
|
||
}
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisSetPriorityFilesResult) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 330050055;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.setSubscriptions params
|
||
*
|
||
* {
|
||
* "subscriptions": Map<AnalysisService, List<FilePath>>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisSetSubscriptionsParams implements HasToJson {
|
||
Map<AnalysisService, List<String>> _subscriptions;
|
||
|
||
/**
|
||
* A table mapping services to a list of the files being subscribed to the
|
||
* service.
|
||
*/
|
||
Map<AnalysisService, List<String>> get subscriptions => _subscriptions;
|
||
|
||
/**
|
||
* A table mapping services to a list of the files being subscribed to the
|
||
* service.
|
||
*/
|
||
void set subscriptions(Map<AnalysisService, List<String>> value) {
|
||
assert(value != null);
|
||
this._subscriptions = value;
|
||
}
|
||
|
||
AnalysisSetSubscriptionsParams(Map<AnalysisService, List<String>> subscriptions) {
|
||
this.subscriptions = subscriptions;
|
||
}
|
||
|
||
factory AnalysisSetSubscriptionsParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
Map<AnalysisService, List<String>> subscriptions;
|
||
if (json.containsKey("subscriptions")) {
|
||
subscriptions = jsonDecoder.decodeMap(jsonPath + ".subscriptions", json["subscriptions"], keyDecoder: (String jsonPath, Object json) => new AnalysisService.fromJson(jsonDecoder, jsonPath, json), valueDecoder: (String jsonPath, Object json) => jsonDecoder.decodeList(jsonPath, json, jsonDecoder.decodeString));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "subscriptions");
|
||
}
|
||
return new AnalysisSetSubscriptionsParams(subscriptions);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.setSubscriptions params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisSetSubscriptionsParams.fromRequest(Request request) {
|
||
return new AnalysisSetSubscriptionsParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["subscriptions"] = mapMap(subscriptions, keyCallback: (AnalysisService value) => value.toJson());
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "analysis.setSubscriptions", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisSetSubscriptionsParams) {
|
||
return mapEqual(subscriptions, other.subscriptions, (List<String> a, List<String> b) => listEqual(a, b, (String a, String b) => a == b));
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.setSubscriptions result
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisSetSubscriptionsResult implements ResponseResult {
|
||
@override
|
||
Map<String, dynamic> toJson() => <String, dynamic>{};
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: null);
|
||
}
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisSetSubscriptionsResult) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 218088493;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.updateContent params
|
||
*
|
||
* {
|
||
* "files": Map<FilePath, AddContentOverlay | ChangeContentOverlay | RemoveContentOverlay>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisUpdateContentParams implements HasToJson {
|
||
Map<String, dynamic> _files;
|
||
|
||
/**
|
||
* A table mapping the files whose content has changed to a description of
|
||
* the content change.
|
||
*/
|
||
Map<String, dynamic> get files => _files;
|
||
|
||
/**
|
||
* A table mapping the files whose content has changed to a description of
|
||
* the content change.
|
||
*/
|
||
void set files(Map<String, dynamic> value) {
|
||
assert(value != null);
|
||
this._files = value;
|
||
}
|
||
|
||
AnalysisUpdateContentParams(Map<String, dynamic> files) {
|
||
this.files = files;
|
||
}
|
||
|
||
factory AnalysisUpdateContentParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
Map<String, dynamic> files;
|
||
if (json.containsKey("files")) {
|
||
files = jsonDecoder.decodeMap(jsonPath + ".files", json["files"], valueDecoder: (String jsonPath, Object json) => jsonDecoder.decodeUnion(jsonPath, json, "type", {"add": (String jsonPath, Object json) => new AddContentOverlay.fromJson(jsonDecoder, jsonPath, json), "change": (String jsonPath, Object json) => new ChangeContentOverlay.fromJson(jsonDecoder, jsonPath, json), "remove": (String jsonPath, Object json) => new RemoveContentOverlay.fromJson(jsonDecoder, jsonPath, json)}));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "files");
|
||
}
|
||
return new AnalysisUpdateContentParams(files);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "analysis.updateContent params", json);
|
||
}
|
||
}
|
||
|
||
factory AnalysisUpdateContentParams.fromRequest(Request request) {
|
||
return new AnalysisUpdateContentParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["files"] = mapMap(files, valueCallback: (dynamic value) => value.toJson());
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "analysis.updateContent", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisUpdateContentParams) {
|
||
return mapEqual(files, other.files, (dynamic a, dynamic b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, files.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* analysis.updateContent result
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class AnalysisUpdateContentResult implements ResponseResult {
|
||
@override
|
||
Map<String, dynamic> toJson() => <String, dynamic>{};
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: null);
|
||
}
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is AnalysisUpdateContentResult) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 468798730;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* ChangeContentOverlay
|
||
*
|
||
* {
|
||
* "type": "change"
|
||
* "edits": List<SourceEdit>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class ChangeContentOverlay implements HasToJson {
|
||
List<SourceEdit> _edits;
|
||
|
||
/**
|
||
* The edits to be applied to the file.
|
||
*/
|
||
List<SourceEdit> get edits => _edits;
|
||
|
||
/**
|
||
* The edits to be applied to the file.
|
||
*/
|
||
void set edits(List<SourceEdit> value) {
|
||
assert(value != null);
|
||
this._edits = value;
|
||
}
|
||
|
||
ChangeContentOverlay(List<SourceEdit> edits) {
|
||
this.edits = edits;
|
||
}
|
||
|
||
factory ChangeContentOverlay.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
if (json["type"] != "change") {
|
||
throw jsonDecoder.mismatch(jsonPath, "equal " + "change", json);
|
||
}
|
||
List<SourceEdit> edits;
|
||
if (json.containsKey("edits")) {
|
||
edits = jsonDecoder.decodeList(jsonPath + ".edits", json["edits"], (String jsonPath, Object json) => new SourceEdit.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "edits");
|
||
}
|
||
return new ChangeContentOverlay(edits);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "ChangeContentOverlay", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["type"] = "change";
|
||
result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is ChangeContentOverlay) {
|
||
return listEqual(edits, other.edits, (SourceEdit a, SourceEdit b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, 873118866);
|
||
hash = JenkinsSmiHash.combine(hash, edits.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* completion.getSuggestions params
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "offset": int
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class CompletionGetSuggestionsParams implements HasToJson {
|
||
String _file;
|
||
|
||
int _offset;
|
||
|
||
/**
|
||
* The file containing the point at which suggestions are to be made.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file containing the point at which suggestions are to be made.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The offset within the file at which suggestions are to be made.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset within the file at which suggestions are to be made.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
CompletionGetSuggestionsParams(String file, int offset) {
|
||
this.file = file;
|
||
this.offset = offset;
|
||
}
|
||
|
||
factory CompletionGetSuggestionsParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
return new CompletionGetSuggestionsParams(file, offset);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "completion.getSuggestions params", json);
|
||
}
|
||
}
|
||
|
||
factory CompletionGetSuggestionsParams.fromRequest(Request request) {
|
||
return new CompletionGetSuggestionsParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["offset"] = offset;
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "completion.getSuggestions", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is CompletionGetSuggestionsParams) {
|
||
return file == other.file &&
|
||
offset == other.offset;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* completion.getSuggestions result
|
||
*
|
||
* {
|
||
* "replacementOffset": int
|
||
* "replacementLength": int
|
||
* "results": List<CompletionSuggestion>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class CompletionGetSuggestionsResult implements ResponseResult {
|
||
int _replacementOffset;
|
||
|
||
int _replacementLength;
|
||
|
||
List<CompletionSuggestion> _results;
|
||
|
||
/**
|
||
* The offset of the start of the text to be replaced. This will be different
|
||
* than the offset used to request the completion suggestions if there was a
|
||
* portion of an identifier before the original offset. In particular, the
|
||
* replacementOffset will be the offset of the beginning of said identifier.
|
||
*/
|
||
int get replacementOffset => _replacementOffset;
|
||
|
||
/**
|
||
* The offset of the start of the text to be replaced. This will be different
|
||
* than the offset used to request the completion suggestions if there was a
|
||
* portion of an identifier before the original offset. In particular, the
|
||
* replacementOffset will be the offset of the beginning of said identifier.
|
||
*/
|
||
void set replacementOffset(int value) {
|
||
assert(value != null);
|
||
this._replacementOffset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the text to be replaced if the remainder of the identifier
|
||
* containing the cursor is to be replaced when the suggestion is applied
|
||
* (that is, the number of characters in the existing identifier).
|
||
*/
|
||
int get replacementLength => _replacementLength;
|
||
|
||
/**
|
||
* The length of the text to be replaced if the remainder of the identifier
|
||
* containing the cursor is to be replaced when the suggestion is applied
|
||
* (that is, the number of characters in the existing identifier).
|
||
*/
|
||
void set replacementLength(int value) {
|
||
assert(value != null);
|
||
this._replacementLength = value;
|
||
}
|
||
|
||
/**
|
||
* The completion suggestions being reported. The notification contains all
|
||
* possible completions at the requested cursor position, even those that do
|
||
* not match the characters the user has already typed. This allows the
|
||
* client to respond to further keystrokes from the user without having to
|
||
* make additional requests.
|
||
*/
|
||
List<CompletionSuggestion> get results => _results;
|
||
|
||
/**
|
||
* The completion suggestions being reported. The notification contains all
|
||
* possible completions at the requested cursor position, even those that do
|
||
* not match the characters the user has already typed. This allows the
|
||
* client to respond to further keystrokes from the user without having to
|
||
* make additional requests.
|
||
*/
|
||
void set results(List<CompletionSuggestion> value) {
|
||
assert(value != null);
|
||
this._results = value;
|
||
}
|
||
|
||
CompletionGetSuggestionsResult(int replacementOffset, int replacementLength, List<CompletionSuggestion> results) {
|
||
this.replacementOffset = replacementOffset;
|
||
this.replacementLength = replacementLength;
|
||
this.results = results;
|
||
}
|
||
|
||
factory CompletionGetSuggestionsResult.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
int replacementOffset;
|
||
if (json.containsKey("replacementOffset")) {
|
||
replacementOffset = jsonDecoder.decodeInt(jsonPath + ".replacementOffset", json["replacementOffset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "replacementOffset");
|
||
}
|
||
int replacementLength;
|
||
if (json.containsKey("replacementLength")) {
|
||
replacementLength = jsonDecoder.decodeInt(jsonPath + ".replacementLength", json["replacementLength"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "replacementLength");
|
||
}
|
||
List<CompletionSuggestion> results;
|
||
if (json.containsKey("results")) {
|
||
results = jsonDecoder.decodeList(jsonPath + ".results", json["results"], (String jsonPath, Object json) => new CompletionSuggestion.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "results");
|
||
}
|
||
return new CompletionGetSuggestionsResult(replacementOffset, replacementLength, results);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "completion.getSuggestions result", json);
|
||
}
|
||
}
|
||
|
||
factory CompletionGetSuggestionsResult.fromResponse(Response response) {
|
||
return new CompletionGetSuggestionsResult.fromJson(
|
||
new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "result", response.result);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["replacementOffset"] = replacementOffset;
|
||
result["replacementLength"] = replacementLength;
|
||
result["results"] = results.map((CompletionSuggestion value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is CompletionGetSuggestionsResult) {
|
||
return replacementOffset == other.replacementOffset &&
|
||
replacementLength == other.replacementLength &&
|
||
listEqual(results, other.results, (CompletionSuggestion a, CompletionSuggestion b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, replacementOffset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, replacementLength.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, results.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* CompletionSuggestion
|
||
*
|
||
* {
|
||
* "kind": CompletionSuggestionKind
|
||
* "relevance": int
|
||
* "completion": String
|
||
* "selectionOffset": int
|
||
* "selectionLength": int
|
||
* "isDeprecated": bool
|
||
* "isPotential": bool
|
||
* "docSummary": optional String
|
||
* "docComplete": optional String
|
||
* "declaringType": optional String
|
||
* "element": optional Element
|
||
* "returnType": optional String
|
||
* "parameterNames": optional List<String>
|
||
* "parameterTypes": optional List<String>
|
||
* "requiredParameterCount": optional int
|
||
* "hasNamedParameters": optional bool
|
||
* "parameterName": optional String
|
||
* "parameterType": optional String
|
||
* "importUri": optional String
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class CompletionSuggestion implements HasToJson {
|
||
CompletionSuggestionKind _kind;
|
||
|
||
int _relevance;
|
||
|
||
String _completion;
|
||
|
||
int _selectionOffset;
|
||
|
||
int _selectionLength;
|
||
|
||
bool _isDeprecated;
|
||
|
||
bool _isPotential;
|
||
|
||
String _docSummary;
|
||
|
||
String _docComplete;
|
||
|
||
String _declaringType;
|
||
|
||
Element _element;
|
||
|
||
String _returnType;
|
||
|
||
List<String> _parameterNames;
|
||
|
||
List<String> _parameterTypes;
|
||
|
||
int _requiredParameterCount;
|
||
|
||
bool _hasNamedParameters;
|
||
|
||
String _parameterName;
|
||
|
||
String _parameterType;
|
||
|
||
String _importUri;
|
||
|
||
/**
|
||
* The kind of element being suggested.
|
||
*/
|
||
CompletionSuggestionKind get kind => _kind;
|
||
|
||
/**
|
||
* The kind of element being suggested.
|
||
*/
|
||
void set kind(CompletionSuggestionKind value) {
|
||
assert(value != null);
|
||
this._kind = value;
|
||
}
|
||
|
||
/**
|
||
* The relevance of this completion suggestion where a higher number
|
||
* indicates a higher relevance.
|
||
*/
|
||
int get relevance => _relevance;
|
||
|
||
/**
|
||
* The relevance of this completion suggestion where a higher number
|
||
* indicates a higher relevance.
|
||
*/
|
||
void set relevance(int value) {
|
||
assert(value != null);
|
||
this._relevance = value;
|
||
}
|
||
|
||
/**
|
||
* The identifier to be inserted if the suggestion is selected. If the
|
||
* suggestion is for a method or function, the client might want to
|
||
* additionally insert a template for the parameters. The information
|
||
* required in order to do so is contained in other fields.
|
||
*/
|
||
String get completion => _completion;
|
||
|
||
/**
|
||
* The identifier to be inserted if the suggestion is selected. If the
|
||
* suggestion is for a method or function, the client might want to
|
||
* additionally insert a template for the parameters. The information
|
||
* required in order to do so is contained in other fields.
|
||
*/
|
||
void set completion(String value) {
|
||
assert(value != null);
|
||
this._completion = value;
|
||
}
|
||
|
||
/**
|
||
* The offset, relative to the beginning of the completion, of where the
|
||
* selection should be placed after insertion.
|
||
*/
|
||
int get selectionOffset => _selectionOffset;
|
||
|
||
/**
|
||
* The offset, relative to the beginning of the completion, of where the
|
||
* selection should be placed after insertion.
|
||
*/
|
||
void set selectionOffset(int value) {
|
||
assert(value != null);
|
||
this._selectionOffset = value;
|
||
}
|
||
|
||
/**
|
||
* The number of characters that should be selected after insertion.
|
||
*/
|
||
int get selectionLength => _selectionLength;
|
||
|
||
/**
|
||
* The number of characters that should be selected after insertion.
|
||
*/
|
||
void set selectionLength(int value) {
|
||
assert(value != null);
|
||
this._selectionLength = value;
|
||
}
|
||
|
||
/**
|
||
* True if the suggested element is deprecated.
|
||
*/
|
||
bool get isDeprecated => _isDeprecated;
|
||
|
||
/**
|
||
* True if the suggested element is deprecated.
|
||
*/
|
||
void set isDeprecated(bool value) {
|
||
assert(value != null);
|
||
this._isDeprecated = value;
|
||
}
|
||
|
||
/**
|
||
* True if the element is not known to be valid for the target. This happens
|
||
* if the type of the target is dynamic.
|
||
*/
|
||
bool get isPotential => _isPotential;
|
||
|
||
/**
|
||
* True if the element is not known to be valid for the target. This happens
|
||
* if the type of the target is dynamic.
|
||
*/
|
||
void set isPotential(bool value) {
|
||
assert(value != null);
|
||
this._isPotential = value;
|
||
}
|
||
|
||
/**
|
||
* An abbreviated version of the Dartdoc associated with the element being
|
||
* suggested, This field is omitted if there is no Dartdoc associated with
|
||
* the element.
|
||
*/
|
||
String get docSummary => _docSummary;
|
||
|
||
/**
|
||
* An abbreviated version of the Dartdoc associated with the element being
|
||
* suggested, This field is omitted if there is no Dartdoc associated with
|
||
* the element.
|
||
*/
|
||
void set docSummary(String value) {
|
||
this._docSummary = value;
|
||
}
|
||
|
||
/**
|
||
* The Dartdoc associated with the element being suggested. This field is
|
||
* omitted if there is no Dartdoc associated with the element.
|
||
*/
|
||
String get docComplete => _docComplete;
|
||
|
||
/**
|
||
* The Dartdoc associated with the element being suggested. This field is
|
||
* omitted if there is no Dartdoc associated with the element.
|
||
*/
|
||
void set docComplete(String value) {
|
||
this._docComplete = value;
|
||
}
|
||
|
||
/**
|
||
* The class that declares the element being suggested. This field is omitted
|
||
* if the suggested element is not a member of a class.
|
||
*/
|
||
String get declaringType => _declaringType;
|
||
|
||
/**
|
||
* The class that declares the element being suggested. This field is omitted
|
||
* if the suggested element is not a member of a class.
|
||
*/
|
||
void set declaringType(String value) {
|
||
this._declaringType = value;
|
||
}
|
||
|
||
/**
|
||
* Information about the element reference being suggested.
|
||
*/
|
||
Element get element => _element;
|
||
|
||
/**
|
||
* Information about the element reference being suggested.
|
||
*/
|
||
void set element(Element value) {
|
||
this._element = value;
|
||
}
|
||
|
||
/**
|
||
* The return type of the getter, function or method or the type of the field
|
||
* being suggested. This field is omitted if the suggested element is not a
|
||
* getter, function or method.
|
||
*/
|
||
String get returnType => _returnType;
|
||
|
||
/**
|
||
* The return type of the getter, function or method or the type of the field
|
||
* being suggested. This field is omitted if the suggested element is not a
|
||
* getter, function or method.
|
||
*/
|
||
void set returnType(String value) {
|
||
this._returnType = value;
|
||
}
|
||
|
||
/**
|
||
* The names of the parameters of the function or method being suggested.
|
||
* This field is omitted if the suggested element is not a setter, function
|
||
* or method.
|
||
*/
|
||
List<String> get parameterNames => _parameterNames;
|
||
|
||
/**
|
||
* The names of the parameters of the function or method being suggested.
|
||
* This field is omitted if the suggested element is not a setter, function
|
||
* or method.
|
||
*/
|
||
void set parameterNames(List<String> value) {
|
||
this._parameterNames = value;
|
||
}
|
||
|
||
/**
|
||
* The types of the parameters of the function or method being suggested.
|
||
* This field is omitted if the parameterNames field is omitted.
|
||
*/
|
||
List<String> get parameterTypes => _parameterTypes;
|
||
|
||
/**
|
||
* The types of the parameters of the function or method being suggested.
|
||
* This field is omitted if the parameterNames field is omitted.
|
||
*/
|
||
void set parameterTypes(List<String> value) {
|
||
this._parameterTypes = value;
|
||
}
|
||
|
||
/**
|
||
* The number of required parameters for the function or method being
|
||
* suggested. This field is omitted if the parameterNames field is omitted.
|
||
*/
|
||
int get requiredParameterCount => _requiredParameterCount;
|
||
|
||
/**
|
||
* The number of required parameters for the function or method being
|
||
* suggested. This field is omitted if the parameterNames field is omitted.
|
||
*/
|
||
void set requiredParameterCount(int value) {
|
||
this._requiredParameterCount = value;
|
||
}
|
||
|
||
/**
|
||
* True if the function or method being suggested has at least one named
|
||
* parameter. This field is omitted if the parameterNames field is omitted.
|
||
*/
|
||
bool get hasNamedParameters => _hasNamedParameters;
|
||
|
||
/**
|
||
* True if the function or method being suggested has at least one named
|
||
* parameter. This field is omitted if the parameterNames field is omitted.
|
||
*/
|
||
void set hasNamedParameters(bool value) {
|
||
this._hasNamedParameters = value;
|
||
}
|
||
|
||
/**
|
||
* The name of the optional parameter being suggested. This field is omitted
|
||
* if the suggestion is not the addition of an optional argument within an
|
||
* argument list.
|
||
*/
|
||
String get parameterName => _parameterName;
|
||
|
||
/**
|
||
* The name of the optional parameter being suggested. This field is omitted
|
||
* if the suggestion is not the addition of an optional argument within an
|
||
* argument list.
|
||
*/
|
||
void set parameterName(String value) {
|
||
this._parameterName = value;
|
||
}
|
||
|
||
/**
|
||
* The type of the options parameter being suggested. This field is omitted
|
||
* if the parameterName field is omitted.
|
||
*/
|
||
String get parameterType => _parameterType;
|
||
|
||
/**
|
||
* The type of the options parameter being suggested. This field is omitted
|
||
* if the parameterName field is omitted.
|
||
*/
|
||
void set parameterType(String value) {
|
||
this._parameterType = value;
|
||
}
|
||
|
||
/**
|
||
* The import to be added if the suggestion is out of scope and needs an
|
||
* import to be added to be in scope.
|
||
*/
|
||
String get importUri => _importUri;
|
||
|
||
/**
|
||
* The import to be added if the suggestion is out of scope and needs an
|
||
* import to be added to be in scope.
|
||
*/
|
||
void set importUri(String value) {
|
||
this._importUri = value;
|
||
}
|
||
|
||
CompletionSuggestion(CompletionSuggestionKind kind, int relevance, String completion, int selectionOffset, int selectionLength, bool isDeprecated, bool isPotential, {String docSummary, String docComplete, String declaringType, Element element, String returnType, List<String> parameterNames, List<String> parameterTypes, int requiredParameterCount, bool hasNamedParameters, String parameterName, String parameterType, String importUri}) {
|
||
this.kind = kind;
|
||
this.relevance = relevance;
|
||
this.completion = completion;
|
||
this.selectionOffset = selectionOffset;
|
||
this.selectionLength = selectionLength;
|
||
this.isDeprecated = isDeprecated;
|
||
this.isPotential = isPotential;
|
||
this.docSummary = docSummary;
|
||
this.docComplete = docComplete;
|
||
this.declaringType = declaringType;
|
||
this.element = element;
|
||
this.returnType = returnType;
|
||
this.parameterNames = parameterNames;
|
||
this.parameterTypes = parameterTypes;
|
||
this.requiredParameterCount = requiredParameterCount;
|
||
this.hasNamedParameters = hasNamedParameters;
|
||
this.parameterName = parameterName;
|
||
this.parameterType = parameterType;
|
||
this.importUri = importUri;
|
||
}
|
||
|
||
factory CompletionSuggestion.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
CompletionSuggestionKind kind;
|
||
if (json.containsKey("kind")) {
|
||
kind = new CompletionSuggestionKind.fromJson(jsonDecoder, jsonPath + ".kind", json["kind"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "kind");
|
||
}
|
||
int relevance;
|
||
if (json.containsKey("relevance")) {
|
||
relevance = jsonDecoder.decodeInt(jsonPath + ".relevance", json["relevance"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "relevance");
|
||
}
|
||
String completion;
|
||
if (json.containsKey("completion")) {
|
||
completion = jsonDecoder.decodeString(jsonPath + ".completion", json["completion"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "completion");
|
||
}
|
||
int selectionOffset;
|
||
if (json.containsKey("selectionOffset")) {
|
||
selectionOffset = jsonDecoder.decodeInt(jsonPath + ".selectionOffset", json["selectionOffset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "selectionOffset");
|
||
}
|
||
int selectionLength;
|
||
if (json.containsKey("selectionLength")) {
|
||
selectionLength = jsonDecoder.decodeInt(jsonPath + ".selectionLength", json["selectionLength"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "selectionLength");
|
||
}
|
||
bool isDeprecated;
|
||
if (json.containsKey("isDeprecated")) {
|
||
isDeprecated = jsonDecoder.decodeBool(jsonPath + ".isDeprecated", json["isDeprecated"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "isDeprecated");
|
||
}
|
||
bool isPotential;
|
||
if (json.containsKey("isPotential")) {
|
||
isPotential = jsonDecoder.decodeBool(jsonPath + ".isPotential", json["isPotential"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "isPotential");
|
||
}
|
||
String docSummary;
|
||
if (json.containsKey("docSummary")) {
|
||
docSummary = jsonDecoder.decodeString(jsonPath + ".docSummary", json["docSummary"]);
|
||
}
|
||
String docComplete;
|
||
if (json.containsKey("docComplete")) {
|
||
docComplete = jsonDecoder.decodeString(jsonPath + ".docComplete", json["docComplete"]);
|
||
}
|
||
String declaringType;
|
||
if (json.containsKey("declaringType")) {
|
||
declaringType = jsonDecoder.decodeString(jsonPath + ".declaringType", json["declaringType"]);
|
||
}
|
||
Element element;
|
||
if (json.containsKey("element")) {
|
||
element = new Element.fromJson(jsonDecoder, jsonPath + ".element", json["element"]);
|
||
}
|
||
String returnType;
|
||
if (json.containsKey("returnType")) {
|
||
returnType = jsonDecoder.decodeString(jsonPath + ".returnType", json["returnType"]);
|
||
}
|
||
List<String> parameterNames;
|
||
if (json.containsKey("parameterNames")) {
|
||
parameterNames = jsonDecoder.decodeList(jsonPath + ".parameterNames", json["parameterNames"], jsonDecoder.decodeString);
|
||
}
|
||
List<String> parameterTypes;
|
||
if (json.containsKey("parameterTypes")) {
|
||
parameterTypes = jsonDecoder.decodeList(jsonPath + ".parameterTypes", json["parameterTypes"], jsonDecoder.decodeString);
|
||
}
|
||
int requiredParameterCount;
|
||
if (json.containsKey("requiredParameterCount")) {
|
||
requiredParameterCount = jsonDecoder.decodeInt(jsonPath + ".requiredParameterCount", json["requiredParameterCount"]);
|
||
}
|
||
bool hasNamedParameters;
|
||
if (json.containsKey("hasNamedParameters")) {
|
||
hasNamedParameters = jsonDecoder.decodeBool(jsonPath + ".hasNamedParameters", json["hasNamedParameters"]);
|
||
}
|
||
String parameterName;
|
||
if (json.containsKey("parameterName")) {
|
||
parameterName = jsonDecoder.decodeString(jsonPath + ".parameterName", json["parameterName"]);
|
||
}
|
||
String parameterType;
|
||
if (json.containsKey("parameterType")) {
|
||
parameterType = jsonDecoder.decodeString(jsonPath + ".parameterType", json["parameterType"]);
|
||
}
|
||
String importUri;
|
||
if (json.containsKey("importUri")) {
|
||
importUri = jsonDecoder.decodeString(jsonPath + ".importUri", json["importUri"]);
|
||
}
|
||
return new CompletionSuggestion(kind, relevance, completion, selectionOffset, selectionLength, isDeprecated, isPotential, docSummary: docSummary, docComplete: docComplete, declaringType: declaringType, element: element, returnType: returnType, parameterNames: parameterNames, parameterTypes: parameterTypes, requiredParameterCount: requiredParameterCount, hasNamedParameters: hasNamedParameters, parameterName: parameterName, parameterType: parameterType, importUri: importUri);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestion", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["kind"] = kind.toJson();
|
||
result["relevance"] = relevance;
|
||
result["completion"] = completion;
|
||
result["selectionOffset"] = selectionOffset;
|
||
result["selectionLength"] = selectionLength;
|
||
result["isDeprecated"] = isDeprecated;
|
||
result["isPotential"] = isPotential;
|
||
if (docSummary != null) {
|
||
result["docSummary"] = docSummary;
|
||
}
|
||
if (docComplete != null) {
|
||
result["docComplete"] = docComplete;
|
||
}
|
||
if (declaringType != null) {
|
||
result["declaringType"] = declaringType;
|
||
}
|
||
if (element != null) {
|
||
result["element"] = element.toJson();
|
||
}
|
||
if (returnType != null) {
|
||
result["returnType"] = returnType;
|
||
}
|
||
if (parameterNames != null) {
|
||
result["parameterNames"] = parameterNames;
|
||
}
|
||
if (parameterTypes != null) {
|
||
result["parameterTypes"] = parameterTypes;
|
||
}
|
||
if (requiredParameterCount != null) {
|
||
result["requiredParameterCount"] = requiredParameterCount;
|
||
}
|
||
if (hasNamedParameters != null) {
|
||
result["hasNamedParameters"] = hasNamedParameters;
|
||
}
|
||
if (parameterName != null) {
|
||
result["parameterName"] = parameterName;
|
||
}
|
||
if (parameterType != null) {
|
||
result["parameterType"] = parameterType;
|
||
}
|
||
if (importUri != null) {
|
||
result["importUri"] = importUri;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is CompletionSuggestion) {
|
||
return kind == other.kind &&
|
||
relevance == other.relevance &&
|
||
completion == other.completion &&
|
||
selectionOffset == other.selectionOffset &&
|
||
selectionLength == other.selectionLength &&
|
||
isDeprecated == other.isDeprecated &&
|
||
isPotential == other.isPotential &&
|
||
docSummary == other.docSummary &&
|
||
docComplete == other.docComplete &&
|
||
declaringType == other.declaringType &&
|
||
element == other.element &&
|
||
returnType == other.returnType &&
|
||
listEqual(parameterNames, other.parameterNames, (String a, String b) => a == b) &&
|
||
listEqual(parameterTypes, other.parameterTypes, (String a, String b) => a == b) &&
|
||
requiredParameterCount == other.requiredParameterCount &&
|
||
hasNamedParameters == other.hasNamedParameters &&
|
||
parameterName == other.parameterName &&
|
||
parameterType == other.parameterType &&
|
||
importUri == other.importUri;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, relevance.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, completion.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, isDeprecated.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, isPotential.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, docSummary.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, docComplete.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, declaringType.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, element.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, parameterNames.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, parameterTypes.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, requiredParameterCount.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, hasNamedParameters.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, parameterName.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, parameterType.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, importUri.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* CompletionSuggestionKind
|
||
*
|
||
* enum {
|
||
* ARGUMENT_LIST
|
||
* IMPORT
|
||
* IDENTIFIER
|
||
* INVOCATION
|
||
* KEYWORD
|
||
* NAMED_ARGUMENT
|
||
* OPTIONAL_ARGUMENT
|
||
* PARAMETER
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class CompletionSuggestionKind implements Enum {
|
||
/**
|
||
* A list of arguments for the method or function that is being invoked. For
|
||
* this suggestion kind, the completion field is a textual representation of
|
||
* the invocation and the parameterNames, parameterTypes, and
|
||
* requiredParameterCount attributes are defined.
|
||
*/
|
||
static const CompletionSuggestionKind ARGUMENT_LIST = const CompletionSuggestionKind._("ARGUMENT_LIST");
|
||
|
||
static const CompletionSuggestionKind IMPORT = const CompletionSuggestionKind._("IMPORT");
|
||
|
||
/**
|
||
* The element identifier should be inserted at the completion location. For
|
||
* example "someMethod" in import 'myLib.dart' show someMethod;. For
|
||
* suggestions of this kind, the element attribute is defined and the
|
||
* completion field is the element's identifier.
|
||
*/
|
||
static const CompletionSuggestionKind IDENTIFIER = const CompletionSuggestionKind._("IDENTIFIER");
|
||
|
||
/**
|
||
* The element is being invoked at the completion location. For example,
|
||
* 'someMethod' in x.someMethod();. For suggestions of this kind, the element
|
||
* attribute is defined and the completion field is the element's identifier.
|
||
*/
|
||
static const CompletionSuggestionKind INVOCATION = const CompletionSuggestionKind._("INVOCATION");
|
||
|
||
/**
|
||
* A keyword is being suggested. For suggestions of this kind, the completion
|
||
* is the keyword.
|
||
*/
|
||
static const CompletionSuggestionKind KEYWORD = const CompletionSuggestionKind._("KEYWORD");
|
||
|
||
/**
|
||
* A named argument for the current call site is being suggested. For
|
||
* suggestions of this kind, the completion is the named argument identifier
|
||
* including a trailing ':' and a space.
|
||
*/
|
||
static const CompletionSuggestionKind NAMED_ARGUMENT = const CompletionSuggestionKind._("NAMED_ARGUMENT");
|
||
|
||
static const CompletionSuggestionKind OPTIONAL_ARGUMENT = const CompletionSuggestionKind._("OPTIONAL_ARGUMENT");
|
||
|
||
static const CompletionSuggestionKind PARAMETER = const CompletionSuggestionKind._("PARAMETER");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<CompletionSuggestionKind> VALUES = const <CompletionSuggestionKind>[ARGUMENT_LIST, IMPORT, IDENTIFIER, INVOCATION, KEYWORD, NAMED_ARGUMENT, OPTIONAL_ARGUMENT, PARAMETER];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const CompletionSuggestionKind._(this.name);
|
||
|
||
factory CompletionSuggestionKind(String name) {
|
||
switch (name) {
|
||
case "ARGUMENT_LIST":
|
||
return ARGUMENT_LIST;
|
||
case "IMPORT":
|
||
return IMPORT;
|
||
case "IDENTIFIER":
|
||
return IDENTIFIER;
|
||
case "INVOCATION":
|
||
return INVOCATION;
|
||
case "KEYWORD":
|
||
return KEYWORD;
|
||
case "NAMED_ARGUMENT":
|
||
return NAMED_ARGUMENT;
|
||
case "OPTIONAL_ARGUMENT":
|
||
return OPTIONAL_ARGUMENT;
|
||
case "PARAMETER":
|
||
return PARAMETER;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory CompletionSuggestionKind.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new CompletionSuggestionKind(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestionKind", json);
|
||
}
|
||
|
||
@override
|
||
String toString() => "CompletionSuggestionKind.$name";
|
||
|
||
String toJson() => name;
|
||
}
|
||
|
||
/**
|
||
* ContextBuilderOptions
|
||
*
|
||
* {
|
||
* "dartSdkSummaryPath": optional String
|
||
* "defaultAnalysisOptionsFilePath": optional List<String>
|
||
* "declaredVariables": optional Map<String, String>
|
||
* "defaultPackageFilePath": optional List<String>
|
||
* "defaultPackagesDirectoryPath": optional List<String>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class ContextBuilderOptions implements HasToJson {
|
||
String _dartSdkSummaryPath;
|
||
|
||
List<String> _defaultAnalysisOptionsFilePath;
|
||
|
||
Map<String, String> _declaredVariables;
|
||
|
||
List<String> _defaultPackageFilePath;
|
||
|
||
List<String> _defaultPackagesDirectoryPath;
|
||
|
||
/**
|
||
* The file path of the file containing the summary of the SDK that should be
|
||
* used to "analyze" the SDK. The field will be omitted if the summary should
|
||
* be found in the SDK.
|
||
*/
|
||
String get dartSdkSummaryPath => _dartSdkSummaryPath;
|
||
|
||
/**
|
||
* The file path of the file containing the summary of the SDK that should be
|
||
* used to "analyze" the SDK. The field will be omitted if the summary should
|
||
* be found in the SDK.
|
||
*/
|
||
void set dartSdkSummaryPath(String value) {
|
||
this._dartSdkSummaryPath = value;
|
||
}
|
||
|
||
/**
|
||
* The file path of the analysis options file that should be used in place of
|
||
* any file in the root directory or a parent of the root directory. The
|
||
* field will be omitted if the normal lookup mechanism should be used.
|
||
*/
|
||
List<String> get defaultAnalysisOptionsFilePath => _defaultAnalysisOptionsFilePath;
|
||
|
||
/**
|
||
* The file path of the analysis options file that should be used in place of
|
||
* any file in the root directory or a parent of the root directory. The
|
||
* field will be omitted if the normal lookup mechanism should be used.
|
||
*/
|
||
void set defaultAnalysisOptionsFilePath(List<String> value) {
|
||
this._defaultAnalysisOptionsFilePath = value;
|
||
}
|
||
|
||
/**
|
||
* A table mapping variable names to values for the declared variables. The
|
||
* field will be omitted if no additional variables need to be declared.
|
||
*/
|
||
Map<String, String> get declaredVariables => _declaredVariables;
|
||
|
||
/**
|
||
* A table mapping variable names to values for the declared variables. The
|
||
* field will be omitted if no additional variables need to be declared.
|
||
*/
|
||
void set declaredVariables(Map<String, String> value) {
|
||
this._declaredVariables = value;
|
||
}
|
||
|
||
/**
|
||
* The file path of the .packages file that should be used in place of any
|
||
* file found using the normal (Package Specification DEP) lookup mechanism.
|
||
* The field will be omitted if the normal lookup mechanism should be used.
|
||
*/
|
||
List<String> get defaultPackageFilePath => _defaultPackageFilePath;
|
||
|
||
/**
|
||
* The file path of the .packages file that should be used in place of any
|
||
* file found using the normal (Package Specification DEP) lookup mechanism.
|
||
* The field will be omitted if the normal lookup mechanism should be used.
|
||
*/
|
||
void set defaultPackageFilePath(List<String> value) {
|
||
this._defaultPackageFilePath = value;
|
||
}
|
||
|
||
/**
|
||
* The file path of the packages directory that should be used in place of
|
||
* any file found using the normal (Package Specification DEP) lookup
|
||
* mechanism. The field will be omitted if the normal lookup mechanism should
|
||
* be used.
|
||
*/
|
||
List<String> get defaultPackagesDirectoryPath => _defaultPackagesDirectoryPath;
|
||
|
||
/**
|
||
* The file path of the packages directory that should be used in place of
|
||
* any file found using the normal (Package Specification DEP) lookup
|
||
* mechanism. The field will be omitted if the normal lookup mechanism should
|
||
* be used.
|
||
*/
|
||
void set defaultPackagesDirectoryPath(List<String> value) {
|
||
this._defaultPackagesDirectoryPath = value;
|
||
}
|
||
|
||
ContextBuilderOptions({String dartSdkSummaryPath, List<String> defaultAnalysisOptionsFilePath, Map<String, String> declaredVariables, List<String> defaultPackageFilePath, List<String> defaultPackagesDirectoryPath}) {
|
||
this.dartSdkSummaryPath = dartSdkSummaryPath;
|
||
this.defaultAnalysisOptionsFilePath = defaultAnalysisOptionsFilePath;
|
||
this.declaredVariables = declaredVariables;
|
||
this.defaultPackageFilePath = defaultPackageFilePath;
|
||
this.defaultPackagesDirectoryPath = defaultPackagesDirectoryPath;
|
||
}
|
||
|
||
factory ContextBuilderOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String dartSdkSummaryPath;
|
||
if (json.containsKey("dartSdkSummaryPath")) {
|
||
dartSdkSummaryPath = jsonDecoder.decodeString(jsonPath + ".dartSdkSummaryPath", json["dartSdkSummaryPath"]);
|
||
}
|
||
List<String> defaultAnalysisOptionsFilePath;
|
||
if (json.containsKey("defaultAnalysisOptionsFilePath")) {
|
||
defaultAnalysisOptionsFilePath = jsonDecoder.decodeList(jsonPath + ".defaultAnalysisOptionsFilePath", json["defaultAnalysisOptionsFilePath"], jsonDecoder.decodeString);
|
||
}
|
||
Map<String, String> declaredVariables;
|
||
if (json.containsKey("declaredVariables")) {
|
||
declaredVariables = jsonDecoder.decodeMap(jsonPath + ".declaredVariables", json["declaredVariables"], valueDecoder: jsonDecoder.decodeString);
|
||
}
|
||
List<String> defaultPackageFilePath;
|
||
if (json.containsKey("defaultPackageFilePath")) {
|
||
defaultPackageFilePath = jsonDecoder.decodeList(jsonPath + ".defaultPackageFilePath", json["defaultPackageFilePath"], jsonDecoder.decodeString);
|
||
}
|
||
List<String> defaultPackagesDirectoryPath;
|
||
if (json.containsKey("defaultPackagesDirectoryPath")) {
|
||
defaultPackagesDirectoryPath = jsonDecoder.decodeList(jsonPath + ".defaultPackagesDirectoryPath", json["defaultPackagesDirectoryPath"], jsonDecoder.decodeString);
|
||
}
|
||
return new ContextBuilderOptions(dartSdkSummaryPath: dartSdkSummaryPath, defaultAnalysisOptionsFilePath: defaultAnalysisOptionsFilePath, declaredVariables: declaredVariables, defaultPackageFilePath: defaultPackageFilePath, defaultPackagesDirectoryPath: defaultPackagesDirectoryPath);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "ContextBuilderOptions", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
if (dartSdkSummaryPath != null) {
|
||
result["dartSdkSummaryPath"] = dartSdkSummaryPath;
|
||
}
|
||
if (defaultAnalysisOptionsFilePath != null) {
|
||
result["defaultAnalysisOptionsFilePath"] = defaultAnalysisOptionsFilePath;
|
||
}
|
||
if (declaredVariables != null) {
|
||
result["declaredVariables"] = declaredVariables;
|
||
}
|
||
if (defaultPackageFilePath != null) {
|
||
result["defaultPackageFilePath"] = defaultPackageFilePath;
|
||
}
|
||
if (defaultPackagesDirectoryPath != null) {
|
||
result["defaultPackagesDirectoryPath"] = defaultPackagesDirectoryPath;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is ContextBuilderOptions) {
|
||
return dartSdkSummaryPath == other.dartSdkSummaryPath &&
|
||
listEqual(defaultAnalysisOptionsFilePath, other.defaultAnalysisOptionsFilePath, (String a, String b) => a == b) &&
|
||
mapEqual(declaredVariables, other.declaredVariables, (String a, String b) => a == b) &&
|
||
listEqual(defaultPackageFilePath, other.defaultPackageFilePath, (String a, String b) => a == b) &&
|
||
listEqual(defaultPackagesDirectoryPath, other.defaultPackagesDirectoryPath, (String a, String b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, dartSdkSummaryPath.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, defaultAnalysisOptionsFilePath.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, declaredVariables.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, defaultPackageFilePath.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, defaultPackagesDirectoryPath.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* ContextRoot
|
||
*
|
||
* {
|
||
* "root": String
|
||
* "exclude": List<String>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class ContextRoot implements HasToJson {
|
||
String _root;
|
||
|
||
List<String> _exclude;
|
||
|
||
/**
|
||
* The absolute path of the root directory containing the files to be
|
||
* analyzed.
|
||
*/
|
||
String get root => _root;
|
||
|
||
/**
|
||
* The absolute path of the root directory containing the files to be
|
||
* analyzed.
|
||
*/
|
||
void set root(String value) {
|
||
assert(value != null);
|
||
this._root = value;
|
||
}
|
||
|
||
/**
|
||
* A list of the absolute paths of files and directories within the root
|
||
* directory that should not be analyzed.
|
||
*/
|
||
List<String> get exclude => _exclude;
|
||
|
||
/**
|
||
* A list of the absolute paths of files and directories within the root
|
||
* directory that should not be analyzed.
|
||
*/
|
||
void set exclude(List<String> value) {
|
||
assert(value != null);
|
||
this._exclude = value;
|
||
}
|
||
|
||
ContextRoot(String root, List<String> exclude) {
|
||
this.root = root;
|
||
this.exclude = exclude;
|
||
}
|
||
|
||
factory ContextRoot.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String root;
|
||
if (json.containsKey("root")) {
|
||
root = jsonDecoder.decodeString(jsonPath + ".root", json["root"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "root");
|
||
}
|
||
List<String> exclude;
|
||
if (json.containsKey("exclude")) {
|
||
exclude = jsonDecoder.decodeList(jsonPath + ".exclude", json["exclude"], jsonDecoder.decodeString);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "exclude");
|
||
}
|
||
return new ContextRoot(root, exclude);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "ContextRoot", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["root"] = root;
|
||
result["exclude"] = exclude;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is ContextRoot) {
|
||
return root == other.root &&
|
||
listEqual(exclude, other.exclude, (String a, String b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, root.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, exclude.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* convertGetterToMethod feedback
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class ConvertGetterToMethodFeedback extends RefactoringFeedback implements HasToJson {
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is ConvertGetterToMethodFeedback) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 616032599;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* convertGetterToMethod options
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class ConvertGetterToMethodOptions extends RefactoringOptions implements HasToJson {
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is ConvertGetterToMethodOptions) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 488848400;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* convertMethodToGetter feedback
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class ConvertMethodToGetterFeedback extends RefactoringFeedback implements HasToJson {
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is ConvertMethodToGetterFeedback) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 165291526;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* convertMethodToGetter options
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class ConvertMethodToGetterOptions extends RefactoringOptions implements HasToJson {
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is ConvertMethodToGetterOptions) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 27952290;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* edit.getAssists params
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "offset": int
|
||
* "length": int
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class EditGetAssistsParams implements HasToJson {
|
||
String _file;
|
||
|
||
int _offset;
|
||
|
||
int _length;
|
||
|
||
/**
|
||
* The file containing the code for which assists are being requested.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file containing the code for which assists are being requested.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The offset of the code for which assists are being requested.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset of the code for which assists are being requested.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the code for which assists are being requested.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the code for which assists are being requested.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
EditGetAssistsParams(String file, int offset, int length) {
|
||
this.file = file;
|
||
this.offset = offset;
|
||
this.length = length;
|
||
}
|
||
|
||
factory EditGetAssistsParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
return new EditGetAssistsParams(file, offset, length);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "edit.getAssists params", json);
|
||
}
|
||
}
|
||
|
||
factory EditGetAssistsParams.fromRequest(Request request) {
|
||
return new EditGetAssistsParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["offset"] = offset;
|
||
result["length"] = length;
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "edit.getAssists", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is EditGetAssistsParams) {
|
||
return file == other.file &&
|
||
offset == other.offset &&
|
||
length == other.length;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* edit.getAssists result
|
||
*
|
||
* {
|
||
* "assists": List<SourceChange>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class EditGetAssistsResult implements ResponseResult {
|
||
List<SourceChange> _assists;
|
||
|
||
/**
|
||
* The assists that are available at the given location.
|
||
*/
|
||
List<SourceChange> get assists => _assists;
|
||
|
||
/**
|
||
* The assists that are available at the given location.
|
||
*/
|
||
void set assists(List<SourceChange> value) {
|
||
assert(value != null);
|
||
this._assists = value;
|
||
}
|
||
|
||
EditGetAssistsResult(List<SourceChange> assists) {
|
||
this.assists = assists;
|
||
}
|
||
|
||
factory EditGetAssistsResult.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
List<SourceChange> assists;
|
||
if (json.containsKey("assists")) {
|
||
assists = jsonDecoder.decodeList(jsonPath + ".assists", json["assists"], (String jsonPath, Object json) => new SourceChange.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "assists");
|
||
}
|
||
return new EditGetAssistsResult(assists);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "edit.getAssists result", json);
|
||
}
|
||
}
|
||
|
||
factory EditGetAssistsResult.fromResponse(Response response) {
|
||
return new EditGetAssistsResult.fromJson(
|
||
new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "result", response.result);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["assists"] = assists.map((SourceChange value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is EditGetAssistsResult) {
|
||
return listEqual(assists, other.assists, (SourceChange a, SourceChange b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, assists.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* edit.getAvailableRefactorings params
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "offset": int
|
||
* "length": int
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class EditGetAvailableRefactoringsParams implements HasToJson {
|
||
String _file;
|
||
|
||
int _offset;
|
||
|
||
int _length;
|
||
|
||
/**
|
||
* The file containing the code on which the refactoring would be based.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file containing the code on which the refactoring would be based.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The offset of the code on which the refactoring would be based.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset of the code on which the refactoring would be based.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the code on which the refactoring would be based.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the code on which the refactoring would be based.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
EditGetAvailableRefactoringsParams(String file, int offset, int length) {
|
||
this.file = file;
|
||
this.offset = offset;
|
||
this.length = length;
|
||
}
|
||
|
||
factory EditGetAvailableRefactoringsParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
return new EditGetAvailableRefactoringsParams(file, offset, length);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "edit.getAvailableRefactorings params", json);
|
||
}
|
||
}
|
||
|
||
factory EditGetAvailableRefactoringsParams.fromRequest(Request request) {
|
||
return new EditGetAvailableRefactoringsParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["offset"] = offset;
|
||
result["length"] = length;
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "edit.getAvailableRefactorings", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is EditGetAvailableRefactoringsParams) {
|
||
return file == other.file &&
|
||
offset == other.offset &&
|
||
length == other.length;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* edit.getAvailableRefactorings result
|
||
*
|
||
* {
|
||
* "kinds": List<RefactoringKind>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class EditGetAvailableRefactoringsResult implements ResponseResult {
|
||
List<RefactoringKind> _kinds;
|
||
|
||
/**
|
||
* The kinds of refactorings that are valid for the given selection.
|
||
*
|
||
* The list of refactoring kinds is currently limited to those defined by the
|
||
* server API, preventing plugins from adding their own refactorings.
|
||
* However, plugins can support pre-defined refactorings, such as a rename
|
||
* refactoring, at locations not supported by server.
|
||
*/
|
||
List<RefactoringKind> get kinds => _kinds;
|
||
|
||
/**
|
||
* The kinds of refactorings that are valid for the given selection.
|
||
*
|
||
* The list of refactoring kinds is currently limited to those defined by the
|
||
* server API, preventing plugins from adding their own refactorings.
|
||
* However, plugins can support pre-defined refactorings, such as a rename
|
||
* refactoring, at locations not supported by server.
|
||
*/
|
||
void set kinds(List<RefactoringKind> value) {
|
||
assert(value != null);
|
||
this._kinds = value;
|
||
}
|
||
|
||
EditGetAvailableRefactoringsResult(List<RefactoringKind> kinds) {
|
||
this.kinds = kinds;
|
||
}
|
||
|
||
factory EditGetAvailableRefactoringsResult.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
List<RefactoringKind> kinds;
|
||
if (json.containsKey("kinds")) {
|
||
kinds = jsonDecoder.decodeList(jsonPath + ".kinds", json["kinds"], (String jsonPath, Object json) => new RefactoringKind.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "kinds");
|
||
}
|
||
return new EditGetAvailableRefactoringsResult(kinds);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "edit.getAvailableRefactorings result", json);
|
||
}
|
||
}
|
||
|
||
factory EditGetAvailableRefactoringsResult.fromResponse(Response response) {
|
||
return new EditGetAvailableRefactoringsResult.fromJson(
|
||
new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "result", response.result);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["kinds"] = kinds.map((RefactoringKind value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is EditGetAvailableRefactoringsResult) {
|
||
return listEqual(kinds, other.kinds, (RefactoringKind a, RefactoringKind b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, kinds.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* edit.getFixes params
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "offset": int
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class EditGetFixesParams implements HasToJson {
|
||
String _file;
|
||
|
||
int _offset;
|
||
|
||
/**
|
||
* The file containing the errors for which fixes are being requested.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file containing the errors for which fixes are being requested.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The offset used to select the errors for which fixes will be returned.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset used to select the errors for which fixes will be returned.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
EditGetFixesParams(String file, int offset) {
|
||
this.file = file;
|
||
this.offset = offset;
|
||
}
|
||
|
||
factory EditGetFixesParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
return new EditGetFixesParams(file, offset);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "edit.getFixes params", json);
|
||
}
|
||
}
|
||
|
||
factory EditGetFixesParams.fromRequest(Request request) {
|
||
return new EditGetFixesParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["offset"] = offset;
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "edit.getFixes", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is EditGetFixesParams) {
|
||
return file == other.file &&
|
||
offset == other.offset;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* edit.getFixes result
|
||
*
|
||
* {
|
||
* "fixes": List<AnalysisErrorFixes>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class EditGetFixesResult implements ResponseResult {
|
||
List<AnalysisErrorFixes> _fixes;
|
||
|
||
/**
|
||
* The fixes that are available for the errors at the given offset.
|
||
*/
|
||
List<AnalysisErrorFixes> get fixes => _fixes;
|
||
|
||
/**
|
||
* The fixes that are available for the errors at the given offset.
|
||
*/
|
||
void set fixes(List<AnalysisErrorFixes> value) {
|
||
assert(value != null);
|
||
this._fixes = value;
|
||
}
|
||
|
||
EditGetFixesResult(List<AnalysisErrorFixes> fixes) {
|
||
this.fixes = fixes;
|
||
}
|
||
|
||
factory EditGetFixesResult.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
List<AnalysisErrorFixes> fixes;
|
||
if (json.containsKey("fixes")) {
|
||
fixes = jsonDecoder.decodeList(jsonPath + ".fixes", json["fixes"], (String jsonPath, Object json) => new AnalysisErrorFixes.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "fixes");
|
||
}
|
||
return new EditGetFixesResult(fixes);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "edit.getFixes result", json);
|
||
}
|
||
}
|
||
|
||
factory EditGetFixesResult.fromResponse(Response response) {
|
||
return new EditGetFixesResult.fromJson(
|
||
new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "result", response.result);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["fixes"] = fixes.map((AnalysisErrorFixes value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is EditGetFixesResult) {
|
||
return listEqual(fixes, other.fixes, (AnalysisErrorFixes a, AnalysisErrorFixes b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, fixes.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* edit.getRefactoring params
|
||
*
|
||
* {
|
||
* "kind": RefactoringKind
|
||
* "file": FilePath
|
||
* "offset": int
|
||
* "length": int
|
||
* "validateOnly": bool
|
||
* "options": optional RefactoringOptions
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class EditGetRefactoringParams implements HasToJson {
|
||
RefactoringKind _kind;
|
||
|
||
String _file;
|
||
|
||
int _offset;
|
||
|
||
int _length;
|
||
|
||
bool _validateOnly;
|
||
|
||
RefactoringOptions _options;
|
||
|
||
/**
|
||
* The kind of refactoring to be performed.
|
||
*/
|
||
RefactoringKind get kind => _kind;
|
||
|
||
/**
|
||
* The kind of refactoring to be performed.
|
||
*/
|
||
void set kind(RefactoringKind value) {
|
||
assert(value != null);
|
||
this._kind = value;
|
||
}
|
||
|
||
/**
|
||
* The file containing the code involved in the refactoring.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file containing the code involved in the refactoring.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The offset of the region involved in the refactoring.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset of the region involved in the refactoring.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the region involved in the refactoring.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the region involved in the refactoring.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
/**
|
||
* True if the client is only requesting that the values of the options be
|
||
* validated and no change be generated.
|
||
*/
|
||
bool get validateOnly => _validateOnly;
|
||
|
||
/**
|
||
* True if the client is only requesting that the values of the options be
|
||
* validated and no change be generated.
|
||
*/
|
||
void set validateOnly(bool value) {
|
||
assert(value != null);
|
||
this._validateOnly = value;
|
||
}
|
||
|
||
/**
|
||
* Data used to provide values provided by the user. The structure of the
|
||
* data is dependent on the kind of refactoring being performed. The data
|
||
* that is expected is documented in the section titled Refactorings, labeled
|
||
* as "Options". This field can be omitted if the refactoring does not
|
||
* require any options or if the values of those options are not known.
|
||
*/
|
||
RefactoringOptions get options => _options;
|
||
|
||
/**
|
||
* Data used to provide values provided by the user. The structure of the
|
||
* data is dependent on the kind of refactoring being performed. The data
|
||
* that is expected is documented in the section titled Refactorings, labeled
|
||
* as "Options". This field can be omitted if the refactoring does not
|
||
* require any options or if the values of those options are not known.
|
||
*/
|
||
void set options(RefactoringOptions value) {
|
||
this._options = value;
|
||
}
|
||
|
||
EditGetRefactoringParams(RefactoringKind kind, String file, int offset, int length, bool validateOnly, {RefactoringOptions options}) {
|
||
this.kind = kind;
|
||
this.file = file;
|
||
this.offset = offset;
|
||
this.length = length;
|
||
this.validateOnly = validateOnly;
|
||
this.options = options;
|
||
}
|
||
|
||
factory EditGetRefactoringParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
RefactoringKind kind;
|
||
if (json.containsKey("kind")) {
|
||
kind = new RefactoringKind.fromJson(jsonDecoder, jsonPath + ".kind", json["kind"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "kind");
|
||
}
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
bool validateOnly;
|
||
if (json.containsKey("validateOnly")) {
|
||
validateOnly = jsonDecoder.decodeBool(jsonPath + ".validateOnly", json["validateOnly"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "validateOnly");
|
||
}
|
||
RefactoringOptions options;
|
||
if (json.containsKey("options")) {
|
||
options = new RefactoringOptions.fromJson(jsonDecoder, jsonPath + ".options", json["options"], kind);
|
||
}
|
||
return new EditGetRefactoringParams(kind, file, offset, length, validateOnly, options: options);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "edit.getRefactoring params", json);
|
||
}
|
||
}
|
||
|
||
factory EditGetRefactoringParams.fromRequest(Request request) {
|
||
var params = new EditGetRefactoringParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
REQUEST_ID_REFACTORING_KINDS[request.id] = params.kind;
|
||
return params;
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["kind"] = kind.toJson();
|
||
result["file"] = file;
|
||
result["offset"] = offset;
|
||
result["length"] = length;
|
||
result["validateOnly"] = validateOnly;
|
||
if (options != null) {
|
||
result["options"] = options.toJson();
|
||
}
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "edit.getRefactoring", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is EditGetRefactoringParams) {
|
||
return kind == other.kind &&
|
||
file == other.file &&
|
||
offset == other.offset &&
|
||
length == other.length &&
|
||
validateOnly == other.validateOnly &&
|
||
options == other.options;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, validateOnly.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, options.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* edit.getRefactoring result
|
||
*
|
||
* {
|
||
* "initialProblems": List<RefactoringProblem>
|
||
* "optionsProblems": List<RefactoringProblem>
|
||
* "finalProblems": List<RefactoringProblem>
|
||
* "feedback": optional RefactoringFeedback
|
||
* "change": optional SourceChange
|
||
* "potentialEdits": optional List<String>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class EditGetRefactoringResult implements ResponseResult {
|
||
List<RefactoringProblem> _initialProblems;
|
||
|
||
List<RefactoringProblem> _optionsProblems;
|
||
|
||
List<RefactoringProblem> _finalProblems;
|
||
|
||
RefactoringFeedback _feedback;
|
||
|
||
SourceChange _change;
|
||
|
||
List<String> _potentialEdits;
|
||
|
||
/**
|
||
* The initial status of the refactoring, that is, problems related to the
|
||
* context in which the refactoring is requested. The list should be empty if
|
||
* there are no known problems.
|
||
*/
|
||
List<RefactoringProblem> get initialProblems => _initialProblems;
|
||
|
||
/**
|
||
* The initial status of the refactoring, that is, problems related to the
|
||
* context in which the refactoring is requested. The list should be empty if
|
||
* there are no known problems.
|
||
*/
|
||
void set initialProblems(List<RefactoringProblem> value) {
|
||
assert(value != null);
|
||
this._initialProblems = value;
|
||
}
|
||
|
||
/**
|
||
* The options validation status, that is, problems in the given options,
|
||
* such as light-weight validation of a new name, flags compatibility, etc.
|
||
* The list should be empty if there are no known problems.
|
||
*/
|
||
List<RefactoringProblem> get optionsProblems => _optionsProblems;
|
||
|
||
/**
|
||
* The options validation status, that is, problems in the given options,
|
||
* such as light-weight validation of a new name, flags compatibility, etc.
|
||
* The list should be empty if there are no known problems.
|
||
*/
|
||
void set optionsProblems(List<RefactoringProblem> value) {
|
||
assert(value != null);
|
||
this._optionsProblems = value;
|
||
}
|
||
|
||
/**
|
||
* The final status of the refactoring, that is, problems identified in the
|
||
* result of a full, potentially expensive validation and / or change
|
||
* creation. The list should be empty if there are no known problems.
|
||
*/
|
||
List<RefactoringProblem> get finalProblems => _finalProblems;
|
||
|
||
/**
|
||
* The final status of the refactoring, that is, problems identified in the
|
||
* result of a full, potentially expensive validation and / or change
|
||
* creation. The list should be empty if there are no known problems.
|
||
*/
|
||
void set finalProblems(List<RefactoringProblem> value) {
|
||
assert(value != null);
|
||
this._finalProblems = value;
|
||
}
|
||
|
||
/**
|
||
* Data used to provide feedback to the user. The structure of the data is
|
||
* dependent on the kind of refactoring being created. The data that is
|
||
* returned is documented in the section titled Refactorings, labeled as
|
||
* "Feedback".
|
||
*/
|
||
RefactoringFeedback get feedback => _feedback;
|
||
|
||
/**
|
||
* Data used to provide feedback to the user. The structure of the data is
|
||
* dependent on the kind of refactoring being created. The data that is
|
||
* returned is documented in the section titled Refactorings, labeled as
|
||
* "Feedback".
|
||
*/
|
||
void set feedback(RefactoringFeedback value) {
|
||
this._feedback = value;
|
||
}
|
||
|
||
/**
|
||
* The changes that are to be applied to affect the refactoring. This field
|
||
* can be omitted if there are problems that prevent a set of changes from
|
||
* being computed, such as having no options specified for a refactoring that
|
||
* requires them, or if only validation was requested.
|
||
*/
|
||
SourceChange get change => _change;
|
||
|
||
/**
|
||
* The changes that are to be applied to affect the refactoring. This field
|
||
* can be omitted if there are problems that prevent a set of changes from
|
||
* being computed, such as having no options specified for a refactoring that
|
||
* requires them, or if only validation was requested.
|
||
*/
|
||
void set change(SourceChange value) {
|
||
this._change = value;
|
||
}
|
||
|
||
/**
|
||
* The ids of source edits that are not known to be valid. An edit is not
|
||
* known to be valid if there was insufficient type information for the
|
||
* plugin to be able to determine whether or not the code needs to be
|
||
* modified, such as when a member is being renamed and there is a reference
|
||
* to a member from an unknown type. This field can be omitted if the change
|
||
* field is omitted or if there are no potential edits for the refactoring.
|
||
*/
|
||
List<String> get potentialEdits => _potentialEdits;
|
||
|
||
/**
|
||
* The ids of source edits that are not known to be valid. An edit is not
|
||
* known to be valid if there was insufficient type information for the
|
||
* plugin to be able to determine whether or not the code needs to be
|
||
* modified, such as when a member is being renamed and there is a reference
|
||
* to a member from an unknown type. This field can be omitted if the change
|
||
* field is omitted or if there are no potential edits for the refactoring.
|
||
*/
|
||
void set potentialEdits(List<String> value) {
|
||
this._potentialEdits = value;
|
||
}
|
||
|
||
EditGetRefactoringResult(List<RefactoringProblem> initialProblems, List<RefactoringProblem> optionsProblems, List<RefactoringProblem> finalProblems, {RefactoringFeedback feedback, SourceChange change, List<String> potentialEdits}) {
|
||
this.initialProblems = initialProblems;
|
||
this.optionsProblems = optionsProblems;
|
||
this.finalProblems = finalProblems;
|
||
this.feedback = feedback;
|
||
this.change = change;
|
||
this.potentialEdits = potentialEdits;
|
||
}
|
||
|
||
factory EditGetRefactoringResult.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
List<RefactoringProblem> initialProblems;
|
||
if (json.containsKey("initialProblems")) {
|
||
initialProblems = jsonDecoder.decodeList(jsonPath + ".initialProblems", json["initialProblems"], (String jsonPath, Object json) => new RefactoringProblem.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "initialProblems");
|
||
}
|
||
List<RefactoringProblem> optionsProblems;
|
||
if (json.containsKey("optionsProblems")) {
|
||
optionsProblems = jsonDecoder.decodeList(jsonPath + ".optionsProblems", json["optionsProblems"], (String jsonPath, Object json) => new RefactoringProblem.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "optionsProblems");
|
||
}
|
||
List<RefactoringProblem> finalProblems;
|
||
if (json.containsKey("finalProblems")) {
|
||
finalProblems = jsonDecoder.decodeList(jsonPath + ".finalProblems", json["finalProblems"], (String jsonPath, Object json) => new RefactoringProblem.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "finalProblems");
|
||
}
|
||
RefactoringFeedback feedback;
|
||
if (json.containsKey("feedback")) {
|
||
feedback = new RefactoringFeedback.fromJson(jsonDecoder, jsonPath + ".feedback", json["feedback"], json);
|
||
}
|
||
SourceChange change;
|
||
if (json.containsKey("change")) {
|
||
change = new SourceChange.fromJson(jsonDecoder, jsonPath + ".change", json["change"]);
|
||
}
|
||
List<String> potentialEdits;
|
||
if (json.containsKey("potentialEdits")) {
|
||
potentialEdits = jsonDecoder.decodeList(jsonPath + ".potentialEdits", json["potentialEdits"], jsonDecoder.decodeString);
|
||
}
|
||
return new EditGetRefactoringResult(initialProblems, optionsProblems, finalProblems, feedback: feedback, change: change, potentialEdits: potentialEdits);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "edit.getRefactoring result", json);
|
||
}
|
||
}
|
||
|
||
factory EditGetRefactoringResult.fromResponse(Response response) {
|
||
return new EditGetRefactoringResult.fromJson(
|
||
new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "result", response.result);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["initialProblems"] = initialProblems.map((RefactoringProblem value) => value.toJson()).toList();
|
||
result["optionsProblems"] = optionsProblems.map((RefactoringProblem value) => value.toJson()).toList();
|
||
result["finalProblems"] = finalProblems.map((RefactoringProblem value) => value.toJson()).toList();
|
||
if (feedback != null) {
|
||
result["feedback"] = feedback.toJson();
|
||
}
|
||
if (change != null) {
|
||
result["change"] = change.toJson();
|
||
}
|
||
if (potentialEdits != null) {
|
||
result["potentialEdits"] = potentialEdits;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is EditGetRefactoringResult) {
|
||
return listEqual(initialProblems, other.initialProblems, (RefactoringProblem a, RefactoringProblem b) => a == b) &&
|
||
listEqual(optionsProblems, other.optionsProblems, (RefactoringProblem a, RefactoringProblem b) => a == b) &&
|
||
listEqual(finalProblems, other.finalProblems, (RefactoringProblem a, RefactoringProblem b) => a == b) &&
|
||
feedback == other.feedback &&
|
||
change == other.change &&
|
||
listEqual(potentialEdits, other.potentialEdits, (String a, String b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, initialProblems.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, optionsProblems.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, finalProblems.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, feedback.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, change.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, potentialEdits.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Element
|
||
*
|
||
* {
|
||
* "kind": ElementKind
|
||
* "name": String
|
||
* "location": optional Location
|
||
* "flags": int
|
||
* "parameters": optional String
|
||
* "returnType": optional String
|
||
* "typeParameters": optional String
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class Element implements HasToJson {
|
||
static const int FLAG_ABSTRACT = 0x01;
|
||
static const int FLAG_CONST = 0x02;
|
||
static const int FLAG_FINAL = 0x04;
|
||
static const int FLAG_STATIC = 0x08;
|
||
static const int FLAG_PRIVATE = 0x10;
|
||
static const int FLAG_DEPRECATED = 0x20;
|
||
|
||
static int makeFlags({isAbstract: false, isConst: false, isFinal: false, isStatic: false, isPrivate: false, isDeprecated: false}) {
|
||
int flags = 0;
|
||
if (isAbstract) flags |= FLAG_ABSTRACT;
|
||
if (isConst) flags |= FLAG_CONST;
|
||
if (isFinal) flags |= FLAG_FINAL;
|
||
if (isStatic) flags |= FLAG_STATIC;
|
||
if (isPrivate) flags |= FLAG_PRIVATE;
|
||
if (isDeprecated) flags |= FLAG_DEPRECATED;
|
||
return flags;
|
||
}
|
||
|
||
ElementKind _kind;
|
||
|
||
String _name;
|
||
|
||
Location _location;
|
||
|
||
int _flags;
|
||
|
||
String _parameters;
|
||
|
||
String _returnType;
|
||
|
||
String _typeParameters;
|
||
|
||
/**
|
||
* The kind of the element.
|
||
*/
|
||
ElementKind get kind => _kind;
|
||
|
||
/**
|
||
* The kind of the element.
|
||
*/
|
||
void set kind(ElementKind value) {
|
||
assert(value != null);
|
||
this._kind = value;
|
||
}
|
||
|
||
/**
|
||
* The name of the element. This is typically used as the label in the
|
||
* outline.
|
||
*/
|
||
String get name => _name;
|
||
|
||
/**
|
||
* The name of the element. This is typically used as the label in the
|
||
* outline.
|
||
*/
|
||
void set name(String value) {
|
||
assert(value != null);
|
||
this._name = value;
|
||
}
|
||
|
||
/**
|
||
* The location of the name in the declaration of the element.
|
||
*/
|
||
Location get location => _location;
|
||
|
||
/**
|
||
* The location of the name in the declaration of the element.
|
||
*/
|
||
void set location(Location value) {
|
||
this._location = value;
|
||
}
|
||
|
||
/**
|
||
* A bit-map containing the following flags:
|
||
*
|
||
* - 0x01 - set if the element is explicitly or implicitly abstract
|
||
* - 0x02 - set if the element was declared to be ‘const’
|
||
* - 0x04 - set if the element was declared to be ‘final’
|
||
* - 0x08 - set if the element is a static member of a class or is a
|
||
* top-level function or field
|
||
* - 0x10 - set if the element is private
|
||
* - 0x20 - set if the element is deprecated
|
||
*/
|
||
int get flags => _flags;
|
||
|
||
/**
|
||
* A bit-map containing the following flags:
|
||
*
|
||
* - 0x01 - set if the element is explicitly or implicitly abstract
|
||
* - 0x02 - set if the element was declared to be ‘const’
|
||
* - 0x04 - set if the element was declared to be ‘final’
|
||
* - 0x08 - set if the element is a static member of a class or is a
|
||
* top-level function or field
|
||
* - 0x10 - set if the element is private
|
||
* - 0x20 - set if the element is deprecated
|
||
*/
|
||
void set flags(int value) {
|
||
assert(value != null);
|
||
this._flags = value;
|
||
}
|
||
|
||
/**
|
||
* The parameter list for the element. If the element is not a method or
|
||
* function this field will not be defined. If the element doesn't have
|
||
* parameters (e.g. getter), this field will not be defined. If the element
|
||
* has zero parameters, this field will have a value of "()".
|
||
*/
|
||
String get parameters => _parameters;
|
||
|
||
/**
|
||
* The parameter list for the element. If the element is not a method or
|
||
* function this field will not be defined. If the element doesn't have
|
||
* parameters (e.g. getter), this field will not be defined. If the element
|
||
* has zero parameters, this field will have a value of "()".
|
||
*/
|
||
void set parameters(String value) {
|
||
this._parameters = value;
|
||
}
|
||
|
||
/**
|
||
* The return type of the element. If the element is not a method or function
|
||
* this field will not be defined. If the element does not have a declared
|
||
* return type, this field will contain an empty string.
|
||
*/
|
||
String get returnType => _returnType;
|
||
|
||
/**
|
||
* The return type of the element. If the element is not a method or function
|
||
* this field will not be defined. If the element does not have a declared
|
||
* return type, this field will contain an empty string.
|
||
*/
|
||
void set returnType(String value) {
|
||
this._returnType = value;
|
||
}
|
||
|
||
/**
|
||
* The type parameter list for the element. If the element doesn't have type
|
||
* parameters, this field will not be defined.
|
||
*/
|
||
String get typeParameters => _typeParameters;
|
||
|
||
/**
|
||
* The type parameter list for the element. If the element doesn't have type
|
||
* parameters, this field will not be defined.
|
||
*/
|
||
void set typeParameters(String value) {
|
||
this._typeParameters = value;
|
||
}
|
||
|
||
Element(ElementKind kind, String name, int flags, {Location location, String parameters, String returnType, String typeParameters}) {
|
||
this.kind = kind;
|
||
this.name = name;
|
||
this.location = location;
|
||
this.flags = flags;
|
||
this.parameters = parameters;
|
||
this.returnType = returnType;
|
||
this.typeParameters = typeParameters;
|
||
}
|
||
|
||
factory Element.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
ElementKind kind;
|
||
if (json.containsKey("kind")) {
|
||
kind = new ElementKind.fromJson(jsonDecoder, jsonPath + ".kind", json["kind"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "kind");
|
||
}
|
||
String name;
|
||
if (json.containsKey("name")) {
|
||
name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "name");
|
||
}
|
||
Location location;
|
||
if (json.containsKey("location")) {
|
||
location = new Location.fromJson(jsonDecoder, jsonPath + ".location", json["location"]);
|
||
}
|
||
int flags;
|
||
if (json.containsKey("flags")) {
|
||
flags = jsonDecoder.decodeInt(jsonPath + ".flags", json["flags"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "flags");
|
||
}
|
||
String parameters;
|
||
if (json.containsKey("parameters")) {
|
||
parameters = jsonDecoder.decodeString(jsonPath + ".parameters", json["parameters"]);
|
||
}
|
||
String returnType;
|
||
if (json.containsKey("returnType")) {
|
||
returnType = jsonDecoder.decodeString(jsonPath + ".returnType", json["returnType"]);
|
||
}
|
||
String typeParameters;
|
||
if (json.containsKey("typeParameters")) {
|
||
typeParameters = jsonDecoder.decodeString(jsonPath + ".typeParameters", json["typeParameters"]);
|
||
}
|
||
return new Element(kind, name, flags, location: location, parameters: parameters, returnType: returnType, typeParameters: typeParameters);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "Element", json);
|
||
}
|
||
}
|
||
|
||
bool get isAbstract => (flags & FLAG_ABSTRACT) != 0;
|
||
bool get isConst => (flags & FLAG_CONST) != 0;
|
||
bool get isFinal => (flags & FLAG_FINAL) != 0;
|
||
bool get isStatic => (flags & FLAG_STATIC) != 0;
|
||
bool get isPrivate => (flags & FLAG_PRIVATE) != 0;
|
||
bool get isDeprecated => (flags & FLAG_DEPRECATED) != 0;
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["kind"] = kind.toJson();
|
||
result["name"] = name;
|
||
if (location != null) {
|
||
result["location"] = location.toJson();
|
||
}
|
||
result["flags"] = flags;
|
||
if (parameters != null) {
|
||
result["parameters"] = parameters;
|
||
}
|
||
if (returnType != null) {
|
||
result["returnType"] = returnType;
|
||
}
|
||
if (typeParameters != null) {
|
||
result["typeParameters"] = typeParameters;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is Element) {
|
||
return kind == other.kind &&
|
||
name == other.name &&
|
||
location == other.location &&
|
||
flags == other.flags &&
|
||
parameters == other.parameters &&
|
||
returnType == other.returnType &&
|
||
typeParameters == other.typeParameters;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, name.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, location.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, flags.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, typeParameters.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* ElementKind
|
||
*
|
||
* enum {
|
||
* CLASS
|
||
* CLASS_TYPE_ALIAS
|
||
* COMPILATION_UNIT
|
||
* CONSTRUCTOR
|
||
* ENUM
|
||
* ENUM_CONSTANT
|
||
* FIELD
|
||
* FILE
|
||
* FUNCTION
|
||
* FUNCTION_TYPE_ALIAS
|
||
* GETTER
|
||
* LABEL
|
||
* LIBRARY
|
||
* LOCAL_VARIABLE
|
||
* METHOD
|
||
* PARAMETER
|
||
* PREFIX
|
||
* SETTER
|
||
* TOP_LEVEL_VARIABLE
|
||
* TYPE_PARAMETER
|
||
* UNKNOWN
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class ElementKind implements Enum {
|
||
static const ElementKind CLASS = const ElementKind._("CLASS");
|
||
|
||
static const ElementKind CLASS_TYPE_ALIAS = const ElementKind._("CLASS_TYPE_ALIAS");
|
||
|
||
static const ElementKind COMPILATION_UNIT = const ElementKind._("COMPILATION_UNIT");
|
||
|
||
static const ElementKind CONSTRUCTOR = const ElementKind._("CONSTRUCTOR");
|
||
|
||
static const ElementKind ENUM = const ElementKind._("ENUM");
|
||
|
||
static const ElementKind ENUM_CONSTANT = const ElementKind._("ENUM_CONSTANT");
|
||
|
||
static const ElementKind FIELD = const ElementKind._("FIELD");
|
||
|
||
static const ElementKind FILE = const ElementKind._("FILE");
|
||
|
||
static const ElementKind FUNCTION = const ElementKind._("FUNCTION");
|
||
|
||
static const ElementKind FUNCTION_TYPE_ALIAS = const ElementKind._("FUNCTION_TYPE_ALIAS");
|
||
|
||
static const ElementKind GETTER = const ElementKind._("GETTER");
|
||
|
||
static const ElementKind LABEL = const ElementKind._("LABEL");
|
||
|
||
static const ElementKind LIBRARY = const ElementKind._("LIBRARY");
|
||
|
||
static const ElementKind LOCAL_VARIABLE = const ElementKind._("LOCAL_VARIABLE");
|
||
|
||
static const ElementKind METHOD = const ElementKind._("METHOD");
|
||
|
||
static const ElementKind PARAMETER = const ElementKind._("PARAMETER");
|
||
|
||
static const ElementKind PREFIX = const ElementKind._("PREFIX");
|
||
|
||
static const ElementKind SETTER = const ElementKind._("SETTER");
|
||
|
||
static const ElementKind TOP_LEVEL_VARIABLE = const ElementKind._("TOP_LEVEL_VARIABLE");
|
||
|
||
static const ElementKind TYPE_PARAMETER = const ElementKind._("TYPE_PARAMETER");
|
||
|
||
static const ElementKind UNKNOWN = const ElementKind._("UNKNOWN");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<ElementKind> VALUES = const <ElementKind>[CLASS, CLASS_TYPE_ALIAS, COMPILATION_UNIT, CONSTRUCTOR, ENUM, ENUM_CONSTANT, FIELD, FILE, FUNCTION, FUNCTION_TYPE_ALIAS, GETTER, LABEL, LIBRARY, LOCAL_VARIABLE, METHOD, PARAMETER, PREFIX, SETTER, TOP_LEVEL_VARIABLE, TYPE_PARAMETER, UNKNOWN];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const ElementKind._(this.name);
|
||
|
||
factory ElementKind(String name) {
|
||
switch (name) {
|
||
case "CLASS":
|
||
return CLASS;
|
||
case "CLASS_TYPE_ALIAS":
|
||
return CLASS_TYPE_ALIAS;
|
||
case "COMPILATION_UNIT":
|
||
return COMPILATION_UNIT;
|
||
case "CONSTRUCTOR":
|
||
return CONSTRUCTOR;
|
||
case "ENUM":
|
||
return ENUM;
|
||
case "ENUM_CONSTANT":
|
||
return ENUM_CONSTANT;
|
||
case "FIELD":
|
||
return FIELD;
|
||
case "FILE":
|
||
return FILE;
|
||
case "FUNCTION":
|
||
return FUNCTION;
|
||
case "FUNCTION_TYPE_ALIAS":
|
||
return FUNCTION_TYPE_ALIAS;
|
||
case "GETTER":
|
||
return GETTER;
|
||
case "LABEL":
|
||
return LABEL;
|
||
case "LIBRARY":
|
||
return LIBRARY;
|
||
case "LOCAL_VARIABLE":
|
||
return LOCAL_VARIABLE;
|
||
case "METHOD":
|
||
return METHOD;
|
||
case "PARAMETER":
|
||
return PARAMETER;
|
||
case "PREFIX":
|
||
return PREFIX;
|
||
case "SETTER":
|
||
return SETTER;
|
||
case "TOP_LEVEL_VARIABLE":
|
||
return TOP_LEVEL_VARIABLE;
|
||
case "TYPE_PARAMETER":
|
||
return TYPE_PARAMETER;
|
||
case "UNKNOWN":
|
||
return UNKNOWN;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory ElementKind.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new ElementKind(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "ElementKind", json);
|
||
}
|
||
|
||
@override
|
||
String toString() => "ElementKind.$name";
|
||
|
||
String toJson() => name;
|
||
}
|
||
|
||
/**
|
||
* extractLocalVariable feedback
|
||
*
|
||
* {
|
||
* "coveringExpressionOffsets": optional List<int>
|
||
* "coveringExpressionLengths": optional List<int>
|
||
* "names": List<String>
|
||
* "offsets": List<int>
|
||
* "lengths": List<int>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class ExtractLocalVariableFeedback extends RefactoringFeedback {
|
||
List<int> _coveringExpressionOffsets;
|
||
|
||
List<int> _coveringExpressionLengths;
|
||
|
||
List<String> _names;
|
||
|
||
List<int> _offsets;
|
||
|
||
List<int> _lengths;
|
||
|
||
/**
|
||
* The offsets of the expressions that cover the specified selection, from
|
||
* the down most to the up most.
|
||
*/
|
||
List<int> get coveringExpressionOffsets => _coveringExpressionOffsets;
|
||
|
||
/**
|
||
* The offsets of the expressions that cover the specified selection, from
|
||
* the down most to the up most.
|
||
*/
|
||
void set coveringExpressionOffsets(List<int> value) {
|
||
this._coveringExpressionOffsets = value;
|
||
}
|
||
|
||
/**
|
||
* The lengths of the expressions that cover the specified selection, from
|
||
* the down most to the up most.
|
||
*/
|
||
List<int> get coveringExpressionLengths => _coveringExpressionLengths;
|
||
|
||
/**
|
||
* The lengths of the expressions that cover the specified selection, from
|
||
* the down most to the up most.
|
||
*/
|
||
void set coveringExpressionLengths(List<int> value) {
|
||
this._coveringExpressionLengths = value;
|
||
}
|
||
|
||
/**
|
||
* The proposed names for the local variable.
|
||
*/
|
||
List<String> get names => _names;
|
||
|
||
/**
|
||
* The proposed names for the local variable.
|
||
*/
|
||
void set names(List<String> value) {
|
||
assert(value != null);
|
||
this._names = value;
|
||
}
|
||
|
||
/**
|
||
* The offsets of the expressions that would be replaced by a reference to
|
||
* the variable.
|
||
*/
|
||
List<int> get offsets => _offsets;
|
||
|
||
/**
|
||
* The offsets of the expressions that would be replaced by a reference to
|
||
* the variable.
|
||
*/
|
||
void set offsets(List<int> value) {
|
||
assert(value != null);
|
||
this._offsets = value;
|
||
}
|
||
|
||
/**
|
||
* The lengths of the expressions that would be replaced by a reference to
|
||
* the variable. The lengths correspond to the offsets. In other words, for a
|
||
* given expression, if the offset of that expression is offsets[i], then the
|
||
* length of that expression is lengths[i].
|
||
*/
|
||
List<int> get lengths => _lengths;
|
||
|
||
/**
|
||
* The lengths of the expressions that would be replaced by a reference to
|
||
* the variable. The lengths correspond to the offsets. In other words, for a
|
||
* given expression, if the offset of that expression is offsets[i], then the
|
||
* length of that expression is lengths[i].
|
||
*/
|
||
void set lengths(List<int> value) {
|
||
assert(value != null);
|
||
this._lengths = value;
|
||
}
|
||
|
||
ExtractLocalVariableFeedback(List<String> names, List<int> offsets, List<int> lengths, {List<int> coveringExpressionOffsets, List<int> coveringExpressionLengths}) {
|
||
this.coveringExpressionOffsets = coveringExpressionOffsets;
|
||
this.coveringExpressionLengths = coveringExpressionLengths;
|
||
this.names = names;
|
||
this.offsets = offsets;
|
||
this.lengths = lengths;
|
||
}
|
||
|
||
factory ExtractLocalVariableFeedback.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
List<int> coveringExpressionOffsets;
|
||
if (json.containsKey("coveringExpressionOffsets")) {
|
||
coveringExpressionOffsets = jsonDecoder.decodeList(jsonPath + ".coveringExpressionOffsets", json["coveringExpressionOffsets"], jsonDecoder.decodeInt);
|
||
}
|
||
List<int> coveringExpressionLengths;
|
||
if (json.containsKey("coveringExpressionLengths")) {
|
||
coveringExpressionLengths = jsonDecoder.decodeList(jsonPath + ".coveringExpressionLengths", json["coveringExpressionLengths"], jsonDecoder.decodeInt);
|
||
}
|
||
List<String> names;
|
||
if (json.containsKey("names")) {
|
||
names = jsonDecoder.decodeList(jsonPath + ".names", json["names"], jsonDecoder.decodeString);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "names");
|
||
}
|
||
List<int> offsets;
|
||
if (json.containsKey("offsets")) {
|
||
offsets = jsonDecoder.decodeList(jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offsets");
|
||
}
|
||
List<int> lengths;
|
||
if (json.containsKey("lengths")) {
|
||
lengths = jsonDecoder.decodeList(jsonPath + ".lengths", json["lengths"], jsonDecoder.decodeInt);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "lengths");
|
||
}
|
||
return new ExtractLocalVariableFeedback(names, offsets, lengths, coveringExpressionOffsets: coveringExpressionOffsets, coveringExpressionLengths: coveringExpressionLengths);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "extractLocalVariable feedback", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
if (coveringExpressionOffsets != null) {
|
||
result["coveringExpressionOffsets"] = coveringExpressionOffsets;
|
||
}
|
||
if (coveringExpressionLengths != null) {
|
||
result["coveringExpressionLengths"] = coveringExpressionLengths;
|
||
}
|
||
result["names"] = names;
|
||
result["offsets"] = offsets;
|
||
result["lengths"] = lengths;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is ExtractLocalVariableFeedback) {
|
||
return listEqual(coveringExpressionOffsets, other.coveringExpressionOffsets, (int a, int b) => a == b) &&
|
||
listEqual(coveringExpressionLengths, other.coveringExpressionLengths, (int a, int b) => a == b) &&
|
||
listEqual(names, other.names, (String a, String b) => a == b) &&
|
||
listEqual(offsets, other.offsets, (int a, int b) => a == b) &&
|
||
listEqual(lengths, other.lengths, (int a, int b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, coveringExpressionOffsets.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, coveringExpressionLengths.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, names.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offsets.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, lengths.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* extractLocalVariable options
|
||
*
|
||
* {
|
||
* "name": String
|
||
* "extractAll": bool
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class ExtractLocalVariableOptions extends RefactoringOptions {
|
||
String _name;
|
||
|
||
bool _extractAll;
|
||
|
||
/**
|
||
* The name that the local variable should be given.
|
||
*/
|
||
String get name => _name;
|
||
|
||
/**
|
||
* The name that the local variable should be given.
|
||
*/
|
||
void set name(String value) {
|
||
assert(value != null);
|
||
this._name = value;
|
||
}
|
||
|
||
/**
|
||
* True if all occurrences of the expression within the scope in which the
|
||
* variable will be defined should be replaced by a reference to the local
|
||
* variable. The expression used to initiate the refactoring will always be
|
||
* replaced.
|
||
*/
|
||
bool get extractAll => _extractAll;
|
||
|
||
/**
|
||
* True if all occurrences of the expression within the scope in which the
|
||
* variable will be defined should be replaced by a reference to the local
|
||
* variable. The expression used to initiate the refactoring will always be
|
||
* replaced.
|
||
*/
|
||
void set extractAll(bool value) {
|
||
assert(value != null);
|
||
this._extractAll = value;
|
||
}
|
||
|
||
ExtractLocalVariableOptions(String name, bool extractAll) {
|
||
this.name = name;
|
||
this.extractAll = extractAll;
|
||
}
|
||
|
||
factory ExtractLocalVariableOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String name;
|
||
if (json.containsKey("name")) {
|
||
name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "name");
|
||
}
|
||
bool extractAll;
|
||
if (json.containsKey("extractAll")) {
|
||
extractAll = jsonDecoder.decodeBool(jsonPath + ".extractAll", json["extractAll"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "extractAll");
|
||
}
|
||
return new ExtractLocalVariableOptions(name, extractAll);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "extractLocalVariable options", json);
|
||
}
|
||
}
|
||
|
||
factory ExtractLocalVariableOptions.fromRefactoringParams(EditGetRefactoringParams refactoringParams, Request request) {
|
||
return new ExtractLocalVariableOptions.fromJson(
|
||
new RequestDecoder(request), "options", refactoringParams.options);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["name"] = name;
|
||
result["extractAll"] = extractAll;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is ExtractLocalVariableOptions) {
|
||
return name == other.name &&
|
||
extractAll == other.extractAll;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, name.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, extractAll.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* extractMethod feedback
|
||
*
|
||
* {
|
||
* "offset": int
|
||
* "length": int
|
||
* "returnType": String
|
||
* "names": List<String>
|
||
* "canCreateGetter": bool
|
||
* "parameters": List<RefactoringMethodParameter>
|
||
* "offsets": List<int>
|
||
* "lengths": List<int>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class ExtractMethodFeedback extends RefactoringFeedback {
|
||
int _offset;
|
||
|
||
int _length;
|
||
|
||
String _returnType;
|
||
|
||
List<String> _names;
|
||
|
||
bool _canCreateGetter;
|
||
|
||
List<RefactoringMethodParameter> _parameters;
|
||
|
||
List<int> _offsets;
|
||
|
||
List<int> _lengths;
|
||
|
||
/**
|
||
* The offset to the beginning of the expression or statements that will be
|
||
* extracted.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset to the beginning of the expression or statements that will be
|
||
* extracted.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the expression or statements that will be extracted.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the expression or statements that will be extracted.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
/**
|
||
* The proposed return type for the method. If the returned element does not
|
||
* have a declared return type, this field will contain an empty string.
|
||
*/
|
||
String get returnType => _returnType;
|
||
|
||
/**
|
||
* The proposed return type for the method. If the returned element does not
|
||
* have a declared return type, this field will contain an empty string.
|
||
*/
|
||
void set returnType(String value) {
|
||
assert(value != null);
|
||
this._returnType = value;
|
||
}
|
||
|
||
/**
|
||
* The proposed names for the method.
|
||
*/
|
||
List<String> get names => _names;
|
||
|
||
/**
|
||
* The proposed names for the method.
|
||
*/
|
||
void set names(List<String> value) {
|
||
assert(value != null);
|
||
this._names = value;
|
||
}
|
||
|
||
/**
|
||
* True if a getter could be created rather than a method.
|
||
*/
|
||
bool get canCreateGetter => _canCreateGetter;
|
||
|
||
/**
|
||
* True if a getter could be created rather than a method.
|
||
*/
|
||
void set canCreateGetter(bool value) {
|
||
assert(value != null);
|
||
this._canCreateGetter = value;
|
||
}
|
||
|
||
/**
|
||
* The proposed parameters for the method.
|
||
*/
|
||
List<RefactoringMethodParameter> get parameters => _parameters;
|
||
|
||
/**
|
||
* The proposed parameters for the method.
|
||
*/
|
||
void set parameters(List<RefactoringMethodParameter> value) {
|
||
assert(value != null);
|
||
this._parameters = value;
|
||
}
|
||
|
||
/**
|
||
* The offsets of the expressions or statements that would be replaced by an
|
||
* invocation of the method.
|
||
*/
|
||
List<int> get offsets => _offsets;
|
||
|
||
/**
|
||
* The offsets of the expressions or statements that would be replaced by an
|
||
* invocation of the method.
|
||
*/
|
||
void set offsets(List<int> value) {
|
||
assert(value != null);
|
||
this._offsets = value;
|
||
}
|
||
|
||
/**
|
||
* The lengths of the expressions or statements that would be replaced by an
|
||
* invocation of the method. The lengths correspond to the offsets. In other
|
||
* words, for a given expression (or block of statements), if the offset of
|
||
* that expression is offsets[i], then the length of that expression is
|
||
* lengths[i].
|
||
*/
|
||
List<int> get lengths => _lengths;
|
||
|
||
/**
|
||
* The lengths of the expressions or statements that would be replaced by an
|
||
* invocation of the method. The lengths correspond to the offsets. In other
|
||
* words, for a given expression (or block of statements), if the offset of
|
||
* that expression is offsets[i], then the length of that expression is
|
||
* lengths[i].
|
||
*/
|
||
void set lengths(List<int> value) {
|
||
assert(value != null);
|
||
this._lengths = value;
|
||
}
|
||
|
||
ExtractMethodFeedback(int offset, int length, String returnType, List<String> names, bool canCreateGetter, List<RefactoringMethodParameter> parameters, List<int> offsets, List<int> lengths) {
|
||
this.offset = offset;
|
||
this.length = length;
|
||
this.returnType = returnType;
|
||
this.names = names;
|
||
this.canCreateGetter = canCreateGetter;
|
||
this.parameters = parameters;
|
||
this.offsets = offsets;
|
||
this.lengths = lengths;
|
||
}
|
||
|
||
factory ExtractMethodFeedback.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
String returnType;
|
||
if (json.containsKey("returnType")) {
|
||
returnType = jsonDecoder.decodeString(jsonPath + ".returnType", json["returnType"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "returnType");
|
||
}
|
||
List<String> names;
|
||
if (json.containsKey("names")) {
|
||
names = jsonDecoder.decodeList(jsonPath + ".names", json["names"], jsonDecoder.decodeString);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "names");
|
||
}
|
||
bool canCreateGetter;
|
||
if (json.containsKey("canCreateGetter")) {
|
||
canCreateGetter = jsonDecoder.decodeBool(jsonPath + ".canCreateGetter", json["canCreateGetter"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "canCreateGetter");
|
||
}
|
||
List<RefactoringMethodParameter> parameters;
|
||
if (json.containsKey("parameters")) {
|
||
parameters = jsonDecoder.decodeList(jsonPath + ".parameters", json["parameters"], (String jsonPath, Object json) => new RefactoringMethodParameter.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "parameters");
|
||
}
|
||
List<int> offsets;
|
||
if (json.containsKey("offsets")) {
|
||
offsets = jsonDecoder.decodeList(jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offsets");
|
||
}
|
||
List<int> lengths;
|
||
if (json.containsKey("lengths")) {
|
||
lengths = jsonDecoder.decodeList(jsonPath + ".lengths", json["lengths"], jsonDecoder.decodeInt);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "lengths");
|
||
}
|
||
return new ExtractMethodFeedback(offset, length, returnType, names, canCreateGetter, parameters, offsets, lengths);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "extractMethod feedback", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["offset"] = offset;
|
||
result["length"] = length;
|
||
result["returnType"] = returnType;
|
||
result["names"] = names;
|
||
result["canCreateGetter"] = canCreateGetter;
|
||
result["parameters"] = parameters.map((RefactoringMethodParameter value) => value.toJson()).toList();
|
||
result["offsets"] = offsets;
|
||
result["lengths"] = lengths;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is ExtractMethodFeedback) {
|
||
return offset == other.offset &&
|
||
length == other.length &&
|
||
returnType == other.returnType &&
|
||
listEqual(names, other.names, (String a, String b) => a == b) &&
|
||
canCreateGetter == other.canCreateGetter &&
|
||
listEqual(parameters, other.parameters, (RefactoringMethodParameter a, RefactoringMethodParameter b) => a == b) &&
|
||
listEqual(offsets, other.offsets, (int a, int b) => a == b) &&
|
||
listEqual(lengths, other.lengths, (int a, int b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, names.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, canCreateGetter.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offsets.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, lengths.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* extractMethod options
|
||
*
|
||
* {
|
||
* "returnType": String
|
||
* "createGetter": bool
|
||
* "name": String
|
||
* "parameters": List<RefactoringMethodParameter>
|
||
* "extractAll": bool
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class ExtractMethodOptions extends RefactoringOptions {
|
||
String _returnType;
|
||
|
||
bool _createGetter;
|
||
|
||
String _name;
|
||
|
||
List<RefactoringMethodParameter> _parameters;
|
||
|
||
bool _extractAll;
|
||
|
||
/**
|
||
* The return type that should be defined for the method.
|
||
*/
|
||
String get returnType => _returnType;
|
||
|
||
/**
|
||
* The return type that should be defined for the method.
|
||
*/
|
||
void set returnType(String value) {
|
||
assert(value != null);
|
||
this._returnType = value;
|
||
}
|
||
|
||
/**
|
||
* True if a getter should be created rather than a method. It is an error if
|
||
* this field is true and the list of parameters is non-empty.
|
||
*/
|
||
bool get createGetter => _createGetter;
|
||
|
||
/**
|
||
* True if a getter should be created rather than a method. It is an error if
|
||
* this field is true and the list of parameters is non-empty.
|
||
*/
|
||
void set createGetter(bool value) {
|
||
assert(value != null);
|
||
this._createGetter = value;
|
||
}
|
||
|
||
/**
|
||
* The name that the method should be given.
|
||
*/
|
||
String get name => _name;
|
||
|
||
/**
|
||
* The name that the method should be given.
|
||
*/
|
||
void set name(String value) {
|
||
assert(value != null);
|
||
this._name = value;
|
||
}
|
||
|
||
/**
|
||
* The parameters that should be defined for the method.
|
||
*
|
||
* It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL
|
||
* parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a
|
||
* NAMED parameter.
|
||
*
|
||
* - To change the order and/or update proposed parameters, add parameters
|
||
* with the same identifiers as proposed.
|
||
* - To add new parameters, omit their identifier.
|
||
* - To remove some parameters, omit them in this list.
|
||
*/
|
||
List<RefactoringMethodParameter> get parameters => _parameters;
|
||
|
||
/**
|
||
* The parameters that should be defined for the method.
|
||
*
|
||
* It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL
|
||
* parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a
|
||
* NAMED parameter.
|
||
*
|
||
* - To change the order and/or update proposed parameters, add parameters
|
||
* with the same identifiers as proposed.
|
||
* - To add new parameters, omit their identifier.
|
||
* - To remove some parameters, omit them in this list.
|
||
*/
|
||
void set parameters(List<RefactoringMethodParameter> value) {
|
||
assert(value != null);
|
||
this._parameters = value;
|
||
}
|
||
|
||
/**
|
||
* True if all occurrences of the expression or statements should be replaced
|
||
* by an invocation of the method. The expression or statements used to
|
||
* initiate the refactoring will always be replaced.
|
||
*/
|
||
bool get extractAll => _extractAll;
|
||
|
||
/**
|
||
* True if all occurrences of the expression or statements should be replaced
|
||
* by an invocation of the method. The expression or statements used to
|
||
* initiate the refactoring will always be replaced.
|
||
*/
|
||
void set extractAll(bool value) {
|
||
assert(value != null);
|
||
this._extractAll = value;
|
||
}
|
||
|
||
ExtractMethodOptions(String returnType, bool createGetter, String name, List<RefactoringMethodParameter> parameters, bool extractAll) {
|
||
this.returnType = returnType;
|
||
this.createGetter = createGetter;
|
||
this.name = name;
|
||
this.parameters = parameters;
|
||
this.extractAll = extractAll;
|
||
}
|
||
|
||
factory ExtractMethodOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String returnType;
|
||
if (json.containsKey("returnType")) {
|
||
returnType = jsonDecoder.decodeString(jsonPath + ".returnType", json["returnType"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "returnType");
|
||
}
|
||
bool createGetter;
|
||
if (json.containsKey("createGetter")) {
|
||
createGetter = jsonDecoder.decodeBool(jsonPath + ".createGetter", json["createGetter"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "createGetter");
|
||
}
|
||
String name;
|
||
if (json.containsKey("name")) {
|
||
name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "name");
|
||
}
|
||
List<RefactoringMethodParameter> parameters;
|
||
if (json.containsKey("parameters")) {
|
||
parameters = jsonDecoder.decodeList(jsonPath + ".parameters", json["parameters"], (String jsonPath, Object json) => new RefactoringMethodParameter.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "parameters");
|
||
}
|
||
bool extractAll;
|
||
if (json.containsKey("extractAll")) {
|
||
extractAll = jsonDecoder.decodeBool(jsonPath + ".extractAll", json["extractAll"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "extractAll");
|
||
}
|
||
return new ExtractMethodOptions(returnType, createGetter, name, parameters, extractAll);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "extractMethod options", json);
|
||
}
|
||
}
|
||
|
||
factory ExtractMethodOptions.fromRefactoringParams(EditGetRefactoringParams refactoringParams, Request request) {
|
||
return new ExtractMethodOptions.fromJson(
|
||
new RequestDecoder(request), "options", refactoringParams.options);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["returnType"] = returnType;
|
||
result["createGetter"] = createGetter;
|
||
result["name"] = name;
|
||
result["parameters"] = parameters.map((RefactoringMethodParameter value) => value.toJson()).toList();
|
||
result["extractAll"] = extractAll;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is ExtractMethodOptions) {
|
||
return returnType == other.returnType &&
|
||
createGetter == other.createGetter &&
|
||
name == other.name &&
|
||
listEqual(parameters, other.parameters, (RefactoringMethodParameter a, RefactoringMethodParameter b) => a == b) &&
|
||
extractAll == other.extractAll;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, createGetter.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, name.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, extractAll.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* FoldingKind
|
||
*
|
||
* enum {
|
||
* COMMENT
|
||
* CLASS_MEMBER
|
||
* DIRECTIVES
|
||
* DOCUMENTATION_COMMENT
|
||
* TOP_LEVEL_DECLARATION
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class FoldingKind implements Enum {
|
||
static const FoldingKind COMMENT = const FoldingKind._("COMMENT");
|
||
|
||
static const FoldingKind CLASS_MEMBER = const FoldingKind._("CLASS_MEMBER");
|
||
|
||
static const FoldingKind DIRECTIVES = const FoldingKind._("DIRECTIVES");
|
||
|
||
static const FoldingKind DOCUMENTATION_COMMENT = const FoldingKind._("DOCUMENTATION_COMMENT");
|
||
|
||
static const FoldingKind TOP_LEVEL_DECLARATION = const FoldingKind._("TOP_LEVEL_DECLARATION");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<FoldingKind> VALUES = const <FoldingKind>[COMMENT, CLASS_MEMBER, DIRECTIVES, DOCUMENTATION_COMMENT, TOP_LEVEL_DECLARATION];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const FoldingKind._(this.name);
|
||
|
||
factory FoldingKind(String name) {
|
||
switch (name) {
|
||
case "COMMENT":
|
||
return COMMENT;
|
||
case "CLASS_MEMBER":
|
||
return CLASS_MEMBER;
|
||
case "DIRECTIVES":
|
||
return DIRECTIVES;
|
||
case "DOCUMENTATION_COMMENT":
|
||
return DOCUMENTATION_COMMENT;
|
||
case "TOP_LEVEL_DECLARATION":
|
||
return TOP_LEVEL_DECLARATION;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory FoldingKind.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new FoldingKind(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "FoldingKind", json);
|
||
}
|
||
|
||
@override
|
||
String toString() => "FoldingKind.$name";
|
||
|
||
String toJson() => name;
|
||
}
|
||
|
||
/**
|
||
* FoldingRegion
|
||
*
|
||
* {
|
||
* "kind": FoldingKind
|
||
* "offset": int
|
||
* "length": int
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class FoldingRegion implements HasToJson {
|
||
FoldingKind _kind;
|
||
|
||
int _offset;
|
||
|
||
int _length;
|
||
|
||
/**
|
||
* The kind of the region.
|
||
*/
|
||
FoldingKind get kind => _kind;
|
||
|
||
/**
|
||
* The kind of the region.
|
||
*/
|
||
void set kind(FoldingKind value) {
|
||
assert(value != null);
|
||
this._kind = value;
|
||
}
|
||
|
||
/**
|
||
* The offset of the region to be folded.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset of the region to be folded.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the region to be folded.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the region to be folded.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
FoldingRegion(FoldingKind kind, int offset, int length) {
|
||
this.kind = kind;
|
||
this.offset = offset;
|
||
this.length = length;
|
||
}
|
||
|
||
factory FoldingRegion.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
FoldingKind kind;
|
||
if (json.containsKey("kind")) {
|
||
kind = new FoldingKind.fromJson(jsonDecoder, jsonPath + ".kind", json["kind"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "kind");
|
||
}
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
return new FoldingRegion(kind, offset, length);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "FoldingRegion", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["kind"] = kind.toJson();
|
||
result["offset"] = offset;
|
||
result["length"] = length;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is FoldingRegion) {
|
||
return kind == other.kind &&
|
||
offset == other.offset &&
|
||
length == other.length;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* HighlightRegion
|
||
*
|
||
* {
|
||
* "type": HighlightRegionType
|
||
* "offset": int
|
||
* "length": int
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class HighlightRegion implements HasToJson {
|
||
HighlightRegionType _type;
|
||
|
||
int _offset;
|
||
|
||
int _length;
|
||
|
||
/**
|
||
* The type of highlight associated with the region.
|
||
*/
|
||
HighlightRegionType get type => _type;
|
||
|
||
/**
|
||
* The type of highlight associated with the region.
|
||
*/
|
||
void set type(HighlightRegionType value) {
|
||
assert(value != null);
|
||
this._type = value;
|
||
}
|
||
|
||
/**
|
||
* The offset of the region to be highlighted.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset of the region to be highlighted.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the region to be highlighted.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the region to be highlighted.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
HighlightRegion(HighlightRegionType type, int offset, int length) {
|
||
this.type = type;
|
||
this.offset = offset;
|
||
this.length = length;
|
||
}
|
||
|
||
factory HighlightRegion.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
HighlightRegionType type;
|
||
if (json.containsKey("type")) {
|
||
type = new HighlightRegionType.fromJson(jsonDecoder, jsonPath + ".type", json["type"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "type");
|
||
}
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
return new HighlightRegion(type, offset, length);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "HighlightRegion", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["type"] = type.toJson();
|
||
result["offset"] = offset;
|
||
result["length"] = length;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is HighlightRegion) {
|
||
return type == other.type &&
|
||
offset == other.offset &&
|
||
length == other.length;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, type.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* HighlightRegionType
|
||
*
|
||
* enum {
|
||
* ANNOTATION
|
||
* BUILT_IN
|
||
* CLASS
|
||
* COMMENT_BLOCK
|
||
* COMMENT_DOCUMENTATION
|
||
* COMMENT_END_OF_LINE
|
||
* CONSTRUCTOR
|
||
* DIRECTIVE
|
||
* DYNAMIC_TYPE
|
||
* DYNAMIC_LOCAL_VARIABLE_DECLARATION
|
||
* DYNAMIC_LOCAL_VARIABLE_REFERENCE
|
||
* DYNAMIC_PARAMETER_DECLARATION
|
||
* DYNAMIC_PARAMETER_REFERENCE
|
||
* ENUM
|
||
* ENUM_CONSTANT
|
||
* FIELD
|
||
* FIELD_STATIC
|
||
* FUNCTION
|
||
* FUNCTION_DECLARATION
|
||
* FUNCTION_TYPE_ALIAS
|
||
* GETTER_DECLARATION
|
||
* IDENTIFIER_DEFAULT
|
||
* IMPORT_PREFIX
|
||
* INSTANCE_FIELD_DECLARATION
|
||
* INSTANCE_FIELD_REFERENCE
|
||
* INSTANCE_GETTER_DECLARATION
|
||
* INSTANCE_GETTER_REFERENCE
|
||
* INSTANCE_METHOD_DECLARATION
|
||
* INSTANCE_METHOD_REFERENCE
|
||
* INSTANCE_SETTER_DECLARATION
|
||
* INSTANCE_SETTER_REFERENCE
|
||
* INVALID_STRING_ESCAPE
|
||
* KEYWORD
|
||
* LABEL
|
||
* LIBRARY_NAME
|
||
* LITERAL_BOOLEAN
|
||
* LITERAL_DOUBLE
|
||
* LITERAL_INTEGER
|
||
* LITERAL_LIST
|
||
* LITERAL_MAP
|
||
* LITERAL_STRING
|
||
* LOCAL_FUNCTION_DECLARATION
|
||
* LOCAL_FUNCTION_REFERENCE
|
||
* LOCAL_VARIABLE
|
||
* LOCAL_VARIABLE_DECLARATION
|
||
* LOCAL_VARIABLE_REFERENCE
|
||
* METHOD
|
||
* METHOD_DECLARATION
|
||
* METHOD_DECLARATION_STATIC
|
||
* METHOD_STATIC
|
||
* PARAMETER
|
||
* SETTER_DECLARATION
|
||
* TOP_LEVEL_VARIABLE
|
||
* PARAMETER_DECLARATION
|
||
* PARAMETER_REFERENCE
|
||
* STATIC_FIELD_DECLARATION
|
||
* STATIC_GETTER_DECLARATION
|
||
* STATIC_GETTER_REFERENCE
|
||
* STATIC_METHOD_DECLARATION
|
||
* STATIC_METHOD_REFERENCE
|
||
* STATIC_SETTER_DECLARATION
|
||
* STATIC_SETTER_REFERENCE
|
||
* TOP_LEVEL_FUNCTION_DECLARATION
|
||
* TOP_LEVEL_FUNCTION_REFERENCE
|
||
* TOP_LEVEL_GETTER_DECLARATION
|
||
* TOP_LEVEL_GETTER_REFERENCE
|
||
* TOP_LEVEL_SETTER_DECLARATION
|
||
* TOP_LEVEL_SETTER_REFERENCE
|
||
* TOP_LEVEL_VARIABLE_DECLARATION
|
||
* TYPE_NAME_DYNAMIC
|
||
* TYPE_PARAMETER
|
||
* UNRESOLVED_INSTANCE_MEMBER_REFERENCE
|
||
* VALID_STRING_ESCAPE
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class HighlightRegionType implements Enum {
|
||
static const HighlightRegionType ANNOTATION = const HighlightRegionType._("ANNOTATION");
|
||
|
||
static const HighlightRegionType BUILT_IN = const HighlightRegionType._("BUILT_IN");
|
||
|
||
static const HighlightRegionType CLASS = const HighlightRegionType._("CLASS");
|
||
|
||
static const HighlightRegionType COMMENT_BLOCK = const HighlightRegionType._("COMMENT_BLOCK");
|
||
|
||
static const HighlightRegionType COMMENT_DOCUMENTATION = const HighlightRegionType._("COMMENT_DOCUMENTATION");
|
||
|
||
static const HighlightRegionType COMMENT_END_OF_LINE = const HighlightRegionType._("COMMENT_END_OF_LINE");
|
||
|
||
static const HighlightRegionType CONSTRUCTOR = const HighlightRegionType._("CONSTRUCTOR");
|
||
|
||
static const HighlightRegionType DIRECTIVE = const HighlightRegionType._("DIRECTIVE");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType DYNAMIC_TYPE = const HighlightRegionType._("DYNAMIC_TYPE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType DYNAMIC_LOCAL_VARIABLE_DECLARATION = const HighlightRegionType._("DYNAMIC_LOCAL_VARIABLE_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType DYNAMIC_LOCAL_VARIABLE_REFERENCE = const HighlightRegionType._("DYNAMIC_LOCAL_VARIABLE_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType DYNAMIC_PARAMETER_DECLARATION = const HighlightRegionType._("DYNAMIC_PARAMETER_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType DYNAMIC_PARAMETER_REFERENCE = const HighlightRegionType._("DYNAMIC_PARAMETER_REFERENCE");
|
||
|
||
static const HighlightRegionType ENUM = const HighlightRegionType._("ENUM");
|
||
|
||
static const HighlightRegionType ENUM_CONSTANT = const HighlightRegionType._("ENUM_CONSTANT");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType FIELD = const HighlightRegionType._("FIELD");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType FIELD_STATIC = const HighlightRegionType._("FIELD_STATIC");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType FUNCTION = const HighlightRegionType._("FUNCTION");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType FUNCTION_DECLARATION = const HighlightRegionType._("FUNCTION_DECLARATION");
|
||
|
||
static const HighlightRegionType FUNCTION_TYPE_ALIAS = const HighlightRegionType._("FUNCTION_TYPE_ALIAS");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType GETTER_DECLARATION = const HighlightRegionType._("GETTER_DECLARATION");
|
||
|
||
static const HighlightRegionType IDENTIFIER_DEFAULT = const HighlightRegionType._("IDENTIFIER_DEFAULT");
|
||
|
||
static const HighlightRegionType IMPORT_PREFIX = const HighlightRegionType._("IMPORT_PREFIX");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType INSTANCE_FIELD_DECLARATION = const HighlightRegionType._("INSTANCE_FIELD_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType INSTANCE_FIELD_REFERENCE = const HighlightRegionType._("INSTANCE_FIELD_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType INSTANCE_GETTER_DECLARATION = const HighlightRegionType._("INSTANCE_GETTER_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType INSTANCE_GETTER_REFERENCE = const HighlightRegionType._("INSTANCE_GETTER_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType INSTANCE_METHOD_DECLARATION = const HighlightRegionType._("INSTANCE_METHOD_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType INSTANCE_METHOD_REFERENCE = const HighlightRegionType._("INSTANCE_METHOD_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType INSTANCE_SETTER_DECLARATION = const HighlightRegionType._("INSTANCE_SETTER_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType INSTANCE_SETTER_REFERENCE = const HighlightRegionType._("INSTANCE_SETTER_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType INVALID_STRING_ESCAPE = const HighlightRegionType._("INVALID_STRING_ESCAPE");
|
||
|
||
static const HighlightRegionType KEYWORD = const HighlightRegionType._("KEYWORD");
|
||
|
||
static const HighlightRegionType LABEL = const HighlightRegionType._("LABEL");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType LIBRARY_NAME = const HighlightRegionType._("LIBRARY_NAME");
|
||
|
||
static const HighlightRegionType LITERAL_BOOLEAN = const HighlightRegionType._("LITERAL_BOOLEAN");
|
||
|
||
static const HighlightRegionType LITERAL_DOUBLE = const HighlightRegionType._("LITERAL_DOUBLE");
|
||
|
||
static const HighlightRegionType LITERAL_INTEGER = const HighlightRegionType._("LITERAL_INTEGER");
|
||
|
||
static const HighlightRegionType LITERAL_LIST = const HighlightRegionType._("LITERAL_LIST");
|
||
|
||
static const HighlightRegionType LITERAL_MAP = const HighlightRegionType._("LITERAL_MAP");
|
||
|
||
static const HighlightRegionType LITERAL_STRING = const HighlightRegionType._("LITERAL_STRING");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType LOCAL_FUNCTION_DECLARATION = const HighlightRegionType._("LOCAL_FUNCTION_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType LOCAL_FUNCTION_REFERENCE = const HighlightRegionType._("LOCAL_FUNCTION_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType LOCAL_VARIABLE = const HighlightRegionType._("LOCAL_VARIABLE");
|
||
|
||
static const HighlightRegionType LOCAL_VARIABLE_DECLARATION = const HighlightRegionType._("LOCAL_VARIABLE_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType LOCAL_VARIABLE_REFERENCE = const HighlightRegionType._("LOCAL_VARIABLE_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType METHOD = const HighlightRegionType._("METHOD");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType METHOD_DECLARATION = const HighlightRegionType._("METHOD_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType METHOD_DECLARATION_STATIC = const HighlightRegionType._("METHOD_DECLARATION_STATIC");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType METHOD_STATIC = const HighlightRegionType._("METHOD_STATIC");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType PARAMETER = const HighlightRegionType._("PARAMETER");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType SETTER_DECLARATION = const HighlightRegionType._("SETTER_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 1 of highlight.
|
||
*/
|
||
static const HighlightRegionType TOP_LEVEL_VARIABLE = const HighlightRegionType._("TOP_LEVEL_VARIABLE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType PARAMETER_DECLARATION = const HighlightRegionType._("PARAMETER_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType PARAMETER_REFERENCE = const HighlightRegionType._("PARAMETER_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType STATIC_FIELD_DECLARATION = const HighlightRegionType._("STATIC_FIELD_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType STATIC_GETTER_DECLARATION = const HighlightRegionType._("STATIC_GETTER_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType STATIC_GETTER_REFERENCE = const HighlightRegionType._("STATIC_GETTER_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType STATIC_METHOD_DECLARATION = const HighlightRegionType._("STATIC_METHOD_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType STATIC_METHOD_REFERENCE = const HighlightRegionType._("STATIC_METHOD_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType STATIC_SETTER_DECLARATION = const HighlightRegionType._("STATIC_SETTER_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType STATIC_SETTER_REFERENCE = const HighlightRegionType._("STATIC_SETTER_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType TOP_LEVEL_FUNCTION_DECLARATION = const HighlightRegionType._("TOP_LEVEL_FUNCTION_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType TOP_LEVEL_FUNCTION_REFERENCE = const HighlightRegionType._("TOP_LEVEL_FUNCTION_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType TOP_LEVEL_GETTER_DECLARATION = const HighlightRegionType._("TOP_LEVEL_GETTER_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType TOP_LEVEL_GETTER_REFERENCE = const HighlightRegionType._("TOP_LEVEL_GETTER_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType TOP_LEVEL_SETTER_DECLARATION = const HighlightRegionType._("TOP_LEVEL_SETTER_DECLARATION");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType TOP_LEVEL_SETTER_REFERENCE = const HighlightRegionType._("TOP_LEVEL_SETTER_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType TOP_LEVEL_VARIABLE_DECLARATION = const HighlightRegionType._("TOP_LEVEL_VARIABLE_DECLARATION");
|
||
|
||
static const HighlightRegionType TYPE_NAME_DYNAMIC = const HighlightRegionType._("TYPE_NAME_DYNAMIC");
|
||
|
||
static const HighlightRegionType TYPE_PARAMETER = const HighlightRegionType._("TYPE_PARAMETER");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType UNRESOLVED_INSTANCE_MEMBER_REFERENCE = const HighlightRegionType._("UNRESOLVED_INSTANCE_MEMBER_REFERENCE");
|
||
|
||
/**
|
||
* Only for version 2 of highlight.
|
||
*/
|
||
static const HighlightRegionType VALID_STRING_ESCAPE = const HighlightRegionType._("VALID_STRING_ESCAPE");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<HighlightRegionType> VALUES = const <HighlightRegionType>[ANNOTATION, BUILT_IN, CLASS, COMMENT_BLOCK, COMMENT_DOCUMENTATION, COMMENT_END_OF_LINE, CONSTRUCTOR, DIRECTIVE, DYNAMIC_TYPE, DYNAMIC_LOCAL_VARIABLE_DECLARATION, DYNAMIC_LOCAL_VARIABLE_REFERENCE, DYNAMIC_PARAMETER_DECLARATION, DYNAMIC_PARAMETER_REFERENCE, ENUM, ENUM_CONSTANT, FIELD, FIELD_STATIC, FUNCTION, FUNCTION_DECLARATION, FUNCTION_TYPE_ALIAS, GETTER_DECLARATION, IDENTIFIER_DEFAULT, IMPORT_PREFIX, INSTANCE_FIELD_DECLARATION, INSTANCE_FIELD_REFERENCE, INSTANCE_GETTER_DECLARATION, INSTANCE_GETTER_REFERENCE, INSTANCE_METHOD_DECLARATION, INSTANCE_METHOD_REFERENCE, INSTANCE_SETTER_DECLARATION, INSTANCE_SETTER_REFERENCE, INVALID_STRING_ESCAPE, KEYWORD, LABEL, LIBRARY_NAME, LITERAL_BOOLEAN, LITERAL_DOUBLE, LITERAL_INTEGER, LITERAL_LIST, LITERAL_MAP, LITERAL_STRING, LOCAL_FUNCTION_DECLARATION, LOCAL_FUNCTION_REFERENCE, LOCAL_VARIABLE, LOCAL_VARIABLE_DECLARATION, LOCAL_VARIABLE_REFERENCE, METHOD, METHOD_DECLARATION, METHOD_DECLARATION_STATIC, METHOD_STATIC, PARAMETER, SETTER_DECLARATION, TOP_LEVEL_VARIABLE, PARAMETER_DECLARATION, PARAMETER_REFERENCE, STATIC_FIELD_DECLARATION, STATIC_GETTER_DECLARATION, STATIC_GETTER_REFERENCE, STATIC_METHOD_DECLARATION, STATIC_METHOD_REFERENCE, STATIC_SETTER_DECLARATION, STATIC_SETTER_REFERENCE, TOP_LEVEL_FUNCTION_DECLARATION, TOP_LEVEL_FUNCTION_REFERENCE, TOP_LEVEL_GETTER_DECLARATION, TOP_LEVEL_GETTER_REFERENCE, TOP_LEVEL_SETTER_DECLARATION, TOP_LEVEL_SETTER_REFERENCE, TOP_LEVEL_VARIABLE_DECLARATION, TYPE_NAME_DYNAMIC, TYPE_PARAMETER, UNRESOLVED_INSTANCE_MEMBER_REFERENCE, VALID_STRING_ESCAPE];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const HighlightRegionType._(this.name);
|
||
|
||
factory HighlightRegionType(String name) {
|
||
switch (name) {
|
||
case "ANNOTATION":
|
||
return ANNOTATION;
|
||
case "BUILT_IN":
|
||
return BUILT_IN;
|
||
case "CLASS":
|
||
return CLASS;
|
||
case "COMMENT_BLOCK":
|
||
return COMMENT_BLOCK;
|
||
case "COMMENT_DOCUMENTATION":
|
||
return COMMENT_DOCUMENTATION;
|
||
case "COMMENT_END_OF_LINE":
|
||
return COMMENT_END_OF_LINE;
|
||
case "CONSTRUCTOR":
|
||
return CONSTRUCTOR;
|
||
case "DIRECTIVE":
|
||
return DIRECTIVE;
|
||
case "DYNAMIC_TYPE":
|
||
return DYNAMIC_TYPE;
|
||
case "DYNAMIC_LOCAL_VARIABLE_DECLARATION":
|
||
return DYNAMIC_LOCAL_VARIABLE_DECLARATION;
|
||
case "DYNAMIC_LOCAL_VARIABLE_REFERENCE":
|
||
return DYNAMIC_LOCAL_VARIABLE_REFERENCE;
|
||
case "DYNAMIC_PARAMETER_DECLARATION":
|
||
return DYNAMIC_PARAMETER_DECLARATION;
|
||
case "DYNAMIC_PARAMETER_REFERENCE":
|
||
return DYNAMIC_PARAMETER_REFERENCE;
|
||
case "ENUM":
|
||
return ENUM;
|
||
case "ENUM_CONSTANT":
|
||
return ENUM_CONSTANT;
|
||
case "FIELD":
|
||
return FIELD;
|
||
case "FIELD_STATIC":
|
||
return FIELD_STATIC;
|
||
case "FUNCTION":
|
||
return FUNCTION;
|
||
case "FUNCTION_DECLARATION":
|
||
return FUNCTION_DECLARATION;
|
||
case "FUNCTION_TYPE_ALIAS":
|
||
return FUNCTION_TYPE_ALIAS;
|
||
case "GETTER_DECLARATION":
|
||
return GETTER_DECLARATION;
|
||
case "IDENTIFIER_DEFAULT":
|
||
return IDENTIFIER_DEFAULT;
|
||
case "IMPORT_PREFIX":
|
||
return IMPORT_PREFIX;
|
||
case "INSTANCE_FIELD_DECLARATION":
|
||
return INSTANCE_FIELD_DECLARATION;
|
||
case "INSTANCE_FIELD_REFERENCE":
|
||
return INSTANCE_FIELD_REFERENCE;
|
||
case "INSTANCE_GETTER_DECLARATION":
|
||
return INSTANCE_GETTER_DECLARATION;
|
||
case "INSTANCE_GETTER_REFERENCE":
|
||
return INSTANCE_GETTER_REFERENCE;
|
||
case "INSTANCE_METHOD_DECLARATION":
|
||
return INSTANCE_METHOD_DECLARATION;
|
||
case "INSTANCE_METHOD_REFERENCE":
|
||
return INSTANCE_METHOD_REFERENCE;
|
||
case "INSTANCE_SETTER_DECLARATION":
|
||
return INSTANCE_SETTER_DECLARATION;
|
||
case "INSTANCE_SETTER_REFERENCE":
|
||
return INSTANCE_SETTER_REFERENCE;
|
||
case "INVALID_STRING_ESCAPE":
|
||
return INVALID_STRING_ESCAPE;
|
||
case "KEYWORD":
|
||
return KEYWORD;
|
||
case "LABEL":
|
||
return LABEL;
|
||
case "LIBRARY_NAME":
|
||
return LIBRARY_NAME;
|
||
case "LITERAL_BOOLEAN":
|
||
return LITERAL_BOOLEAN;
|
||
case "LITERAL_DOUBLE":
|
||
return LITERAL_DOUBLE;
|
||
case "LITERAL_INTEGER":
|
||
return LITERAL_INTEGER;
|
||
case "LITERAL_LIST":
|
||
return LITERAL_LIST;
|
||
case "LITERAL_MAP":
|
||
return LITERAL_MAP;
|
||
case "LITERAL_STRING":
|
||
return LITERAL_STRING;
|
||
case "LOCAL_FUNCTION_DECLARATION":
|
||
return LOCAL_FUNCTION_DECLARATION;
|
||
case "LOCAL_FUNCTION_REFERENCE":
|
||
return LOCAL_FUNCTION_REFERENCE;
|
||
case "LOCAL_VARIABLE":
|
||
return LOCAL_VARIABLE;
|
||
case "LOCAL_VARIABLE_DECLARATION":
|
||
return LOCAL_VARIABLE_DECLARATION;
|
||
case "LOCAL_VARIABLE_REFERENCE":
|
||
return LOCAL_VARIABLE_REFERENCE;
|
||
case "METHOD":
|
||
return METHOD;
|
||
case "METHOD_DECLARATION":
|
||
return METHOD_DECLARATION;
|
||
case "METHOD_DECLARATION_STATIC":
|
||
return METHOD_DECLARATION_STATIC;
|
||
case "METHOD_STATIC":
|
||
return METHOD_STATIC;
|
||
case "PARAMETER":
|
||
return PARAMETER;
|
||
case "SETTER_DECLARATION":
|
||
return SETTER_DECLARATION;
|
||
case "TOP_LEVEL_VARIABLE":
|
||
return TOP_LEVEL_VARIABLE;
|
||
case "PARAMETER_DECLARATION":
|
||
return PARAMETER_DECLARATION;
|
||
case "PARAMETER_REFERENCE":
|
||
return PARAMETER_REFERENCE;
|
||
case "STATIC_FIELD_DECLARATION":
|
||
return STATIC_FIELD_DECLARATION;
|
||
case "STATIC_GETTER_DECLARATION":
|
||
return STATIC_GETTER_DECLARATION;
|
||
case "STATIC_GETTER_REFERENCE":
|
||
return STATIC_GETTER_REFERENCE;
|
||
case "STATIC_METHOD_DECLARATION":
|
||
return STATIC_METHOD_DECLARATION;
|
||
case "STATIC_METHOD_REFERENCE":
|
||
return STATIC_METHOD_REFERENCE;
|
||
case "STATIC_SETTER_DECLARATION":
|
||
return STATIC_SETTER_DECLARATION;
|
||
case "STATIC_SETTER_REFERENCE":
|
||
return STATIC_SETTER_REFERENCE;
|
||
case "TOP_LEVEL_FUNCTION_DECLARATION":
|
||
return TOP_LEVEL_FUNCTION_DECLARATION;
|
||
case "TOP_LEVEL_FUNCTION_REFERENCE":
|
||
return TOP_LEVEL_FUNCTION_REFERENCE;
|
||
case "TOP_LEVEL_GETTER_DECLARATION":
|
||
return TOP_LEVEL_GETTER_DECLARATION;
|
||
case "TOP_LEVEL_GETTER_REFERENCE":
|
||
return TOP_LEVEL_GETTER_REFERENCE;
|
||
case "TOP_LEVEL_SETTER_DECLARATION":
|
||
return TOP_LEVEL_SETTER_DECLARATION;
|
||
case "TOP_LEVEL_SETTER_REFERENCE":
|
||
return TOP_LEVEL_SETTER_REFERENCE;
|
||
case "TOP_LEVEL_VARIABLE_DECLARATION":
|
||
return TOP_LEVEL_VARIABLE_DECLARATION;
|
||
case "TYPE_NAME_DYNAMIC":
|
||
return TYPE_NAME_DYNAMIC;
|
||
case "TYPE_PARAMETER":
|
||
return TYPE_PARAMETER;
|
||
case "UNRESOLVED_INSTANCE_MEMBER_REFERENCE":
|
||
return UNRESOLVED_INSTANCE_MEMBER_REFERENCE;
|
||
case "VALID_STRING_ESCAPE":
|
||
return VALID_STRING_ESCAPE;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory HighlightRegionType.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new HighlightRegionType(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "HighlightRegionType", json);
|
||
}
|
||
|
||
@override
|
||
String toString() => "HighlightRegionType.$name";
|
||
|
||
String toJson() => name;
|
||
}
|
||
|
||
/**
|
||
* inlineLocalVariable feedback
|
||
*
|
||
* {
|
||
* "name": String
|
||
* "occurrences": int
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class InlineLocalVariableFeedback extends RefactoringFeedback {
|
||
String _name;
|
||
|
||
int _occurrences;
|
||
|
||
/**
|
||
* The name of the variable being inlined.
|
||
*/
|
||
String get name => _name;
|
||
|
||
/**
|
||
* The name of the variable being inlined.
|
||
*/
|
||
void set name(String value) {
|
||
assert(value != null);
|
||
this._name = value;
|
||
}
|
||
|
||
/**
|
||
* The number of times the variable occurs.
|
||
*/
|
||
int get occurrences => _occurrences;
|
||
|
||
/**
|
||
* The number of times the variable occurs.
|
||
*/
|
||
void set occurrences(int value) {
|
||
assert(value != null);
|
||
this._occurrences = value;
|
||
}
|
||
|
||
InlineLocalVariableFeedback(String name, int occurrences) {
|
||
this.name = name;
|
||
this.occurrences = occurrences;
|
||
}
|
||
|
||
factory InlineLocalVariableFeedback.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String name;
|
||
if (json.containsKey("name")) {
|
||
name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "name");
|
||
}
|
||
int occurrences;
|
||
if (json.containsKey("occurrences")) {
|
||
occurrences = jsonDecoder.decodeInt(jsonPath + ".occurrences", json["occurrences"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "occurrences");
|
||
}
|
||
return new InlineLocalVariableFeedback(name, occurrences);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "inlineLocalVariable feedback", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["name"] = name;
|
||
result["occurrences"] = occurrences;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is InlineLocalVariableFeedback) {
|
||
return name == other.name &&
|
||
occurrences == other.occurrences;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, name.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, occurrences.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* inlineLocalVariable options
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class InlineLocalVariableOptions extends RefactoringOptions implements HasToJson {
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is InlineLocalVariableOptions) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 540364977;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* inlineMethod feedback
|
||
*
|
||
* {
|
||
* "className": optional String
|
||
* "methodName": String
|
||
* "isDeclaration": bool
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class InlineMethodFeedback extends RefactoringFeedback {
|
||
String _className;
|
||
|
||
String _methodName;
|
||
|
||
bool _isDeclaration;
|
||
|
||
/**
|
||
* The name of the class enclosing the method being inlined. If not a class
|
||
* member is being inlined, this field will be absent.
|
||
*/
|
||
String get className => _className;
|
||
|
||
/**
|
||
* The name of the class enclosing the method being inlined. If not a class
|
||
* member is being inlined, this field will be absent.
|
||
*/
|
||
void set className(String value) {
|
||
this._className = value;
|
||
}
|
||
|
||
/**
|
||
* The name of the method (or function) being inlined.
|
||
*/
|
||
String get methodName => _methodName;
|
||
|
||
/**
|
||
* The name of the method (or function) being inlined.
|
||
*/
|
||
void set methodName(String value) {
|
||
assert(value != null);
|
||
this._methodName = value;
|
||
}
|
||
|
||
/**
|
||
* True if the declaration of the method is selected and all references
|
||
* should be inlined.
|
||
*/
|
||
bool get isDeclaration => _isDeclaration;
|
||
|
||
/**
|
||
* True if the declaration of the method is selected and all references
|
||
* should be inlined.
|
||
*/
|
||
void set isDeclaration(bool value) {
|
||
assert(value != null);
|
||
this._isDeclaration = value;
|
||
}
|
||
|
||
InlineMethodFeedback(String methodName, bool isDeclaration, {String className}) {
|
||
this.className = className;
|
||
this.methodName = methodName;
|
||
this.isDeclaration = isDeclaration;
|
||
}
|
||
|
||
factory InlineMethodFeedback.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String className;
|
||
if (json.containsKey("className")) {
|
||
className = jsonDecoder.decodeString(jsonPath + ".className", json["className"]);
|
||
}
|
||
String methodName;
|
||
if (json.containsKey("methodName")) {
|
||
methodName = jsonDecoder.decodeString(jsonPath + ".methodName", json["methodName"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "methodName");
|
||
}
|
||
bool isDeclaration;
|
||
if (json.containsKey("isDeclaration")) {
|
||
isDeclaration = jsonDecoder.decodeBool(jsonPath + ".isDeclaration", json["isDeclaration"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "isDeclaration");
|
||
}
|
||
return new InlineMethodFeedback(methodName, isDeclaration, className: className);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "inlineMethod feedback", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
if (className != null) {
|
||
result["className"] = className;
|
||
}
|
||
result["methodName"] = methodName;
|
||
result["isDeclaration"] = isDeclaration;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is InlineMethodFeedback) {
|
||
return className == other.className &&
|
||
methodName == other.methodName &&
|
||
isDeclaration == other.isDeclaration;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, className.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, methodName.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, isDeclaration.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* inlineMethod options
|
||
*
|
||
* {
|
||
* "deleteSource": bool
|
||
* "inlineAll": bool
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class InlineMethodOptions extends RefactoringOptions {
|
||
bool _deleteSource;
|
||
|
||
bool _inlineAll;
|
||
|
||
/**
|
||
* True if the method being inlined should be removed. It is an error if this
|
||
* field is true and inlineAll is false.
|
||
*/
|
||
bool get deleteSource => _deleteSource;
|
||
|
||
/**
|
||
* True if the method being inlined should be removed. It is an error if this
|
||
* field is true and inlineAll is false.
|
||
*/
|
||
void set deleteSource(bool value) {
|
||
assert(value != null);
|
||
this._deleteSource = value;
|
||
}
|
||
|
||
/**
|
||
* True if all invocations of the method should be inlined, or false if only
|
||
* the invocation site used to create this refactoring should be inlined.
|
||
*/
|
||
bool get inlineAll => _inlineAll;
|
||
|
||
/**
|
||
* True if all invocations of the method should be inlined, or false if only
|
||
* the invocation site used to create this refactoring should be inlined.
|
||
*/
|
||
void set inlineAll(bool value) {
|
||
assert(value != null);
|
||
this._inlineAll = value;
|
||
}
|
||
|
||
InlineMethodOptions(bool deleteSource, bool inlineAll) {
|
||
this.deleteSource = deleteSource;
|
||
this.inlineAll = inlineAll;
|
||
}
|
||
|
||
factory InlineMethodOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
bool deleteSource;
|
||
if (json.containsKey("deleteSource")) {
|
||
deleteSource = jsonDecoder.decodeBool(jsonPath + ".deleteSource", json["deleteSource"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "deleteSource");
|
||
}
|
||
bool inlineAll;
|
||
if (json.containsKey("inlineAll")) {
|
||
inlineAll = jsonDecoder.decodeBool(jsonPath + ".inlineAll", json["inlineAll"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "inlineAll");
|
||
}
|
||
return new InlineMethodOptions(deleteSource, inlineAll);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "inlineMethod options", json);
|
||
}
|
||
}
|
||
|
||
factory InlineMethodOptions.fromRefactoringParams(EditGetRefactoringParams refactoringParams, Request request) {
|
||
return new InlineMethodOptions.fromJson(
|
||
new RequestDecoder(request), "options", refactoringParams.options);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["deleteSource"] = deleteSource;
|
||
result["inlineAll"] = inlineAll;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is InlineMethodOptions) {
|
||
return deleteSource == other.deleteSource &&
|
||
inlineAll == other.inlineAll;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, deleteSource.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, inlineAll.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* LinkedEditGroup
|
||
*
|
||
* {
|
||
* "positions": List<Position>
|
||
* "length": int
|
||
* "suggestions": List<LinkedEditSuggestion>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class LinkedEditGroup implements HasToJson {
|
||
List<Position> _positions;
|
||
|
||
int _length;
|
||
|
||
List<LinkedEditSuggestion> _suggestions;
|
||
|
||
/**
|
||
* The positions of the regions that should be edited simultaneously.
|
||
*/
|
||
List<Position> get positions => _positions;
|
||
|
||
/**
|
||
* The positions of the regions that should be edited simultaneously.
|
||
*/
|
||
void set positions(List<Position> value) {
|
||
assert(value != null);
|
||
this._positions = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the regions that should be edited simultaneously.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the regions that should be edited simultaneously.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
/**
|
||
* Pre-computed suggestions for what every region might want to be changed
|
||
* to.
|
||
*/
|
||
List<LinkedEditSuggestion> get suggestions => _suggestions;
|
||
|
||
/**
|
||
* Pre-computed suggestions for what every region might want to be changed
|
||
* to.
|
||
*/
|
||
void set suggestions(List<LinkedEditSuggestion> value) {
|
||
assert(value != null);
|
||
this._suggestions = value;
|
||
}
|
||
|
||
LinkedEditGroup(List<Position> positions, int length, List<LinkedEditSuggestion> suggestions) {
|
||
this.positions = positions;
|
||
this.length = length;
|
||
this.suggestions = suggestions;
|
||
}
|
||
|
||
factory LinkedEditGroup.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
List<Position> positions;
|
||
if (json.containsKey("positions")) {
|
||
positions = jsonDecoder.decodeList(jsonPath + ".positions", json["positions"], (String jsonPath, Object json) => new Position.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "positions");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
List<LinkedEditSuggestion> suggestions;
|
||
if (json.containsKey("suggestions")) {
|
||
suggestions = jsonDecoder.decodeList(jsonPath + ".suggestions", json["suggestions"], (String jsonPath, Object json) => new LinkedEditSuggestion.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "suggestions");
|
||
}
|
||
return new LinkedEditGroup(positions, length, suggestions);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "LinkedEditGroup", json);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Construct an empty LinkedEditGroup.
|
||
*/
|
||
LinkedEditGroup.empty() : this(<Position>[], 0, <LinkedEditSuggestion>[]);
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["positions"] = positions.map((Position value) => value.toJson()).toList();
|
||
result["length"] = length;
|
||
result["suggestions"] = suggestions.map((LinkedEditSuggestion value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* Add a new position and change the length.
|
||
*/
|
||
void addPosition(Position position, int length) {
|
||
positions.add(position);
|
||
this.length = length;
|
||
}
|
||
|
||
/**
|
||
* Add a new suggestion.
|
||
*/
|
||
void addSuggestion(LinkedEditSuggestion suggestion) {
|
||
suggestions.add(suggestion);
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is LinkedEditGroup) {
|
||
return listEqual(positions, other.positions, (Position a, Position b) => a == b) &&
|
||
length == other.length &&
|
||
listEqual(suggestions, other.suggestions, (LinkedEditSuggestion a, LinkedEditSuggestion b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, positions.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, suggestions.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* LinkedEditSuggestion
|
||
*
|
||
* {
|
||
* "value": String
|
||
* "kind": LinkedEditSuggestionKind
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class LinkedEditSuggestion implements HasToJson {
|
||
String _value;
|
||
|
||
LinkedEditSuggestionKind _kind;
|
||
|
||
/**
|
||
* The value that could be used to replace all of the linked edit regions.
|
||
*/
|
||
String get value => _value;
|
||
|
||
/**
|
||
* The value that could be used to replace all of the linked edit regions.
|
||
*/
|
||
void set value(String value) {
|
||
assert(value != null);
|
||
this._value = value;
|
||
}
|
||
|
||
/**
|
||
* The kind of value being proposed.
|
||
*/
|
||
LinkedEditSuggestionKind get kind => _kind;
|
||
|
||
/**
|
||
* The kind of value being proposed.
|
||
*/
|
||
void set kind(LinkedEditSuggestionKind value) {
|
||
assert(value != null);
|
||
this._kind = value;
|
||
}
|
||
|
||
LinkedEditSuggestion(String value, LinkedEditSuggestionKind kind) {
|
||
this.value = value;
|
||
this.kind = kind;
|
||
}
|
||
|
||
factory LinkedEditSuggestion.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String value;
|
||
if (json.containsKey("value")) {
|
||
value = jsonDecoder.decodeString(jsonPath + ".value", json["value"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "value");
|
||
}
|
||
LinkedEditSuggestionKind kind;
|
||
if (json.containsKey("kind")) {
|
||
kind = new LinkedEditSuggestionKind.fromJson(jsonDecoder, jsonPath + ".kind", json["kind"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "kind");
|
||
}
|
||
return new LinkedEditSuggestion(value, kind);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestion", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["value"] = value;
|
||
result["kind"] = kind.toJson();
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is LinkedEditSuggestion) {
|
||
return value == other.value &&
|
||
kind == other.kind;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, value.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* LinkedEditSuggestionKind
|
||
*
|
||
* enum {
|
||
* METHOD
|
||
* PARAMETER
|
||
* TYPE
|
||
* VARIABLE
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class LinkedEditSuggestionKind implements Enum {
|
||
static const LinkedEditSuggestionKind METHOD = const LinkedEditSuggestionKind._("METHOD");
|
||
|
||
static const LinkedEditSuggestionKind PARAMETER = const LinkedEditSuggestionKind._("PARAMETER");
|
||
|
||
static const LinkedEditSuggestionKind TYPE = const LinkedEditSuggestionKind._("TYPE");
|
||
|
||
static const LinkedEditSuggestionKind VARIABLE = const LinkedEditSuggestionKind._("VARIABLE");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<LinkedEditSuggestionKind> VALUES = const <LinkedEditSuggestionKind>[METHOD, PARAMETER, TYPE, VARIABLE];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const LinkedEditSuggestionKind._(this.name);
|
||
|
||
factory LinkedEditSuggestionKind(String name) {
|
||
switch (name) {
|
||
case "METHOD":
|
||
return METHOD;
|
||
case "PARAMETER":
|
||
return PARAMETER;
|
||
case "TYPE":
|
||
return TYPE;
|
||
case "VARIABLE":
|
||
return VARIABLE;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory LinkedEditSuggestionKind.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new LinkedEditSuggestionKind(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestionKind", json);
|
||
}
|
||
|
||
@override
|
||
String toString() => "LinkedEditSuggestionKind.$name";
|
||
|
||
String toJson() => name;
|
||
}
|
||
|
||
/**
|
||
* Location
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "offset": int
|
||
* "length": int
|
||
* "startLine": int
|
||
* "startColumn": int
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class Location implements HasToJson {
|
||
String _file;
|
||
|
||
int _offset;
|
||
|
||
int _length;
|
||
|
||
int _startLine;
|
||
|
||
int _startColumn;
|
||
|
||
/**
|
||
* The file containing the range.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file containing the range.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The offset of the range.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset of the range.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the range.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the range.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
/**
|
||
* The one-based index of the line containing the first character of the
|
||
* range.
|
||
*/
|
||
int get startLine => _startLine;
|
||
|
||
/**
|
||
* The one-based index of the line containing the first character of the
|
||
* range.
|
||
*/
|
||
void set startLine(int value) {
|
||
assert(value != null);
|
||
this._startLine = value;
|
||
}
|
||
|
||
/**
|
||
* The one-based index of the column containing the first character of the
|
||
* range.
|
||
*/
|
||
int get startColumn => _startColumn;
|
||
|
||
/**
|
||
* The one-based index of the column containing the first character of the
|
||
* range.
|
||
*/
|
||
void set startColumn(int value) {
|
||
assert(value != null);
|
||
this._startColumn = value;
|
||
}
|
||
|
||
Location(String file, int offset, int length, int startLine, int startColumn) {
|
||
this.file = file;
|
||
this.offset = offset;
|
||
this.length = length;
|
||
this.startLine = startLine;
|
||
this.startColumn = startColumn;
|
||
}
|
||
|
||
factory Location.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
int startLine;
|
||
if (json.containsKey("startLine")) {
|
||
startLine = jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLine"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "startLine");
|
||
}
|
||
int startColumn;
|
||
if (json.containsKey("startColumn")) {
|
||
startColumn = jsonDecoder.decodeInt(jsonPath + ".startColumn", json["startColumn"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "startColumn");
|
||
}
|
||
return new Location(file, offset, length, startLine, startColumn);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "Location", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["offset"] = offset;
|
||
result["length"] = length;
|
||
result["startLine"] = startLine;
|
||
result["startColumn"] = startColumn;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is Location) {
|
||
return file == other.file &&
|
||
offset == other.offset &&
|
||
length == other.length &&
|
||
startLine == other.startLine &&
|
||
startColumn == other.startColumn;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, startLine.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, startColumn.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* moveFile feedback
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class MoveFileFeedback extends RefactoringFeedback implements HasToJson {
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is MoveFileFeedback) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 438975893;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* moveFile options
|
||
*
|
||
* {
|
||
* "newFile": FilePath
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class MoveFileOptions extends RefactoringOptions {
|
||
String _newFile;
|
||
|
||
/**
|
||
* The new file path to which the given file is being moved.
|
||
*/
|
||
String get newFile => _newFile;
|
||
|
||
/**
|
||
* The new file path to which the given file is being moved.
|
||
*/
|
||
void set newFile(String value) {
|
||
assert(value != null);
|
||
this._newFile = value;
|
||
}
|
||
|
||
MoveFileOptions(String newFile) {
|
||
this.newFile = newFile;
|
||
}
|
||
|
||
factory MoveFileOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String newFile;
|
||
if (json.containsKey("newFile")) {
|
||
newFile = jsonDecoder.decodeString(jsonPath + ".newFile", json["newFile"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "newFile");
|
||
}
|
||
return new MoveFileOptions(newFile);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "moveFile options", json);
|
||
}
|
||
}
|
||
|
||
factory MoveFileOptions.fromRefactoringParams(EditGetRefactoringParams refactoringParams, Request request) {
|
||
return new MoveFileOptions.fromJson(
|
||
new RequestDecoder(request), "options", refactoringParams.options);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["newFile"] = newFile;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is MoveFileOptions) {
|
||
return newFile == other.newFile;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, newFile.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* NavigationRegion
|
||
*
|
||
* {
|
||
* "offset": int
|
||
* "length": int
|
||
* "targets": List<int>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class NavigationRegion implements HasToJson {
|
||
int _offset;
|
||
|
||
int _length;
|
||
|
||
List<int> _targets;
|
||
|
||
/**
|
||
* The offset of the region from which the user can navigate.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset of the region from which the user can navigate.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the region from which the user can navigate.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the region from which the user can navigate.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
/**
|
||
* The indexes of the targets (in the enclosing navigation response) to which
|
||
* the given region is bound. By opening the target, clients can implement
|
||
* one form of navigation. This list cannot be empty.
|
||
*/
|
||
List<int> get targets => _targets;
|
||
|
||
/**
|
||
* The indexes of the targets (in the enclosing navigation response) to which
|
||
* the given region is bound. By opening the target, clients can implement
|
||
* one form of navigation. This list cannot be empty.
|
||
*/
|
||
void set targets(List<int> value) {
|
||
assert(value != null);
|
||
this._targets = value;
|
||
}
|
||
|
||
NavigationRegion(int offset, int length, List<int> targets) {
|
||
this.offset = offset;
|
||
this.length = length;
|
||
this.targets = targets;
|
||
}
|
||
|
||
factory NavigationRegion.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
List<int> targets;
|
||
if (json.containsKey("targets")) {
|
||
targets = jsonDecoder.decodeList(jsonPath + ".targets", json["targets"], jsonDecoder.decodeInt);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "targets");
|
||
}
|
||
return new NavigationRegion(offset, length, targets);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "NavigationRegion", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["offset"] = offset;
|
||
result["length"] = length;
|
||
result["targets"] = targets;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is NavigationRegion) {
|
||
return offset == other.offset &&
|
||
length == other.length &&
|
||
listEqual(targets, other.targets, (int a, int b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, targets.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* NavigationTarget
|
||
*
|
||
* {
|
||
* "kind": ElementKind
|
||
* "fileIndex": int
|
||
* "offset": int
|
||
* "length": int
|
||
* "startLine": int
|
||
* "startColumn": int
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class NavigationTarget implements HasToJson {
|
||
ElementKind _kind;
|
||
|
||
int _fileIndex;
|
||
|
||
int _offset;
|
||
|
||
int _length;
|
||
|
||
int _startLine;
|
||
|
||
int _startColumn;
|
||
|
||
/**
|
||
* The kind of the element.
|
||
*/
|
||
ElementKind get kind => _kind;
|
||
|
||
/**
|
||
* The kind of the element.
|
||
*/
|
||
void set kind(ElementKind value) {
|
||
assert(value != null);
|
||
this._kind = value;
|
||
}
|
||
|
||
/**
|
||
* The index of the file (in the enclosing navigation response) to navigate
|
||
* to.
|
||
*/
|
||
int get fileIndex => _fileIndex;
|
||
|
||
/**
|
||
* The index of the file (in the enclosing navigation response) to navigate
|
||
* to.
|
||
*/
|
||
void set fileIndex(int value) {
|
||
assert(value != null);
|
||
this._fileIndex = value;
|
||
}
|
||
|
||
/**
|
||
* The offset of the region to which the user can navigate.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset of the region to which the user can navigate.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the region to which the user can navigate.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the region to which the user can navigate.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
/**
|
||
* The one-based index of the line containing the first character of the
|
||
* region.
|
||
*/
|
||
int get startLine => _startLine;
|
||
|
||
/**
|
||
* The one-based index of the line containing the first character of the
|
||
* region.
|
||
*/
|
||
void set startLine(int value) {
|
||
assert(value != null);
|
||
this._startLine = value;
|
||
}
|
||
|
||
/**
|
||
* The one-based index of the column containing the first character of the
|
||
* region.
|
||
*/
|
||
int get startColumn => _startColumn;
|
||
|
||
/**
|
||
* The one-based index of the column containing the first character of the
|
||
* region.
|
||
*/
|
||
void set startColumn(int value) {
|
||
assert(value != null);
|
||
this._startColumn = value;
|
||
}
|
||
|
||
NavigationTarget(ElementKind kind, int fileIndex, int offset, int length, int startLine, int startColumn) {
|
||
this.kind = kind;
|
||
this.fileIndex = fileIndex;
|
||
this.offset = offset;
|
||
this.length = length;
|
||
this.startLine = startLine;
|
||
this.startColumn = startColumn;
|
||
}
|
||
|
||
factory NavigationTarget.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
ElementKind kind;
|
||
if (json.containsKey("kind")) {
|
||
kind = new ElementKind.fromJson(jsonDecoder, jsonPath + ".kind", json["kind"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "kind");
|
||
}
|
||
int fileIndex;
|
||
if (json.containsKey("fileIndex")) {
|
||
fileIndex = jsonDecoder.decodeInt(jsonPath + ".fileIndex", json["fileIndex"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "fileIndex");
|
||
}
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
int startLine;
|
||
if (json.containsKey("startLine")) {
|
||
startLine = jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLine"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "startLine");
|
||
}
|
||
int startColumn;
|
||
if (json.containsKey("startColumn")) {
|
||
startColumn = jsonDecoder.decodeInt(jsonPath + ".startColumn", json["startColumn"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "startColumn");
|
||
}
|
||
return new NavigationTarget(kind, fileIndex, offset, length, startLine, startColumn);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "NavigationTarget", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["kind"] = kind.toJson();
|
||
result["fileIndex"] = fileIndex;
|
||
result["offset"] = offset;
|
||
result["length"] = length;
|
||
result["startLine"] = startLine;
|
||
result["startColumn"] = startColumn;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is NavigationTarget) {
|
||
return kind == other.kind &&
|
||
fileIndex == other.fileIndex &&
|
||
offset == other.offset &&
|
||
length == other.length &&
|
||
startLine == other.startLine &&
|
||
startColumn == other.startColumn;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, fileIndex.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, startLine.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, startColumn.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Occurrences
|
||
*
|
||
* {
|
||
* "element": Element
|
||
* "offsets": List<int>
|
||
* "length": int
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class Occurrences implements HasToJson {
|
||
Element _element;
|
||
|
||
List<int> _offsets;
|
||
|
||
int _length;
|
||
|
||
/**
|
||
* The element that was referenced.
|
||
*/
|
||
Element get element => _element;
|
||
|
||
/**
|
||
* The element that was referenced.
|
||
*/
|
||
void set element(Element value) {
|
||
assert(value != null);
|
||
this._element = value;
|
||
}
|
||
|
||
/**
|
||
* The offsets of the name of the referenced element within the file.
|
||
*/
|
||
List<int> get offsets => _offsets;
|
||
|
||
/**
|
||
* The offsets of the name of the referenced element within the file.
|
||
*/
|
||
void set offsets(List<int> value) {
|
||
assert(value != null);
|
||
this._offsets = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the name of the referenced element.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the name of the referenced element.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
Occurrences(Element element, List<int> offsets, int length) {
|
||
this.element = element;
|
||
this.offsets = offsets;
|
||
this.length = length;
|
||
}
|
||
|
||
factory Occurrences.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
Element element;
|
||
if (json.containsKey("element")) {
|
||
element = new Element.fromJson(jsonDecoder, jsonPath + ".element", json["element"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "element");
|
||
}
|
||
List<int> offsets;
|
||
if (json.containsKey("offsets")) {
|
||
offsets = jsonDecoder.decodeList(jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offsets");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
return new Occurrences(element, offsets, length);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "Occurrences", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["element"] = element.toJson();
|
||
result["offsets"] = offsets;
|
||
result["length"] = length;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is Occurrences) {
|
||
return element == other.element &&
|
||
listEqual(offsets, other.offsets, (int a, int b) => a == b) &&
|
||
length == other.length;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, element.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offsets.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Outline
|
||
*
|
||
* {
|
||
* "element": Element
|
||
* "offset": int
|
||
* "length": int
|
||
* "children": optional List<Outline>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class Outline implements HasToJson {
|
||
Element _element;
|
||
|
||
int _offset;
|
||
|
||
int _length;
|
||
|
||
List<Outline> _children;
|
||
|
||
/**
|
||
* A description of the element represented by this node.
|
||
*/
|
||
Element get element => _element;
|
||
|
||
/**
|
||
* A description of the element represented by this node.
|
||
*/
|
||
void set element(Element value) {
|
||
assert(value != null);
|
||
this._element = value;
|
||
}
|
||
|
||
/**
|
||
* The offset of the first character of the element. This is different than
|
||
* the offset in the Element, which is the offset of the name of the element.
|
||
* It can be used, for example, to map locations in the file back to an
|
||
* outline.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset of the first character of the element. This is different than
|
||
* the offset in the Element, which is the offset of the name of the element.
|
||
* It can be used, for example, to map locations in the file back to an
|
||
* outline.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the element.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the element.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
/**
|
||
* The children of the node. The field will be omitted if the node has no
|
||
* children.
|
||
*/
|
||
List<Outline> get children => _children;
|
||
|
||
/**
|
||
* The children of the node. The field will be omitted if the node has no
|
||
* children.
|
||
*/
|
||
void set children(List<Outline> value) {
|
||
this._children = value;
|
||
}
|
||
|
||
Outline(Element element, int offset, int length, {List<Outline> children}) {
|
||
this.element = element;
|
||
this.offset = offset;
|
||
this.length = length;
|
||
this.children = children;
|
||
}
|
||
|
||
factory Outline.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
Element element;
|
||
if (json.containsKey("element")) {
|
||
element = new Element.fromJson(jsonDecoder, jsonPath + ".element", json["element"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "element");
|
||
}
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
List<Outline> children;
|
||
if (json.containsKey("children")) {
|
||
children = jsonDecoder.decodeList(jsonPath + ".children", json["children"], (String jsonPath, Object json) => new Outline.fromJson(jsonDecoder, jsonPath, json));
|
||
}
|
||
return new Outline(element, offset, length, children: children);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "Outline", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["element"] = element.toJson();
|
||
result["offset"] = offset;
|
||
result["length"] = length;
|
||
if (children != null) {
|
||
result["children"] = children.map((Outline value) => value.toJson()).toList();
|
||
}
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is Outline) {
|
||
return element == other.element &&
|
||
offset == other.offset &&
|
||
length == other.length &&
|
||
listEqual(children, other.children, (Outline a, Outline b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, element.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, children.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* plugin.error params
|
||
*
|
||
* {
|
||
* "isFatal": bool
|
||
* "message": String
|
||
* "stackTrace": String
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class PluginErrorParams implements HasToJson {
|
||
bool _isFatal;
|
||
|
||
String _message;
|
||
|
||
String _stackTrace;
|
||
|
||
/**
|
||
* A flag indicating whether the error is a fatal error, meaning that the
|
||
* plugin will shutdown automatically after sending this notification. If
|
||
* true, the server will not expect any other responses or notifications from
|
||
* the plugin.
|
||
*/
|
||
bool get isFatal => _isFatal;
|
||
|
||
/**
|
||
* A flag indicating whether the error is a fatal error, meaning that the
|
||
* plugin will shutdown automatically after sending this notification. If
|
||
* true, the server will not expect any other responses or notifications from
|
||
* the plugin.
|
||
*/
|
||
void set isFatal(bool value) {
|
||
assert(value != null);
|
||
this._isFatal = value;
|
||
}
|
||
|
||
/**
|
||
* The error message indicating what kind of error was encountered.
|
||
*/
|
||
String get message => _message;
|
||
|
||
/**
|
||
* The error message indicating what kind of error was encountered.
|
||
*/
|
||
void set message(String value) {
|
||
assert(value != null);
|
||
this._message = value;
|
||
}
|
||
|
||
/**
|
||
* The stack trace associated with the generation of the error, used for
|
||
* debugging the plugin.
|
||
*/
|
||
String get stackTrace => _stackTrace;
|
||
|
||
/**
|
||
* The stack trace associated with the generation of the error, used for
|
||
* debugging the plugin.
|
||
*/
|
||
void set stackTrace(String value) {
|
||
assert(value != null);
|
||
this._stackTrace = value;
|
||
}
|
||
|
||
PluginErrorParams(bool isFatal, String message, String stackTrace) {
|
||
this.isFatal = isFatal;
|
||
this.message = message;
|
||
this.stackTrace = stackTrace;
|
||
}
|
||
|
||
factory PluginErrorParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
bool isFatal;
|
||
if (json.containsKey("isFatal")) {
|
||
isFatal = jsonDecoder.decodeBool(jsonPath + ".isFatal", json["isFatal"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "isFatal");
|
||
}
|
||
String message;
|
||
if (json.containsKey("message")) {
|
||
message = jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "message");
|
||
}
|
||
String stackTrace;
|
||
if (json.containsKey("stackTrace")) {
|
||
stackTrace = jsonDecoder.decodeString(jsonPath + ".stackTrace", json["stackTrace"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "stackTrace");
|
||
}
|
||
return new PluginErrorParams(isFatal, message, stackTrace);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "plugin.error params", json);
|
||
}
|
||
}
|
||
|
||
factory PluginErrorParams.fromNotification(Notification notification) {
|
||
return new PluginErrorParams.fromJson(
|
||
new ResponseDecoder(null), "params", notification.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["isFatal"] = isFatal;
|
||
result["message"] = message;
|
||
result["stackTrace"] = stackTrace;
|
||
return result;
|
||
}
|
||
|
||
Notification toNotification() {
|
||
return new Notification("plugin.error", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is PluginErrorParams) {
|
||
return isFatal == other.isFatal &&
|
||
message == other.message &&
|
||
stackTrace == other.stackTrace;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, isFatal.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, message.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, stackTrace.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* plugin.shutdown params
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class PluginShutdownParams {
|
||
Request toRequest(String id) {
|
||
return new Request(id, "plugin.shutdown", null);
|
||
}
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is PluginShutdownParams) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 478064585;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* plugin.shutdown result
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class PluginShutdownResult implements ResponseResult {
|
||
@override
|
||
Map<String, dynamic> toJson() => <String, dynamic>{};
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: null);
|
||
}
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is PluginShutdownResult) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
return 9389109;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* plugin.versionCheck params
|
||
*
|
||
* {
|
||
* "version": String
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class PluginVersionCheckParams implements HasToJson {
|
||
String _version;
|
||
|
||
/**
|
||
* The version number of the plugin spec supported by the analysis server
|
||
* that is executing the plugin.
|
||
*/
|
||
String get version => _version;
|
||
|
||
/**
|
||
* The version number of the plugin spec supported by the analysis server
|
||
* that is executing the plugin.
|
||
*/
|
||
void set version(String value) {
|
||
assert(value != null);
|
||
this._version = value;
|
||
}
|
||
|
||
PluginVersionCheckParams(String version) {
|
||
this.version = version;
|
||
}
|
||
|
||
factory PluginVersionCheckParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String version;
|
||
if (json.containsKey("version")) {
|
||
version = jsonDecoder.decodeString(jsonPath + ".version", json["version"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "version");
|
||
}
|
||
return new PluginVersionCheckParams(version);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "plugin.versionCheck params", json);
|
||
}
|
||
}
|
||
|
||
factory PluginVersionCheckParams.fromRequest(Request request) {
|
||
return new PluginVersionCheckParams.fromJson(
|
||
new RequestDecoder(request), "params", request.params);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["version"] = version;
|
||
return result;
|
||
}
|
||
|
||
Request toRequest(String id) {
|
||
return new Request(id, "plugin.versionCheck", toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is PluginVersionCheckParams) {
|
||
return version == other.version;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, version.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* plugin.versionCheck result
|
||
*
|
||
* {
|
||
* "isCompatible": bool
|
||
* "name": String
|
||
* "version": String
|
||
* "email": optional String
|
||
* "interestingFiles": List<String>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class PluginVersionCheckResult implements ResponseResult {
|
||
bool _isCompatible;
|
||
|
||
String _name;
|
||
|
||
String _version;
|
||
|
||
String _email;
|
||
|
||
List<String> _interestingFiles;
|
||
|
||
/**
|
||
* A flag indicating whether the plugin supports the same version of the
|
||
* plugin spec as the analysis server. If the value is false, then the plugin
|
||
* is expected to shutdown after returning the response.
|
||
*/
|
||
bool get isCompatible => _isCompatible;
|
||
|
||
/**
|
||
* A flag indicating whether the plugin supports the same version of the
|
||
* plugin spec as the analysis server. If the value is false, then the plugin
|
||
* is expected to shutdown after returning the response.
|
||
*/
|
||
void set isCompatible(bool value) {
|
||
assert(value != null);
|
||
this._isCompatible = value;
|
||
}
|
||
|
||
/**
|
||
* The name of the plugin. This value is only used when the server needs to
|
||
* identify the plugin, either to the user or for debugging purposes.
|
||
*/
|
||
String get name => _name;
|
||
|
||
/**
|
||
* The name of the plugin. This value is only used when the server needs to
|
||
* identify the plugin, either to the user or for debugging purposes.
|
||
*/
|
||
void set name(String value) {
|
||
assert(value != null);
|
||
this._name = value;
|
||
}
|
||
|
||
/**
|
||
* The version of the plugin. This value is only used when the server needs
|
||
* to identify the plugin, either to the user or for debugging purposes.
|
||
*/
|
||
String get version => _version;
|
||
|
||
/**
|
||
* The version of the plugin. This value is only used when the server needs
|
||
* to identify the plugin, either to the user or for debugging purposes.
|
||
*/
|
||
void set version(String value) {
|
||
assert(value != null);
|
||
this._version = value;
|
||
}
|
||
|
||
/**
|
||
* An e-mail address that either the client or the user can use to contact
|
||
* the maintainers of the plugin when there is a problem.
|
||
*/
|
||
String get email => _email;
|
||
|
||
/**
|
||
* An e-mail address that either the client or the user can use to contact
|
||
* the maintainers of the plugin when there is a problem.
|
||
*/
|
||
void set email(String value) {
|
||
this._email = value;
|
||
}
|
||
|
||
/**
|
||
* The glob patterns of the files for which the plugin will provide
|
||
* information. This value is ignored if the isCompatible field is false.
|
||
* Otherwise, it will be used to identify the files for which the plugin
|
||
* should be notified of changes.
|
||
*/
|
||
List<String> get interestingFiles => _interestingFiles;
|
||
|
||
/**
|
||
* The glob patterns of the files for which the plugin will provide
|
||
* information. This value is ignored if the isCompatible field is false.
|
||
* Otherwise, it will be used to identify the files for which the plugin
|
||
* should be notified of changes.
|
||
*/
|
||
void set interestingFiles(List<String> value) {
|
||
assert(value != null);
|
||
this._interestingFiles = value;
|
||
}
|
||
|
||
PluginVersionCheckResult(bool isCompatible, String name, String version, List<String> interestingFiles, {String email}) {
|
||
this.isCompatible = isCompatible;
|
||
this.name = name;
|
||
this.version = version;
|
||
this.email = email;
|
||
this.interestingFiles = interestingFiles;
|
||
}
|
||
|
||
factory PluginVersionCheckResult.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
bool isCompatible;
|
||
if (json.containsKey("isCompatible")) {
|
||
isCompatible = jsonDecoder.decodeBool(jsonPath + ".isCompatible", json["isCompatible"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "isCompatible");
|
||
}
|
||
String name;
|
||
if (json.containsKey("name")) {
|
||
name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "name");
|
||
}
|
||
String version;
|
||
if (json.containsKey("version")) {
|
||
version = jsonDecoder.decodeString(jsonPath + ".version", json["version"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "version");
|
||
}
|
||
String email;
|
||
if (json.containsKey("email")) {
|
||
email = jsonDecoder.decodeString(jsonPath + ".email", json["email"]);
|
||
}
|
||
List<String> interestingFiles;
|
||
if (json.containsKey("interestingFiles")) {
|
||
interestingFiles = jsonDecoder.decodeList(jsonPath + ".interestingFiles", json["interestingFiles"], jsonDecoder.decodeString);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "interestingFiles");
|
||
}
|
||
return new PluginVersionCheckResult(isCompatible, name, version, interestingFiles, email: email);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "plugin.versionCheck result", json);
|
||
}
|
||
}
|
||
|
||
factory PluginVersionCheckResult.fromResponse(Response response) {
|
||
return new PluginVersionCheckResult.fromJson(
|
||
new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "result", response.result);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["isCompatible"] = isCompatible;
|
||
result["name"] = name;
|
||
result["version"] = version;
|
||
if (email != null) {
|
||
result["email"] = email;
|
||
}
|
||
result["interestingFiles"] = interestingFiles;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
Response toResponse(String id) {
|
||
return new Response(id, result: toJson());
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is PluginVersionCheckResult) {
|
||
return isCompatible == other.isCompatible &&
|
||
name == other.name &&
|
||
version == other.version &&
|
||
email == other.email &&
|
||
listEqual(interestingFiles, other.interestingFiles, (String a, String b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, isCompatible.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, name.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, version.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, email.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, interestingFiles.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Position
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "offset": int
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class Position implements HasToJson {
|
||
String _file;
|
||
|
||
int _offset;
|
||
|
||
/**
|
||
* The file containing the position.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file containing the position.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The offset of the position.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset of the position.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
Position(String file, int offset) {
|
||
this.file = file;
|
||
this.offset = offset;
|
||
}
|
||
|
||
factory Position.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
return new Position(file, offset);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "Position", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["offset"] = offset;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is Position) {
|
||
return file == other.file &&
|
||
offset == other.offset;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* RefactoringFeedback
|
||
*
|
||
* {
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class RefactoringFeedback implements HasToJson {
|
||
RefactoringFeedback();
|
||
|
||
factory RefactoringFeedback.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json, Map responseJson) {
|
||
return refactoringFeedbackFromJson(jsonDecoder, jsonPath, json, responseJson);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is RefactoringFeedback) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* RefactoringKind
|
||
*
|
||
* enum {
|
||
* CONVERT_GETTER_TO_METHOD
|
||
* CONVERT_METHOD_TO_GETTER
|
||
* EXTRACT_LOCAL_VARIABLE
|
||
* EXTRACT_METHOD
|
||
* INLINE_LOCAL_VARIABLE
|
||
* INLINE_METHOD
|
||
* MOVE_FILE
|
||
* RENAME
|
||
* SORT_MEMBERS
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class RefactoringKind implements Enum {
|
||
static const RefactoringKind CONVERT_GETTER_TO_METHOD = const RefactoringKind._("CONVERT_GETTER_TO_METHOD");
|
||
|
||
static const RefactoringKind CONVERT_METHOD_TO_GETTER = const RefactoringKind._("CONVERT_METHOD_TO_GETTER");
|
||
|
||
static const RefactoringKind EXTRACT_LOCAL_VARIABLE = const RefactoringKind._("EXTRACT_LOCAL_VARIABLE");
|
||
|
||
static const RefactoringKind EXTRACT_METHOD = const RefactoringKind._("EXTRACT_METHOD");
|
||
|
||
static const RefactoringKind INLINE_LOCAL_VARIABLE = const RefactoringKind._("INLINE_LOCAL_VARIABLE");
|
||
|
||
static const RefactoringKind INLINE_METHOD = const RefactoringKind._("INLINE_METHOD");
|
||
|
||
static const RefactoringKind MOVE_FILE = const RefactoringKind._("MOVE_FILE");
|
||
|
||
static const RefactoringKind RENAME = const RefactoringKind._("RENAME");
|
||
|
||
static const RefactoringKind SORT_MEMBERS = const RefactoringKind._("SORT_MEMBERS");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<RefactoringKind> VALUES = const <RefactoringKind>[CONVERT_GETTER_TO_METHOD, CONVERT_METHOD_TO_GETTER, EXTRACT_LOCAL_VARIABLE, EXTRACT_METHOD, INLINE_LOCAL_VARIABLE, INLINE_METHOD, MOVE_FILE, RENAME, SORT_MEMBERS];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const RefactoringKind._(this.name);
|
||
|
||
factory RefactoringKind(String name) {
|
||
switch (name) {
|
||
case "CONVERT_GETTER_TO_METHOD":
|
||
return CONVERT_GETTER_TO_METHOD;
|
||
case "CONVERT_METHOD_TO_GETTER":
|
||
return CONVERT_METHOD_TO_GETTER;
|
||
case "EXTRACT_LOCAL_VARIABLE":
|
||
return EXTRACT_LOCAL_VARIABLE;
|
||
case "EXTRACT_METHOD":
|
||
return EXTRACT_METHOD;
|
||
case "INLINE_LOCAL_VARIABLE":
|
||
return INLINE_LOCAL_VARIABLE;
|
||
case "INLINE_METHOD":
|
||
return INLINE_METHOD;
|
||
case "MOVE_FILE":
|
||
return MOVE_FILE;
|
||
case "RENAME":
|
||
return RENAME;
|
||
case "SORT_MEMBERS":
|
||
return SORT_MEMBERS;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory RefactoringKind.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new RefactoringKind(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "RefactoringKind", json);
|
||
}
|
||
|
||
@override
|
||
String toString() => "RefactoringKind.$name";
|
||
|
||
String toJson() => name;
|
||
}
|
||
|
||
/**
|
||
* RefactoringMethodParameter
|
||
*
|
||
* {
|
||
* "id": optional String
|
||
* "kind": RefactoringMethodParameterKind
|
||
* "type": String
|
||
* "name": String
|
||
* "parameters": optional String
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class RefactoringMethodParameter implements HasToJson {
|
||
String _id;
|
||
|
||
RefactoringMethodParameterKind _kind;
|
||
|
||
String _type;
|
||
|
||
String _name;
|
||
|
||
String _parameters;
|
||
|
||
/**
|
||
* The unique identifier of the parameter. Clients may omit this field for
|
||
* the parameters they want to add.
|
||
*/
|
||
String get id => _id;
|
||
|
||
/**
|
||
* The unique identifier of the parameter. Clients may omit this field for
|
||
* the parameters they want to add.
|
||
*/
|
||
void set id(String value) {
|
||
this._id = value;
|
||
}
|
||
|
||
/**
|
||
* The kind of the parameter.
|
||
*/
|
||
RefactoringMethodParameterKind get kind => _kind;
|
||
|
||
/**
|
||
* The kind of the parameter.
|
||
*/
|
||
void set kind(RefactoringMethodParameterKind value) {
|
||
assert(value != null);
|
||
this._kind = value;
|
||
}
|
||
|
||
/**
|
||
* The type that should be given to the parameter, or the return type of the
|
||
* parameter's function type.
|
||
*/
|
||
String get type => _type;
|
||
|
||
/**
|
||
* The type that should be given to the parameter, or the return type of the
|
||
* parameter's function type.
|
||
*/
|
||
void set type(String value) {
|
||
assert(value != null);
|
||
this._type = value;
|
||
}
|
||
|
||
/**
|
||
* The name that should be given to the parameter.
|
||
*/
|
||
String get name => _name;
|
||
|
||
/**
|
||
* The name that should be given to the parameter.
|
||
*/
|
||
void set name(String value) {
|
||
assert(value != null);
|
||
this._name = value;
|
||
}
|
||
|
||
/**
|
||
* The parameter list of the parameter's function type. If the parameter is
|
||
* not of a function type, this field will not be defined. If the function
|
||
* type has zero parameters, this field will have a value of '()'.
|
||
*/
|
||
String get parameters => _parameters;
|
||
|
||
/**
|
||
* The parameter list of the parameter's function type. If the parameter is
|
||
* not of a function type, this field will not be defined. If the function
|
||
* type has zero parameters, this field will have a value of '()'.
|
||
*/
|
||
void set parameters(String value) {
|
||
this._parameters = value;
|
||
}
|
||
|
||
RefactoringMethodParameter(RefactoringMethodParameterKind kind, String type, String name, {String id, String parameters}) {
|
||
this.id = id;
|
||
this.kind = kind;
|
||
this.type = type;
|
||
this.name = name;
|
||
this.parameters = parameters;
|
||
}
|
||
|
||
factory RefactoringMethodParameter.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String id;
|
||
if (json.containsKey("id")) {
|
||
id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
|
||
}
|
||
RefactoringMethodParameterKind kind;
|
||
if (json.containsKey("kind")) {
|
||
kind = new RefactoringMethodParameterKind.fromJson(jsonDecoder, jsonPath + ".kind", json["kind"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "kind");
|
||
}
|
||
String type;
|
||
if (json.containsKey("type")) {
|
||
type = jsonDecoder.decodeString(jsonPath + ".type", json["type"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "type");
|
||
}
|
||
String name;
|
||
if (json.containsKey("name")) {
|
||
name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "name");
|
||
}
|
||
String parameters;
|
||
if (json.containsKey("parameters")) {
|
||
parameters = jsonDecoder.decodeString(jsonPath + ".parameters", json["parameters"]);
|
||
}
|
||
return new RefactoringMethodParameter(kind, type, name, id: id, parameters: parameters);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "RefactoringMethodParameter", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
if (id != null) {
|
||
result["id"] = id;
|
||
}
|
||
result["kind"] = kind.toJson();
|
||
result["type"] = type;
|
||
result["name"] = name;
|
||
if (parameters != null) {
|
||
result["parameters"] = parameters;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is RefactoringMethodParameter) {
|
||
return id == other.id &&
|
||
kind == other.kind &&
|
||
type == other.type &&
|
||
name == other.name &&
|
||
parameters == other.parameters;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, id.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, type.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, name.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* RefactoringMethodParameterKind
|
||
*
|
||
* enum {
|
||
* REQUIRED
|
||
* POSITIONAL
|
||
* NAMED
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class RefactoringMethodParameterKind implements Enum {
|
||
static const RefactoringMethodParameterKind REQUIRED = const RefactoringMethodParameterKind._("REQUIRED");
|
||
|
||
static const RefactoringMethodParameterKind POSITIONAL = const RefactoringMethodParameterKind._("POSITIONAL");
|
||
|
||
static const RefactoringMethodParameterKind NAMED = const RefactoringMethodParameterKind._("NAMED");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<RefactoringMethodParameterKind> VALUES = const <RefactoringMethodParameterKind>[REQUIRED, POSITIONAL, NAMED];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const RefactoringMethodParameterKind._(this.name);
|
||
|
||
factory RefactoringMethodParameterKind(String name) {
|
||
switch (name) {
|
||
case "REQUIRED":
|
||
return REQUIRED;
|
||
case "POSITIONAL":
|
||
return POSITIONAL;
|
||
case "NAMED":
|
||
return NAMED;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory RefactoringMethodParameterKind.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new RefactoringMethodParameterKind(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "RefactoringMethodParameterKind", json);
|
||
}
|
||
|
||
@override
|
||
String toString() => "RefactoringMethodParameterKind.$name";
|
||
|
||
String toJson() => name;
|
||
}
|
||
|
||
/**
|
||
* RefactoringOptions
|
||
*
|
||
* {
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class RefactoringOptions implements HasToJson {
|
||
RefactoringOptions();
|
||
|
||
factory RefactoringOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json, RefactoringKind kind) {
|
||
return refactoringOptionsFromJson(jsonDecoder, jsonPath, json, kind);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is RefactoringOptions) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* RefactoringProblem
|
||
*
|
||
* {
|
||
* "severity": RefactoringProblemSeverity
|
||
* "message": String
|
||
* "location": optional Location
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class RefactoringProblem implements HasToJson {
|
||
RefactoringProblemSeverity _severity;
|
||
|
||
String _message;
|
||
|
||
Location _location;
|
||
|
||
/**
|
||
* The severity of the problem being represented.
|
||
*/
|
||
RefactoringProblemSeverity get severity => _severity;
|
||
|
||
/**
|
||
* The severity of the problem being represented.
|
||
*/
|
||
void set severity(RefactoringProblemSeverity value) {
|
||
assert(value != null);
|
||
this._severity = value;
|
||
}
|
||
|
||
/**
|
||
* A human-readable description of the problem being represented.
|
||
*/
|
||
String get message => _message;
|
||
|
||
/**
|
||
* A human-readable description of the problem being represented.
|
||
*/
|
||
void set message(String value) {
|
||
assert(value != null);
|
||
this._message = value;
|
||
}
|
||
|
||
/**
|
||
* The location of the problem being represented. This field is omitted
|
||
* unless there is a specific location associated with the problem (such as a
|
||
* location where an element being renamed will be shadowed).
|
||
*/
|
||
Location get location => _location;
|
||
|
||
/**
|
||
* The location of the problem being represented. This field is omitted
|
||
* unless there is a specific location associated with the problem (such as a
|
||
* location where an element being renamed will be shadowed).
|
||
*/
|
||
void set location(Location value) {
|
||
this._location = value;
|
||
}
|
||
|
||
RefactoringProblem(RefactoringProblemSeverity severity, String message, {Location location}) {
|
||
this.severity = severity;
|
||
this.message = message;
|
||
this.location = location;
|
||
}
|
||
|
||
factory RefactoringProblem.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
RefactoringProblemSeverity severity;
|
||
if (json.containsKey("severity")) {
|
||
severity = new RefactoringProblemSeverity.fromJson(jsonDecoder, jsonPath + ".severity", json["severity"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "severity");
|
||
}
|
||
String message;
|
||
if (json.containsKey("message")) {
|
||
message = jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "message");
|
||
}
|
||
Location location;
|
||
if (json.containsKey("location")) {
|
||
location = new Location.fromJson(jsonDecoder, jsonPath + ".location", json["location"]);
|
||
}
|
||
return new RefactoringProblem(severity, message, location: location);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "RefactoringProblem", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["severity"] = severity.toJson();
|
||
result["message"] = message;
|
||
if (location != null) {
|
||
result["location"] = location.toJson();
|
||
}
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is RefactoringProblem) {
|
||
return severity == other.severity &&
|
||
message == other.message &&
|
||
location == other.location;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, severity.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, message.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, location.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* RefactoringProblemSeverity
|
||
*
|
||
* enum {
|
||
* INFO
|
||
* WARNING
|
||
* ERROR
|
||
* FATAL
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class RefactoringProblemSeverity implements Enum {
|
||
/**
|
||
* A minor code problem. No example, because it is not used yet.
|
||
*/
|
||
static const RefactoringProblemSeverity INFO = const RefactoringProblemSeverity._("INFO");
|
||
|
||
/**
|
||
* A minor code problem. For example names of local variables should be camel
|
||
* case and start with a lower case letter. Staring the name of a variable
|
||
* with an upper case is OK from the language point of view, but it is nice
|
||
* to warn the user.
|
||
*/
|
||
static const RefactoringProblemSeverity WARNING = const RefactoringProblemSeverity._("WARNING");
|
||
|
||
/**
|
||
* The refactoring technically can be performed, but there is a logical
|
||
* problem. For example the name of a local variable being extracted
|
||
* conflicts with another name in the scope, or duplicate parameter names in
|
||
* the method being extracted, or a conflict between a parameter name and a
|
||
* local variable, etc. In some cases the location of the problem is also
|
||
* provided, so the IDE can show user the location and the problem, and let
|
||
* the user decide whether they want to perform the refactoring. For example
|
||
* the name conflict might be expected, and the user wants to fix it
|
||
* afterwards.
|
||
*/
|
||
static const RefactoringProblemSeverity ERROR = const RefactoringProblemSeverity._("ERROR");
|
||
|
||
/**
|
||
* A fatal error, which prevents performing the refactoring. For example the
|
||
* name of a local variable being extracted is not a valid identifier, or
|
||
* selection is not a valid expression.
|
||
*/
|
||
static const RefactoringProblemSeverity FATAL = const RefactoringProblemSeverity._("FATAL");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<RefactoringProblemSeverity> VALUES = const <RefactoringProblemSeverity>[INFO, WARNING, ERROR, FATAL];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const RefactoringProblemSeverity._(this.name);
|
||
|
||
factory RefactoringProblemSeverity(String name) {
|
||
switch (name) {
|
||
case "INFO":
|
||
return INFO;
|
||
case "WARNING":
|
||
return WARNING;
|
||
case "ERROR":
|
||
return ERROR;
|
||
case "FATAL":
|
||
return FATAL;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory RefactoringProblemSeverity.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new RefactoringProblemSeverity(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "RefactoringProblemSeverity", json);
|
||
}
|
||
|
||
/**
|
||
* Returns the [RefactoringProblemSeverity] with the maximal severity.
|
||
*/
|
||
static RefactoringProblemSeverity max(RefactoringProblemSeverity a, RefactoringProblemSeverity b) =>
|
||
maxRefactoringProblemSeverity(a, b);
|
||
|
||
@override
|
||
String toString() => "RefactoringProblemSeverity.$name";
|
||
|
||
String toJson() => name;
|
||
}
|
||
|
||
/**
|
||
* RemoveContentOverlay
|
||
*
|
||
* {
|
||
* "type": "remove"
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class RemoveContentOverlay implements HasToJson {
|
||
RemoveContentOverlay();
|
||
|
||
factory RemoveContentOverlay.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
if (json["type"] != "remove") {
|
||
throw jsonDecoder.mismatch(jsonPath, "equal " + "remove", json);
|
||
}
|
||
return new RemoveContentOverlay();
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "RemoveContentOverlay", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["type"] = "remove";
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is RemoveContentOverlay) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, 114870849);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* rename feedback
|
||
*
|
||
* {
|
||
* "offset": int
|
||
* "length": int
|
||
* "elementKindName": String
|
||
* "oldName": String
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class RenameFeedback extends RefactoringFeedback {
|
||
int _offset;
|
||
|
||
int _length;
|
||
|
||
String _elementKindName;
|
||
|
||
String _oldName;
|
||
|
||
/**
|
||
* The offset to the beginning of the name selected to be renamed.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset to the beginning of the name selected to be renamed.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the name selected to be renamed.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the name selected to be renamed.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
/**
|
||
* The human-readable description of the kind of element being renamed (such
|
||
* as “class” or “function type alias”).
|
||
*/
|
||
String get elementKindName => _elementKindName;
|
||
|
||
/**
|
||
* The human-readable description of the kind of element being renamed (such
|
||
* as “class” or “function type alias”).
|
||
*/
|
||
void set elementKindName(String value) {
|
||
assert(value != null);
|
||
this._elementKindName = value;
|
||
}
|
||
|
||
/**
|
||
* The old name of the element before the refactoring.
|
||
*/
|
||
String get oldName => _oldName;
|
||
|
||
/**
|
||
* The old name of the element before the refactoring.
|
||
*/
|
||
void set oldName(String value) {
|
||
assert(value != null);
|
||
this._oldName = value;
|
||
}
|
||
|
||
RenameFeedback(int offset, int length, String elementKindName, String oldName) {
|
||
this.offset = offset;
|
||
this.length = length;
|
||
this.elementKindName = elementKindName;
|
||
this.oldName = oldName;
|
||
}
|
||
|
||
factory RenameFeedback.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
String elementKindName;
|
||
if (json.containsKey("elementKindName")) {
|
||
elementKindName = jsonDecoder.decodeString(jsonPath + ".elementKindName", json["elementKindName"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "elementKindName");
|
||
}
|
||
String oldName;
|
||
if (json.containsKey("oldName")) {
|
||
oldName = jsonDecoder.decodeString(jsonPath + ".oldName", json["oldName"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "oldName");
|
||
}
|
||
return new RenameFeedback(offset, length, elementKindName, oldName);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "rename feedback", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["offset"] = offset;
|
||
result["length"] = length;
|
||
result["elementKindName"] = elementKindName;
|
||
result["oldName"] = oldName;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is RenameFeedback) {
|
||
return offset == other.offset &&
|
||
length == other.length &&
|
||
elementKindName == other.elementKindName &&
|
||
oldName == other.oldName;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, elementKindName.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, oldName.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* rename options
|
||
*
|
||
* {
|
||
* "newName": String
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class RenameOptions extends RefactoringOptions {
|
||
String _newName;
|
||
|
||
/**
|
||
* The name that the element should have after the refactoring.
|
||
*/
|
||
String get newName => _newName;
|
||
|
||
/**
|
||
* The name that the element should have after the refactoring.
|
||
*/
|
||
void set newName(String value) {
|
||
assert(value != null);
|
||
this._newName = value;
|
||
}
|
||
|
||
RenameOptions(String newName) {
|
||
this.newName = newName;
|
||
}
|
||
|
||
factory RenameOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String newName;
|
||
if (json.containsKey("newName")) {
|
||
newName = jsonDecoder.decodeString(jsonPath + ".newName", json["newName"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "newName");
|
||
}
|
||
return new RenameOptions(newName);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "rename options", json);
|
||
}
|
||
}
|
||
|
||
factory RenameOptions.fromRefactoringParams(EditGetRefactoringParams refactoringParams, Request request) {
|
||
return new RenameOptions.fromJson(
|
||
new RequestDecoder(request), "options", refactoringParams.options);
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["newName"] = newName;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is RenameOptions) {
|
||
return newName == other.newName;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, newName.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* RequestError
|
||
*
|
||
* {
|
||
* "code": RequestErrorCode
|
||
* "message": String
|
||
* "stackTrace": optional String
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class RequestError implements HasToJson {
|
||
RequestErrorCode _code;
|
||
|
||
String _message;
|
||
|
||
String _stackTrace;
|
||
|
||
/**
|
||
* A code that uniquely identifies the error that occurred.
|
||
*/
|
||
RequestErrorCode get code => _code;
|
||
|
||
/**
|
||
* A code that uniquely identifies the error that occurred.
|
||
*/
|
||
void set code(RequestErrorCode value) {
|
||
assert(value != null);
|
||
this._code = value;
|
||
}
|
||
|
||
/**
|
||
* A short description of the error.
|
||
*/
|
||
String get message => _message;
|
||
|
||
/**
|
||
* A short description of the error.
|
||
*/
|
||
void set message(String value) {
|
||
assert(value != null);
|
||
this._message = value;
|
||
}
|
||
|
||
/**
|
||
* The stack trace associated with processing the request, used for debugging
|
||
* the plugin.
|
||
*/
|
||
String get stackTrace => _stackTrace;
|
||
|
||
/**
|
||
* The stack trace associated with processing the request, used for debugging
|
||
* the plugin.
|
||
*/
|
||
void set stackTrace(String value) {
|
||
this._stackTrace = value;
|
||
}
|
||
|
||
RequestError(RequestErrorCode code, String message, {String stackTrace}) {
|
||
this.code = code;
|
||
this.message = message;
|
||
this.stackTrace = stackTrace;
|
||
}
|
||
|
||
factory RequestError.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
RequestErrorCode code;
|
||
if (json.containsKey("code")) {
|
||
code = new RequestErrorCode.fromJson(jsonDecoder, jsonPath + ".code", json["code"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "code");
|
||
}
|
||
String message;
|
||
if (json.containsKey("message")) {
|
||
message = jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "message");
|
||
}
|
||
String stackTrace;
|
||
if (json.containsKey("stackTrace")) {
|
||
stackTrace = jsonDecoder.decodeString(jsonPath + ".stackTrace", json["stackTrace"]);
|
||
}
|
||
return new RequestError(code, message, stackTrace: stackTrace);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "RequestError", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["code"] = code.toJson();
|
||
result["message"] = message;
|
||
if (stackTrace != null) {
|
||
result["stackTrace"] = stackTrace;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is RequestError) {
|
||
return code == other.code &&
|
||
message == other.message &&
|
||
stackTrace == other.stackTrace;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, code.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, message.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, stackTrace.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* RequestErrorCode
|
||
*
|
||
* enum {
|
||
* INVALID_OVERLAY_CHANGE
|
||
* INVALID_PARAMETER
|
||
* PLUGIN_ERROR
|
||
* UNKNOWN_REQUEST
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class RequestErrorCode implements Enum {
|
||
/**
|
||
* An "analysis.updateContent" request contained a ChangeContentOverlay
|
||
* object that can't be applied. This can happen for two reasons:
|
||
*
|
||
* - there was no preceding AddContentOverlay and hence no content to which
|
||
* the edits could be applied, or
|
||
* - one or more of the specified edits have an offset or length that is out
|
||
* of range.
|
||
*/
|
||
static const RequestErrorCode INVALID_OVERLAY_CHANGE = const RequestErrorCode._("INVALID_OVERLAY_CHANGE");
|
||
|
||
/**
|
||
* One of the method parameters was invalid.
|
||
*/
|
||
static const RequestErrorCode INVALID_PARAMETER = const RequestErrorCode._("INVALID_PARAMETER");
|
||
|
||
/**
|
||
* An internal error occurred in the plugin while attempting to respond to a
|
||
* request. Also see the plugin.error notification for errors that occur
|
||
* outside of handling a request.
|
||
*/
|
||
static const RequestErrorCode PLUGIN_ERROR = const RequestErrorCode._("PLUGIN_ERROR");
|
||
|
||
/**
|
||
* A request was received that the plugin does not recognize, or cannot
|
||
* handle in its current configuration.
|
||
*/
|
||
static const RequestErrorCode UNKNOWN_REQUEST = const RequestErrorCode._("UNKNOWN_REQUEST");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<RequestErrorCode> VALUES = const <RequestErrorCode>[INVALID_OVERLAY_CHANGE, INVALID_PARAMETER, PLUGIN_ERROR, UNKNOWN_REQUEST];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const RequestErrorCode._(this.name);
|
||
|
||
factory RequestErrorCode(String name) {
|
||
switch (name) {
|
||
case "INVALID_OVERLAY_CHANGE":
|
||
return INVALID_OVERLAY_CHANGE;
|
||
case "INVALID_PARAMETER":
|
||
return INVALID_PARAMETER;
|
||
case "PLUGIN_ERROR":
|
||
return PLUGIN_ERROR;
|
||
case "UNKNOWN_REQUEST":
|
||
return UNKNOWN_REQUEST;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory RequestErrorCode.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new RequestErrorCode(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "RequestErrorCode", json);
|
||
}
|
||
|
||
@override
|
||
String toString() => "RequestErrorCode.$name";
|
||
|
||
String toJson() => name;
|
||
}
|
||
|
||
/**
|
||
* SourceChange
|
||
*
|
||
* {
|
||
* "message": String
|
||
* "edits": List<SourceFileEdit>
|
||
* "linkedEditGroups": List<LinkedEditGroup>
|
||
* "selection": optional Position
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class SourceChange implements HasToJson {
|
||
String _message;
|
||
|
||
List<SourceFileEdit> _edits;
|
||
|
||
List<LinkedEditGroup> _linkedEditGroups;
|
||
|
||
Position _selection;
|
||
|
||
/**
|
||
* A human-readable description of the change to be applied.
|
||
*/
|
||
String get message => _message;
|
||
|
||
/**
|
||
* A human-readable description of the change to be applied.
|
||
*/
|
||
void set message(String value) {
|
||
assert(value != null);
|
||
this._message = value;
|
||
}
|
||
|
||
/**
|
||
* A list of the edits used to effect the change, grouped by file.
|
||
*/
|
||
List<SourceFileEdit> get edits => _edits;
|
||
|
||
/**
|
||
* A list of the edits used to effect the change, grouped by file.
|
||
*/
|
||
void set edits(List<SourceFileEdit> value) {
|
||
assert(value != null);
|
||
this._edits = value;
|
||
}
|
||
|
||
/**
|
||
* A list of the linked editing groups used to customize the changes that
|
||
* were made.
|
||
*/
|
||
List<LinkedEditGroup> get linkedEditGroups => _linkedEditGroups;
|
||
|
||
/**
|
||
* A list of the linked editing groups used to customize the changes that
|
||
* were made.
|
||
*/
|
||
void set linkedEditGroups(List<LinkedEditGroup> value) {
|
||
assert(value != null);
|
||
this._linkedEditGroups = value;
|
||
}
|
||
|
||
/**
|
||
* The position that should be selected after the edits have been applied.
|
||
*/
|
||
Position get selection => _selection;
|
||
|
||
/**
|
||
* The position that should be selected after the edits have been applied.
|
||
*/
|
||
void set selection(Position value) {
|
||
this._selection = value;
|
||
}
|
||
|
||
SourceChange(String message, {List<SourceFileEdit> edits, List<LinkedEditGroup> linkedEditGroups, Position selection}) {
|
||
this.message = message;
|
||
if (edits == null) {
|
||
this.edits = <SourceFileEdit>[];
|
||
} else {
|
||
this.edits = edits;
|
||
}
|
||
if (linkedEditGroups == null) {
|
||
this.linkedEditGroups = <LinkedEditGroup>[];
|
||
} else {
|
||
this.linkedEditGroups = linkedEditGroups;
|
||
}
|
||
this.selection = selection;
|
||
}
|
||
|
||
factory SourceChange.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String message;
|
||
if (json.containsKey("message")) {
|
||
message = jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "message");
|
||
}
|
||
List<SourceFileEdit> edits;
|
||
if (json.containsKey("edits")) {
|
||
edits = jsonDecoder.decodeList(jsonPath + ".edits", json["edits"], (String jsonPath, Object json) => new SourceFileEdit.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "edits");
|
||
}
|
||
List<LinkedEditGroup> linkedEditGroups;
|
||
if (json.containsKey("linkedEditGroups")) {
|
||
linkedEditGroups = jsonDecoder.decodeList(jsonPath + ".linkedEditGroups", json["linkedEditGroups"], (String jsonPath, Object json) => new LinkedEditGroup.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "linkedEditGroups");
|
||
}
|
||
Position selection;
|
||
if (json.containsKey("selection")) {
|
||
selection = new Position.fromJson(jsonDecoder, jsonPath + ".selection", json["selection"]);
|
||
}
|
||
return new SourceChange(message, edits: edits, linkedEditGroups: linkedEditGroups, selection: selection);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "SourceChange", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["message"] = message;
|
||
result["edits"] = edits.map((SourceFileEdit value) => value.toJson()).toList();
|
||
result["linkedEditGroups"] = linkedEditGroups.map((LinkedEditGroup value) => value.toJson()).toList();
|
||
if (selection != null) {
|
||
result["selection"] = selection.toJson();
|
||
}
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* Adds [edit] to the [FileEdit] for the given [file].
|
||
*/
|
||
void addEdit(String file, int fileStamp, SourceEdit edit) =>
|
||
addEditToSourceChange(this, file, fileStamp, edit);
|
||
|
||
/**
|
||
* Adds the given [FileEdit].
|
||
*/
|
||
void addFileEdit(SourceFileEdit edit) {
|
||
edits.add(edit);
|
||
}
|
||
|
||
/**
|
||
* Adds the given [LinkedEditGroup].
|
||
*/
|
||
void addLinkedEditGroup(LinkedEditGroup linkedEditGroup) {
|
||
linkedEditGroups.add(linkedEditGroup);
|
||
}
|
||
|
||
/**
|
||
* Returns the [FileEdit] for the given [file], maybe `null`.
|
||
*/
|
||
SourceFileEdit getFileEdit(String file) =>
|
||
getChangeFileEdit(this, file);
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is SourceChange) {
|
||
return message == other.message &&
|
||
listEqual(edits, other.edits, (SourceFileEdit a, SourceFileEdit b) => a == b) &&
|
||
listEqual(linkedEditGroups, other.linkedEditGroups, (LinkedEditGroup a, LinkedEditGroup b) => a == b) &&
|
||
selection == other.selection;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, message.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, edits.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, linkedEditGroups.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, selection.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* SourceEdit
|
||
*
|
||
* {
|
||
* "offset": int
|
||
* "length": int
|
||
* "replacement": String
|
||
* "id": optional String
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class SourceEdit implements HasToJson {
|
||
/**
|
||
* Get the result of applying a set of [edits] to the given [code]. Edits are
|
||
* applied in the order they appear in [edits].
|
||
*/
|
||
static String applySequence(String code, Iterable<SourceEdit> edits) =>
|
||
applySequenceOfEdits(code, edits);
|
||
|
||
int _offset;
|
||
|
||
int _length;
|
||
|
||
String _replacement;
|
||
|
||
String _id;
|
||
|
||
/**
|
||
* The offset of the region to be modified.
|
||
*/
|
||
int get offset => _offset;
|
||
|
||
/**
|
||
* The offset of the region to be modified.
|
||
*/
|
||
void set offset(int value) {
|
||
assert(value != null);
|
||
this._offset = value;
|
||
}
|
||
|
||
/**
|
||
* The length of the region to be modified.
|
||
*/
|
||
int get length => _length;
|
||
|
||
/**
|
||
* The length of the region to be modified.
|
||
*/
|
||
void set length(int value) {
|
||
assert(value != null);
|
||
this._length = value;
|
||
}
|
||
|
||
/**
|
||
* The code that is to replace the specified region in the original code.
|
||
*/
|
||
String get replacement => _replacement;
|
||
|
||
/**
|
||
* The code that is to replace the specified region in the original code.
|
||
*/
|
||
void set replacement(String value) {
|
||
assert(value != null);
|
||
this._replacement = value;
|
||
}
|
||
|
||
/**
|
||
* An identifier that uniquely identifies this source edit from other edits
|
||
* in the same response. This field is omitted unless a containing structure
|
||
* needs to be able to identify the edit for some reason.
|
||
*
|
||
* For example, some refactoring operations can produce edits that might not
|
||
* be appropriate (referred to as potential edits). Such edits will have an
|
||
* id so that they can be referenced. Edits in the same response that do not
|
||
* need to be referenced will not have an id.
|
||
*/
|
||
String get id => _id;
|
||
|
||
/**
|
||
* An identifier that uniquely identifies this source edit from other edits
|
||
* in the same response. This field is omitted unless a containing structure
|
||
* needs to be able to identify the edit for some reason.
|
||
*
|
||
* For example, some refactoring operations can produce edits that might not
|
||
* be appropriate (referred to as potential edits). Such edits will have an
|
||
* id so that they can be referenced. Edits in the same response that do not
|
||
* need to be referenced will not have an id.
|
||
*/
|
||
void set id(String value) {
|
||
this._id = value;
|
||
}
|
||
|
||
SourceEdit(int offset, int length, String replacement, {String id}) {
|
||
this.offset = offset;
|
||
this.length = length;
|
||
this.replacement = replacement;
|
||
this.id = id;
|
||
}
|
||
|
||
factory SourceEdit.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
int offset;
|
||
if (json.containsKey("offset")) {
|
||
offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "offset");
|
||
}
|
||
int length;
|
||
if (json.containsKey("length")) {
|
||
length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "length");
|
||
}
|
||
String replacement;
|
||
if (json.containsKey("replacement")) {
|
||
replacement = jsonDecoder.decodeString(jsonPath + ".replacement", json["replacement"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "replacement");
|
||
}
|
||
String id;
|
||
if (json.containsKey("id")) {
|
||
id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
|
||
}
|
||
return new SourceEdit(offset, length, replacement, id: id);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "SourceEdit", json);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* The end of the region to be modified.
|
||
*/
|
||
int get end => offset + length;
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["offset"] = offset;
|
||
result["length"] = length;
|
||
result["replacement"] = replacement;
|
||
if (id != null) {
|
||
result["id"] = id;
|
||
}
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* Get the result of applying the edit to the given [code].
|
||
*/
|
||
String apply(String code) => applyEdit(code, this);
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is SourceEdit) {
|
||
return offset == other.offset &&
|
||
length == other.length &&
|
||
replacement == other.replacement &&
|
||
id == other.id;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, replacement.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, id.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* SourceFileEdit
|
||
*
|
||
* {
|
||
* "file": FilePath
|
||
* "fileStamp": long
|
||
* "edits": List<SourceEdit>
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class SourceFileEdit implements HasToJson {
|
||
String _file;
|
||
|
||
int _fileStamp;
|
||
|
||
List<SourceEdit> _edits;
|
||
|
||
/**
|
||
* The file containing the code to be modified.
|
||
*/
|
||
String get file => _file;
|
||
|
||
/**
|
||
* The file containing the code to be modified.
|
||
*/
|
||
void set file(String value) {
|
||
assert(value != null);
|
||
this._file = value;
|
||
}
|
||
|
||
/**
|
||
* The modification stamp of the file at the moment when the change was
|
||
* created, in milliseconds since the "Unix epoch". Will be -1 if the file
|
||
* did not exist and should be created. The client may use this field to make
|
||
* sure that the file was not changed since then, so it is safe to apply the
|
||
* change.
|
||
*/
|
||
int get fileStamp => _fileStamp;
|
||
|
||
/**
|
||
* The modification stamp of the file at the moment when the change was
|
||
* created, in milliseconds since the "Unix epoch". Will be -1 if the file
|
||
* did not exist and should be created. The client may use this field to make
|
||
* sure that the file was not changed since then, so it is safe to apply the
|
||
* change.
|
||
*/
|
||
void set fileStamp(int value) {
|
||
assert(value != null);
|
||
this._fileStamp = value;
|
||
}
|
||
|
||
/**
|
||
* A list of the edits used to effect the change.
|
||
*/
|
||
List<SourceEdit> get edits => _edits;
|
||
|
||
/**
|
||
* A list of the edits used to effect the change.
|
||
*/
|
||
void set edits(List<SourceEdit> value) {
|
||
assert(value != null);
|
||
this._edits = value;
|
||
}
|
||
|
||
SourceFileEdit(String file, int fileStamp, {List<SourceEdit> edits}) {
|
||
this.file = file;
|
||
this.fileStamp = fileStamp;
|
||
if (edits == null) {
|
||
this.edits = <SourceEdit>[];
|
||
} else {
|
||
this.edits = edits;
|
||
}
|
||
}
|
||
|
||
factory SourceFileEdit.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
String file;
|
||
if (json.containsKey("file")) {
|
||
file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "file");
|
||
}
|
||
int fileStamp;
|
||
if (json.containsKey("fileStamp")) {
|
||
fileStamp = jsonDecoder.decodeInt(jsonPath + ".fileStamp", json["fileStamp"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "fileStamp");
|
||
}
|
||
List<SourceEdit> edits;
|
||
if (json.containsKey("edits")) {
|
||
edits = jsonDecoder.decodeList(jsonPath + ".edits", json["edits"], (String jsonPath, Object json) => new SourceEdit.fromJson(jsonDecoder, jsonPath, json));
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "edits");
|
||
}
|
||
return new SourceFileEdit(file, fileStamp, edits: edits);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "SourceFileEdit", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["file"] = file;
|
||
result["fileStamp"] = fileStamp;
|
||
result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList();
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* Adds the given [Edit] to the list.
|
||
*/
|
||
void add(SourceEdit edit) => addEditForSource(this, edit);
|
||
|
||
/**
|
||
* Adds the given [Edit]s.
|
||
*/
|
||
void addAll(Iterable<SourceEdit> edits) =>
|
||
addAllEditsForSource(this, edits);
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is SourceFileEdit) {
|
||
return file == other.file &&
|
||
fileStamp == other.fileStamp &&
|
||
listEqual(edits, other.edits, (SourceEdit a, SourceEdit b) => a == b);
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, fileStamp.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, edits.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* WatchEvent
|
||
*
|
||
* {
|
||
* "type": WatchEventType
|
||
* "path": String
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class WatchEvent implements HasToJson {
|
||
WatchEventType _type;
|
||
|
||
String _path;
|
||
|
||
/**
|
||
* The type of change represented by this event.
|
||
*/
|
||
WatchEventType get type => _type;
|
||
|
||
/**
|
||
* The type of change represented by this event.
|
||
*/
|
||
void set type(WatchEventType value) {
|
||
assert(value != null);
|
||
this._type = value;
|
||
}
|
||
|
||
/**
|
||
* The absolute path of the file or directory that changed.
|
||
*/
|
||
String get path => _path;
|
||
|
||
/**
|
||
* The absolute path of the file or directory that changed.
|
||
*/
|
||
void set path(String value) {
|
||
assert(value != null);
|
||
this._path = value;
|
||
}
|
||
|
||
WatchEvent(WatchEventType type, String path) {
|
||
this.type = type;
|
||
this.path = path;
|
||
}
|
||
|
||
factory WatchEvent.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json == null) {
|
||
json = {};
|
||
}
|
||
if (json is Map) {
|
||
WatchEventType type;
|
||
if (json.containsKey("type")) {
|
||
type = new WatchEventType.fromJson(jsonDecoder, jsonPath + ".type", json["type"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "type");
|
||
}
|
||
String path;
|
||
if (json.containsKey("path")) {
|
||
path = jsonDecoder.decodeString(jsonPath + ".path", json["path"]);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "path");
|
||
}
|
||
return new WatchEvent(type, path);
|
||
} else {
|
||
throw jsonDecoder.mismatch(jsonPath, "WatchEvent", json);
|
||
}
|
||
}
|
||
|
||
@override
|
||
Map<String, dynamic> toJson() {
|
||
Map<String, dynamic> result = {};
|
||
result["type"] = type.toJson();
|
||
result["path"] = path;
|
||
return result;
|
||
}
|
||
|
||
@override
|
||
String toString() => JSON.encode(toJson());
|
||
|
||
@override
|
||
bool operator==(other) {
|
||
if (other is WatchEvent) {
|
||
return type == other.type &&
|
||
path == other.path;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
@override
|
||
int get hashCode {
|
||
int hash = 0;
|
||
hash = JenkinsSmiHash.combine(hash, type.hashCode);
|
||
hash = JenkinsSmiHash.combine(hash, path.hashCode);
|
||
return JenkinsSmiHash.finish(hash);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* WatchEventType
|
||
*
|
||
* enum {
|
||
* ADD
|
||
* MODIFY
|
||
* REMOVE
|
||
* }
|
||
*
|
||
* Clients may not extend, implement or mix-in this class.
|
||
*/
|
||
class WatchEventType implements Enum {
|
||
/**
|
||
* An indication that the file or directory was added.
|
||
*/
|
||
static const WatchEventType ADD = const WatchEventType._("ADD");
|
||
|
||
/**
|
||
* An indication that the file was modified.
|
||
*/
|
||
static const WatchEventType MODIFY = const WatchEventType._("MODIFY");
|
||
|
||
/**
|
||
* An indication that the file or directory was removed.
|
||
*/
|
||
static const WatchEventType REMOVE = const WatchEventType._("REMOVE");
|
||
|
||
/**
|
||
* A list containing all of the enum values that are defined.
|
||
*/
|
||
static const List<WatchEventType> VALUES = const <WatchEventType>[ADD, MODIFY, REMOVE];
|
||
|
||
@override
|
||
final String name;
|
||
|
||
const WatchEventType._(this.name);
|
||
|
||
factory WatchEventType(String name) {
|
||
switch (name) {
|
||
case "ADD":
|
||
return ADD;
|
||
case "MODIFY":
|
||
return MODIFY;
|
||
case "REMOVE":
|
||
return REMOVE;
|
||
}
|
||
throw new Exception('Illegal enum value: $name');
|
||
}
|
||
|
||
factory WatchEventType.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
||
if (json is String) {
|
||
try {
|
||
return new WatchEventType(json);
|
||
} catch(_) {
|
||
// Fall through
|
||
}
|
||
}
|
||
throw jsonDecoder.mismatch(jsonPath, "WatchEventType", json);
|
||
}
|
||
|
||
@override
|
||
String toString() => "WatchEventType.$name";
|
||
|
||
String toJson() => name;
|
||
}
|