MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / extract_class

Method extract_class

atomic-semantic/src/parsers/java.rs:155–175  ·  view source on GitHub ↗

Extract a class declaration.

(&self, node: &Node, source: &str, file_path: &str)

Source from the content-addressed store, hash-verified

153
154 /// Extract a class declaration.
155 fn extract_class(&self, node: &Node, source: &str, file_path: &str) -> Option<Entity> {
156 let name_node = node.child_by_field_name("name")?;
157 let name = self.node_text(&name_node, source);
158
159 let line = node.start_position().row as u32 + 1;
160 let end_line = node.end_position().row as u32 + 1;
161
162 let exported = self.has_modifier(node, source, "public");
163
164 let signature = self.build_class_signature(node, source);
165
166 let mut entity = Entity::new(name, EntityKind::Class, file_path, line, end_line);
167 if let Some(sig) = signature {
168 entity = entity.with_signature(sig);
169 }
170 if exported {
171 entity.exported = true;
172 }
173
174 Some(entity)
175 }
176
177 /// Extract an interface declaration.
178 fn extract_interface(&self, node: &Node, source: &str, file_path: &str) -> Option<Entity> {

Callers 1

walk_treeMethod · 0.45

Calls 4

has_modifierMethod · 0.80
with_signatureMethod · 0.80
node_textMethod · 0.45
build_class_signatureMethod · 0.45

Tested by

no test coverage detected