/** * Updates categories for a {@code feature}. * * @param doc the {@link XWikiDocument} object for the patient * @param feature the {@link Feature} of interest * @param context the {@link XWikiContext} * @throws XWikiException if categories cannot be updated */ private void updateCategories( @Nonnull final XWikiDocument doc, @Nonnull final Feature feature, @Nonnull final XWikiContext context) throws XWikiException { final List<String> categories = feature.getCategories(); if (!categories.isEmpty()) { final BaseObject categoriesObject = doc.newXObject(PhenoTipsFeature.CATEGORY_CLASS_REFERENCE, context); categoriesObject.set(PhenoTipsFeature.META_PROPERTY_NAME, feature.getPropertyName(), context); categoriesObject.set(PhenoTipsFeature.META_PROPERTY_VALUE, feature.getValue(), context); categoriesObject.set(PhenoTipsFeature.META_PROPERTY_CATEGORIES, categories, context); } } }
private void updateCategories(PatientData<Feature> features, XWikiDocument doc, XWikiContext context) throws XWikiException { doc.removeXObjects(PhenoTipsFeature.CATEGORY_CLASS_REFERENCE); Iterator<Feature> iterator = features.iterator(); while (iterator.hasNext()) { Feature feature = iterator.next(); List<String> categories = feature.getCategories(); if (categories.isEmpty()) { continue; } BaseObject categoriesObject = doc.newXObject(PhenoTipsFeature.CATEGORY_CLASS_REFERENCE, context); categoriesObject.set(PhenoTipsFeature.META_PROPERTY_NAME, feature.getPropertyName(), context); categoriesObject.set(PhenoTipsFeature.META_PROPERTY_VALUE, feature.getValue(), context); categoriesObject.set(PhenoTipsFeature.META_PROPERTY_CATEGORIES, categories, context); } }