Extract Java visibility from modifiers child.
(node: TsNode<'_>, state: &ExtractionState)
| 931 | |
| 932 | /// Extract Java visibility from modifiers child. |
| 933 | fn extract_java_visibility(node: TsNode<'_>, state: &ExtractionState) -> Visibility { |
| 934 | let mut cursor = node.walk(); |
| 935 | if cursor.goto_first_child() { |
| 936 | loop { |
| 937 | let child = cursor.node(); |
| 938 | if child.kind() == "modifiers" { |
| 939 | let text = state.node_text(child); |
| 940 | if text.contains("public") { |
| 941 | return Visibility::Pub; |
| 942 | } else if text.contains("protected") { |
| 943 | return Visibility::PubCrate; |
| 944 | } else if text.contains("private") { |
| 945 | return Visibility::Private; |
| 946 | } |
| 947 | // No access modifier → package-private, map to Private. |
| 948 | return Visibility::Private; |
| 949 | } |
| 950 | if !cursor.goto_next_sibling() { |
| 951 | break; |
| 952 | } |
| 953 | } |
| 954 | } |
| 955 | // No modifiers at all → package-private, map to Private. |
| 956 | Visibility::Private |
| 957 | } |
| 958 | |
| 959 | /// Check if a node has a specific modifier keyword. |
| 960 | fn has_modifier(node: TsNode<'_>, state: &ExtractionState, modifier: &str) -> bool { |