Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Comparator<RideMatchInfo> getComparator() {
- switch(user.preferredMatch) {
- case CHEAPER:
- return new Comparator<RideMatchInfo>() {
- @Override
- public int compare(RideMatchInfo o1, RideMatchInfo o2) {
- if(o1.getCost() < o2.getCost())
- return -1;
- else
- return 1;
- }
- };
- case CLOSER:
- return new Comparator<RideMatchInfo>() {
- @Override
- public int compare(RideMatchInfo o1, RideMatchInfo o2) {
- Location driverloc, riderloc;
- driverloc = o1.getWhere(RideRole.DRIVER);
- riderloc = o1.getWhere(RideRole.PASSENGER);
- double dist1 = Math.sqrt( (driverloc.getX()-riderloc.getX()) * (driverloc.getX()-riderloc.getX())
- + (driverloc.getY()-riderloc.getY()) * (driverloc.getY()-riderloc.getY()) );
- driverloc = o2.getWhere(RideRole.DRIVER);
- riderloc = o2.getWhere(RideRole.PASSENGER);
- double dist2 = Math.sqrt( (driverloc.getX()-riderloc.getX()) * (driverloc.getX()-riderloc.getX())
- + (driverloc.getY()-riderloc.getY()) * (driverloc.getY()-riderloc.getY()) );
- if(dist1 < dist2)
- return -1;
- else
- return 1;
- }
- };
- default: //Better rating
- return new Comparator<RideMatchInfo>() {
- @Override
- public int compare(RideMatchInfo o1, RideMatchInfo o2) {
- float stars1,stars2;
- stars1 = o1.getStars(RideRole.PASSENGER) + o1.getStars(RideRole.DRIVER);
- stars2 = o2.getStars(RideRole.PASSENGER) + o2.getStars(RideRole.DRIVER);
- if(stars1 < stars2)
- return -1;
- else
- return 1;
- }
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement