suumo-search

Perform advanced searches on Suumo.jp
git clone https://git.neuralcrash.com/suumo-search.git
Log | Files | Refs | README

Route.java (2537B)


      1 package xyz.kebigon.housesearch.domain;
      2 
      3 import java.util.Comparator;
      4 
      5 import lombok.AllArgsConstructor;
      6 import lombok.Data;
      7 import lombok.NoArgsConstructor;
      8 
      9 @AllArgsConstructor
     10 @Data
     11 @NoArgsConstructor
     12 public class Route
     13 {
     14     /**
     15      * the station of departure
     16      */
     17     private String from;
     18 
     19     /**
     20      * the station of arrival
     21      */
     22     private String to;
     23 
     24     /**
     25      * time in minutes between the two stations
     26      */
     27     private int time;
     28 
     29     /**
     30      * price in yens between the two stations
     31      */
     32     private int fare;
     33 
     34     /**
     35      * number of transfers between the two stations
     36      */
     37     private int transfer;
     38 
     39     /**
     40      * Time > Fare > Transfer comparator
     41      */
     42     public static final Comparator<Route> TIME_COMPARATOR = new Comparator<Route>()
     43     {
     44         @Override
     45         public int compare(Route route1, Route route2)
     46         {
     47             int result;
     48             if ((result = Integer.compare(route1.time, route2.time)) != 0)
     49                 return result;
     50             else if ((result = Integer.compare(route1.fare, route2.fare)) != 0)
     51                 return result;
     52             else
     53                 return Integer.compare(route1.transfer, route2.transfer);
     54         }
     55     };
     56 
     57     /**
     58      * Fare > Transfer > Time comparator
     59      */
     60     public static final Comparator<Route> FARE_COMPARATOR = new Comparator<Route>()
     61     {
     62         @Override
     63         public int compare(Route route1, Route route2)
     64         {
     65             int result;
     66             if ((result = Integer.compare(route1.fare, route2.fare)) != 0)
     67                 return result;
     68             else if ((result = Integer.compare(route1.transfer, route2.transfer)) != 0)
     69                 return result;
     70             else
     71                 return Integer.compare(route1.time, route2.time);
     72         }
     73     };
     74 
     75     /**
     76      * Transfer > Time > Fare comparator
     77      */
     78     public static final Comparator<Route> TRANSFER_COMPARATOR = new Comparator<Route>()
     79     {
     80         @Override
     81         public int compare(Route route1, Route route2)
     82         {
     83             int result;
     84             if ((result = Integer.compare(route1.transfer, route2.transfer)) != 0)
     85                 return result;
     86             else if ((result = Integer.compare(route1.time, route2.time)) != 0)
     87                 return result;
     88             else
     89                 return Integer.compare(route1.fare, route2.fare);
     90         }
     91     };
     92 
     93     /**
     94      * Route to be used when no routes are found
     95      */
     96     public static final Route IMPOSSIBLE_ROUTE = new Route(null, null, 9999, 9999, 9999);
     97 }