View Javadoc

1   package se.citerus.dddsample.interfaces.booking.facade;
2   
3   import se.citerus.dddsample.interfaces.booking.facade.dto.CargoRoutingDTO;
4   import se.citerus.dddsample.interfaces.booking.facade.dto.LocationDTO;
5   import se.citerus.dddsample.interfaces.booking.facade.dto.RouteCandidateDTO;
6   
7   import java.rmi.Remote;
8   import java.rmi.RemoteException;
9   import java.util.Date;
10  import java.util.List;
11  
12  /**
13   * This facade shields the domain layer - model, services, repositories -
14   * from concerns about such things as the user interface and remoting.
15   */
16  public interface BookingServiceFacade extends Remote {
17  
18    String bookNewCargo(String origin, String destination, Date arrivalDeadline) throws RemoteException;
19  
20    CargoRoutingDTO loadCargoForRouting(String trackingId) throws RemoteException;
21  
22    void assignCargoToRoute(String trackingId, RouteCandidateDTO route) throws RemoteException;
23  
24    void changeDestination(String trackingId, String destinationUnLocode) throws RemoteException;
25  
26    List<RouteCandidateDTO> requestPossibleRoutesForCargo(String trackingId) throws RemoteException;
27  
28    List<LocationDTO> listShippingLocations() throws RemoteException;
29  
30    List<CargoRoutingDTO> listAllCargos() throws RemoteException;
31  
32  }