Just a test of mermaid diagram syntax

flowchart TD xwsImportReducer.importXWS --> PilotStateService(PilotStateService.createPilotState_throws) --> buildPilotStateData --> UpgradeUtility.buildAllUpgrades("UpgradeUtility.buildAllUpgrades(allUpgrades)"); buildPilotStateData --> calculateActiveHull("calculateActiveTest(hull)"); buildPilotStateData --> calculateActiveShield("calculateActiveTest(shiled)"); buildPilotStateData --> |.shield| calculateActive(calculateActive); buildPilotStateData --> calculate_force_active(calculate_force_active); buildPilotStateData --> ship.pilotCharge; buildPilotStateData --> buildUpgradeStates("buildUpgradeStates(allUpgrades)");
classDiagram class UpgradesData { -categoryToUpgradesDictionary : Dictionary~String#44; Array~Upgrade~~ -namesToUpgrades : Dictionary~String#44; Upgrade~ +getUpgrades(by category) -> Array~Upgrades~ +getUpgrade(by name) -> Upgrade }

Current UpgradeUtility

classDiagram class UpgradeUtility { - enum upgradeCategories : String, CaseIterable - var updgradesByCategory : Dictionary~String#44; Array~String~~ - var upgradesByName: Dictionary~String#44; String~ + static func getCategory(upgrade : String) -> String? + static func buildUpgradesDictionary() -> Dictionary~String#44; Arrary~String~~ + static func buildUpgradesByNameDictionary() -> Dictionary~String#44; String~ + func buildUpgradesByUpgradeNames(upgradeNames: Array~String~) -> Array~Upgrade~ + static func getJSONForUpgrade(forType: String, inDirectory: String) -> String + static func getUpgrades(upgradeCategory: String) -> Array~Upgrade~ + static func buildAllUpgrades(...) -> Array~Upgrade~ + static func buildAllUpgrades_throws(upgrades: SquadPilotUpgrade) throws -> Array~Upgrade~ + static func getCategory(for: String) -> String }

New UpgradeUtility

classDiagram class UpgradesData { - enum upgradeCategories : String, CaseIterable -categoryToUpgradesDictionary : Dictionary~String#44; Array~Upgrade~~ -namesToUpgrades : Dictionary~String#44; Upgrade~ +getUpgrades(by category) -> Array~Upgrades~ + static func getUpgrades(upgradeCategory: String) -> Array~Upgrade~ +getUpgrade(by name) -> Upgrade } class UpgradeUtilityNew { - upgradesData : UpgradesData + static func getCategory(upgrade : String) -> String? + static func getJSONForUpgrade(forType: String, inDirectory: String) -> String + static func buildUpgradesDictionary() -> Dictionary~String#44; Arrary~String~~ + static func buildUpgradesByNameDictionary() -> Dictionary~String#44; String~ + func buildUpgradesByUpgradeNames(upgradeNames: Array~String~) -> Array~Upgrade~ + static func buildAllUpgrades(...) -> Array~Upgrade~ } class CacheService { - func getShipV2.getPilot.getUpgradesFromCache() -> [Upgrade] } class PilotStateService { + func createPilotState.buildPilotStateData() + func createPilotState_throws.buildPilotStateData() } class SquadData { + func getShip() } class global_getShip { + global_getShip() } UpgradeUtilityNew --> UpgradesData CacheService --> UpgradeUtilityNew PilotStateService --> UpgradeUtilityNew SquadData --> UpgradeUtilityNew global_getShip --> UpgradeUtilityNew

UpgradeUtility Dependencies

CacheService.getShipV2.getPilot.getUpgradesFromCache() -> UpgradeUtiliy.buildAllUpgrades()
PilotStateService.createPilotState.buildPilotStateData() -> UpgradeUtility.buildAllUpgrades()
PilotStateService.createPilotState_throws.buildPilotStateData() -> UpgradeUtility.buildAllUpgrades()
SquadData.getShip -> UpgradeUtility.buildAllUpgrades()
global_getShip() -> UpgradeUtility.buildAllUpgrades()