@Override public void save(Patient patient, DocumentModelBridge doc) { if (doc == null) { throw new NullPointerException(ERROR_MESSAGE_NO_PATIENT_CLASS); } PatientData<Disorder> disorders = patient.getData(this.getName()); if (disorders == null || !disorders.isIndexed()) { return; } XWikiDocument docX = (XWikiDocument) doc; BaseObject data = docX.getXObject(Patient.CLASS_REFERENCE); // new disorders list (for setting values in the Wiki document) List<String> disorderValues = new LinkedList<>(); Iterator<Disorder> iterator = disorders.iterator(); while (iterator.hasNext()) { Disorder disorder = iterator.next(); disorderValues.add(disorder.getValue()); } // update the values in the document (overwriting the old list, if any) data.set(DIAGNOSIS_PROPERTY, disorderValues, this.xcontextProvider.get()); }
@Override public void save(Patient patient, DocumentModelBridge doc) { PatientData<Disorder> disorders = patient.getData(this.getName()); if (disorders == null || !disorders.isIndexed()) { return; } if (doc == null) { throw new NullPointerException(ERROR_MESSAGE_NO_PATIENT_CLASS); } XWikiDocument docX = (XWikiDocument) doc; BaseObject data = docX.getXObject(Patient.CLASS_REFERENCE); XWikiContext context = this.xcontextProvider.get(); // new disorders list (for setting values in the Wiki document) List<String> disorderValues = new LinkedList<>(); Iterator<Disorder> iterator = disorders.iterator(); while (iterator.hasNext()) { Disorder disorder = iterator.next(); disorderValues.add(disorder.getValue()); } data.set(DISORDER_PROPERTIES_OMIMID, null, context); // update the values in the document (overwriting the old list, if any) data.set(DISORDER_PROPERTIES_OMIMID, disorderValues, context); } }