private void indexStaticList(Document luceneDoc, BaseObject baseObject, StaticListClass prop, String propertyName,
XWikiContext context)
{
Map<String, ListItem> possibleValues = prop.getMap(context);
String fieldFullName = baseObject.getClassName() + "." + propertyName;
for (String value : (List<String>) baseObject.getListValue(propertyName)) {
ListItem item = possibleValues.get(value);
if (item != null) {
String fieldName = fieldFullName + ".key";
addFieldToDocument(fieldName, item.getId(), Field.Store.YES, Field.Index.ANALYZED,
OBJECT_PROPERTY_BOOST, luceneDoc);
fieldName = fieldFullName + ".value";
addFieldToDocument(fieldName, item.getValue(), Field.Store.YES, Field.Index.ANALYZED,
OBJECT_PROPERTY_BOOST, luceneDoc);
if (!item.getId().equals(item.getValue())) {
addFieldToDocument(fieldFullName, item.getValue(), Field.Store.YES, Field.Index.ANALYZED,
OBJECT_PROPERTY_BOOST, luceneDoc);
}
}
addFieldToDocument(fieldFullName, value, Field.Store.YES, Field.Index.ANALYZED, OBJECT_PROPERTY_BOOST,
luceneDoc);
}
}