Skip to content

Commit 9582b15

Browse files
authored
Merge pull request #94 from matsim-vsp/kmt_fix-LSPShipment-is-same-object
ShipmentPlan: reference via ShipmentId instead of the object...
2 parents 7743914 + 7cf82ed commit 9582b15

File tree

58 files changed

+191
-144
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+191
-144
lines changed

src/main/java/example/lsp/initialPlans/ExampleSchedulingOfInitialPlan.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ public static void main(String[] args) {
165165
System.out.println("Shipment: " + shipment.getId());
166166
ArrayList<ShipmentPlanElement> scheduleElements = new ArrayList<>(shipment.getShipmentPlan().getPlanElements().values());
167167
scheduleElements.sort(ShipmentUtils.createShipmentPlanElementComparator());
168-
ArrayList<ShipmentPlanElement> logElements = new ArrayList<>(shipment.getLog().getPlanElements().values());
168+
ArrayList<ShipmentPlanElement> logElements = new ArrayList<>(shipment.getShipmentLog().getPlanElements().values());
169169
logElements.sort(ShipmentUtils.createShipmentPlanElementComparator());
170170

171171
for (ShipmentPlanElement element : shipment.getShipmentPlan().getPlanElements().values()) {

src/main/java/example/lsp/lspReplanning/ExampleLSPReplanning.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,11 +220,11 @@ public static void main(String[] args) {
220220
controler.run();
221221

222222
System.out.println("Shipments delivered today:");
223-
for (LSPShipment shipment : lsp.getSelectedPlan().getLogisticChains().iterator().next().getShipments()) {
224-
System.out.println(shipment.getId());
223+
for (Id<LSPShipment> lspShipmentId : lsp.getSelectedPlan().getLogisticChains().iterator().next().getShipmentIds()) {
224+
System.out.println(lspShipmentId);
225225
}
226226

227-
lsp.getShipments().removeAll(lsp.getSelectedPlan().getLogisticChains().iterator().next().getShipments());
227+
lsp.getShipments().removeAll(lsp.getSelectedPlan().getLogisticChains().iterator().next().getShipmentIds());
228228

229229
System.out.println("Shipments delivered tomorrow:");
230230
for (LSPShipment shipment : lsp.getShipments()) {

src/main/java/example/lsp/mobsimExamples/ExampleMobsimOfSimpleLSP.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,14 +103,14 @@ public void install() {
103103
System.out.println("Shipment: " + shipment.getId());
104104
ArrayList<ShipmentPlanElement> scheduleElements = new ArrayList<>(shipment.getShipmentPlan().getPlanElements().values());
105105
scheduleElements.sort(ShipmentUtils.createShipmentPlanElementComparator());
106-
ArrayList<ShipmentPlanElement> logElements = new ArrayList<>(shipment.getLog().getPlanElements().values());
106+
ArrayList<ShipmentPlanElement> logElements = new ArrayList<>(shipment.getShipmentLog().getPlanElements().values());
107107
logElements.sort(ShipmentUtils.createShipmentPlanElementComparator());
108108

109109
for (int i = 0; i < shipment.getShipmentPlan().getPlanElements().size(); i++) {
110110
System.out.println("Scheduled: " + scheduleElements.get(i).getLogisticChainElement().getId() + " " + scheduleElements.get(i).getResourceId() + " " + scheduleElements.get(i).getElementType() + " Start: " + scheduleElements.get(i).getStartTime() + " End: " + scheduleElements.get(i).getEndTime());
111111
}
112112
System.out.println();
113-
for (int i = 0; i < shipment.getLog().getPlanElements().size(); i++) {
113+
for (int i = 0; i < shipment.getShipmentLog().getPlanElements().size(); i++) {
114114
System.out.println("Logged: " + logElements.get(i).getLogisticChainElement().getId() + " " + logElements.get(i).getResourceId() + " " + logElements.get(i).getElementType() + " Start: " + logElements.get(i).getStartTime() + " End: " + logElements.get(i).getEndTime());
115115
}
116116
System.out.println();

src/main/java/example/lsp/mobsimExamples/ExampleMobsimOfTransportChain.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -335,14 +335,14 @@ public void install() {
335335
System.out.println("Shipment: " + shipment.getId());
336336
ArrayList<ShipmentPlanElement> scheduleElements = new ArrayList<>(shipment.getShipmentPlan().getPlanElements().values());
337337
scheduleElements.sort(ShipmentUtils.createShipmentPlanElementComparator());
338-
ArrayList<ShipmentPlanElement> logElements = new ArrayList<>(shipment.getLog().getPlanElements().values());
338+
ArrayList<ShipmentPlanElement> logElements = new ArrayList<>(shipment.getShipmentLog().getPlanElements().values());
339339
logElements.sort(ShipmentUtils.createShipmentPlanElementComparator());
340340

341341
for (int i = 0; i < shipment.getShipmentPlan().getPlanElements().size(); i++) {
342342
System.out.println("Scheduled: " + scheduleElements.get(i).getLogisticChainElement().getId() + " " + scheduleElements.get(i).getResourceId() + " " + scheduleElements.get(i).getElementType() + " Start: " + scheduleElements.get(i).getStartTime() + " End: " + scheduleElements.get(i).getEndTime());
343343
}
344344
System.out.println();
345-
for (int i = 0; i < shipment.getLog().getPlanElements().size(); i++) {
345+
for (int i = 0; i < shipment.getShipmentLog().getPlanElements().size(); i++) {
346346
System.out.println("Logged: " + logElements.get(i).getLogisticChainElement().getId() + " " + logElements.get(i).getResourceId() + " " + logElements.get(i).getElementType() + " Start: " + logElements.get(i).getStartTime() + " End: " + logElements.get(i).getEndTime());
347347
}
348348
System.out.println();

src/main/java/example/lspAndDemand/requirementsChecking/ExampleCheckRequirementsOfAssigner.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,15 +199,17 @@ public static void main(String[] args) {
199199

200200
for (LogisticChain solution : lsp.getSelectedPlan().getLogisticChains()) {
201201
if (solution.getId().toString().equals("RedSolution")) {
202-
for (LSPShipment shipment : solution.getShipments()) {
202+
for (Id<LSPShipment> shipmentId : solution.getShipmentIds()) {
203+
LSPShipment shipment = LSPUtils.findLspShipment(lsp, shipmentId);
203204
if (!(shipment.getRequirements().iterator().next() instanceof RedRequirement)) {
204205
break;
205206
}
206207
}
207208
System.out.println("All shipments in " + solution.getId() + " are red");
208209
}
209210
if (solution.getId().toString().equals("BlueSolution")) {
210-
for (LSPShipment shipment : solution.getShipments()) {
211+
for (Id<LSPShipment> shipmentId : solution.getShipmentIds()) {
212+
LSPShipment shipment = LSPUtils.findLspShipment(lsp, shipmentId);
211213
if (!(shipment.getRequirements().iterator().next() instanceof BlueRequirement)) {
212214
break;
213215
}

src/main/java/lsp/ForwardLogisticChainSchedulerImpl.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
package lsp;
2222

2323
import lsp.shipment.LSPShipment;
24+
import org.matsim.api.core.v01.Id;
2425

2526
import java.util.ArrayList;
2627

@@ -128,7 +129,10 @@ private boolean noSuccessorAlreadyScheduled(ResourceNeighbours neighbours) {
128129
private void insertShipmentsAtBeginning() {
129130
for (LogisticChain solution : lsp.getSelectedPlan().getLogisticChains()) {
130131
LogisticChainElement firstElement = getFirstElement(solution);
131-
for (LSPShipment shipment : solution.getShipments()) {
132+
assert firstElement != null;
133+
for (Id<LSPShipment> lspShipmentId : solution.getShipmentIds()) {
134+
var shipment = LSPUtils.findLspShipment(lsp, lspShipmentId);
135+
assert shipment != null;
132136
firstElement.getIncomingShipments().addShipment(shipment.getPickupTimeWindow().getStart(), shipment);
133137
}
134138
}

src/main/java/lsp/LSPImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ public void scoreSelectedPlan() {
146146

147147
@Override
148148
public void assignShipmentToLSP(LSPShipment shipment) {
149+
// shipment.setLspId(this.getId()); // und rückweg dann auch darüber und dann lsp.getselectedPlan.getShipment...
149150
shipments.add(shipment);
150151
selectedPlan.getAssigner().assignToLogisticChain(shipment);
151152
}

src/main/java/lsp/LSPPlanXmlParserV1.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ public void endTag(String name, String content, Stack<String> context) {
345345
}
346346

347347
for (LSPShipment lspShipment : currentLsp.getShipments()) {
348-
logisticChain.getShipments().add(lspShipment);
348+
logisticChain.getShipmentIds().add(lspShipment.getId());
349349
}
350350

351351
final ShipmentAssigner singleSolutionShipmentAssigner = UsecaseUtils.createSingleLogisticChainShipmentAssigner();

src/main/java/lsp/LSPPlanXmlWriter.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import lsp.usecase.TransshipmentHub;
2626
import org.apache.logging.log4j.LogManager;
2727
import org.apache.logging.log4j.Logger;
28+
import org.matsim.api.core.v01.Id;
2829
import org.matsim.core.gbl.Gbl;
2930
import org.matsim.core.utils.collections.Tuple;
3031
import org.matsim.core.utils.io.MatsimXmlWriter;
@@ -180,8 +181,9 @@ private void writePlans(LSP lsp, BufferedWriter writer) throws IOException {
180181
writer.write("\t\t\t\t\t\t</" + LOGISTIC_CHAIN + ">\n");
181182
writer.write("\t\t\t\t\t</" + LOGISTIC_CHAINS + ">\n");
182183
writer.write("\t\t\t\t\t<" + SHIPMENT_PLANS + ">\n");
183-
for (LSPShipment shipment : logisticChain.getShipments()) {
184-
writer.write("\t\t\t\t\t\t<" + SHIPMENT_PLAN + " " + SHIPMENT_ID + "=\"" + shipment.getId() + "\">\n");
184+
for (Id<LSPShipment> shipmentId : logisticChain.getShipmentIds()) {
185+
writer.write("\t\t\t\t\t\t<" + SHIPMENT_PLAN + " " + SHIPMENT_ID + "=\"" + shipmentId + "\">\n");
186+
var shipment = LSPUtils.findLspShipment(lsp, shipmentId);
185187
for (var elementId : shipment.getShipmentPlan().getPlanElements().keySet()) {
186188
writer.write("\t\t\t\t\t\t\t<" + ELEMENT + " " + ID + "=\"" + elementId.toString() + "\" ");
187189
ShipmentPlanElement element = shipment.getShipmentPlan().getPlanElements().get(elementId);

src/main/java/lsp/LSPRescheduler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ static void notifyReplanning(LSPs lsps, ReplanningEvent event) {
6363
if (event.getIteration() != 0) {
6464
for (LSP lsp : lsps.getLSPs().values()) {
6565
for (LogisticChain solution : lsp.getSelectedPlan().getLogisticChains()) {
66-
solution.getShipments().clear();
66+
solution.getShipmentIds().clear();
6767
for (LogisticChainElement element : solution.getLogisticChainElements()) {
6868
element.getIncomingShipments().clear();
6969
element.getOutgoingShipments().clear();
@@ -72,7 +72,7 @@ static void notifyReplanning(LSPs lsps, ReplanningEvent event) {
7272

7373
for (LSPShipment shipment : lsp.getShipments()) {
7474
shipment.getShipmentPlan().clear();
75-
shipment.getLog().clear();
75+
shipment.getShipmentLog().clear();
7676
lsp.getSelectedPlan().getAssigner().assignToLogisticChain(shipment);
7777
}
7878
lsp.scheduleLogisticChains();

0 commit comments

Comments
 (0)