├── .gitignore ├── README.md ├── bin ├── parking_lot ├── parking_lot.sh ├── run_functional_tests ├── setup └── setup.sh ├── file_input.txt ├── pom.xml ├── problem-statment.md └── src ├── main └── java │ └── com │ └── uditagarwal │ ├── Main.java │ ├── OutputPrinter.java │ ├── commands │ ├── ColorToRegNumberCommandExecutor.java │ ├── ColorToSlotNumberCommandExecutor.java │ ├── CommandExecutor.java │ ├── CommandExecutorFactory.java │ ├── CreateParkingLotCommandExecutor.java │ ├── ExitCommandExecutor.java │ ├── LeaveCommandExecutor.java │ ├── ParkCommandExecutor.java │ ├── SlotForRegNumberCommandExecutor.java │ └── StatusCommandExecutor.java │ ├── exception │ ├── InvalidCommandException.java │ ├── InvalidModeException.java │ ├── InvalidSlotException.java │ ├── NoFreeSlotAvailableException.java │ ├── ParkingLotException.java │ └── SlotAlreadyOccupiedException.java │ ├── mode │ ├── FileMode.java │ ├── InteractiveMode.java │ └── Mode.java │ ├── model │ ├── Car.java │ ├── Command.java │ ├── ParkingLot.java │ ├── Slot.java │ └── parking │ │ └── strategy │ │ ├── NaturalOrderingParkingStrategy.java │ │ └── ParkingStrategy.java │ ├── service │ └── ParkingLotService.java │ └── validator │ └── IntegerValidator.java └── test └── java └── com └── uditagarwal ├── MainTest.java ├── commands ├── ColorToRegNumberCommandExecutorTest.java ├── ColorToSlotNumberCommandExecutorTest.java ├── CommandExecutorFactoryTest.java ├── CreateParkingLotCommandExecutorTest.java ├── ExitCommandExecutorTest.java ├── LeaveCommandExecutorTest.java ├── ParkCommandExecutorTest.java ├── SlotForRegNumberCommandExecutorTest.java └── StatusCommandExecutorTest.java ├── model ├── CommandTest.java ├── ParkingLotTest.java └── parking │ └── strategy │ └── NaturalOrderingParkingStrategyTest.java └── service └── ParkingLotServiceTest.java /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | *.iml 3 | target 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/README.md -------------------------------------------------------------------------------- /bin/parking_lot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/bin/parking_lot -------------------------------------------------------------------------------- /bin/parking_lot.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/bin/parking_lot.sh -------------------------------------------------------------------------------- /bin/run_functional_tests: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/bin/run_functional_tests -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/bin/setup -------------------------------------------------------------------------------- /bin/setup.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/bin/setup.sh -------------------------------------------------------------------------------- /file_input.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/file_input.txt -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/pom.xml -------------------------------------------------------------------------------- /problem-statment.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/problem-statment.md -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/Main.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/OutputPrinter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/OutputPrinter.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/commands/ColorToRegNumberCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/commands/ColorToRegNumberCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/commands/ColorToSlotNumberCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/commands/ColorToSlotNumberCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/commands/CommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/commands/CommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/commands/CommandExecutorFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/commands/CommandExecutorFactory.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/commands/CreateParkingLotCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/commands/CreateParkingLotCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/commands/ExitCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/commands/ExitCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/commands/LeaveCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/commands/LeaveCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/commands/ParkCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/commands/ParkCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/commands/SlotForRegNumberCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/commands/SlotForRegNumberCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/commands/StatusCommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/commands/StatusCommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/exception/InvalidCommandException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/exception/InvalidCommandException.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/exception/InvalidModeException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/exception/InvalidModeException.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/exception/InvalidSlotException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/exception/InvalidSlotException.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/exception/NoFreeSlotAvailableException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/exception/NoFreeSlotAvailableException.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/exception/ParkingLotException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/exception/ParkingLotException.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/exception/SlotAlreadyOccupiedException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/exception/SlotAlreadyOccupiedException.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/mode/FileMode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/mode/FileMode.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/mode/InteractiveMode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/mode/InteractiveMode.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/mode/Mode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/mode/Mode.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/model/Car.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/model/Car.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/model/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/model/Command.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/model/ParkingLot.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/model/ParkingLot.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/model/Slot.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/model/Slot.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/model/parking/strategy/NaturalOrderingParkingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/model/parking/strategy/NaturalOrderingParkingStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/model/parking/strategy/ParkingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/model/parking/strategy/ParkingStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/service/ParkingLotService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/service/ParkingLotService.java -------------------------------------------------------------------------------- /src/main/java/com/uditagarwal/validator/IntegerValidator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/main/java/com/uditagarwal/validator/IntegerValidator.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/MainTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/MainTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/commands/ColorToRegNumberCommandExecutorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/commands/ColorToRegNumberCommandExecutorTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/commands/ColorToSlotNumberCommandExecutorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/commands/ColorToSlotNumberCommandExecutorTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/commands/CommandExecutorFactoryTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/commands/CommandExecutorFactoryTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/commands/CreateParkingLotCommandExecutorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/commands/CreateParkingLotCommandExecutorTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/commands/ExitCommandExecutorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/commands/ExitCommandExecutorTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/commands/LeaveCommandExecutorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/commands/LeaveCommandExecutorTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/commands/ParkCommandExecutorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/commands/ParkCommandExecutorTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/commands/SlotForRegNumberCommandExecutorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/commands/SlotForRegNumberCommandExecutorTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/commands/StatusCommandExecutorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/commands/StatusCommandExecutorTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/model/CommandTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/model/CommandTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/model/ParkingLotTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/model/ParkingLotTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/model/parking/strategy/NaturalOrderingParkingStrategyTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/model/parking/strategy/NaturalOrderingParkingStrategyTest.java -------------------------------------------------------------------------------- /src/test/java/com/uditagarwal/service/ParkingLotServiceTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anomaly2104/lld-parking-lot/HEAD/src/test/java/com/uditagarwal/service/ParkingLotServiceTest.java --------------------------------------------------------------------------------