diff --git a/.idea/misc.xml b/.idea/misc.xml
index cf9abe6..226afc9 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index cb698c1..d4b1743 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,24 +5,15 @@
-
-
-
-
-
-
-
-
+
-
-
-
-
-
+
+
+
@@ -86,12 +77,12 @@
"Application.TicTacToe.Client.executor": "Run",
"Application.WeatherStation.executor": "Run",
"Application.accessModifiers.Client.executor": "Run",
- "Application.client.executor": "Run",
+ "Application.client.executor": "Debug",
"RunOnceActivity.ShowReadmeOnStart": "true",
"SHARE_PROJECT_CONFIGURATION_FILES": "true",
"git-widget-placeholder": "master",
"kotlin-language-version-configured": "true",
- "last_opened_file_path": "/Users/mohitsharma/Documents/Student_Submissions/Backend_LLD_Sept23Morning/src/Observer",
+ "last_opened_file_path": "E:/IntellijProjects/Scaler_Mohit_LLD/forkedRepo/Backend_LLD_Sept23Morning",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
@@ -188,8 +179,8 @@
-
-
+
+
@@ -228,6 +219,8 @@
+
+
diff --git a/src/ParkingLot/client.java b/src/ParkingLot/client.java
index 2637579..0a2f9c5 100644
--- a/src/ParkingLot/client.java
+++ b/src/ParkingLot/client.java
@@ -4,16 +4,60 @@
import ParkingLot.dtos.IssueTicketRequestDTO;
import ParkingLot.dtos.IssueTicketResponseDTO;
import ParkingLot.dtos.ResponseStatus;
-import ParkingLot.models.VehicleType;
+import ParkingLot.models.*;
import ParkingLot.repositories.GateRepository;
+import ParkingLot.repositories.ParkingLotRepository;
import ParkingLot.repositories.TicketRepository;
import ParkingLot.repositories.VehicleRepository;
import ParkingLot.services.TicketService;
+import java.util.List;
+
public class client {
public static void main(String[] args) {
+ //creating parking lot, floor and slot and storing in parkinglot repository
+ ParkingLot parkingLot = new ParkingLot();
+
+ ParkingFloor parkingFloor = new ParkingFloor();
+
+ ParkingSlot parkingSlot1 = new ParkingSlot("1", ParkingSlotStatus.EMPTY, VehicleType.THREE_WHEELER, parkingFloor);
+ ParkingSlot parkingSlot2 = new ParkingSlot("2", ParkingSlotStatus.EMPTY, VehicleType.TWO_WHEELER, parkingFloor);
+
+ parkingFloor.setFloorNumber("1");
+ parkingFloor.setParkingFloorStatus(ParkingFloorStatus.OPEN);
+ parkingFloor.setParkingSlots(List.of(parkingSlot1, parkingSlot2));
+
+ parkingLot.setParkingFloors(List.of(parkingFloor));
+ parkingLot.setName("Parking Lot");
+ parkingLot.setParkingLotStatus(ParkingLotStatus.OPEN);
+ parkingLot.setSlotAssignmentStrategyType(SlotAssignmentStrategyType.RANDOM);
+
+ ParkingLotRepository parkingLotRepository = new ParkingLotRepository();
+ parkingLotRepository.save(parkingLot);
+
+ //creating gate and operator and storing in gate repository
+ Operator operator1 = new Operator();
+ Operator operator2 = new Operator();
+ operator1.setOperatorName("Operator1");
+ operator2.setOperatorName("Operator2");
+
+ Gate gate1 = new Gate("1", operator1, GateType.ENTRY, GateStatus.OPEN, parkingLot);
+ Gate gate2 = new Gate("2", operator2, GateType.EXIT, GateStatus.OPEN, parkingLot);
+
GateRepository gateRepository = new GateRepository();
+ gateRepository.save(gate1);
+ gateRepository.save(gate2);
+ parkingLot.setEntryGates(List.of(gate1));
+ parkingLot.setExitGates(List.of(gate2));
+
+ //creating vehicles and storing in vehicle repository
+ Vehicle vehicle1 = new Vehicle("DL 1VC 0001", "Raj", VehicleType.TWO_WHEELER);
+ Vehicle vehicle2 = new Vehicle("DL 1VC 00012", "Mohit sharma", VehicleType.THREE_WHEELER);
+
VehicleRepository vehicleRepository = new VehicleRepository();
+ vehicleRepository.save(vehicle1);
+ vehicleRepository.save(vehicle2);
+
TicketRepository ticketRepository = new TicketRepository();
TicketService ticketService = new TicketService(
@@ -24,10 +68,10 @@ public static void main(String[] args) {
TicketController ticketController = new TicketController(ticketService);
IssueTicketRequestDTO request = new IssueTicketRequestDTO();
- request.setGateId(1);
- request.setVehicleNumber("DL 1VC 0001");
- request.setVehicleType(VehicleType.THREE_WHEELER);
- request.setOwnerName("Mohit sharma");
+ request.setGateId(gate1.getId());
+ request.setVehicleNumber(vehicle1.getLicensePlate());
+ request.setVehicleType(vehicle1.getVehicleType());
+ request.setOwnerName(vehicle1.getOwnerName());
IssueTicketResponseDTO responseDTO = ticketController.issueTicket(request);
if(responseDTO.getResponseStatus().equals(ResponseStatus.SUCCESS)){
diff --git a/src/ParkingLot/models/Gate.java b/src/ParkingLot/models/Gate.java
index 1f6d8ca..8be2f96 100644
--- a/src/ParkingLot/models/Gate.java
+++ b/src/ParkingLot/models/Gate.java
@@ -8,6 +8,16 @@ public class Gate extends BaseModel{
private GateStatus gateStatus;
private ParkingLot parkingLot;
+ public Gate() {}
+
+ public Gate(String gateNumber, Operator operator, GateType gateType, GateStatus gateStatus, ParkingLot parkingLot) {
+ this.gateNumber = gateNumber;
+ this.operator = operator;
+ this.gateType = gateType;
+ this.gateStatus = gateStatus;
+ this.parkingLot = parkingLot;
+ }
+
public String getGateNumber() {
return gateNumber;
}
diff --git a/src/ParkingLot/models/ParkingSlot.java b/src/ParkingLot/models/ParkingSlot.java
index 2aca741..62011c8 100644
--- a/src/ParkingLot/models/ParkingSlot.java
+++ b/src/ParkingLot/models/ParkingSlot.java
@@ -8,6 +8,13 @@ public class ParkingSlot extends BaseModel{
private VehicleType vehicleType;
private ParkingFloor parkingFloor;
+ public ParkingSlot(String slotNumber, ParkingSlotStatus parkingSlotStatus, VehicleType vehicleType, ParkingFloor parkingFloor) {
+ this.slotNumber = slotNumber;
+ this.parkingSlotStatus = parkingSlotStatus;
+ this.vehicleType = vehicleType;
+ this.parkingFloor = parkingFloor;
+ }
+
public VehicleType getVehicleType() {
return vehicleType;
}
diff --git a/src/ParkingLot/models/Vehicle.java b/src/ParkingLot/models/Vehicle.java
index eb4f155..a37450c 100644
--- a/src/ParkingLot/models/Vehicle.java
+++ b/src/ParkingLot/models/Vehicle.java
@@ -5,6 +5,14 @@ public class Vehicle extends BaseModel{
private String ownerName;
private VehicleType vehicleType;
+ public Vehicle() {}
+
+ public Vehicle(String licensePlate, String ownerName, VehicleType vehicleType) {
+ this.licensePlate = licensePlate;
+ this.ownerName = ownerName;
+ this.vehicleType = vehicleType;
+ }
+
public VehicleType getVehicleType() {
return vehicleType;
}
diff --git a/src/ParkingLot/repositories/GateRepository.java b/src/ParkingLot/repositories/GateRepository.java
index c5e5e24..0c7b4fe 100644
--- a/src/ParkingLot/repositories/GateRepository.java
+++ b/src/ParkingLot/repositories/GateRepository.java
@@ -3,10 +3,29 @@
import ParkingLot.models.Gate;
import javax.swing.text.html.Option;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Optional;
public class GateRepository {
+ private Map gates;
+ private static int id = 1;
+
+ public GateRepository() {
+ gates = new HashMap<>();
+ }
+
+ public Gate save(Gate gate) {
+ gate.setId(id);
+ gates.put(id, gate);
+ id++;
+ return gate;
+ }
+
public Optional findGateById(int gateId){
+ if(gates.containsKey(gateId)){
+ return Optional.of(gates.get(gateId));
+ }
return Optional.empty();
}
}
diff --git a/src/ParkingLot/repositories/ParkingLotRepository.java b/src/ParkingLot/repositories/ParkingLotRepository.java
index 4066cc1..f45f4f5 100644
--- a/src/ParkingLot/repositories/ParkingLotRepository.java
+++ b/src/ParkingLot/repositories/ParkingLotRepository.java
@@ -8,6 +8,14 @@
public class ParkingLotRepository {
private Map parkingLots = new TreeMap<>();
+ private static int id = 1;
+
+ public ParkingLot save(ParkingLot parkingLot) {
+ parkingLot.setId(id);
+ parkingLots.put(id, parkingLot);
+ id++;
+ return parkingLot;
+ }
public ParkingLot findParkingLotByEntryGate(Gate gateToCheck){
for(ParkingLot parkingLot : parkingLots.values()){
diff --git a/src/ParkingLot/repositories/VehicleRepository.java b/src/ParkingLot/repositories/VehicleRepository.java
index 5815835..63001ac 100644
--- a/src/ParkingLot/repositories/VehicleRepository.java
+++ b/src/ParkingLot/repositories/VehicleRepository.java
@@ -2,15 +2,31 @@
import ParkingLot.models.Vehicle;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Optional;
public class VehicleRepository {
+ Map vehicles;
+ public static int id = 1;
+
+ public VehicleRepository() {
+ vehicles = new HashMap<>();
+ }
+
public Optional findVehicleByNumber(String vehicleNumber){
+ for(Vehicle v : vehicles.values()){
+ if(v.getLicensePlate().equals(vehicleNumber)){
+ return Optional.of(v);
+ }
+ }
return Optional.empty();
}
public Vehicle save(Vehicle vehicle){
- // id will be attached
- return null;
+ vehicle.setId(id);
+ vehicles.put(id, vehicle);
+ id++;
+ return vehicle;
}
}