01: /* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
02: *
03: * Licensed under the Apache License, Version 2.0 (the "License");
04: * you may not use this file except in compliance with the License.
05: * You may obtain a copy of the License at
06: *
07: * http://www.apache.org/licenses/LICENSE-2.0
08: *
09: * Unless required by applicable law or agreed to in writing, software
10: * distributed under the License is distributed on an "AS IS" BASIS,
11: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12: * See the License for the specific language governing permissions and
13: * limitations under the License.
14: */
15:
16: package org.acegisecurity.acl.basic;
17:
18: /**
19: * Represents a data access object that can return the {@link BasicAclEntry}s
20: * applying to a given ACL object identity.
21: *
22: * <P>
23: * <code>BasicAclDao</code> implementations are responsible for interpreting a
24: * given {@link AclObjectIdentity} and being able to lookup and return the
25: * corresponding {@link BasicAclEntry}[]s.
26: * </p>
27: *
28: * <P>
29: * <code>BasicAclDao</code>s many, but are not required to, allow the backend
30: * ACL repository to specify the class of <code>BasicAclEntry</code>
31: * implementations that should be returned.
32: * </p>
33: *
34: * @author Ben Alex
35: * @version $Id: BasicAclDao.java 1784 2007-02-24 21:00:24Z luke_t $
36: */
37: public interface BasicAclDao {
38: //~ Methods ========================================================================================================
39:
40: /**
41: * Obtains the ACLs that apply to the specified domain instance.<P>Does <b>not</b> perform caching, include
42: * ACLs from any inheritance hierarchy or filter returned objects based on effective permissions. Implementations
43: * are solely responsible for returning ACLs found in the ACL repository for the specified object identity.</p>
44: *
45: * @param aclObjectIdentity the domain object instance that ACL information is being requested for (never
46: * <code>null</code>)
47: *
48: * @return the ACLs that apply (no <code>null</code>s are permitted in the array), or <code>null</code> if no ACLs
49: * could be found for the specified ACL object identity
50: */
51: BasicAclEntry[] getAcls(AclObjectIdentity aclObjectIdentity);
52: }
|