/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import com.enonic.cms.core.content.category.CategoryACL; import com.enonic.cms.core.content.category.CategoryAccessControl; import com.enonic.cms.core.security.group.GroupKey; public class ContentACL implements Iterable<ContentAccessControl> { private Map<GroupKey, ContentAccessControl> mapByGroupKey = new LinkedHashMap<GroupKey, ContentAccessControl>(); public void add( ContentAccessControl control ) { mapByGroupKey.put( control.getGroup(), control ); } public boolean containsKey( GroupKey groupKey ) { return mapByGroupKey.containsKey( groupKey ); } @Override public Iterator<ContentAccessControl> iterator() { return mapByGroupKey.values().iterator(); } @Override public String toString() { StringBuilder s = new StringBuilder(); for ( ContentAccessControl cac : mapByGroupKey.values() ) { s.append( cac ).append( ", " ); } return s.toString(); } public static ContentACL create( final CategoryACL categoryACL ) { final ContentACL contentACL = new ContentACL(); for ( CategoryAccessControl car : categoryACL ) { contentACL.add( ContentAccessControl.create( car ) ); } return contentACL; } }