@@ -3,16 +3,21 @@ CLASS y_check_pseudo_comment_usage DEFINITION PUBLIC INHERITING FROM y_check_bas
3
3
METHODS constructor.
4
4
5
5
PROTECTED SECTION .
6
- METHODS inspect_structures REDEFINITION .
6
+ METHODS execute_check REDEFINITION .
7
7
METHODS inspect_tokens REDEFINITION .
8
8
9
9
PRIVATE SECTION .
10
- CLASS-DATA pseudo_comments LIKE TABLE OF settings-pseudo_comment.
11
- DATA pseudo_comment_counter TYPE i .
10
+ TYPES ty_pseudo_comments LIKE SORTED TABLE OF settings-pseudo_comment WITH NON-UNIQUE KEY table_line .
11
+ TYPES ty_string_table TYPE TABLE OF string .
12
12
13
- METHODS get_pseudo_comments RETURNING VALUE (result ) LIKE pseudo_comments.
14
- METHODS count_pseudo_comments IMPORTING token TYPE stokesx.
15
- METHODS check_result.
13
+ CLASS-DATA relevant_pseudo_comments TYPE ty_pseudo_comments.
14
+
15
+ DATA counter TYPE i .
16
+
17
+ METHODS get_relevant_pseudo_comments RETURNING VALUE (result ) TYPE ty_pseudo_comments.
18
+
19
+ METHODS get_count IMPORTING pseudo_comments TYPE ty_string_table
20
+ RETURNING VALUE (result ) TYPE i .
16
21
17
22
METHODS create_check IMPORTING name TYPE tadir-obj_name
18
23
RETURNING VALUE (result ) TYPE REF TO y_check_base.
@@ -45,41 +50,69 @@ CLASS y_check_pseudo_comment_usage IMPLEMENTATION.
45
50
ENDMETHOD .
46
51
47
52
48
- METHOD inspect_structures .
49
- pseudo_comment_counter = 0 .
53
+ METHOD execute_check .
54
+ CLEAR counter .
50
55
51
- IF pseudo_comments IS INITIAL .
52
- pseudo_comments = get_pseudo_comments( ).
56
+ super ->execute_check( ).
57
+
58
+ IF counter = 0 .
59
+ RETURN .
53
60
ENDIF .
54
61
55
- super ->inspect_structures( ) .
62
+ DATA ( statement ) = ref_scan->statements[ 1 ] .
56
63
57
- check_result( ).
64
+ DATA (check_configuration ) = detect_check_configuration( statement ).
65
+
66
+ raise_error( statement_level = statement-level
67
+ statement_index = statement-from
68
+ statement_from = statement-from
69
+ check_configuration = check_configuration
70
+ parameter_01 = | { counter } | ).
58
71
ENDMETHOD .
59
72
60
73
61
74
METHOD inspect_tokens .
62
- LOOP AT ref_scan->tokens ASSIGNING FIELD-SYMBOL ( <token> )
75
+ LOOP AT ref_scan->tokens INTO token_wa
63
76
FROM statement-from TO statement-to
64
- WHERE type = 'C'
65
- OR type = 'P' .
66
- count_pseudo_comments( <token> ).
77
+ WHERE type = scan_token_type-comment
78
+ AND str CS '#EC ' .
79
+ REPLACE ALL OCCURRENCES OF `"#EC` IN token_wa-str WITH '#EC' .
80
+ REPLACE ALL OCCURRENCES OF `#EC ` IN token_wa-str WITH '#EC' .
81
+ SPLIT token_wa-str AT space INTO TABLE DATA (pseudo_comments ).
82
+ counter = counter + get_count( pseudo_comments ).
83
+ ENDLOOP .
84
+ ENDMETHOD .
85
+
86
+
87
+ METHOD get_count .
88
+ IF relevant_pseudo_comments IS INITIAL .
89
+ relevant_pseudo_comments = get_relevant_pseudo_comments( ).
90
+ ENDIF .
91
+
92
+ LOOP AT pseudo_comments INTO DATA (pseudo_comment )
93
+ WHERE table_line CS '#EC' .
94
+ REPLACE ALL OCCURRENCES OF '#EC' IN pseudo_comment WITH '' .
95
+ IF line_exists ( relevant_pseudo_comments[ table_line = pseudo_comment ] ).
96
+ result = result + 1 .
97
+ ENDIF .
67
98
ENDLOOP .
68
99
ENDMETHOD .
69
100
70
101
71
- METHOD get_pseudo_comments .
102
+ METHOD get_relevant_pseudo_comments .
72
103
LOOP AT y_profile_manager=>get_checks_from_db( ) ASSIGNING FIELD-SYMBOL (<check> )
73
104
WHERE object = 'CLAS' .
74
105
DATA (check ) = create_check( <check> -obj_name ).
75
106
IF check->settings-ignore_pseudo_comments = abap_true .
76
107
CONTINUE .
77
108
ENDIF .
78
109
IF check->settings-pseudo_comment IS NOT INITIAL .
79
- APPEND check->settings-pseudo_comment TO result .
110
+ REPLACE ALL OCCURRENCES OF `"#EC ` IN check->settings-pseudo_comment WITH '' .
111
+ INSERT check->settings-pseudo_comment INTO TABLE result .
80
112
ENDIF .
81
113
IF check->settings-alternative_pseudo_comment IS NOT INITIAL .
82
- APPEND check->settings-alternative_pseudo_comment TO result .
114
+ REPLACE ALL OCCURRENCES OF `"#EC ` IN check->settings-alternative_pseudo_comment WITH '' .
115
+ INSERT check->settings-alternative_pseudo_comment INTO TABLE result .
83
116
ENDIF .
84
117
ENDLOOP .
85
118
ENDMETHOD .
@@ -90,28 +123,4 @@ CLASS y_check_pseudo_comment_usage IMPLEMENTATION.
90
123
ENDMETHOD .
91
124
92
125
93
- METHOD count_pseudo_comments .
94
- LOOP AT pseudo_comments ASSIGNING FIELD-SYMBOL (<pseudo_comment> ).
95
- IF token-str CS <pseudo_comment> .
96
- pseudo_comment_counter = pseudo_comment_counter + 1 .
97
- ENDIF .
98
- ENDLOOP .
99
- ENDMETHOD .
100
-
101
-
102
- METHOD check_result .
103
- CHECK pseudo_comment_counter > 0 .
104
-
105
- DATA (statement ) = ref_scan->statements[ 1 ].
106
-
107
- DATA (check_configuration ) = detect_check_configuration( statement ).
108
-
109
- raise_error( statement_level = statement-level
110
- statement_index = statement-from
111
- statement_from = statement-from
112
- check_configuration = check_configuration
113
- parameter_01 = | { pseudo_comment_counter } | ).
114
- ENDMETHOD .
115
-
116
-
117
126
ENDCLASS .
0 commit comments