View Javadoc
1   package au.gov.amsa.navigation;
2   
3   import static com.google.common.base.Optional.of;
4   
5   import com.google.common.base.Optional;
6   
7   public class Times {
8   
9   	private final long time1;
10  	private final Optional<Long> time2;
11  
12  	private Times(long time1, Optional<Long> time2) {
13  		this.time1 = time1;
14  		this.time2 = time2;
15  	}
16  
17  	public Times(long time1) {
18  		this(time1, Optional.<Long> absent());
19  	}
20  
21  	public Times(long time1, long time2) {
22  		this(time1, Optional.of(time2));
23  	}
24  
25  	public long time1() {
26  		return time1;
27  	}
28  
29  	public Optional<Long> time2() {
30  		return time2;
31  	}
32  
33  	public Optional<Long> leastPositive() {
34  		// TODO unit test
35  		if (time1 >= 0 && time2.isPresent() && time2.get() >= 0)
36  			return of(Math.min(time1, time2.get()));
37  		else if (time1 >= 0)
38  			return of(time1);
39  		else if (time2.isPresent() && time2.get() >= 0) {
40  			return of(time2.get());
41  		} else
42  			return Optional.absent();
43  	}
44  }