1 package org.wcb.model.service.impl;
2
3 import org.wcb.model.service.IValidatorService;
4 import org.wcb.model.vo.hibernate.Logbook;
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 public class LogbookValidationService implements IValidatorService {
27
28 private Logbook logObject;
29
30
31 public Object getObject() {
32 return logObject;
33 }
34
35 public void setObject(Object logObject) {
36 if (logObject instanceof Logbook) {
37 this.logObject = (Logbook) logObject;
38 }
39 }
40
41
42
43
44
45 public boolean validate() {
46 return logObject != null && validateFlightTime() && validateEnteredFields();
47 }
48
49 private boolean validateEnteredFields() {
50 return !(logObject.getRegistration() == null && logObject.getFaaFrom() == null && logObject.getFaaTo() == null);
51 }
52
53
54
55
56
57
58
59
60
61
62 private boolean validateFlightTime() {
63
64 if (logObject.getRegistration().equalsIgnoreCase("PCADT")) {
65 return true;
66 }
67 Double dTotal = logObject.getFlightDuration();
68 Double dPIC = logObject.getPic();
69 Double dSIC = logObject.getSic();
70 Double dCrossCountry = logObject.getCrossCountry();
71 Double dInstructing = logObject.getFlightInstructing();
72 Double dSafety = logObject.getSafetyPilot();
73 Double dDual = logObject.getDualReceived();
74 Double dSolo = logObject.getSolo();
75 Double dNight = logObject.getConditionNight();
76 Double dActual = logObject.getConditionActualImc();
77 Double dSimulated = logObject.getConditionSimulatedImc();
78 Double dSimulator = logObject.getConditionFlightSim();
79 if (dPIC != null && dTotal < dPIC) {
80 return false;
81 }
82 if (dSIC!=null && dTotal < dSIC) {
83 return false;
84 }
85 if (dCrossCountry!=null && dTotal < dCrossCountry) {
86 return false;
87 }
88 if (dInstructing!=null && dTotal < dInstructing) {
89 return false;
90 }
91 if (dSafety!=null && dTotal < dSafety) {
92 return false;
93 }
94 if (dDual!=null && dTotal < dDual) {
95 return false;
96 }
97 if (dSolo!=null && dTotal < dSolo) {
98 return false;
99 }
100 if (dNight!=null && dTotal < dNight) {
101 return false;
102 }
103 if (dActual!=null && dTotal < dActual) {
104 return false;
105 }
106 if (dSimulated!=null && dTotal < dSimulated) {
107 return false;
108 }
109 return !(dSimulator != null && dTotal < dSimulator);
110 }
111 }