下载Dart SDK源码
分析dart:mirror结构
生成UML图
- 配置DCDG工具
- 添加pubspec.yaml到
dart-sdk-2.13.x/sdk/sdk,与lib平级 - 在
dart-sdk-2.13.x/sdk/sdk路径下,生成dart:mirror相关类PlantUML图
dcdg -i "^[^_]*Mirror" -o mirrors.puml
- 替换mirrors.puml中冗余namespace
file:::::::Users::wangkun42::workspace::dart-sdk-2.13.x::sdk::sdk::lib -> dart
dart::mirrors::mirrors.dart -> dart::mirrors
@startuml
set namespaceSeparator ::
class "js_runtime::js_helper.dart::JSInvocationMirror" {
}
"dart::core::Invocation" <|-- "js_runtime::js_helper.dart::JSInvocationMirror"
class "dart::_internal::vm::lib::mirrors_patch.dart::MirrorSystem" {
}
abstract class "dart::mirrors::MirrorSystem" {
}
abstract class "dart::mirrors::Mirror" {
}
abstract class "dart::mirrors::IsolateMirror" {
}
"dart::mirrors::Mirror" <|-- "dart::mirrors::IsolateMirror"
abstract class "dart::mirrors::DeclarationMirror" {
}
"dart::mirrors::Mirror" <|-- "dart::mirrors::DeclarationMirror"
abstract class "dart::mirrors::ObjectMirror" {
}
"dart::mirrors::Mirror" <|-- "dart::mirrors::ObjectMirror"
abstract class "dart::mirrors::InstanceMirror" {
}
"dart::mirrors::ObjectMirror" <|-- "dart::mirrors::InstanceMirror"
abstract class "dart::mirrors::ClosureMirror" {
}
"dart::mirrors::InstanceMirror" <|-- "dart::mirrors::ClosureMirror"
abstract class "dart::mirrors::LibraryMirror" {
}
"dart::mirrors::DeclarationMirror" <|-- "dart::mirrors::LibraryMirror"
"dart::mirrors::ObjectMirror" <|-- "dart::mirrors::LibraryMirror"
abstract class "dart::mirrors::LibraryDependencyMirror" {
}
"dart::mirrors::Mirror" <|-- "dart::mirrors::LibraryDependencyMirror"
abstract class "dart::mirrors::CombinatorMirror" {
}
"dart::mirrors::Mirror" <|-- "dart::mirrors::CombinatorMirror"
abstract class "dart::mirrors::TypeMirror" {
}
"dart::mirrors::DeclarationMirror" <|-- "dart::mirrors::TypeMirror"
abstract class "dart::mirrors::ClassMirror" {
}
"dart::mirrors::TypeMirror" <|-- "dart::mirrors::ClassMirror"
"dart::mirrors::ObjectMirror" <|-- "dart::mirrors::ClassMirror"
abstract class "dart::mirrors::FunctionTypeMirror" {
}
"dart::mirrors::ClassMirror" <|-- "dart::mirrors::FunctionTypeMirror"
abstract class "dart::mirrors::TypeVariableMirror" {
}
"dart::mirrors::TypeMirror" <|-- "dart::mirrors::TypeVariableMirror"
abstract class "dart::mirrors::TypedefMirror" {
}
"dart::mirrors::TypeMirror" <|-- "dart::mirrors::TypedefMirror"
abstract class "dart::mirrors::MethodMirror" {
}
"dart::mirrors::DeclarationMirror" <|-- "dart::mirrors::MethodMirror"
abstract class "dart::mirrors::VariableMirror" {
}
"dart::mirrors::DeclarationMirror" <|-- "dart::mirrors::VariableMirror"
abstract class "dart::mirrors::ParameterMirror" {
}
"dart::mirrors::VariableMirror" <|-- "dart::mirrors::ParameterMirror"
class "dart::mirrors::MirrorsUsed" {
}
@enduml
- 根据PlantUML文件生成SVG
curl https://plantuml-service.herokuapp.com/svg --data-binary @mirrors.puml -o mirrors.svg
- 核心dart:mirrors