Skip to content

Commit 8ad0a66

Browse files
committed
Fixing sonarqube issues.
1 parent 0d730e2 commit 8ad0a66

File tree

5 files changed

+98
-13
lines changed

5 files changed

+98
-13
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* © 2024. TU Dortmund University,
3+
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
4+
* Research group Distribution grid planning and operation
5+
*/
6+
package edu.ie3.datamodel.io.factory.timeseries;
7+
8+
import edu.ie3.datamodel.io.factory.FactoryData;
9+
import edu.ie3.datamodel.models.value.load.LoadValues;
10+
import java.util.Map;
11+
12+
/**
13+
* Data, that is used to build a {@link
14+
* edu.ie3.datamodel.models.timeseries.repetitive.LoadProfileEntry} within a factory
15+
*
16+
* @param <V> Type of load values class
17+
*/
18+
public class LoadProfileData<V extends LoadValues> extends FactoryData {
19+
public LoadProfileData(Map<String, String> fieldsToAttributes, Class<V> targetClass) {
20+
super(fieldsToAttributes, targetClass);
21+
}
22+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
* © 2024. TU Dortmund University,
3+
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
4+
* Research group Distribution grid planning and operation
5+
*/
6+
package edu.ie3.datamodel.io.factory.timeseries;
7+
8+
import edu.ie3.datamodel.io.factory.Factory;
9+
import edu.ie3.datamodel.io.naming.timeseries.LoadProfileMetaInformation;
10+
import edu.ie3.datamodel.models.profile.LoadProfile;
11+
import edu.ie3.datamodel.models.timeseries.repetitive.LoadProfileEntry;
12+
import edu.ie3.datamodel.models.timeseries.repetitive.LoadProfileTimeSeries;
13+
import edu.ie3.datamodel.models.value.load.LoadValues;
14+
import edu.ie3.util.quantities.PowerSystemUnits;
15+
import java.util.Set;
16+
import javax.measure.quantity.Energy;
17+
import javax.measure.quantity.Power;
18+
import tech.units.indriya.ComparableQuantity;
19+
import tech.units.indriya.quantity.Quantities;
20+
21+
/**
22+
* Base factory for all {@link LoadProfileTimeSeries}.
23+
*
24+
* @param <P> type of load profile
25+
* @param <V> type of load values
26+
*/
27+
public abstract class LoadProfileFactory<P extends LoadProfile, V extends LoadValues>
28+
extends Factory<V, LoadProfileData<V>, LoadProfileEntry<V>> {
29+
protected static final String QUARTER_HOUR = "quarterHour";
30+
31+
public LoadProfileFactory(Class<? extends V> valueClass) {
32+
super(valueClass);
33+
}
34+
35+
public abstract LoadProfileTimeSeries<V> build(
36+
LoadProfileMetaInformation metaInformation, Set<LoadProfileEntry<V>> entries);
37+
38+
public abstract P parseProfile(String profile);
39+
40+
/**
41+
* Calculates the maximum average power consumption per quarter-hour for a given calculated over
42+
* all seasons and weekday types of given load profile
43+
*
44+
* @param loadProfile given load profile
45+
* @param entries with power values
46+
* @return the maximal average power
47+
*/
48+
public abstract ComparableQuantity<Power> calculateMaxPower(
49+
P loadProfile, Set<LoadProfileEntry<V>> entries);
50+
51+
/** Returns the quarter-hour field. */
52+
public String getTimeFieldString() {
53+
return QUARTER_HOUR;
54+
}
55+
56+
/** Returns the load profile energy scaling. The default value is 1000 kWh */
57+
public ComparableQuantity<Energy> getLoadProfileEnergyScaling(P loadProfile) {
58+
return Quantities.getQuantity(1000, PowerSystemUnits.KILOWATTHOUR);
59+
}
60+
}

src/main/java/edu/ie3/datamodel/io/sink/SqlSink.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -400,10 +400,8 @@ private static String basicInsertQuery(String schemaName, String tableName) {
400400
private String basicInsertQueryValuesGrid(
401401
String schemaName, String tableName, String[] headerElements) {
402402
String[] addParams = {DbGridMetadata.GRID_UUID_COLUMN};
403-
return basicInsertQuery(schemaName, tableName)
404-
+ " "
405-
+ writeOneLine(StringUtils.camelCaseToSnakeCase(headerElements), addParams)
406-
+ "\nVALUES\n";
403+
return basicInsertQueryWith(
404+
schemaName, tableName, StringUtils.camelCaseToSnakeCase(headerElements), addParams);
407405
}
408406

409407
/**
@@ -413,16 +411,21 @@ private String basicInsertQueryValuesGrid(
413411
private String basicInsertQueryValuesITS(
414412
String schemaName, String tableName, String[] headerElements) {
415413
String[] addParams = {DbGridMetadata.GRID_UUID_COLUMN, TIME_SERIES};
416-
return basicInsertQuery(schemaName, tableName)
417-
+ " "
418-
+ writeOneLine(StringUtils.camelCaseToSnakeCase(headerElements), addParams)
419-
+ "\nVALUES\n";
414+
return basicInsertQueryWith(
415+
schemaName, tableName, StringUtils.camelCaseToSnakeCase(headerElements), addParams);
420416
}
421417

422418
/** Provides the insert, column names, grid identifier, and the VALUES statement for a query. */
423419
private String basicInsertQueryValuesLPTS(
424420
String schemaName, String tableName, String[] headerElements) {
425421
String[] addParams = {DbGridMetadata.GRID_UUID_COLUMN, LOAD_PROFILE};
422+
return basicInsertQueryWith(
423+
schemaName, tableName, StringUtils.camelCaseToSnakeCase(headerElements), addParams);
424+
}
425+
426+
/** Provides the insert, column names, grid identifier, and the VALUES statement for a query */
427+
private String basicInsertQueryWith(
428+
String schemaName, String tableName, String[] headerElements, String[] addParams) {
426429
return basicInsertQuery(schemaName, tableName)
427430
+ " "
428431
+ writeOneLine(StringUtils.camelCaseToSnakeCase(headerElements), addParams)

src/main/java/edu/ie3/datamodel/io/source/sql/SqlTimeSeriesMetaInformationSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ private Optional<IndividualTimeSeriesMetaInformation> createEntity(
9696
new EntityData(fieldToValues, IndividualTimeSeriesMetaInformation.class);
9797
return mappingFactory
9898
.get(entityData)
99-
.map(meta -> (IndividualTimeSeriesMetaInformation) meta)
99+
.map(IndividualTimeSeriesMetaInformation.class::cast)
100100
.getData();
101101
}
102102
}

src/main/java/edu/ie3/datamodel/models/timeseries/repetitive/LoadProfileTimeSeries.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,17 @@ public class LoadProfileTimeSeries<V extends LoadValues>
2828
* The maximum average power consumption per quarter-hour for a given calculated over all seasons
2929
* and weekday types of given load profile.
3030
*/
31-
public final Optional<ComparableQuantity<Power>> maxPower;
31+
public final ComparableQuantity<Power> maxPower;
3232

3333
/** The profile energy scaling in kWh. */
34-
public final Optional<ComparableQuantity<Energy>> profileEnergyScaling;
34+
public final ComparableQuantity<Energy> profileEnergyScaling;
3535

3636
public LoadProfileTimeSeries(
3737
UUID uuid,
3838
LoadProfile loadProfile,
3939
Set<LoadProfileEntry<V>> entries,
40-
Optional<ComparableQuantity<Power>> maxPower,
41-
Optional<ComparableQuantity<Energy>> profileEnergyScaling) {
40+
ComparableQuantity<Power> maxPower,
41+
ComparableQuantity<Energy> profileEnergyScaling) {
4242
super(uuid, entries);
4343
this.loadProfile = loadProfile;
4444
this.valueMapping =

0 commit comments

Comments
 (0)