shapes_converter/shex_to_uml/
uml_class.rs1use std::collections::HashSet;
2
3use super::{Name, NodeId, UmlEntry};
4
5#[derive(Debug, PartialEq)]
6
7pub struct UmlClass {
8 name: Name,
9 entries: Vec<UmlEntry>,
10 extends: HashSet<NodeId>,
11}
12
13impl UmlClass {
14 pub fn new(name: Name) -> UmlClass {
15 UmlClass {
16 name,
17 entries: Vec::new(),
18 extends: HashSet::new(),
19 }
20 }
21
22 pub fn add_entry(&mut self, entry: UmlEntry) {
23 self.entries.push(entry)
24 }
25
26 pub fn add_extends(&mut self, node: &NodeId) {
27 self.extends.insert(*node);
28 }
29
30 pub fn name(&self) -> String {
31 self.name.name()
32 }
33
34 pub fn label(&self) -> Option<String> {
35 self.name.label()
36 }
37
38 pub fn href(&self) -> Option<String> {
39 self.name.href()
40 }
41
42 pub fn entries(&self) -> impl Iterator<Item = &UmlEntry> {
43 self.entries.iter()
44 }
45}