-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathvalidations_generator.puml
More file actions
86 lines (76 loc) · 3.04 KB
/
validations_generator.puml
File metadata and controls
86 lines (76 loc) · 3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
@startuml
set namespaceSeparator ::
class "validations_generator::src::parser::model.dart::ModelParser" {
+ClassElement generatorClass
+DartType model
+DartObject genValidatorAnnotation
+LibraryReader library
+bool useIntl
+String parse()
-null _buildValidatorClass()
-List _getGenValidatorFields()
-ValidatedElement _getClassAnnotation()
-List _getValidatedElements()
-List _buildValidatorMethods()
-Method _buildValidatorMethod()
-Method _buildPropsMethod()
+bool isValidatorAnnotation()
-List _getMessageMethodParameters()
-Map _getNamedParameters()
-List _buildPositionalArguments()
-List _buildFieldValidator()
-Method _buildGetClassValidator()
-Method _buildGetFieldValidators()
-Method _buildMessageMethod()
-Code _buildIntlMethod()
-void _findModel()
-ClassElement _getValidatorForModel()
-DartType _getModelFromFirstGenericTypeArgument()
}
"validations_generator::src::parser::model.dart::ModelParser" o-- "analyzer::dart::element::element.dart::ClassElement"
"validations_generator::src::parser::model.dart::ModelParser" o-- "analyzer::dart::element::type.dart::DartType"
"validations_generator::src::parser::model.dart::ModelParser" o-- "analyzer::dart::constant::value.dart::DartObject"
"validations_generator::src::parser::model.dart::ModelParser" o-- "source_gen::src::library.dart::LibraryReader"
class "validations_generator::src::parser::validated_element.dart::AnnotationParameter" {
+String name
+String type
+Object value
+bool isNull
}
class "validations_generator::src::parser::validated_element.dart::ElementValidationAnnotation" {
+String type
+String message
+String messageMethod
+bool isContainerAnnotation
+List<AnnotationParameter> parameters
}
class "validations_generator::src::parser::validated_element.dart::ValidatedElement" {
+String name
+ClassElement element
+ClassElement modelClass
+String type
+ElementType elementType
+Set<String> extraProperties
+Map<String, String> errorMessages
+bool usedAtClassLevel
+List<ElementValidationAnnotation> annotations
+bool isValidatorAnnotation()
+void parseElementsProperties()
+ElementValidationAnnotation parseElementProperty()
+void parseClassAnnotations()
+void parseFieldAnnotations()
-void _parseAnnotation()
-ElementValidationAnnotation _createElementAnnotation()
-void _parseClassAnnotationDirectives()
}
"validations_generator::src::parser::validated_element.dart::ValidatedElement" o-- "analyzer::dart::element::element.dart::ClassElement"
"validations_generator::src::parser::validated_element.dart::ValidatedElement" o-- "validations::annotation.dart::ElementType"
class "validations_generator::src::generator.dart::ValidatorGenerator" {
+bool useIntl
+LibraryReader library
+FutureOr generate()
+FutureOr generateForAnnotatedElement()
}
"validations_generator::src::generator.dart::ValidatorGenerator" o-- "source_gen::src::library.dart::LibraryReader"
"source_gen::src::generator_for_annotation.dart::GeneratorForAnnotation<T>" <|-- "validations_generator::src::generator.dart::ValidatorGenerator"
@enduml