/** * Saves the {@code date} data for some {@code property} into the object containing patient {@code data}. * * @param data the {@link BaseObject} where new data will be saved * @param date the updated {@link PhenoTipsDate date} data for {@code property} * @param property the patient document property of interest */ private void saveDateData( @Nonnull final BaseObject data, @Nullable final PhenoTipsDate date, @Nonnull final String property) { // note: `date` may be null if data is missing if (CORRESPONDING_ASENTERED_FIELDNAMES.containsKey(property)) { final String dateStr = date == null ? StringUtils.EMPTY : date.toString(); data.setStringValue(CORRESPONDING_ASENTERED_FIELDNAMES.get(property), dateStr); } // if date is not a valid/complete date, toEarliestPossibleISODate() will return null // and date will be effectively "unset" final Date dateObj = date == null ? null : date.toEarliestPossibleISODate(); data.setDateValue(property, dateObj); }
@Override public void onEvent(Event event, Object source, Object data) { XWikiDocument doc = (XWikiDocument) source; BaseObject patientRecordObj = doc.getXObject(Patient.CLASS_REFERENCE); if (patientRecordObj == null) { // No patient, nothing to do return; } if (("alive").equals(patientRecordObj.getStringValue("life_status"))) { patientRecordObj.setDateValue("date_of_death", null); patientRecordObj.setStringValue("date_of_death_entered", null); } } }
@Override public void onEvent(Event event, Object source, Object data) { XWikiDocument doc = (XWikiDocument) source; BaseObject patientRecordObj = doc.getXObject(Patient.CLASS_REFERENCE); if (patientRecordObj == null) { // No patient, nothing to do return; } if (("alive").equals(patientRecordObj.getStringValue("life_status"))) { patientRecordObj.setDateValue("date_of_death", null); patientRecordObj.setStringValue("date_of_death_entered", null); } } }
obj.setDateValue(WatchListJobClassDocumentInitializer.LAST_FIRE_TIME_FIELD, new Date()); needsupdate = true;
@Override public void save(Patient patient, DocumentModelBridge doc) { BaseObject data = ((XWikiDocument) doc).getXObject(Patient.CLASS_REFERENCE); if (data == null) { throw new NullPointerException(ERROR_MESSAGE_NO_PATIENT_CLASS); } PatientData<PhenoTipsDate> dates = patient.getData(DATA_NAME); if (!dates.isNamed()) { throw new IllegalArgumentException(ERROR_MESSAGE_DATA_IN_MEMORY_IN_WRONG_FORMAT); } for (String propertyName : this.getPatientDocumentProperties()) { if (dates.containsKey(propertyName)) { PhenoTipsDate date = dates.get(propertyName); // note: `date` may be null if data is missing if (CORRESPONDING_ASENTERED_FIELDNAMES.containsKey(propertyName)) { data.setStringValue(CORRESPONDING_ASENTERED_FIELDNAMES.get(propertyName), (date == null ? "" : date.toString())); } // if date is not a valid/complete date, toEarliestPossibleISODate() will return null // and date will be effectively "unset" data.setDateValue(propertyName, (date == null ? null : date.toEarliestPossibleISODate())); } } }
obj.setDateValue("date", edate); obj.setStringValue("url", entry.getLink()); obj.setStringValue("author", entry.getAuthor());
@Override public void onEvent(Event event, Object source, Object data) { XWikiDocument doc = (XWikiDocument) source; BaseObject patientRecordObj = doc.getXObject(new DocumentReference( doc.getDocumentReference().getRoot().getName(), "PhenoTips", "PatientClass")); if (patientRecordObj == null) { return; } String targetPropertyName = "date_of_birth"; int year = getParameter("date_of_birth_year", patientRecordObj.getNumber()); int month = getParameter("date_of_birth_month", patientRecordObj.getNumber()); int day = getParameter("date_of_birth_day", patientRecordObj.getNumber()); if (year == -1 || month == -1) { // No values specified in the request, skip this step return; } if (day <= 0) { day = 1; } Date birthdate = patientRecordObj.getDateValue(targetPropertyName); Date newBirthdate = new GregorianCalendar(year, month, day).getTime(); if (!newBirthdate.equals(birthdate)) { patientRecordObj.setDateValue(targetPropertyName, newBirthdate); } }
@Override public void onEvent(Event event, Object source, Object data) { XWikiDocument doc = (XWikiDocument) source; BaseObject patientRecordObj = doc.getXObject(new DocumentReference( doc.getDocumentReference().getRoot().getName(), Constants.CODE_SPACE, "PatientClass")); if (patientRecordObj == null) { return; } String targetPropertyName = "date_of_birth"; int year = getParameter("date_of_birth_year", patientRecordObj.getNumber()); int month = getParameter("date_of_birth_month", patientRecordObj.getNumber()); int day = getParameter("date_of_birth_day", patientRecordObj.getNumber()); if (year == -1 || month == -1) { // No values specified in the request, skip this step return; } if (day <= 0) { day = 1; } Date birthdate = patientRecordObj.getDateValue(targetPropertyName); Date newBirthdate = new GregorianCalendar(year, month, day).getTime(); if (!newBirthdate.equals(birthdate)) { patientRecordObj.setDateValue(targetPropertyName, newBirthdate); } }
@Override public void refuseInvitation(MemberCandidacy invitation, String message) throws WikiUserManagerException { // Set the values invitation.setUserComment(message); invitation.setStatus(MemberCandidacy.Status.REJECTED); invitation.setDateOfClosure(new Date()); // Get the group document XWikiDocument groupDoc = getMembersGroupDocument(invitation.getWikiId()); // Get the candidacy object BaseObject object = groupDoc.getXObject(WikiCandidateMemberClassInitializer.REFERENCE, invitation.getId()); // Set the new values object.setLargeStringValue(WikiCandidateMemberClassInitializer.FIELD_USER_COMMENT, invitation.getUserComment()); object.setDateValue(WikiCandidateMemberClassInitializer.FIELD_DATE_OF_CLOSURE, invitation.getDateOfClosure()); object.setStringValue(WikiCandidateMemberClassInitializer.FIELD_STATUS, invitation.getStatus().name().toLowerCase()); // Save the document saveGroupDocument(groupDoc, String.format("User [%s] has rejected the invitation to join the wiki.", invitation.getUserId())); } }
/** * Save the date of the execution in the watchlist job object. * * @throws XWikiException if the job document can't be retrieved or if the save action fails */ private void setPreviousFireTime() throws XWikiException { XWikiDocument doc = getXWikiContext().getWiki().getDocument(this.watchListJobObject.getDocumentReference(), getXWikiContext()); this.watchListJobObject.setDateValue(WatchListJobClassDocumentInitializer.LAST_FIRE_TIME_FIELD, new Date()); // Prevent version changes doc.setMetaDataDirty(false); doc.setContentDirty(false); getXWikiContext().getWiki().saveDocument(doc, "Updated last fire time", true, getXWikiContext()); }
@Override public void acceptInvitation(MemberCandidacy invitation, String message) throws WikiUserManagerException { // Add the user to the members addMember(invitation.getUserId(), invitation.getWikiId()); // Set the values invitation.setUserComment(message); invitation.setStatus(MemberCandidacy.Status.ACCEPTED); invitation.setDateOfClosure(new Date()); // Get the group document XWikiDocument groupDoc = getMembersGroupDocument(invitation.getWikiId()); // Get the candidacy object BaseObject object = groupDoc.getXObject(WikiCandidateMemberClassInitializer.REFERENCE, invitation.getId()); // Set the new values object.setLargeStringValue(WikiCandidateMemberClassInitializer.FIELD_USER_COMMENT, invitation.getUserComment()); object.setDateValue(WikiCandidateMemberClassInitializer.FIELD_DATE_OF_CLOSURE, invitation.getDateOfClosure()); object.setStringValue(WikiCandidateMemberClassInitializer.FIELD_STATUS, invitation.getStatus().name().toLowerCase()); // Save the document saveGroupDocument(groupDoc, String.format("User [%s] has accepted to join the wiki. ", invitation.getUserId())); }
@Override public MemberCandidacy askToJoin(String userId, String wikiId, String message) throws WikiUserManagerException { MemberCandidacy candidacy = new MemberCandidacy(wikiId, userId, MemberCandidacy.CandidateType.REQUEST); candidacy.setUserComment(message); // Get the group document XWikiDocument groupDoc = getMembersGroupDocument(wikiId); // Add a candidacy object XWikiContext xcontext = xcontextProvider.get(); try { int objectNumber = groupDoc.createXObject(WikiCandidateMemberClassInitializer.REFERENCE, xcontext); candidacy.setId(objectNumber); BaseObject object = groupDoc.getXObject(WikiCandidateMemberClassInitializer.REFERENCE, objectNumber); object.setStringValue(WikiCandidateMemberClassInitializer.FIELD_USER, candidacy.getUserId()); object.setLargeStringValue(WikiCandidateMemberClassInitializer.FIELD_USER_COMMENT, candidacy.getUserComment()); object.setStringValue(WikiCandidateMemberClassInitializer.FIELD_STATUS, candidacy.getStatus().name().toLowerCase()); object.setDateValue(WikiCandidateMemberClassInitializer.FIELD_DATE_OF_CREATION, candidacy.getDateOfCreation()); object.setStringValue(WikiCandidateMemberClassInitializer.FIELD_TYPE, candidacy.getType().name().toLowerCase()); } catch (XWikiException e) { throw new WikiUserManagerException("Failed to create a new join request.", e); } // Save the document saveGroupDocument(groupDoc, String.format("[%s] asks to join the wiki.", userId)); return candidacy; }
@Override public void refuseRequest(MemberCandidacy request, String message, String privateComment) throws WikiUserManagerException { // Update the candidacy object XWikiContext xcontext = xcontextProvider.get(); // Set the values request.setAdminId(documentReferenceSerializer.serialize(xcontext.getUserReference())); request.setAdminComment(message); request.setAdminPrivateComment(privateComment); request.setStatus(MemberCandidacy.Status.REJECTED); request.setDateOfClosure(new Date()); // Get the group document XWikiDocument groupDoc = getMembersGroupDocument(request.getWikiId()); // Get the candidacy object BaseObject object = groupDoc.getXObject(WikiCandidateMemberClassInitializer.REFERENCE, request.getId()); // Set the new values object.setStringValue(WikiCandidateMemberClassInitializer.FIELD_ADMIN, request.getAdminId()); object.setLargeStringValue(WikiCandidateMemberClassInitializer.FIELD_ADMIN_COMMENT, request.getAdminComment()); object.setLargeStringValue(WikiCandidateMemberClassInitializer.FIELD_ADMIN_PRIVATE_COMMENT, request.getAdminPrivateComment()); object.setDateValue(WikiCandidateMemberClassInitializer.FIELD_DATE_OF_CLOSURE, request.getDateOfClosure()); object.setStringValue(WikiCandidateMemberClassInitializer.FIELD_STATUS, request.getStatus().name().toLowerCase()); // Save the document saveGroupDocument(groupDoc, String.format("Reject join request from user [%s]", request.getUserId())); }
object.setStringValue(WikiCandidateMemberClassInitializer.FIELD_STATUS, candidacy.getStatus().name().toLowerCase()); object.setDateValue(WikiCandidateMemberClassInitializer.FIELD_DATE_OF_CREATION, candidacy.getDateOfCreation()); object.setStringValue(WikiCandidateMemberClassInitializer.FIELD_TYPE,
@Override public void acceptRequest(MemberCandidacy request, String message, String privateComment) throws WikiUserManagerException { // Add the user to the members addMember(request.getUserId(), request.getWikiId()); // Then, update the candidacy object XWikiContext xcontext = xcontextProvider.get(); // Set the values request.setAdminId(documentReferenceSerializer.serialize(xcontext.getUserReference())); request.setAdminComment(message); request.setAdminPrivateComment(privateComment); request.setStatus(MemberCandidacy.Status.ACCEPTED); request.setDateOfClosure(new Date()); // Get the group document XWikiDocument groupDoc = getMembersGroupDocument(request.getWikiId()); // Get the candidacy object BaseObject object = groupDoc.getXObject(WikiCandidateMemberClassInitializer.REFERENCE, request.getId()); // Set the new values object.setStringValue(WikiCandidateMemberClassInitializer.FIELD_ADMIN, request.getAdminId()); object.setLargeStringValue(WikiCandidateMemberClassInitializer.FIELD_ADMIN_COMMENT, request.getAdminComment()); object.setLargeStringValue(WikiCandidateMemberClassInitializer.FIELD_ADMIN_PRIVATE_COMMENT, request.getAdminPrivateComment()); object.setDateValue(WikiCandidateMemberClassInitializer.FIELD_DATE_OF_CLOSURE, request.getDateOfClosure()); object.setStringValue(WikiCandidateMemberClassInitializer.FIELD_STATUS, request.getStatus().name().toLowerCase()); // Save the document saveGroupDocument(groupDoc, String.format("Accept join request from user [%s]", request.getUserId())); }
newObject.setLargeStringValue(WikiCandidateMemberClassInitializer.FIELD_ADMIN_PRIVATE_COMMENT, oldObject.getLargeStringValue("reviewerPrivateComment")); newObject.setDateValue(WikiCandidateMemberClassInitializer.FIELD_DATE_OF_CREATION, oldObject.getDateValue("date")); newObject.setDateValue(WikiCandidateMemberClassInitializer.FIELD_DATE_OF_CLOSURE, oldObject.getDateValue("resolutionDate"));