Newer
Older
package smash.appointment.parse;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
Logger logger = Logger.getLogger(Subject.class);
private String name;
private String surname;
private String ndNumber;
private String screeningNumber;
private String remarks;
private String birthDate;
private String address;
private String zipCode;
private String country;
private String city;
private String phone1;
private String phone2;
private String phone3;
private String mail;
private String diagnosisYear;
private String diagnosis;
private String referal;
private String addDate;
private String mPowerId;
private SubjectType type;
private boolean dead = false;
private boolean resigned = false;
private boolean postponed = false;
public Subject(String name, String surname, String ndNumber, String screeningNumber) {
this.setName(name);
this.setSurname(surname);
this.setNdNumber(ndNumber);
this.setScreeningNumber(screeningNumber);
}
/**
* @return the name
* @see #name
*/
public String getName() {
return name;
}
/**
* @param name
* the name to set
* @see #name
*/
public void setName(String name) {
if (name != null && name.length() > 50) {
logger.warn("Name too long. Trimming: " + name);
name = name.substring(0, 50);
this.name = name;
}
/**
* @return the surname
* @see #surname
*/
public String getSurname() {
return surname;
}
/**
* @param surname
* the surname to set
* @see #surname
*/
public void setSurname(String surname) {
if (surname != null && surname.length() > 50) {
logger.warn("Surname too long. Trimming: " + surname);
surname = surname.substring(0, 50);
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
this.surname = surname;
}
/**
* @return the ndNumber
* @see #ndNumber
*/
public String getNdNumber() {
return ndNumber;
}
/**
* @param ndNumber
* the ndNumber to set
* @see #ndNumber
*/
public void setNdNumber(String ndNumber) {
this.ndNumber = ndNumber;
}
/**
* @return the screeningNumber
* @see #screeningNumber
*/
public String getScreeningNumber() {
return screeningNumber;
}
/**
* @param screeningNumber
* the screeningNumber to set
* @see #screeningNumber
*/
public void setScreeningNumber(String screeningNumber) {
this.screeningNumber = screeningNumber;
}
@Override
public String toString() {
return this.getName() + " " + this.getSurname() + " (" + this.getNdNumber() + "; " + this.getScreeningNumber() + ")";
}
if (!string.trim().isEmpty() && !string.equalsIgnoreCase("OTHER")) {
if (!languages.contains(string)) {
this.languages.add(string);
}
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
}
}
/**
* @return the sex
* @see #sex
*/
public String getSex() {
return sex;
}
/**
* @param sex
* the sex to set
* @see #sex
*/
public void setSex(String sex) {
this.sex = sex;
}
/**
* @return the birthDate
* @see #birthDate
*/
public String getBirthDate() {
return birthDate;
}
/**
* @param birthDate
* the birthDate to set
* @see #birthDate
*/
public void setBirthDate(String birthDate) {
this.birthDate = birthDate;
}
/**
* @return the languages
* @see #languages
*/
public List<String> getLanguages() {
return languages;
}
/**
* @see #languages
*/
public void setLanguages(List<String> languages) {
this.languages = languages;
}
/**
* @return the remarks
* @see #remarks
*/
public String getRemarks() {
return remarks;
}
/**
* @see #remarks
*/
public void setRemarks(String remarks) {
this.remarks = remarks;
}
/**
* @return the address
* @see #address
*/
public String getAddress() {
return address;
}
/**
* @see #address
*/
public void setAddress(String address) {
this.address = address;
}
/**
* @return the zipCode
* @see #zipCode
*/
public String getZipCode() {
return zipCode;
}
/**
* @see #zipCode
*/
public void setZipCode(String zipCode) {
if (zipCode != null && zipCode.length() > 7) {
logger.warn("Surname too long. Ignoring: " + zipCode);
} else {
this.zipCode = zipCode;
}
}
/**
* @return the country
* @see #country
*/
public String getCountry() {
return country;
}
/**
* @see #country
*/
public void setCountry(String country) {
this.country = country;
}
/**
* @return the city
* @see #city
*/
public String getCity() {
return city;
}
/**
* @see #city
*/
public void setCity(String city) {
this.city = city;
}
/**
* @return the phone1
* @see #phone1
*/
public String getPhone1() {
return phone1;
}
/**
* @see #phone1
*/
public void setPhone1(String phone1) {
logger.warn("Invalid phone. Ignoring: " + phone1);
} else if (phone1 != null) {
this.phone1 = phone1.replace(",", "");
}
/**
* @return the phone2
* @see #phone2
*/
public String getPhone2() {
return phone2;
}
/**
* @see #phone2
*/
public void setPhone2(String phone2) {
logger.warn("Invalid phone. Ignoring: " + phone2);
} else if (phone2 != null) {
this.phone2 = phone2.replace(",", "");
}
/**
* @return the phone3
* @see #phone3
*/
public String getPhone3() {
return phone3;
}
/**
* @see #phone3
*/
public void setPhone3(String phone3) {
logger.warn("Invalid phone. Ignoring: " + phone3);
} else if (phone3!=null){
this.phone3 = phone3.replace(",", "");
}
/**
* @return the mail
* @see #mail
*/
public String getMail() {
return mail;
}
/**
* @see #mail
*/
public void setMail(String mail) {
this.mail = mail;
}
/**
* @return the diagnosisYear
* @see #diagnosisYear
*/
public String getDiagnosisYear() {
return diagnosisYear;
}
/**
* @see #diagnosisYear
*/
public void setDiagnosisYear(String diagnosisYear) {
this.diagnosisYear = diagnosisYear;
}
/**
* @return the diagnosis
* @see #diagnosis
*/
public String getDiagnosis() {
return diagnosis;
}
/**
* @see #diagnosis
*/
public void setDiagnosis(String diagnosis) {
this.diagnosis = diagnosis;
}
/**
* @return the referal
* @see #referal
*/
public String getReferal() {
return referal;
}
/**
* @see #referal
*/
public void setReferal(String referal) {
this.referal = referal;
}
/**
* @return the mPowerId
* @see #mPowerId
*/
public String getmPowerId() {
return mPowerId;
}
/**
* @see #mPowerId
*/
public void setmPowerId(String mPowerId) {
this.mPowerId = mPowerId;
}
/**
* @return the addDate
* @see #addDate
*/
public String getAddDate() {
return addDate;
}
/**
* @see #addDate
*/
public void setAddDate(String addDate) {
this.addDate = addDate;
}
/**
* @return the type
* @see #type
*/
public SubjectType getType() {
return type;
}
/**
* @param type
* the type to set
* @see #type
*/
public void setType(SubjectType type) {
this.type = type;
}
public void update(Subject subject, String errorPrefix) {
setName(getMergedValue("name", this.getName(), subject.getName(), errorPrefix));
setSurname(getMergedValue("surname", this.getSurname(), subject.getSurname(), errorPrefix));
setNdNumber(getMergedValue("ndNumber", this.getNdNumber(), subject.getNdNumber(), errorPrefix));
setScreeningNumber(getMergedValue("screeningNumber", this.getScreeningNumber(), subject.getScreeningNumber(), errorPrefix));
setSex(getMergedValue("sex", this.getSex(), subject.getSex(), errorPrefix));
setRemarks(getMergedValue("remarks", this.getRemarks(), subject.getRemarks(), errorPrefix));
setBirthDate(getMergedValue("birthDate", this.getBirthDate(), subject.getBirthDate(), errorPrefix));
setAddress(getMergedValue("address", this.getAddress(), subject.getAddress(), errorPrefix));
setZipCode(getMergedValue("zipCode", this.getZipCode(), subject.getZipCode(), errorPrefix));
setCountry(getMergedValue("country", this.getCountry(), subject.getCountry(), errorPrefix));
setCity(getMergedValue("city", this.getCity(), subject.getCity(), errorPrefix));
setPhone1(getMergedValue("phone1", this.getPhone1(), subject.getPhone1(), errorPrefix));
setPhone2(getMergedValue("phone2", this.getPhone2(), subject.getPhone2(), errorPrefix));
setPhone3(getMergedValue("phone3", this.getPhone3(), subject.getPhone3(), errorPrefix));
setMail(getMergedValue("mail", this.getMail(), subject.getMail(), errorPrefix));
setDiagnosisYear(getMergedValue("diagnosisYear", this.getDiagnosisYear(), subject.getDiagnosisYear(), errorPrefix));
setDiagnosis(getMergedValue("diagnosis", this.getDiagnosis(), subject.getDiagnosis(), errorPrefix));
setReferal(getMergedValue("referal", this.getReferal(), subject.getReferal(), errorPrefix));
setAddDate(getMergedValue("addDate", this.getAddDate(), subject.getAddDate(), errorPrefix));
setmPowerId(getMergedValue("mPowerId", this.getmPowerId(), subject.getmPowerId(), errorPrefix));
setType(getMergedValue("type", this.getType(), subject.getType(), errorPrefix));
setResigned(this.isResigned() || subject.isResigned());
setDead(this.isDead() || subject.isDead());
setPostponed(this.isPostponed() || subject.isPostponed());
// override only when to be seen by flying team
if (subject.getToBeSeenAt()!=null && subject.getToBeSeenAt().equals("F")) {
setToBeSeenAt(subject.getToBeSeenAt());
}
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
}
private SubjectType getMergedValue(String string, SubjectType existingValue, SubjectType newValue, String errorPrefix) {
if (existingValue == null) {
return newValue;
} else if (newValue == null) {
return existingValue;
} else if (existingValue.equals(newValue)) {
return existingValue;
} else {
logger.warn(errorPrefix + "New " + string + " differs from old one. (new: " + newValue + ", " + existingValue + "). Skipping");
return existingValue;
}
}
private String getMergedValue(String string, String existingValue, String newValue, String errorPrefix) {
if (existingValue == null || existingValue.trim().isEmpty()) {
return newValue;
} else if (newValue == null || newValue.trim().isEmpty()) {
return existingValue;
} else if (existingValue.trim().equalsIgnoreCase(newValue.trim())) {
return existingValue;
} else {
logger.warn(errorPrefix + "New " + string + " differs from old one. (new: " + newValue + ", " + existingValue + "). Skipping");
return existingValue;
}
}
/**
* @return the toBeSeenAt
* @see #toBeSeenAt
*/
public String getToBeSeenAt() {
return toBeSeenAt;
}
/**
* @param toBeSeenAt
* the toBeSeenAt to set
* @see #toBeSeenAt
*/
public void setToBeSeenAt(String toBeSeenAt) {
this.toBeSeenAt = toBeSeenAt;
}
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
/**
* @return the dead
* @see #dead
*/
public boolean isDead() {
return dead;
}
/**
* @param dead
* the dead to set
* @see #dead
*/
public void setDead(boolean dead) {
this.dead = dead;
}
/**
* @return the resigned
* @see #resigned
*/
public boolean isResigned() {
return resigned;
}
/**
* @param resigned
* the resigned to set
* @see #resigned
*/
public void setResigned(boolean resigned) {
this.resigned = resigned;
}
public void addLanguages(List<String> langs) {
for (String string : langs) {
addLanguage(string);
}
}
/**
* @return the postponed
* @see #postponed
*/
public boolean isPostponed() {
return postponed;
}
/**
* @param postponed
* the postponed to set
* @see #postponed
*/
public void setPostponed(boolean postponed) {
this.postponed = postponed;
}