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: import org.springframework.dao.DataAccessException;
19:
20: /**
21: * Represents a more extensive data access object
22: * for {@link BasicAclEntry}s.
23: *
24: * <p>
25: * <code>BasicAclExtendedDao</code> implementations are responsible for interpreting a
26: * a given {@link AclObjectIdentity}.
27: * </p>
28: *
29: * @author Ben Alex
30: * @version $Id: BasicAclExtendedDao.java 1784 2007-02-24 21:00:24Z luke_t $
31: */
32: public interface BasicAclExtendedDao extends BasicAclDao {
33: //~ Methods ========================================================================================================
34:
35: /**
36: * Changes the permission mask assigned to the <code>BasicAclEntry</code> associated with the specified
37: * <code>AclObjectIdentity</code> and recipient <code>Object</code>.
38: *
39: * @param aclObjectIdentity to locate the relevant <code>BasicAclEntry</code>
40: * @param recipient to locate the relevant <code>BasicAclEntry</code>
41: * @param newMask indicating the new permission
42: *
43: * @throws DataAccessException DOCUMENT ME!
44: */
45: void changeMask(AclObjectIdentity aclObjectIdentity,
46: Object recipient, Integer newMask)
47: throws DataAccessException;
48:
49: void create(BasicAclEntry basicAclEntry) throws DataAccessException;
50:
51: /**
52: * Deletes <b>all</b> entries associated with the specified <code>AclObjectIdentity</code>.
53: *
54: * @param aclObjectIdentity to delete, including any <code>BasicAclEntry</code>s
55: *
56: * @throws DataAccessException DOCUMENT ME!
57: */
58: void delete(AclObjectIdentity aclObjectIdentity)
59: throws DataAccessException;
60:
61: /**
62: * Deletes the <code>BasicAclEntry</code> associated with the specified <code>AclObjectIdentity</code> and
63: * recipient <code>Object</code>.
64: *
65: * @param aclObjectIdentity to delete
66: * @param recipient to delete
67: *
68: * @throws DataAccessException DOCUMENT ME!
69: */
70: void delete(AclObjectIdentity aclObjectIdentity, Object recipient)
71: throws DataAccessException;
72: }
|