aggregate at the end

This commit is contained in:
Bernard Xie 2023-03-29 13:30:07 -07:00
parent d8a0279d3a
commit 3de958deb6
No known key found for this signature in database
GPG key ID: 3C3E0036CE0F892C

View file

@ -238,98 +238,56 @@ func (diagram Diagram) BoundingBox() (topLeft, bottomRight Point) {
} }
func (diagram Diagram) GetNestedUniqueChars() string { func (diagram Diagram) GetNestedUniqueChars() string {
var texts = diagram.GetUniqueChars()
for _, d := range diagram.Layers {
texts = texts + d.GetNestedUniqueChars()
}
for _, d := range diagram.Scenarios {
texts = texts + d.GetNestedUniqueChars()
}
for _, d := range diagram.Steps {
texts = texts + d.GetNestedUniqueChars()
}
var uniqueChars string var uniqueChars string
uniqueMap := make(map[rune]bool) uniqueMap := make(map[rune]bool)
for _, char := range diagram.GetUniqueChars() { for _, char := range texts {
if _, exists := uniqueMap[char]; !exists { if _, exists := uniqueMap[char]; !exists {
uniqueMap[char] = true uniqueMap[char] = true
uniqueChars = uniqueChars + string(char) uniqueChars = uniqueChars + string(char)
} }
} }
for _, d := range diagram.Layers {
for _, char := range d.GetNestedUniqueChars() {
if _, exists := uniqueMap[char]; !exists {
uniqueMap[char] = true
uniqueChars = uniqueChars + string(char)
}
}
}
for _, d := range diagram.Scenarios {
for _, char := range d.GetNestedUniqueChars() {
if _, exists := uniqueMap[char]; !exists {
uniqueMap[char] = true
uniqueChars = uniqueChars + string(char)
}
}
}
for _, d := range diagram.Steps {
for _, char := range d.GetNestedUniqueChars() {
if _, exists := uniqueMap[char]; !exists {
uniqueMap[char] = true
uniqueChars = uniqueChars + string(char)
}
}
}
return uniqueChars return uniqueChars
} }
func (diagram Diagram) GetUniqueChars() string { func (diagram Diagram) GetUniqueChars() string {
var uniqueChars string var texts string
uniqueMap := make(map[rune]bool)
for _, s := range diagram.Shapes { for _, s := range diagram.Shapes {
for _, char := range s.Label { texts = texts + s.Label + s.Tooltip + s.Link
if _, exists := uniqueMap[char]; !exists {
uniqueMap[char] = true
uniqueChars = uniqueChars + string(char)
}
}
for _, char := range s.Tooltip {
if _, exists := uniqueMap[char]; !exists {
uniqueMap[char] = true
uniqueChars = uniqueChars + string(char)
}
}
for _, char := range s.Link {
if _, exists := uniqueMap[char]; !exists {
uniqueMap[char] = true
uniqueChars = uniqueChars + string(char)
}
}
if s.Type == ShapeClass { if s.Type == ShapeClass {
for _, cf := range s.Fields { for _, cf := range s.Fields {
for _, char := range cf.GetUniqueChars() { texts = texts + cf.GetUniqueChars()
if _, exists := uniqueMap[char]; !exists {
uniqueMap[char] = true
uniqueChars = uniqueChars + string(char)
}
}
} }
for _, cm := range s.Methods { for _, cm := range s.Methods {
for _, char := range cm.GetUniqueChars() { texts = texts + cm.GetUniqueChars()
if _, exists := uniqueMap[char]; !exists {
uniqueMap[char] = true
uniqueChars = uniqueChars + string(char)
}
}
} }
} }
if s.Type == ShapeSQLTable { if s.Type == ShapeSQLTable {
for _, c := range s.Columns { for _, c := range s.Columns {
for _, char := range c.GetUniqueChars() { texts = texts + c.GetUniqueChars()
if _, exists := uniqueMap[char]; !exists {
uniqueMap[char] = true
uniqueChars = uniqueChars + string(char)
}
}
} }
} }
} }
for _, c := range diagram.Connections { for _, c := range diagram.Connections {
for _, char := range c.Label { texts = texts + c.Label
if _, exists := uniqueMap[char]; !exists { }
uniqueMap[char] = true
uniqueChars = uniqueChars + string(char) var uniqueChars string
} uniqueMap := make(map[rune]bool)
for _, char := range texts {
if _, exists := uniqueMap[char]; !exists {
uniqueMap[char] = true
uniqueChars = uniqueChars + string(char)
} }
} }