Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 14 additions & 6 deletions src/ParkingLot/Client.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@

import ParkingLot.controllers.TicketController;
import ParkingLot.dtos.IssueTicketRequestDTO;
import ParkingLot.dtos.IssueTicketResponseDTO;
import ParkingLot.models.Gate;
import ParkingLot.models.VehicleType;
import ParkingLot.repositories.GateRepository;
import ParkingLot.repositories.ParkingLotRepository;
import ParkingLot.repositories.TicketRepository;
import ParkingLot.repositories.VehicleRepository;
import ParkingLot.repositories.*;
import ParkingLot.service.TicketService;

public class Client {
Expand All @@ -16,12 +14,18 @@ public static void main(String[] args) {
TicketRepository ticketRepository = new TicketRepository();
ParkingLotRepository parkingLotRepository = new ParkingLotRepository();
GateRepository gateRepository = new GateRepository();
OperatorRepository operatorRepository = new OperatorRepository();
ParkingFloorRepository parkingFloorRepository = new ParkingFloorRepository();
ParkingSlotRepository parkingSlotRepository = new ParkingSlotRepository();

TicketService ticketService = new TicketService(
gateRepository,
vehicleRepository,
parkingLotRepository,
ticketRepository
ticketRepository,
parkingSlotRepository,
operatorRepository,
parkingFloorRepository
);

TicketController ticketController = new TicketController(ticketService);
Expand All @@ -33,7 +37,11 @@ public static void main(String[] args) {
request.setVehicleNumber("DL 1VC 0001");
request.setParkingLotId(1);

ticketController.issueTicket(request);
IssueTicketResponseDTO responseDTO = ticketController.issueTicket(request);

System.out.println("Response --> \n"+
"getParkingSlotNumber -- "+responseDTO.getParkingSlotNumber() +
"\n getTicketId -- "+responseDTO.getTicketId());
}
}

Expand Down
23 changes: 22 additions & 1 deletion src/ParkingLot/models/Operator.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,26 @@

public class Operator extends BaseModel{
private String Name;
private Gate gate;
private String email;

public Operator(String name, String email) {
Name = name;
this.email = email;
}

public String getName() {
return Name;
}

public void setName(String name) {
Name = name;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}
}
6 changes: 1 addition & 5 deletions src/ParkingLot/models/ParkingLot.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,8 @@ public class ParkingLot extends BaseModel{
// private String address;

public ParkingLot(){
parkingFloors = new ArrayList<ParkingFloor>();
parkingFloors.add(new ParkingFloor());
parkingFloors = new ArrayList<>();
name = "New Parking Lot";
entryGates = new ArrayList<>();
entryGates.add(new Gate());
exitGates = new ArrayList<>();
vehicleCapacities = new ArrayList<>();
parkingLotStatus = ParkingLotStatus.OPEN;
slotAssignmentStrategyType = SlotAssignmentStrategyType.RANDOM;
Expand Down
5 changes: 5 additions & 0 deletions src/ParkingLot/models/VehicleTypeCapacity.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ public class VehicleTypeCapacity {
private VehicleType vehicleType;
private int capacity;

public VehicleTypeCapacity(VehicleType vehicleType, int capacity) {
this.vehicleType = vehicleType;
this.capacity = capacity;
}

public VehicleType getVehicleType() {
return vehicleType;
}
Expand Down
28 changes: 27 additions & 1 deletion src/ParkingLot/repositories/GateRepository.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,37 @@
package ParkingLot.repositories;

import ParkingLot.models.Gate;
import ParkingLot.models.GateType;

import java.util.Map;
import java.util.Optional;
import java.util.TreeMap;

public class GateRepository {
public Optional<Gate> findGateById(int gateId){
private Map<Integer,Gate> gates = new TreeMap<>();

public GateRepository()
{
Gate entry = new Gate();
entry.setId(1);
entry.setGateType(GateType.ENTRY);
gates.put(entry.getId(),entry);

Gate exit = new Gate();
exit.setId(2);
exit.setGateType(GateType.EXIT);
gates.put(exit.getId(),exit);

}



public Optional<Gate> findGateById(int id)
{
if(gates.containsKey(id))
{
return Optional.of(gates.get(id));
}
return Optional.empty();
}
}
Expand Down
32 changes: 32 additions & 0 deletions src/ParkingLot/repositories/OperatorRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package ParkingLot.repositories;

import ParkingLot.models.Operator;
import ParkingLot.models.ParkingLot;

import java.util.Map;
import java.util.Optional;
import java.util.TreeMap;

public class OperatorRepository {

public Map<Integer, Operator> operators = new TreeMap<>();

public OperatorRepository() {
Operator operator = new Operator("entrywaala","entrywaala@scaler.com");
operator.setId(1);
operators.put(operator.getId(), operator);

Operator operator2 = new Operator("exitwaala","exitwaala@scaler.com");
operator2.setId(2);
operators.put(operator2.getId(), operator2);
}

public Optional<Operator> getOperatorById(int operatorId)
{
if(operators.containsKey(operatorId)){
return Optional.of(operators.get(operatorId));
}
return Optional.empty();
}

}
35 changes: 35 additions & 0 deletions src/ParkingLot/repositories/ParkingFloorRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package ParkingLot.repositories;

import ParkingLot.models.Operator;
import ParkingLot.models.ParkingFloor;
import ParkingLot.models.ParkingFloorStatus;

import java.util.*;

public class ParkingFloorRepository {

public Map<Integer, ParkingFloor> parkingFloors = new TreeMap<>();

public ParkingFloorRepository()
{
ParkingFloor parkingFloor = new ParkingFloor();
parkingFloor.setFloorName("F1");
parkingFloor.setParkingFloorStatus(ParkingFloorStatus.OPEN);
parkingFloor.setId(1);
parkingFloors.put(parkingFloor.getId(),parkingFloor);

}

public Optional<ParkingFloor> getParkingFloorById(int id)
{
if(parkingFloors.containsKey(id)){
return Optional.of(parkingFloors.get(id));
}
return Optional.empty();
}

public Optional<List<ParkingFloor>> getAvailableFloors()
{
return Optional.of(new ArrayList<>(parkingFloors.values()));
}
}
55 changes: 55 additions & 0 deletions src/ParkingLot/repositories/ParkingSlotRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package ParkingLot.repositories;

import ParkingLot.models.ParkingFloor;
import ParkingLot.models.ParkingSlot;
import ParkingLot.models.ParkingSlotStatus;
import ParkingLot.models.VehicleType;

import java.util.*;

public class ParkingSlotRepository {

public Map<Integer, ParkingSlot> parkingSlots = new TreeMap<>();

public ParkingSlotRepository()
{
ParkingSlot parkingSlot = new ParkingSlot();
parkingSlot.setSlotNumber("F1_001_CAR");
parkingSlot.setVehicleType(VehicleType.CAR);
parkingSlot.setParkingSlotStatus(ParkingSlotStatus.EMPTY);
parkingSlot.setId(1);

parkingSlots.put(parkingSlot.getId(),parkingSlot);

ParkingSlot parkingSlot2 = new ParkingSlot();
parkingSlot2.setSlotNumber("F1_002_BIKE");
parkingSlot2.setVehicleType(VehicleType.BIKE);
parkingSlot2.setParkingSlotStatus(ParkingSlotStatus.EMPTY);
parkingSlot2.setId(2);

parkingSlots.put(parkingSlot2.getId(),parkingSlot2);

ParkingSlot parkingSlot3 = new ParkingSlot();
parkingSlot3.setSlotNumber("F1_003_AUTO");
parkingSlot3.setVehicleType(VehicleType.AUTO);
parkingSlot3.setParkingSlotStatus(ParkingSlotStatus.EMPTY);
parkingSlot3.setId(3);

parkingSlots.put(parkingSlot3.getId(),parkingSlot3);

ParkingSlot parkingSlot4 = new ParkingSlot();
parkingSlot4.setSlotNumber("F1_002_BUS");
parkingSlot4.setVehicleType(VehicleType.BUS);
parkingSlot4.setParkingSlotStatus(ParkingSlotStatus.EMPTY);
parkingSlot4.setId(4);

parkingSlots.put(parkingSlot4.getId(),parkingSlot4);
}

public Optional<List<ParkingSlot>> getAvailableSlots()
{
return Optional.of(new ArrayList<>(parkingSlots.values()));
}


}
21 changes: 15 additions & 6 deletions src/ParkingLot/repositories/VehicleRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,25 @@

import ParkingLot.models.Vehicle;

import java.util.Map;
import java.util.Optional;
import java.util.TreeMap;

public class VehicleRepository {
public Optional<Vehicle> findVehicleByVehicleNumber(String vehicleNumber){
return Optional.empty();
}
private Map<String, Vehicle> vehicles = new TreeMap<>();

public Vehicle save(Vehicle vehicle){
// save this to db
vehicle.setId(1);
public Vehicle saveVehicle(Vehicle vehicle)
{
vehicles.put(vehicle.getLicensePlate(),vehicle);
return vehicle;
}
public Optional<Vehicle> getVehicleByNumber(String vehicleNumber)
{
if(vehicles.containsKey(vehicleNumber))
{
return Optional.of(vehicles.get(vehicleNumber));
}

return Optional.empty();
}
}
Loading