if (Location.class.isAssignableFrom(clazz)) {
LocationEditor ed = new LocationEditor();
ed.setAsText(val);
return ed.getValue();
} else if (User.class.isAssignableFrom(clazz)) {
UserEditor ed = new UserEditor();
ed.setAsText(val);
return ed.getValue();
} else if (Date.class.isAssignableFrom(clazz)) {
// all HTML Form Entry dates should be submitted as yyyy-mm-dd
try {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
df.setLenient(false);
return df.parse(val);
}
catch (ParseException e) {
throw new IllegalArgumentException(e);
}
} else if (Double.class.isAssignableFrom(clazz)) {
return Double.valueOf(val);
} else if (Integer.class.isAssignableFrom(clazz)) {
return Integer.valueOf(val);
} else if (Concept.class.isAssignableFrom(clazz)) {
ConceptEditor ed = new ConceptEditor();
ed.setAsText(val);
return ed.getValue();
} else if (Drug.class.isAssignableFrom(clazz)) {
DrugEditor ed = new DrugEditor();
ed.setAsText(val);
return ed.getValue();
} else if (Patient.class.isAssignableFrom(clazz)) {
PatientEditor ed = new PatientEditor();
ed.setAsText(val);
return ed.getValue();
} else if (Person.class.isAssignableFrom(clazz)) {
PersonEditor ed = new PersonEditor();
ed.setAsText(val);
return ed.getValue();
} else if (EncounterType.class.isAssignableFrom(clazz)) {
EncounterTypeEditor ed = new EncounterTypeEditor();
ed.setAsText(val);
return ed.getValue();
} else {
return val;
}
}