62 lines
1.5 KiB
Plaintext
62 lines
1.5 KiB
Plaintext
@startuml
|
|
|
|
!include https://deep-tek.com/puml/core.puml
|
|
|
|
|
|
class Satellite {
|
|
-String satelliteId
|
|
-String type
|
|
-Angle position
|
|
-double height
|
|
+setPosition
|
|
}
|
|
class StandardSatellite {
|
|
-int speed
|
|
-int getFileSpeed
|
|
}
|
|
class ShrinkingSatellite {
|
|
-int speed
|
|
-int getFileSpeed
|
|
}
|
|
class RelaySatellite {
|
|
-int speed
|
|
-int getFileSpeed
|
|
}
|
|
Satellite <|- StandardSatellite
|
|
Satellite <|- ShrinkingSatellite
|
|
Satellite <|- RelaySatellite
|
|
|
|
class Device {
|
|
-String deviceId
|
|
-String type
|
|
-Angle position
|
|
+setPosition
|
|
}
|
|
|
|
class BlackoutController {
|
|
-List<String> deviceList
|
|
-List<String> satelliteList
|
|
-List<String> fileSendingList
|
|
-Map<String, Device> deviceMap
|
|
-Map<String, Satellite> satelliteMap
|
|
-Map<String, EntityInfoResponse> map
|
|
+void createDevice(String deviceId, String type, Angle position)
|
|
+void removeDevice(String deviceId)
|
|
+void createSatellite(String satelliteId, String type, double height, Angle position)
|
|
+void removeSatellite(String satelliteId)
|
|
+List<String> listDeviceIds()
|
|
+List<String> listSatelliteIds()
|
|
+void addFileToDevice(String deviceId, String filename, String content)
|
|
+EntityInfoResponse getInfo(String id)
|
|
+void simulate()
|
|
+List<String> communicableEntitiesInRange(String id)
|
|
+void sendFile(String fileName, String fromId, String toId)
|
|
}
|
|
|
|
Device - Satellite : sendFile >
|
|
Satellite - Device : sendFile >
|
|
|
|
Device <|.. BlackoutController
|
|
Satellite <|.. BlackoutController
|
|
|
|
@enduml |