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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# java-training

###
# 1 basics

- code study
Expand Down Expand Up @@ -162,4 +162,4 @@
# clean code projects

- design patterns
- chess game
- chess game
180 changes: 180 additions & 0 deletions _3_design_patterns/src/main/java/code/_4_student_effort/Booking.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
package code._4_student_effort;
import java.time.LocalDate;

public class Booking {
Person person;
Hotel hotel;
LocalDate arriveDate;
LocalDate leaveDate;
int price;

boolean takeBreakfast;
boolean takeMeals;
boolean openBar;
boolean spaAccess;
boolean parking;
boolean airportTransfer;

public Person getPerson() {
return person;
}

public Hotel getHotel() {
return hotel;
}

public LocalDate getArriveDate() {
return arriveDate;
}

public LocalDate getLeaveDate() {
return leaveDate;
}

public int getPrice() {
return price;
}

public boolean getBreakfast() {
return takeBreakfast;
}

public boolean getMeals() {
return takeMeals;
}

public boolean getOpenBar() {
return openBar;
}

public boolean getSpaAccess() {
return spaAccess;
}

public boolean getParking() {
return parking;
}

public boolean getAirportTransfer() {
return airportTransfer;
}


Booking(BookingBuilder builder) {
person = builder.person;
hotel = builder.hotel;
arriveDate = builder.arriveDate;
leaveDate = builder.leaveDate;
price = builder.price;

takeBreakfast = builder.takeBreakfast;
takeMeals = builder.takeMeals;
openBar = builder.openBar;
spaAccess = builder.spaAccess;
parking = builder.parking;
airportTransfer = builder.airportTransfer;
}

public static class BookingBuilder {
Person person;
Hotel hotel;
LocalDate arriveDate;
LocalDate leaveDate;
int price;

boolean takeBreakfast;
boolean takeMeals;
boolean openBar;
boolean spaAccess;
boolean parking;
boolean airportTransfer;

BookingBuilder(Person guest, Hotel host, LocalDate aDate, LocalDate lDate) {
person = guest;
hotel = host;
arriveDate = aDate;
leaveDate = lDate;
}

public BookingBuilder setBreakfastService(boolean takeBreakfastService) {
if (hotel.takeBreakfast)
takeBreakfast = takeBreakfastService;
else
System.out.printf("Breakfast Service is not avalable for " + hotel.getName() + "\n");
return this;
}

public BookingBuilder setMealsService(boolean takeMealsService) {
if (hotel.takeMeals)
takeMeals = takeMealsService;
else
System.out.printf("Meals Service is not avalable for " + hotel.getName() + "\n");
return this;
}

public BookingBuilder setOpenBarService(boolean takeOpenBarService) {
if (hotel.openBar)
openBar = takeOpenBarService;
else
System.out.printf("Breakfast Service is not avalable for " + hotel.getName() + "\n");
return this;
}

public BookingBuilder setSpaAccessService(boolean takeSpaAccessService) {
if (hotel.spaAccess)
spaAccess = takeSpaAccessService;
else
System.out.printf("Breakfast Service is not avalable for " + hotel.getName() + "\n");
return this;
}

public BookingBuilder setParkingService(boolean takeParkingService) {
if (hotel.parking)
parking = takeParkingService;
else
System.out.printf("Breakfast Service is not avalable for " + hotel.getName() + "\n");
return this;
}

public BookingBuilder setAirportTransferService(boolean takeAirportTransferService) {
if (hotel.airportTransfer)
airportTransfer = takeAirportTransferService;
else
System.out.printf("Breakfast Service is not avalable for " + hotel.getName() + "\n");
return this;
}

public BookingBuilder setPrice() {
price = 100;
return this;
}

public Booking build() {
return new Booking(this);
}
}

public StringBuilder getServices() {
StringBuilder services = new StringBuilder();

if (takeBreakfast)
services.append("- Breakfast\n");
if (takeMeals)
services.append("- Meals\n");
if (openBar)
services.append("- Open Bar\n");
if (spaAccess)
services.append("- Spa\n");
if (parking)
services.append("- Parking\n");
if (airportTransfer)
services.append("- Airport Transfer\n");
return services;
}

public String getApprovedServices() {
// TODO Auto-generated method stub
return null;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package code._4_student_effort;
public class EnumRatings {
Rating rate;

EnumRatings() {

}

EnumRatings(Rating rate) {
this.rate = rate;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package code._4_student_effort;
public class EnumStars {
Stars star;

EnumStars() {

}

EnumStars(Stars star) {
this.star = star;
}

public String getStars() {
switch (star) {
case one:
return "*";
case two:
return "**";
case three:
return "***";
case four:
return "****";
case five:
return "*****";
}
return null;
}
}
162 changes: 162 additions & 0 deletions _3_design_patterns/src/main/java/code/_4_student_effort/Hotel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
package code._4_student_effort;

public class Hotel {
String name;
String city;
String adress;
EnumStars stars;
EnumRatings rating;
int pricePerNight;

boolean takeBreakfast;
boolean takeMeals;
boolean openBar;
boolean spaAccess;
boolean parking;
boolean airportTransfer;

Hotel(HotelBuilder builder) {
name = builder.name;
city = builder.city;
adress = builder.adress;
stars = builder.stars;
rating = builder.rating;
pricePerNight = builder.pricePerNight;

takeBreakfast = builder.takeBreakfast;
takeMeals = builder.takeMeals;
openBar = builder.openBar;
spaAccess = builder.spaAccess;
parking = builder.parking;
airportTransfer = builder.airportTransfer;
}

public String getName() {
return name;
}

public String getCity() {
return city;
}

public String getAdress() {
return adress;
}

public EnumStars getStars() {
return stars;
}

public EnumRatings getRating() {
return rating;
}

public int getPrice() {
return pricePerNight;
}

public boolean getBreakfast() {
return takeBreakfast;
}

public boolean getMeals() {
return takeMeals;
}

public boolean getOpenBar() {
return openBar;
}

public boolean getSpaAccess() {
return spaAccess;
}

public boolean getParking() {
return parking;
}

public boolean getAirportTransfer() {
return airportTransfer;
}

public static class HotelBuilder {

String name;
String city;
String adress;
EnumStars stars;
EnumRatings rating;
int pricePerNight;

boolean takeBreakfast;
boolean takeMeals;
boolean openBar;
boolean spaAccess;
boolean parking;
boolean airportTransfer;

public HotelBuilder(String hotelName, String hotelCity, String hotelAdress, EnumStars hotelStars,
EnumRatings hotelRating, int price) {
name = hotelName;
city = hotelCity;
adress = hotelAdress;
stars = hotelStars;
rating = hotelRating;
pricePerNight = price;
}

public HotelBuilder setBreakfastService(boolean takeBreakfastService) {
takeBreakfast = takeBreakfastService;
return this;
}

public HotelBuilder setMealsService(boolean takeMealsService) {
takeMeals = takeMealsService;
return this;
}

public HotelBuilder setOpenBarService(boolean takeOpenBarService) {
openBar = takeOpenBarService;
return this;
}

public HotelBuilder setSpaAccessService(boolean takeSpaAccessService) {
spaAccess = takeSpaAccessService;
return this;
}

public HotelBuilder setParkingService(boolean takeParkingService) {
parking = takeParkingService;
return this;
}

public HotelBuilder setAirportTransferService(boolean takeAirportTransferService) {
airportTransfer = takeAirportTransferService;
return this;
}

public Hotel build() {
return new Hotel(this);
}

}

public StringBuilder getAvalableServices() {
StringBuilder services = new StringBuilder();

if (takeBreakfast)
services.append("- Breakfast\n");
if (takeMeals)
services.append("- Meals\n");
if (openBar)
services.append("- Open Bar\n");
if (spaAccess)
services.append("- Spa\n");
if (parking)
services.append("- Parking\n");
if (airportTransfer)
services.append("- Airport Transfer\n");
return services;
}

}
Loading