View Javadoc

1   /*
2    * Copyright 2008 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.rice.kim.dao.impl;
17  
18  import java.util.ArrayList;
19  import java.util.Collection;
20  import java.util.List;
21  
22  import org.apache.ojb.broker.query.Criteria;
23  import org.apache.ojb.broker.query.Query;
24  import org.apache.ojb.broker.query.QueryFactory;
25  import org.kuali.rice.kim.bo.role.KimPermission;
26  import org.kuali.rice.kim.bo.role.impl.RolePermissionImpl;
27  import org.kuali.rice.kim.dao.KimPermissionDao;
28  import org.kuali.rice.kns.dao.impl.PlatformAwareDaoBaseOjb;
29  
30  /**
31   * This is a description of what this class does - kellerj don't forget to fill this in. 
32   * 
33   * @author Kuali Rice Team (rice.collab@kuali.org)
34   *
35   */
36  public class KimPermissionDaoOjb extends PlatformAwareDaoBaseOjb implements KimPermissionDao {
37  
38  	/**
39  	 * @see org.kuali.rice.kim.dao.KimPermissionDao#getRoleIdsForPermissions(java.util.Collection)
40  	 */
41  	@SuppressWarnings("unchecked")
42  	public List<String> getRoleIdsForPermissions(Collection<? extends KimPermission> permissions) {
43  		if ( permissions.isEmpty() ) {
44  			return new ArrayList<String>(0);
45  		}
46  		List<String> permissionIds = new ArrayList<String>( permissions.size() );
47  		for ( KimPermission kp : permissions ) {
48  			permissionIds.add( kp.getPermissionId() );
49  		}
50  		Criteria c = new Criteria();
51  		c.addIn( "permissionId", permissionIds );
52  		c.addEqualTo( "active", true );
53  		
54  		Query query = QueryFactory.newQuery( RolePermissionImpl.class, c, true );
55  		Collection<RolePermissionImpl> coll = getPersistenceBrokerTemplate().getCollectionByQuery(query);
56  		List<String> roleIds = new ArrayList<String>( coll.size() );
57  		for ( RolePermissionImpl rp : coll ) {
58  			roleIds.add( rp.getRoleId() );
59  		}
60  		return roleIds;
61  	}
62  
63  }