diff --git a/_alp/Agents/EnergyCoop/AOC.EnergyCoop.xml b/_alp/Agents/EnergyCoop/AOC.EnergyCoop.xml
index e7981c8..63bdbb9 100644
--- a/_alp/Agents/EnergyCoop/AOC.EnergyCoop.xml
+++ b/_alp/Agents/EnergyCoop/AOC.EnergyCoop.xml
@@ -54,7 +54,8 @@ fm_currentConsumptionFlows_kW = new J_FlowsMap();
fm_currentBalanceFlows_kW = new J_FlowsMap();
fm_heatFromEnergyCarrier_kW = new J_FlowsMap();
fm_consumptionForHeating_kW = new J_FlowsMap();
-fm_currentAssetFlows_kW = new J_ValueMap(OL_AssetFlowCategories.class);]]>
+fm_currentAssetFlows_kW = new J_ValueMap(OL_AssetFlowCategories.class);
+]]>
false
1660731375014
diff --git a/_alp/Agents/EnergyCoop/Code/Functions.java b/_alp/Agents/EnergyCoop/Code/Functions.java
index f4f8ee3..93b86ab 100644
--- a/_alp/Agents/EnergyCoop/Code/Functions.java
+++ b/_alp/Agents/EnergyCoop/Code/Functions.java
@@ -595,6 +595,7 @@
}
}
+
acc_totalOwnElectricityProduction_kW = new ZeroAccumulator(true, timeParameters.getTimeStep_h(), 8760);
acc_totalCustomerDelivery_kW = new ZeroAccumulator(true, timeParameters.getTimeStep_h(), 8760);
acc_totalCustomerFeedIn_kW = new ZeroAccumulator(true, timeParameters.getTimeStep_h(), 8760);
@@ -1425,8 +1426,14 @@ HashSet f_getAllChildCustomerGridConnections_recursion(HashSet f_getAllChildCustomerGridConnections_recursion(HashSet f_getAllChildCustomerGridConnections_recursion(HashSetdouble
1753348770752
- true
980
70
diff --git a/_alp/Agents/EnergyDataViewer/Code/Functions.java b/_alp/Agents/EnergyDataViewer/Code/Functions.java
index deb00cb..4dee4f0 100644
--- a/_alp/Agents/EnergyDataViewer/Code/Functions.java
+++ b/_alp/Agents/EnergyDataViewer/Code/Functions.java
@@ -382,7 +382,7 @@
*/
// Other
v_dataNetLoadWinterWeek_kW = data.getRapidRunData().am_winterWeekBalanceAccumulators_kW.get(OL_EnergyCarriers.ELECTRICITY).getDataSet(winterWeekStartTime_h);
-v_dataBatterySOCSummerWeek_fr = new DataSet((int) (168 / timeParameters.getTimeStep_h()));
+v_dataBatterySOCWinterWeek_fr = new DataSet((int) (168 / timeParameters.getTimeStep_h()));
DataSet winterWeekBatteryStorage = data.getRapidRunData().ts_winterWeekBatteriesStoredEnergy_MWh.getDataSet(winterWeekStartTime_h);
for (int i = 0; i < winterWeekBatteryStorage.size(); i++) {
// Get the x and y values from the source dataset
diff --git a/_alp/Agents/EnergyModel/AOC.EnergyModel.xml b/_alp/Agents/EnergyModel/AOC.EnergyModel.xml
index 77e43f0..84f6d0d 100644
--- a/_alp/Agents/EnergyModel/AOC.EnergyModel.xml
+++ b/_alp/Agents/EnergyModel/AOC.EnergyModel.xml
@@ -185,30 +185,6 @@ fm_currentAssetFlows_kW = new J_ValueMap(OL_AssetFlowCategories.class);]]>NONE
END
-
- 1696520909218
-
- true
- 40
- -180
-
- false
- true
- true
- false
- COLLECTION_OF_LINKS
- false
- Object
- SOLID
- 1
- -16777216
- UNDER_AGENTS
- NONE
- END
-
diff --git a/_alp/Agents/EnergyModel/Code/Functions.java b/_alp/Agents/EnergyModel/Code/Functions.java
index d7e5cd9..933dd5b 100644
--- a/_alp/Agents/EnergyModel/Code/Functions.java
+++ b/_alp/Agents/EnergyModel/Code/Functions.java
@@ -1059,6 +1059,8 @@ EnergyCoop f_addProductionEnergyCarrier(OL_EnergyCarriers EC)
fm_currentConsumptionFlows_kW = new J_FlowsMap();
fm_currentBalanceFlows_kW = new J_FlowsMap();
fm_currentAssetFlows_kW = new J_ValueMap(OL_AssetFlowCategories.class);
+fm_heatFromEnergyCarrier_kW = new J_FlowsMap();
+fm_consumptionForHeating_kW = new J_FlowsMap();
// Reconstruct the LiveData class in the EnergyCoops
for (EnergyCoop ec : pop_energyCoops) {
@@ -1076,6 +1078,9 @@ EnergyCoop f_addProductionEnergyCarrier(OL_EnergyCarriers EC)
ec.fm_currentConsumptionFlows_kW = new J_FlowsMap();
ec.fm_currentBalanceFlows_kW = new J_FlowsMap();
ec.fm_currentAssetFlows_kW = new J_ValueMap(OL_AssetFlowCategories.class);
+ ec.fm_heatFromEnergyCarrier_kW = new J_FlowsMap();
+ ec.fm_consumptionForHeating_kW = new J_FlowsMap();
+ ec.f_startAfterDeserialisation(p_timeParameters);
}
// Reconstruct the LiveData class in the GridConnections and add EnergyCarriers
@@ -1096,7 +1101,8 @@ EnergyCoop f_addProductionEnergyCarrier(OL_EnergyCarriers EC)
gc.fm_currentConsumptionFlows_kW = new J_FlowsMap();
gc.fm_currentBalanceFlows_kW = new J_FlowsMap();
gc.fm_currentAssetFlows_kW = new J_ValueMap(OL_AssetFlowCategories.class);
-
+ gc.fm_heatFromEnergyCarrier_kW = new J_FlowsMap();
+ gc.fm_consumptionForHeating_kW = new J_FlowsMap();
/*for (J_EA j_ea : gc.c_energyAssets) {
gc.f_addEnergyCarriersAndAssetCategoriesFromEA(j_ea);
}*/
diff --git a/_alp/Classes/Class.I_AssetOwner.java b/_alp/Classes/Class.I_AssetOwner.java
index 9bd9c14..3afd7d0 100644
--- a/_alp/Classes/Class.I_AssetOwner.java
+++ b/_alp/Classes/Class.I_AssetOwner.java
@@ -1,3 +1,15 @@
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
+
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.CLASS,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "type" // 👈 this will be the field name in your JSON
+ )
+
public interface I_AssetOwner
{
void f_connectToJ_EA(J_EA ea, J_TimeParameters timeParameters);
diff --git a/_alp/Classes/Class.I_ChargePointRegistration.java b/_alp/Classes/Class.I_ChargePointRegistration.java
index 89fa6be..d6e3bba 100644
--- a/_alp/Classes/Class.I_ChargePointRegistration.java
+++ b/_alp/Classes/Class.I_ChargePointRegistration.java
@@ -1,3 +1,16 @@
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
+
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.CLASS,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "type" // 👈 this will be the field name in your JSON
+ )
+
+
public interface I_ChargePointRegistration
{
public void registerChargingRequest(I_ChargingRequest chargingRequest);
diff --git a/_alp/Classes/Class.I_ChargingRequest.java b/_alp/Classes/Class.I_ChargingRequest.java
index be6de61..a3e34b3 100644
--- a/_alp/Classes/Class.I_ChargingRequest.java
+++ b/_alp/Classes/Class.I_ChargingRequest.java
@@ -1,6 +1,19 @@
/**
* I_ChargingRequest
*/
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
+
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.CLASS,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "type" // 👈 this will be the field name in your JSON
+ )
+
+
public interface I_ChargingRequest {
// The maximal capacity for the vehicle
diff --git a/_alp/Classes/Class.I_HeatingAsset.java b/_alp/Classes/Class.I_HeatingAsset.java
index 48cb56b..a6b02da 100644
--- a/_alp/Classes/Class.I_HeatingAsset.java
+++ b/_alp/Classes/Class.I_HeatingAsset.java
@@ -1,3 +1,16 @@
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
+
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.CLASS,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "type" // 👈 this will be the field name in your JSON
+ )
+
+
public interface I_HeatingAsset
{
public J_FlowsMap get_heatFromEnergyCarrier_kW(); // Map with a single entry for the energycarrier that is 'burned'
diff --git a/_alp/Classes/Class.I_Vehicle.java b/_alp/Classes/Class.I_Vehicle.java
index 26b3b42..042fedd 100644
--- a/_alp/Classes/Class.I_Vehicle.java
+++ b/_alp/Classes/Class.I_Vehicle.java
@@ -1,3 +1,16 @@
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
+
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.CLASS,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "type" // 👈 this will be the field name in your JSON
+ )
+
+
public interface I_Vehicle
{
// These methods can't have default implementations because they use the Object States.
diff --git a/_alp/Classes/Class.J_ChargePoint.java b/_alp/Classes/Class.J_ChargePoint.java
index a1582cb..c14e4c0 100644
--- a/_alp/Classes/Class.J_ChargePoint.java
+++ b/_alp/Classes/Class.J_ChargePoint.java
@@ -1,6 +1,20 @@
/**
* J_ChargePoint
*/
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+
+@JsonAutoDetect(
+ fieldVisibility = Visibility.ANY, //
+ getterVisibility = Visibility.NONE,
+ isGetterVisibility = Visibility.NONE,
+ setterVisibility = Visibility.NONE,
+ creatorVisibility = Visibility.NONE
+)
+@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
+
public class J_ChargePoint implements I_ChargePointRegistration{
private boolean hasSocketRestrictions;
@@ -15,6 +29,12 @@ public class J_ChargePoint implements I_ChargePointRegistration{
private List storedActiveChargingRequests = null;
+ /**
+ * Constructor for (de-)serialisation
+ */
+ public J_ChargePoint() {
+ };
+
/**
* Default constructor
* No restrictions on sockets
diff --git a/_alp/Classes/Class.J_ChargingManagementGridBalancing.java b/_alp/Classes/Class.J_ChargingManagementGridBalancing.java
index d34ec38..cf93051 100644
--- a/_alp/Classes/Class.J_ChargingManagementGridBalancing.java
+++ b/_alp/Classes/Class.J_ChargingManagementGridBalancing.java
@@ -24,6 +24,9 @@ public class J_ChargingManagementGridBalancing implements I_ChargingManagement {
/**
* Default constructor
*/
+ public J_ChargingManagementGridBalancing( ) {
+ }
+
public J_ChargingManagementGridBalancing( GridConnection gc, J_TimeParameters timeParameters) {
this.gc = gc;
this.timeParameters = timeParameters;
diff --git a/_alp/Classes/Class.J_ChargingManagementLocalBalancing.java b/_alp/Classes/Class.J_ChargingManagementLocalBalancing.java
index 93f8424..31d6b67 100644
--- a/_alp/Classes/Class.J_ChargingManagementLocalBalancing.java
+++ b/_alp/Classes/Class.J_ChargingManagementLocalBalancing.java
@@ -29,7 +29,10 @@ public class J_ChargingManagementLocalBalancing implements I_ChargingManagement
/**
* Default constructor
*/
- public J_ChargingManagementLocalBalancing( GridConnection gc, J_TimeParameters timeParameters ) {
+ public J_ChargingManagementLocalBalancing( ) {
+ }
+
+ public J_ChargingManagementLocalBalancing( GridConnection gc, J_TimeParameters timeParameters) {
this.gc = gc;
this.timeParameters = timeParameters;
this.filterDiffGain_r = 1/(filterTimeScale_h/timeParameters.getTimeStep_h());
diff --git a/_alp/Classes/Class.J_ChargingManagementMaxAvailablePower.java b/_alp/Classes/Class.J_ChargingManagementMaxAvailablePower.java
index 687c35b..68ea61f 100644
--- a/_alp/Classes/Class.J_ChargingManagementMaxAvailablePower.java
+++ b/_alp/Classes/Class.J_ChargingManagementMaxAvailablePower.java
@@ -23,7 +23,11 @@ public class J_ChargingManagementMaxAvailablePower implements I_ChargingManageme
/**
* Default constructor
*/
- public J_ChargingManagementMaxAvailablePower( GridConnection gc, J_TimeParameters timeParameters ) {
+ public J_ChargingManagementMaxAvailablePower( ) {
+
+ }
+
+ public J_ChargingManagementMaxAvailablePower( GridConnection g, J_TimeParameters timeParametersc) {
this.gc = gc;
this.timeParameters = timeParameters;
}
diff --git a/_alp/Classes/Class.J_ChargingManagementOffPeak.java b/_alp/Classes/Class.J_ChargingManagementOffPeak.java
index fd3d210..83b9bd0 100644
--- a/_alp/Classes/Class.J_ChargingManagementOffPeak.java
+++ b/_alp/Classes/Class.J_ChargingManagementOffPeak.java
@@ -33,7 +33,10 @@ public class J_ChargingManagementOffPeak implements I_ChargingManagement {
/**
* Default constructor
*/
- public J_ChargingManagementOffPeak( GridConnection gc, J_TimeParameters timeParameters ) {
+ public J_ChargingManagementOffPeak( ) {
+ }
+
+ public J_ChargingManagementOffPeak( GridConnection gc, J_TimeParameters timeParameters) {
this.gc = gc;
this.timeParameters = timeParameters;
this.filterDiffGain_r = 1/(filterTimeScale_h/timeParameters.getTimeStep_h());
diff --git a/_alp/Classes/Class.J_ChargingManagementPrice.java b/_alp/Classes/Class.J_ChargingManagementPrice.java
index b58886a..c91eb85 100644
--- a/_alp/Classes/Class.J_ChargingManagementPrice.java
+++ b/_alp/Classes/Class.J_ChargingManagementPrice.java
@@ -29,6 +29,9 @@ public class J_ChargingManagementPrice implements I_ChargingManagement {
/**
* Default constructor
*/
+ public J_ChargingManagementPrice( ) {
+ }
+
public J_ChargingManagementPrice( GridConnection gc, J_TimeParameters timeParameters) {
this.gc = gc;
this.timeParameters = timeParameters;
diff --git a/_alp/Classes/Class.J_ChargingManagementSimple.java b/_alp/Classes/Class.J_ChargingManagementSimple.java
index fdc9d0d..28ea3ad 100644
--- a/_alp/Classes/Class.J_ChargingManagementSimple.java
+++ b/_alp/Classes/Class.J_ChargingManagementSimple.java
@@ -24,6 +24,10 @@ public class J_ChargingManagementSimple implements I_ChargingManagement {
/**
* Default constructor
*/
+ public J_ChargingManagementSimple( ) {
+
+ }
+
public J_ChargingManagementSimple( GridConnection gc, J_TimeParameters timeParameters) {
this.gc = gc;
this.timeParameters = timeParameters;
diff --git a/_alp/Classes/Class.J_ChargingSessionData.java b/_alp/Classes/Class.J_ChargingSessionData.java
index 24e9952..a5ecd8b 100644
--- a/_alp/Classes/Class.J_ChargingSessionData.java
+++ b/_alp/Classes/Class.J_ChargingSessionData.java
@@ -1,6 +1,21 @@
/**
* J_ChargingSessionData
*/
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+
+@JsonAutoDetect(
+ fieldVisibility = Visibility.ANY, //
+ getterVisibility = Visibility.NONE,
+ isGetterVisibility = Visibility.NONE,
+ setterVisibility = Visibility.NONE,
+ creatorVisibility = Visibility.NONE
+)
+@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
+
public class J_ChargingSessionData {
private double startTime_h;
private double endTime_h;
@@ -18,7 +33,13 @@ public class J_ChargingSessionData {
private boolean V2GCapableOverride = true;
/**
- * Default constructor
+ * Constructor for (de-)serialisation
+ */
+ public J_ChargingSessionData() {
+ }
+
+ /**
+ * Default constructor initializing the fields
*/
public J_ChargingSessionData(double startTime_quarterhours, double endTime_quarterhours, double chargingDemand_kWh, double batterySize_kWh, double chargingPower_kW, int socketNb, boolean V2GCapable, double timeStep_h) {
diff --git a/_alp/Classes/Class.J_EAChargingSession.java b/_alp/Classes/Class.J_EAChargingSession.java
index 8bd7589..4bea6ac 100644
--- a/_alp/Classes/Class.J_EAChargingSession.java
+++ b/_alp/Classes/Class.J_EAChargingSession.java
@@ -36,8 +36,14 @@ public class J_EAChargingSession extends zero_engine.J_EAFlex implements I_Charg
private int storedNextSessionIndex;
/**
- * Default constructor
+ * Constructor for (de-)serialisation
*/
+ public J_EAChargingSession() {
+ }
+
+ /**
+ * Default constructor initializing the fields
+ */
public J_EAChargingSession(I_AssetOwner owner, List chargingSessionDataList, int socketNb, J_TimeParameters timeParameters) {
this.setOwner(owner);
this.timeParameters = timeParameters;
diff --git a/_alp/Classes/Class.J_HeatingManagementPIcontrolHybridHeatpump.java b/_alp/Classes/Class.J_HeatingManagementPIcontrolHybridHeatpump.java
index 3328050..bdb8fd3 100644
--- a/_alp/Classes/Class.J_HeatingManagementPIcontrolHybridHeatpump.java
+++ b/_alp/Classes/Class.J_HeatingManagementPIcontrolHybridHeatpump.java
@@ -3,6 +3,8 @@
*/
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
@JsonAutoDetect(
fieldVisibility = Visibility.ANY, //
@@ -12,6 +14,7 @@
creatorVisibility = Visibility.NONE
)
+@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
public class J_HeatingManagementPIcontrolHybridHeatpump implements I_HeatingManagement{
private boolean isInitialized = false;
private GridConnection gc;
diff --git a/_alp/Classes/Class.J_TimeParameters.java b/_alp/Classes/Class.J_TimeParameters.java
index ad088e4..76e4198 100644
--- a/_alp/Classes/Class.J_TimeParameters.java
+++ b/_alp/Classes/Class.J_TimeParameters.java
@@ -1,5 +1,21 @@
import java.time.LocalDate;
import java.time.DayOfWeek;
+import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@JsonAutoDetect(
+ fieldVisibility = Visibility.ANY, // also stores full profiles to file. Maybe arrange a way to 'skip' this?
+ getterVisibility = Visibility.NONE,
+ isGetterVisibility = Visibility.NONE,
+ setterVisibility = Visibility.NONE,
+ creatorVisibility = Visibility.NONE
+)
+@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
+
/**
* J_TimeParameters
*/
@@ -37,6 +53,33 @@ public J_TimeParameters(
this.startOfWinterWeek_h = roundToInt(24 * (winterWeekNumber * 7 + (8-dayOfWeek1jan)%7));
}
+ // Creator for deserialisation. (needed because of final fields!)
+ @JsonCreator
+ public J_TimeParameters(
+ @JsonProperty("timeStep_h") double timeStep_h,
+ @JsonProperty("startYear") int startYear,
+ @JsonProperty("hourOfYearPerMonth") double[] hourOfYearPerMonth,
+ @JsonProperty("dayOfWeek1jan") int dayOfWeek1jan,
+ @JsonProperty("runStartTime_h") double runStartTime_h,
+ @JsonProperty("runEndTime_h") double runEndTime_h,
+ @JsonProperty("summerWeekNumber") int summerWeekNumber,
+ @JsonProperty("winterWeekNumber") int winterWeekNumber,
+ @JsonProperty("startOfSummerWeek_h") double startOfSummerWeek_h,
+ @JsonProperty("startOfWinterWeek_h") double startOfWinterWeek_h
+ ) {
+ this(timeStep_h, startYear, hourOfYearPerMonth, runStartTime_h, runEndTime_h, summerWeekNumber, winterWeekNumber);
+ /*this.timeStep_h = timeStep_h;
+ this.startYear = startYear;
+ this.hourOfYearPerMonth = hourOfYearPerMonth;
+ this.runStartTime_h = runStartTime_h;
+ this.runEndTime_h = runEndTime_h;
+ this.summerWeekNumber = summerWeekNumber;
+ this.winterWeekNumber = winterWeekNumber;
+ this.dayOfWeek1jan = DayOfWeek.from(LocalDate.of(startYear, 1, 1)).getValue();
+ this.startOfSummerWeek_h = roundToInt(24 * (summerWeekNumber * 7 + (8-dayOfWeek1jan)%7));
+ this.startOfWinterWeek_h = roundToInt(24 * (winterWeekNumber * 7 + (8-dayOfWeek1jan)%7));*/
+ }
+
////Time Parameter getters
public double getTimeStep_h() {
return timeStep_h;
diff --git a/_alp/Classes/Class.J_TimeVariables.java b/_alp/Classes/Class.J_TimeVariables.java
index 0a9d5b1..1ca2964 100644
--- a/_alp/Classes/Class.J_TimeVariables.java
+++ b/_alp/Classes/Class.J_TimeVariables.java
@@ -1,6 +1,22 @@
/**
* J_TimeVariables
*/
+import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+//import com.fasterxml.jackson.annotation.JsonProperty;
+
+
+@JsonAutoDetect(
+ fieldVisibility = Visibility.ANY, // also stores full profiles to file. Maybe arrange a way to 'skip' this?
+ getterVisibility = Visibility.NONE,
+ isGetterVisibility = Visibility.NONE,
+ setterVisibility = Visibility.NONE,
+ creatorVisibility = Visibility.NONE
+ )
+ @JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
+
public final class J_TimeVariables {
////Time Variables -> Updated every timestep
private double t_h; //Current energymodel runtime: t_h = 0, corresponds to 'jan 1 0:00' of the start year
@@ -19,6 +35,10 @@ public final class J_TimeVariables {
/**
* Default constructor
*/
+ public J_TimeVariables() {
+
+ }
+
public J_TimeVariables(int v_timeStepsElapsed, J_TimeParameters timeParameters){
updateTimeVariables(v_timeStepsElapsed, timeParameters);
}