88import edu .ie3 .datamodel .exceptions .ConnectorException ;
99import edu .ie3 .datamodel .io .IoUtil ;
1010import edu .ie3 .datamodel .io .csv .*;
11- import edu .ie3 .datamodel .io .csv .timeseries .ColumnScheme ;
12- import edu .ie3 .datamodel .io .csv .timeseries .IndividualTimeSeriesMetaInformation ;
1311import edu .ie3 .datamodel .io .naming .FileNamingStrategy ;
12+ import edu .ie3 .datamodel .io .naming .TimeSeriesMetaInformation ;
13+ import edu .ie3 .datamodel .io .naming .timeseries .ColumnScheme ;
14+ import edu .ie3 .datamodel .io .naming .timeseries .IndividualTimeSeriesMetaInformation ;
1415import edu .ie3 .datamodel .models .UniqueEntity ;
1516import edu .ie3 .datamodel .models .timeseries .TimeSeries ;
1617import edu .ie3 .datamodel .models .timeseries .TimeSeriesEntry ;
@@ -41,7 +42,8 @@ public class CsvFileConnector implements DataConnector {
4142 new HashMap <>();
4243 private final Map <UUID , BufferedCsvWriter > timeSeriesWriters = new HashMap <>();
4344 // ATTENTION: Do not finalize. It's meant for lazy evaluation.
44- private Map <UUID , CsvIndividualTimeSeriesMetaInformation > individualTimeSeriesMetaInformation ;
45+ private Map <UUID , edu .ie3 .datamodel .io .csv .CsvIndividualTimeSeriesMetaInformation >
46+ individualTimeSeriesMetaInformation ;
4547 private final FileNamingStrategy fileNamingStrategy ;
4648 private final String baseDirectoryName ;
4749
@@ -219,8 +221,25 @@ public BufferedReader initReader(String filePath) throws FileNotFoundException {
219221 *
220222 * @param timeSeriesUuid The time series in question
221223 * @return An option on the queried information
224+ * @deprecated since 3.0. Use {@link #individualTimeSeriesMetaInformation(UUID)} instead
222225 */
223- public Optional <IndividualTimeSeriesMetaInformation > getIndividualTimeSeriesMetaInformation (
226+ @ Deprecated (since = "3.0" , forRemoval = true )
227+ public Optional <edu .ie3 .datamodel .io .csv .timeseries .IndividualTimeSeriesMetaInformation >
228+ getIndividualTimeSeriesMetaInformation (UUID timeSeriesUuid ) {
229+ return individualTimeSeriesMetaInformation (timeSeriesUuid )
230+ .map (edu .ie3 .datamodel .io .csv .timeseries .IndividualTimeSeriesMetaInformation ::new );
231+ }
232+
233+ /**
234+ * Get time series meta information for a given uuid.
235+ *
236+ * <p>This method lazily evaluates the mapping from <i>all</i> time series files to their meta
237+ * information.
238+ *
239+ * @param timeSeriesUuid The time series in question
240+ * @return An option on the queried information
241+ */
242+ public Optional <IndividualTimeSeriesMetaInformation > individualTimeSeriesMetaInformation (
224243 UUID timeSeriesUuid ) {
225244 if (Objects .isNull (individualTimeSeriesMetaInformation ))
226245 individualTimeSeriesMetaInformation = buildIndividualTimeSeriesMetaInformation ();
@@ -233,7 +252,7 @@ public Optional<IndividualTimeSeriesMetaInformation> getIndividualTimeSeriesMeta
233252 *
234253 * @return Mapping from time series uuid to it's meta information.
235254 */
236- private Map <UUID , CsvIndividualTimeSeriesMetaInformation >
255+ private Map <UUID , edu . ie3 . datamodel . io . csv . CsvIndividualTimeSeriesMetaInformation >
237256 buildIndividualTimeSeriesMetaInformation () {
238257 return getIndividualTimeSeriesFilePaths ().parallelStream ()
239258 .map (
@@ -242,11 +261,11 @@ public Optional<IndividualTimeSeriesMetaInformation> getIndividualTimeSeriesMeta
242261 String filePathWithoutEnding = removeFileEnding (filePath );
243262 IndividualTimeSeriesMetaInformation metaInformation =
244263 (IndividualTimeSeriesMetaInformation )
245- fileNamingStrategy .extractTimeSeriesMetaInformation (filePathWithoutEnding );
246- return new CsvIndividualTimeSeriesMetaInformation (
264+ fileNamingStrategy .timeSeriesMetaInformation (filePathWithoutEnding );
265+ return new edu . ie3 . datamodel . io . csv . CsvIndividualTimeSeriesMetaInformation (
247266 metaInformation , filePathWithoutEnding );
248267 })
249- .collect (Collectors .toMap (FileNameMetaInformation ::getUuid , v -> v ));
268+ .collect (Collectors .toMap (TimeSeriesMetaInformation ::getUuid , v -> v ));
250269 }
251270
252271 /**
@@ -257,7 +276,7 @@ public Optional<IndividualTimeSeriesMetaInformation> getIndividualTimeSeriesMeta
257276 * possible readers will be initialized.
258277 * @return A mapping from column scheme to the individual time series meta information
259278 */
260- public Map <ColumnScheme , Set <CsvIndividualTimeSeriesMetaInformation >>
279+ public Map <ColumnScheme , Set <edu . ie3 . datamodel . io . csv . CsvIndividualTimeSeriesMetaInformation >>
261280 getCsvIndividualTimeSeriesMetaInformation (ColumnScheme ... columnSchemes ) {
262281 return getIndividualTimeSeriesFilePaths ().parallelStream ()
263282 .map (
@@ -269,7 +288,8 @@ public Optional<IndividualTimeSeriesMetaInformation> getIndividualTimeSeriesMeta
269288 .map (Optional ::get )
270289 .collect (
271290 Collectors .groupingBy (
272- CsvIndividualTimeSeriesMetaInformation ::getColumnScheme , Collectors .toSet ()));
291+ edu .ie3 .datamodel .io .csv .CsvIndividualTimeSeriesMetaInformation ::getColumnScheme ,
292+ Collectors .toSet ()));
273293 }
274294
275295 /**
@@ -322,11 +342,11 @@ private Set<String> getIndividualTimeSeriesFilePaths() {
322342 * allowed.
323343 * @return An {@link Optional} to {@link IndividualTimeSeriesMetaInformation}
324344 */
325- private Optional <CsvIndividualTimeSeriesMetaInformation > buildCsvTimeSeriesMetaInformation (
326- String filePathString , ColumnScheme ... columnSchemes ) {
345+ private Optional <edu . ie3 . datamodel . io . csv . CsvIndividualTimeSeriesMetaInformation >
346+ buildCsvTimeSeriesMetaInformation ( String filePathString , ColumnScheme ... columnSchemes ) {
327347 try {
328- FileNameMetaInformation metaInformation =
329- fileNamingStrategy .extractTimeSeriesMetaInformation (filePathString );
348+ TimeSeriesMetaInformation metaInformation =
349+ fileNamingStrategy .timeSeriesMetaInformation (filePathString );
330350 if (!IndividualTimeSeriesMetaInformation .class .isAssignableFrom (metaInformation .getClass ())) {
331351 log .error (
332352 "The time series file '{}' does not represent an individual time series." ,
@@ -350,7 +370,7 @@ private Optional<CsvIndividualTimeSeriesMetaInformation> buildCsvTimeSeriesMetaI
350370 return Optional .empty ();
351371 }
352372 return Optional .of (
353- new CsvIndividualTimeSeriesMetaInformation (
373+ new edu . ie3 . datamodel . io . csv . CsvIndividualTimeSeriesMetaInformation (
354374 individualMetaInformation .getUuid (),
355375 individualMetaInformation .getColumnScheme (),
356376 filePathString ));
@@ -433,19 +453,28 @@ public void shutdown() {
433453 });
434454 }
435455
436- /** Enhancing the {@link IndividualTimeSeriesMetaInformation} with the full path to csv file */
456+ /**
457+ * Enhancing the {@link IndividualTimeSeriesMetaInformation} with the full path to csv file
458+ *
459+ * @deprecated since 3.0. Use {@link
460+ * edu.ie3.datamodel.io.csv.CsvIndividualTimeSeriesMetaInformation} instead
461+ */
462+ @ Deprecated (since = "3.0" , forRemoval = true )
437463 public static class CsvIndividualTimeSeriesMetaInformation
438- extends IndividualTimeSeriesMetaInformation {
464+ extends edu . ie3 . datamodel . io . csv . timeseries . IndividualTimeSeriesMetaInformation {
439465 private final String fullFilePath ;
440466
441467 public CsvIndividualTimeSeriesMetaInformation (
442- UUID uuid , ColumnScheme columnScheme , String fullFilePath ) {
468+ UUID uuid ,
469+ edu .ie3 .datamodel .io .csv .timeseries .ColumnScheme columnScheme ,
470+ String fullFilePath ) {
443471 super (uuid , columnScheme );
444472 this .fullFilePath = fullFilePath ;
445473 }
446474
447475 public CsvIndividualTimeSeriesMetaInformation (
448- IndividualTimeSeriesMetaInformation metaInformation , String fullFilePath ) {
476+ edu .ie3 .datamodel .io .csv .timeseries .IndividualTimeSeriesMetaInformation metaInformation ,
477+ String fullFilePath ) {
449478 this (metaInformation .getUuid (), metaInformation .getColumnScheme (), fullFilePath );
450479 }
451480
0 commit comments