Checkpoint: ExchangeServiceTest
Signed-off-by: Marcin Woźniak <y0rune@aol.com>
This commit is contained in:
@ -1,5 +1,8 @@
|
||||
package com.plannaplan.entities;
|
||||
|
||||
import java.sql.Date;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
@ -18,7 +21,7 @@ public class Exchange {
|
||||
private Long id;
|
||||
|
||||
@OneToOne
|
||||
@JoinColumn(name = "owned_id", unique = true)
|
||||
@JoinColumn(name = "owned_id")
|
||||
private Assignment ownedAssignment;
|
||||
|
||||
@OneToOne
|
||||
@ -27,67 +30,74 @@ public class Exchange {
|
||||
|
||||
private Long ownerId;
|
||||
|
||||
private Timestamp dateExchange;
|
||||
|
||||
public Exchange(){
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @return Long ID of exchange trader
|
||||
*/
|
||||
public Long getOwnerId() {
|
||||
return ownerId;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
/**
|
||||
* @param ownerId ID of exchange trader
|
||||
*/
|
||||
public void setOwnerId(Long ownerId) {
|
||||
this.ownerId = ownerId;
|
||||
}
|
||||
|
||||
public Timestamp getDataExchange() {
|
||||
return this.dateExchange;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @param ownedAssignment Assignment which owner would like to trade
|
||||
* @param desiredAssignment Groups instance that trader wants
|
||||
*/
|
||||
public Exchange(Assignment ownedAssignment, Groups desiredAssignment) {
|
||||
this.ownedAssignment = ownedAssignment;
|
||||
this.desiredAssignment = desiredAssignment;
|
||||
this.ownerId = this.ownedAssignment.getCommision().getCommisionOwner().getId();
|
||||
this.ownerId = this.ownedAssignment != null ? this.ownedAssignment.getCommision().getCommisionOwner().getId() : null;
|
||||
this.dateExchange = new Timestamp(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @return Long ID in database
|
||||
*/
|
||||
public Long getId(){
|
||||
return this.id;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
/**
|
||||
* @return Groups Target group
|
||||
*/
|
||||
public Groups getDesiredAssignment() {
|
||||
return desiredAssignment;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @param desiredAssignment Target group
|
||||
*/
|
||||
public void setDesiredAssignment(Groups desiredAssignment) {
|
||||
this.desiredAssignment = desiredAssignment;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @return Assignment Owned assignment
|
||||
*/
|
||||
public Assignment getOwnedAssignment() {
|
||||
return ownedAssignment;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* @param ownedAssignment Owned assignment
|
||||
*/
|
||||
public void setOwnedAssignment(Assignment ownedAssignment) {
|
||||
this.ownedAssignment = ownedAssignment;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package com.plannaplan.models;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
|
||||
import com.plannaplan.entities.Assignment;
|
||||
import com.plannaplan.entities.Exchange;
|
||||
|
||||
@ -55,4 +57,12 @@ public class MatchData {
|
||||
// Compare the data members and return accordingly
|
||||
return (this.getAssignmentOne().equals(c.getAssignmentOne()) && this.getAssignmentTwo().equals(c.getAssignmentTwo())) || (this.getAssignmentOne().equals(c.getAssignmentTwo()) && this.getAssignmentTwo().equals(c.getAssignmentOne()));
|
||||
}
|
||||
|
||||
public int compare(MatchData m1) {
|
||||
return Float.compare(m1.getExchangesMsValue(), this.getExchangesMsValue());
|
||||
}
|
||||
|
||||
public float getExchangesMsValue(){
|
||||
return this.exchangeOne.getDataExchange().getTime() + this.exchangeTwo.getDataExchange().getTime();
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,13 @@
|
||||
package com.plannaplan.services;
|
||||
|
||||
import java.sql.Timestamp;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.plannaplan.entities.Assignment;
|
||||
@ -116,9 +119,11 @@ public class ExchangeService {
|
||||
final Exchange exchangeOne = (Exchange) m[0];
|
||||
final Exchange exchangeTwo = (Exchange) m[1];
|
||||
return new MatchData(exchangeOne, exchangeTwo);
|
||||
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
final Set<MatchData> filterMatches = new HashSet<>(matches);
|
||||
Set<MatchData> filterMatches = new TreeSet<>((m1, m2) -> m1.compare(m2));
|
||||
filterMatches.addAll(matches);
|
||||
return filterMatches;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user