* @return The validated ValidObservation object.
*/
public ValidObservation validate() throws IOException,
ObservationValidationError, ObservationValidationWarning {
ValidObservation observation = super.validate();
// Validate the fields.
Double hqUncertaintyMag = uncertaintyValueValidator
.validate(fields[fieldIndexMap.get("HQ_UNCERTAINTY_FIELD")]);
observation.setHqUncertainty(hqUncertaintyMag);
// TODO: we should use a specific band validator that returns SeriesType
String band = nonOptionalFieldValidator.validate(fields[fieldIndexMap
.get("BAND_FIELD")]);
observation.setBand(SeriesType.getSeriesFromShortName(band));
String commentCode = commentCodeValidator.validate(fields[fieldIndexMap
.get("COMMENT_CODE_FIELD")]);
observation.setCommentCode(commentCode);
String compStar1 = compStarValidator.validate(fields[fieldIndexMap
.get("COMP_STAR_1_FIELD")]);
observation.setCompStar1(compStar1);
String compStar2 = compStarValidator.validate(fields[fieldIndexMap
.get("COMP_STAR_2_FIELD")]);
observation.setCompStar2(compStar2);
String charts = optionalFieldValidator.validate(fields[fieldIndexMap
.get("CHARTS_FIELD")]);
observation.setCharts(charts);
String comments = optionalFieldValidator.validate(fields[fieldIndexMap
.get("COMMENTS_FIELD")]);
observation.setComments(comments);
boolean isTransformed = transformedValidator
.validate(fields[fieldIndexMap.get("TRANSFORMED_FIELD")]);
observation.setTransformed(isTransformed);
String airmass = optionalFieldValidator.validate(fields[fieldIndexMap
.get("AIRMASS_FIELD")]);
observation.setAirmass(airmass);
String cMag = cMagValidator.validate(fields[fieldIndexMap
.get("CMAG_FIELD")]);
observation.setCMag(cMag);
String kMag = kMagValidator.validate(fields[fieldIndexMap
.get("KMAG_FIELD")]);
observation.setKMag(kMag);
DateInfo hjdInfo = hjdValidator.validate(fields[fieldIndexMap
.get("HJD_FIELD")]);
observation.setHJD(hjdInfo);
String name = nameFieldValidator.validate(fields[fieldIndexMap
.get("NAME_FIELD")]);
observation.setName(name);
MTypeType mType = magTypeValidator.validate(fields[fieldIndexMap
.get("MTYPE_FIELD")]);
if (mType != null) {
observation.setMType(mType);
}
// TODO: add group and affiliation fields and getters
return observation;