3
3
note "Assuming all classes to implement \nthe abstract methods of their interfaces\n\n" as generalNotes
4
4
5
5
abstract class EntitySource {
6
- # DataSource dataSource
7
- # {static} <E extends EntityData, T extends UniqueEntity, R extends E> Try<R, SourceException> enrichEntityData(E, String, Map<UUID, T>, BiFunction<E, T, R>)
8
- # {static} <E extends EntityData, T1 extends UniqueEntity, T2 extends UniqueEntity, R extends E> Try<R, SourceException> enrichEntityData(E, String, Map<UUID, T1>, String, Map<UUID, T2>, TriFunction<E, T1, T2, R>)
9
- # {static} <T extends UniqueEntity> Try<T, SourceException> getLinkedEntity(EntityData, String, Map<UUID, T>)
10
- # {static} <E extends EntityData, T extends UniqueEntity, R extends E> Try<R, SourceException> optionallyEnrichEntityData(E, String, Map<UUID, T>, T, BiFunction<E, T, R>)
11
- # Stream<Try<NodeAssetInputEntityData, SourceException>> buildNodeAssetEntities(Class<T>, Map<UUID, OperatorInput>, Map<UUID, NodeInput>)
12
- # {static} Stream<Try<NodeAssetInputEntityData, SourceException>> nodeAssetInputEntityDataStream(Stream<Try<AssetInputEntityData, SourceException>>, Map<UUID, NodeInput>)
13
- # Stream<Try<AssetInputEntityData, SourceException>> buildAssetInputEntities(Class<? extends AssetInput>, Map<UUID, OperatorInput>)
14
- # {static} Stream<Try<AssetInputEntityData, SourceException>> assetInputEntityDataStream(Stream<Try<EntityData, SourceException>>, Map<UUID, OperatorInput>)
15
- # Stream<Try<EntityData, SourceException>> buildEntityData(Class<? extends UniqueEntity>)
16
- # {static} <S extends UniqueEntity> Map<UUID, S> unpackMap(Stream<Try<S, FactoryException>>, Class<S>) throws SourceException
17
- # {static} <S extends UniqueEntity> Set<S> unpackSet(Stream<Try<S, FactoryException>>, Class<S>) throws SourceException
18
- # {static} <S, E extends Exception> Stream<S> unpackSet(Stream<Try<S, E>>, Class<S>) throws SourceException
6
+ + void validate() throws ValidationException
19
7
}
20
8
9
+ EntitySource <|-- EnergyManagementSource
21
10
EntitySource <|-- GraphicSource
11
+ EntitySource <|-- IdCoordinateSource
12
+ IdCoordinateSource <|-- CsvIdCoordinateSource
13
+ IdCoordinateSource <|-- SqlIdCoordinateSource
22
14
EntitySource <|-- RawGridSource
23
15
EntitySource <|-- ResultEntitySource
24
16
EntitySource <|-- SystemParticipantSource
25
17
EntitySource <|-- ThermalSource
18
+ EntitySource <|-- TimeSeriesMappingSource
19
+ TimeSeriesMappingSource <|-- CsvTimeSeriesMappingSource
20
+ TimeSeriesMappingSource <|-- SqlTimeSeriesMappingSource
21
+ EntitySource <|-- TimeSeriesSource
22
+ TimeSeriesSource <|-- CsvTimeSeriesSource
23
+ TimeSeriesSource <|-- SqlTimeSeriesSource
26
24
EntitySource <|-- TypeSource
25
+ EntitySource <|-- WeatherSource
26
+ WeatherSource <|-- CouchbaseWeatherSource
27
+ WeatherSource <|-- CsvWeatherSource
28
+ WeatherSource <|-- InfluxDbWeatherSource
29
+ WeatherSource <|-- SqlWeatherSource
30
+
31
+ class EnergyManagementSource {
32
+ - TypeSource typeSource
33
+ - EmInputFactory emInputFactory
34
+ + EnergyManagementSource(TypeSource, DataSource)
35
+ + Map<UUID, EmInput> getEmUnits() throws SourceException
36
+ + Map<UUID, EmInput> getEmUnits(Map<UUID, OperatorInput>) throws SourceException
37
+ }
27
38
28
39
class GraphicSource {
29
40
- TypeSource typeSource
@@ -39,6 +50,34 @@ class GraphicSource {
39
50
+ Set<LineGraphicInput> getLineGraphicInput(Map<UUID, LineInput>) throws SourceException
40
51
}
41
52
53
+ abstract class IdCoordinateSource {
54
+ + Optional<Set<String>> getSourceFields() throws SourceException
55
+ + Optional<Point> getCoordinate(int)
56
+ + Collection<Point> getCoordinates(int[])
57
+ + Optional<Integer> getId(Point)
58
+ + Collection<Point> getAllCoordinates()
59
+ + List<CoordinateDistance> getNearestCoordinates(Point, int)
60
+ + List<CoordinateDistance> getClosestCoordinates(Point, int, ComparableQuantity<Length>)
61
+ + List<CoordinateDistance> calculateCoordinateDistances(Point, int, Collection<Point>)
62
+ + List<CoordinateDistance> findCornerPoints(Point, ComparableQuantity<Length>)
63
+ + List<CoordinateDistance> findCornerPoints(Point, Collection<CoordinateDistance>)
64
+ }
65
+
66
+ class CsvIdCoordinateSource {
67
+ - Map<Integer, Point> idToCoordinate;
68
+ - Map<Point, Integer> coordinateToId;
69
+ - CsvDataSource dataSource;
70
+ - IdCoordinateFactory factory;
71
+ + CsvIdCoordinateSource(IdCoordinateFactory, CsvDataSource) throws SourceException
72
+ + int getCoordinateCount ()
73
+ }
74
+
75
+ class SqlIdCoordinateSource {
76
+ - SqlDataSource dataSource
77
+ - SqlIdCoordinateFactory factory
78
+ + SqlIdCoordinateSource(SqlIdCoordinateFactory, String, SqlDataSource)
79
+ }
80
+
42
81
class RawGridSource {
43
82
- TypeSource typeSource
44
83
- NodeInputFactory nodeInputFactory
@@ -70,9 +109,10 @@ class ResultEntitySource {
70
109
- SwitchResultFactory switchResultFactory
71
110
- NodeResultFactory nodeResultFactory
72
111
- ConnectorResultFactory connectorResultFactory
112
+ - CongestionResultFactory congestionResultFactory
73
113
- FlexOptionsResultFactory flexOptionsResultFactory
74
114
+ ResultEntitySource(DataSource)
75
- + ResultEntitySource(DataSource, String )
115
+ + ResultEntitySource(DataSource, DateTimeFormatter )
76
116
+ Set<NodeResult> getNodeResults() throws SourceException
77
117
+ Set<SwitchResult> getSwitchResults() throws SourceException
78
118
+ Set<LineResult> getLineResults() throws SourceException
@@ -92,12 +132,14 @@ class ResultEntitySource {
92
132
+ Set<CylindricalStorageResult> getCylindricalStorageResult() throws SourceException
93
133
+ Set<ThermalHouseResult> getThermalHouseResults() throws SourceException
94
134
+ Set<EmResult> getEmResults() throws SourceException
135
+ + Set<CongestionResult> getCongestionResults() throws SourceException
95
136
}
96
137
97
138
class SystemParticipantSource {
98
139
- TypeSource typeSource
99
140
- RawGridSource rawGridSource
100
141
- ThermalSource thermalSource
142
+ - EnergyManagementSource energyManagementSource
101
143
- BmInputFactory bmInputFactory
102
144
- ChpInputFactory chpInputFactory
103
145
- EvInputFactory evInputFactory
@@ -108,7 +150,7 @@ class SystemParticipantSource{
108
150
- StorageInputFactory storageInputFactory
109
151
- WecInputFactory wecInputFactory
110
152
- EvcsInputFactory evcsInputFactory
111
- + SystemParticipantSource(TypeSource, ThermalSource, RawGridSource, DataSource)
153
+ + SystemParticipantSource(TypeSource, ThermalSource, RawGridSource, EnergyManagementSource, DataSource)
112
154
+ SystemParticipants getSystemParticipants() throws SourceException
113
155
+ SystemParticipants getSystemParticipants(Map<UUID, OperatorInput>, Map<UUID, NodeInput>) throws SourceException
114
156
+ Set<BmInput> getBmPlants() throws SourceException
@@ -141,20 +183,65 @@ class ThermalSource {
141
183
+ ThermalSource(TypeSource, DataSource)
142
184
+ Map<UUID, ThermalBusInput> getThermalBuses() throws SourceException
143
185
+ Map<UUID, ThermalBusInput> getThermalBuses(Map<UUID, OperatorInput>) throws SourceException
144
- + Set< ThermalStorageInput> getThermalStorages() throws SourceException
145
- + Set< ThermalStorageInput> getThermalStorages(Map<UUID, OperatorInput>, Map<UUID, ThermalBusInput>) throws SourceException
146
- + Set< ThermalHouseInput> getThermalHouses() throws SourceException
147
- + Set< ThermalHouseInput> getThermalHouses(Map<UUID, OperatorInput>, Map<UUID, ThermalBusInput>) throws SourceException
186
+ + Map<UUID, ThermalStorageInput> getThermalStorages() throws SourceException
187
+ + Map<UUID, ThermalStorageInput> getThermalStorages(Map<UUID, OperatorInput>, Map<UUID, ThermalBusInput>) throws SourceException
188
+ + Map<UUID, ThermalHouseInput> getThermalHouses() throws SourceException
189
+ + Map<UUID, ThermalHouseInput> getThermalHouses(Map<UUID, OperatorInput>, Map<UUID, ThermalBusInput>) throws SourceException
148
190
+ Set<CylindricalStorageInput> getCylindricStorages() throws SourceException
149
191
+ Set<CylindricalStorageInput> getCylindricStorages(Map<UUID, OperatorInput>, Map<UUID, ThermalBusInput>) throws SourceException
150
192
}
151
193
194
+ abstract class TimeSeriesMappingSource {
195
+ - TimeSeriesMappingFactory mappingFactory
196
+ + Map<UUID, UUID> getMapping() throws SourceException
197
+ + Optional<UUID> getTimeSeriesUuid(UUID) throws SourceException
198
+ + Stream<Map<String, String>> getMappingSourceData() throws SourceException
199
+ + Optional<Set<String>> getSourceFields() throws SourceException
200
+ }
201
+
202
+ class CsvTimeSeriesMappingSource {
203
+ - CsvDataSource dataSource
204
+ + CsvTimeSeriesMappingSource(String, Path, FileNamingStrategy)
205
+ }
206
+
207
+ class SqlTimeSeriesMappingSource {
208
+ - EntityPersistenceNamingStrategy entityPersistenceNamingStrategy
209
+ - SqlDataSource dataSource
210
+ + SqlTimeSeriesMappingSource(SqlConnector, String, EntityPersistenceNamingStrategy)
211
+ }
212
+
213
+ abstract class TimeSeriesSource {
214
+ - Class<V> valueClass
215
+ - TimeBasedSimpleValueFactory<V> valueFactory
216
+ + TimeSeriesSource(Class<V>, TimeBasedSimpleValueFactory<V>)
217
+ + IndividualTimeSeries<V> getTimeSeries()
218
+ + IndividualTimeSeries<V> getTimeSeries(ClosedInterval<ZonedDateTime>) throws SourceException
219
+ + Optional<V> getValue(ZonedDateTime) throws SourceException
220
+ }
221
+
222
+ class CsvTimeSeriesSource {
223
+ - IndividualTimeSeries<V> timeSeries
224
+ - CsvDataSource dataSource
225
+ - Path filePath
226
+ + {static} CsvTimeSeriesSource<? extends Value> getSource(String, Path, FileNamingStrategy, CsvIndividualTimeSeriesMetaInformation)
227
+ + CsvTimeSeriesSource(String, Path, FileNamingStrategy, UUID, Path, Class<V>, TimeBasedSimpleValueFactory<V>)
228
+ }
229
+
230
+ class SqlTimeSeriesSource {
231
+ - SqlDataSource dataSource
232
+ - UUID timeSeriesUuid
233
+ + SqlTimeSeriesSource(SqlDataSource, UUID, Class<V>, TimeBasedSimpleValueFactory<V>)
234
+ + SqlTimeSeriesSource(SqlConnector, String, DatabaseNamingStrategy, UUID, Class<V>, TimeBasedSimpleValueFactory<V>)
235
+ + SqlTimeSeriesSource<? extends Value> createSource(SqlConnector, String, DatabaseNamingStrategy, IndividualTimeSeriesMetaInformation, DateTimeFormatter) throws SourceException
236
+ }
237
+
152
238
class TypeSource {
153
239
- OperatorInputFactory operatorInputFactory
154
240
- Transformer2WTypeInputFactory transformer2WTypeInputFactory
155
241
- LineTypeInputFactory lineTypeInputFactory
156
242
- Transformer3WTypeInputFactory transformer3WTypeInputFactory
157
243
- SystemParticipantTypeInputFactory systemParticipantTypeInputFactory
244
+ - DataSource dataSource
158
245
+ TypeSource(DataSource)
159
246
+ Map<UUID, Transformer2WTypeInput> getTransformer2WTypes() throws SourceException
160
247
+ Map<UUID, Transformer3WTypeInput> getTransformer3WTypes() throws SourceException
@@ -167,4 +254,38 @@ class TypeSource {
167
254
+ Map<UUID, WecTypeInput> getWecTypes() throws SourceException
168
255
+ Map<UUID, EvTypeInput> getEvTypes() throws SourceException
169
256
}
257
+
258
+ abstract class WeatherSource {
259
+ - TimeBasedWeatherValueFactory weatherFactory
260
+ - IdCoordinateSource idCoordinateSource
261
+ + WeatherSource(IdCoordinateSource, TimeBasedWeatherValueFactory)
262
+ + Optional<Set<String>> getSourceFields() throws SourceException
263
+ + Map<Point, IndividualTimeSeries<WeatherValue>> getWeather(ClosedInterval<ZonedDateTime>) throws SourceException
264
+ + Map<Point, IndividualTimeSeries<WeatherValue>> getWeather(ClosedInterval<ZonedDateTime>, Collection<Point>) throws SourceException
265
+ + Optional<TimeBasedValue<WeatherValue>> getWeather(ZonedDateTime, Point) throws SourceException
266
+ }
267
+
268
+ class CouchbaseWeatherSource {
269
+ - CouchbaseConnector connector
270
+ + CouchbaseWeatherSource(CouchbaseConnector, IdCoordinateSource, String, TimeBasedWeatherValueFactory, String)
271
+ + CouchbaseWeatherSource(CouchbaseConnector, IdCoordinateSource, String, String, TimeBasedWeatherValueFactory, String)
272
+ }
273
+
274
+ class CsvWeatherSource {
275
+ - CsvDataSource dataSource
276
+ - Map<Point, IndividualTimeSeries<WeatherValue>> coordinateToTimeSeries
277
+ + CsvWeatherSource(String, Path, FileNamingStrategy, IdCoordinateSource, TimeBasedWeatherValueFactory) throws SourceException
278
+ }
279
+
280
+ class InfluxDbWeatherSource {
281
+ - InfluxDbConnector connector
282
+ + InfluxDbWeatherSource(InfluxDbConnector, IdCoordinateSource, TimeBasedWeatherValueFactory)
283
+ + IndividualTimeSeries<WeatherValue> getWeather(ClosedInterval<ZonedDateTime>, Point)
284
+ }
285
+
286
+ class SqlWeatherSource {
287
+ - SqlDataSource dataSource
288
+ + SqlWeatherSource(SqlConnector, IdCoordinateSource, String, String, TimeBasedWeatherValueFactory)
289
+ }
290
+
170
291
@enduml
0 commit comments