Skip to content

Instantly share code, notes, and snippets.

@dennisdegryse
Created November 13, 2013 16:46
Show Gist options
  • Save dennisdegryse/7452258 to your computer and use it in GitHub Desktop.
Save dennisdegryse/7452258 to your computer and use it in GitHub Desktop.
Distributed Sysems - JEE: getAvailableCarTypes
// Distributed Systems - JEE/CarRental-ejb/src/java/session/CarRentalSession.java:
@Override
public List<CarType> getAvailableCarTypes(Date start, Date end) {
final Query query = em.createNamedQuery("CarRentalCompany.findAll", CarRentalCompany.class);
final List<CarType> availableCarTypes = new LinkedList<CarType>();
final List<CarRentalCompany> companies = query.getResultList();
for (final CarRentalCompany rentalCompany : companies)
for(final CarType type : rentalCompany.getAvailableCarTypes(start, end))
if(!availableCarTypes.contains(type))
availableCarTypes.add(type);
return availableCarTypes;
}
// Distributed Systems - JEE/CarRental-ejb/src/java/rental/CarRentalCompany.java:
private List<Car> getAvailableCars(String carType, Date start, Date end) {
final List<Car> availableCars = new LinkedList<Car>();
for (Car car : cars)
if (car.getType().getName().equals(carType) && car.isAvailable(start, end))
availableCars.add(car);
return availableCars;
}
// Distributed Systems - JEE/CarRental-ejb/src/java/rental/Car.java"
public boolean isAvailable(Date start, Date end) {
if(!start.before(end))
throw new IllegalArgumentException("Illegal given period");
for(Reservation reservation : reservations) {
if(reservation.getEndDate().before(start) || reservation.getStartDate().after(end))
continue;
return false;
}
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment