Java tutorial
/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.search.builder; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.enonic.cms.core.content.index.UserDefinedField; /** * Created by IntelliJ IDEA. * User: rmh * Date: 2/1/12 * Time: 3:18 PM */ public class ContentIndexDataCustomDataFactory extends IndexFieldNameConstants { public void create(final ContentIndexData contentIndexData, final Collection<UserDefinedField> userDefinedFields) { final Set<String> allUserdataFieldValues = new HashSet<String>(); final List<String> handledFieldNames = Lists.newArrayList(); for (final UserDefinedField userDefinedField : userDefinedFields) { final String fieldName = userDefinedField.getName(); final boolean alreadyHandledThisField = handledFieldNames.contains(fieldName); if (alreadyHandledThisField) { continue; } final Set<String> allValuesForField = getAllValuesForFieldName(fieldName, userDefinedFields); contentIndexData.addContentIndexDataElement(fieldName, allValuesForField); allUserdataFieldValues.addAll(allValuesForField); handledFieldNames.add(fieldName); } addAllUserdataField(contentIndexData, allUserdataFieldValues); } private Set<String> getAllValuesForFieldName(String fieldName, final Collection<UserDefinedField> userDefinedFields) { final Set<String> values = Sets.newTreeSet(); for (final UserDefinedField userDefinedField : userDefinedFields) { if (fieldName.equals(userDefinedField.getName())) { values.add(userDefinedField.getValue().getText()); } } return values; } private void addAllUserdataField(final ContentIndexData contentIndexData, final Set<String> allUserdataValue) { contentIndexData.addContentIndexDataElement(ALL_USERDATA_FIELDNAME, allUserdataValue, false); } }