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.Map; import java.util.Set; import com.google.common.collect.Sets; import com.enonic.cms.core.content.access.ContentAccessEntity; import com.enonic.cms.core.content.category.CategoryAccessEntity; import com.enonic.cms.core.security.group.GroupKey; public class ContentIndexDataAccessRightsFactory extends IndexFieldNameConstants { public void create(final ContentIndexData contentIndexData, final Collection<ContentAccessEntity> contentAccessRights, Map<GroupKey, CategoryAccessEntity> categoryAccessRights) { if (contentAccessRights == null) { return; } final Set<String> readAccess = Sets.newTreeSet(); final Set<String> deleteAccess = Sets.newTreeSet(); final Set<String> updateAccess = Sets.newTreeSet(); final Set<String> browseAccess = Sets.newTreeSet(); final Set<String> approveAccess = Sets.newTreeSet(); final Set<String> administrateAccess = Sets.newTreeSet(); for (final ContentAccessEntity contentAccess : contentAccessRights) { final GroupKey group = contentAccess.getGroup().getGroupKey(); final String groupKey = group.toString(); if (contentAccess.isReadAccess()) { readAccess.add(groupKey); } if (contentAccess.isUpdateAccess()) { updateAccess.add(groupKey); } if (contentAccess.isDeleteAccess()) { deleteAccess.add(groupKey); } } for (GroupKey categoryAccessGroup : categoryAccessRights.keySet()) { CategoryAccessEntity categoryAccess = categoryAccessRights.get(categoryAccessGroup); final String groupKey = categoryAccessGroup.toString(); if (categoryAccess.givesAdminBrowse()) { browseAccess.add(groupKey); } if (categoryAccess.givesApprove()) { approveAccess.add(groupKey); } if (categoryAccess.givesAdministrate()) { administrateAccess.add(groupKey); } } contentIndexData.addContentIndexDataElement(CONTENT_ACCESS_READ_FIELDNAME, readAccess, false); contentIndexData.addContentIndexDataElement(CONTENT_ACCESS_UPDATE_FIELDNAME, updateAccess, false); contentIndexData.addContentIndexDataElement(CONTENT_ACCESS_DELETE_FIELDNAME, deleteAccess, false); contentIndexData.addContentIndexDataElement(CONTENT_CATEGORY_ACCESS_BROWSE_FIELDNAME, browseAccess, false); contentIndexData.addContentIndexDataElement(CONTENT_CATEGORY_ACCESS_APPROVE_FIELDNAME, approveAccess, false); contentIndexData.addContentIndexDataElement(CONTENT_CATEGORY_ACCESS_ADMINISTRATE_FIELDNAME, administrateAccess, false); } }