View Javadoc

1   /* Copyright 2004, 2005 Acegi Technology Pty Limited
2    *
3    * Licensed under the Apache License, Version 2.0 (the "License");
4    * you may not use this file except in compliance with the License.
5    * You may obtain a copy of the License at
6    *
7    *     http://www.apache.org/licenses/LICENSE-2.0
8    *
9    * 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.domain.dao;
17  
18  import org.acegisecurity.domain.PersistableEntity;
19  
20  
21  /***
22   * Indicates an implementation capable of evicting {@link
23   * org.acegisecurity.domain.PersistableEntity}s.
24   * 
25   * <p>
26   * Structured as a separate interface (rather than a subclass of
27   * <code>Dao</code>), as it is not required for all persistence strategies.
28   * </p>
29   *
30   * @author Ben Alex
31   * @version $Id: EvictionCapable.java,v 1.2 2005/11/17 00:55:47 benalex Exp $
32   */
33  public interface EvictionCapable {
34      //~ Methods ================================================================
35  
36      /***
37       * Removes the indicated persistent instance from the DAO's internal
38       * map/session.
39       * 
40       * <p>
41       * If the passed object does not exist in the internal map/session, the
42       * invocation has no effect.
43       * </p>
44       * 
45       * <p>
46       * May throw an exception if the implementation so desires.
47       * </p>
48       *
49       * @param entity to remove from the internal map/session
50       */
51      public void evict(PersistableEntity entity);
52  }