View Javadoc

1   /* (c) Copyright 2003 Caleigo AB, All rights reserved. 
2    * 
3    * This library is free software; you can redistribute it and/or
4    * modify it under the terms of the GNU Lesser General Public
5    * License as published by the Free Software Foundation; either
6    * version 2.1 of the License, or (at your option) any later version.
7    * 
8    * This library is distributed in the hope that it will be useful,
9    * but WITHOUT ANY WARRANTY; without even the implied warranty of
10   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11   * Lesser General Public License for more details.
12   * 
13   * You should have received a copy of the GNU Lesser General Public
14   * License along with this library; if not, write to the Free Software
15   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16   *  
17   */
18  
19  package org.caleigo.core;
20  
21  /*** <Description of IProxyController>
22   *
23   * @author  Dennis Zikovic
24   * @version 1.00
25   *
26   *//*
27   *
28   * WHEN        WHO               WHY & WHAT
29   * -----------------------------------------------------------------------------
30   * 2002-10-07  Dennis Zikovic    Creation
31   */
32  public interface IProxyController extends IProxyEntity
33  {
34      // Constants ---------------------------------------------------------------
35      
36      // Methods -----------------------------------------------------------------
37      
38      /*** Returns an IControlledProxy object controlled by the called controller.
39       * Implementing classes may cache the controlled proxies and return the 
40       * same physical proxy object as long as the relationPath matches.
41       * The controller may refuse to controll a proxy and should then cast 
42       * an IllegalArgumentException.
43       */
44      public IControlledProxy getControlledProxy(IEntityDescriptor entityDescriptor, IEntityRelationPath relationPath);
45      
46      /*** Used to inform the controller that a controlled proxy instance will be
47       * discarded and gives the controller a chance to deallocate resources 
48       * connected to it. 
49       */
50      public void releaseControlledProxy(IControlledProxy proxy);
51      
52      /*** Returns an Iterator with all proxies currently controlled by the
53       * called controller.
54       */ 
55      public java.util.Iterator getControlledProxies();    
56      
57      /*** Should return true if any of the controlled proxies are dirty.
58       */ 
59      public boolean isDirty();
60      
61      /*** Prepares an transaction to load the proxy-chain structure that is
62       * controlled by the called IProxyController.
63       */
64      public void prepareControlledLoad(IDataTransaction transaction);
65      
66      /*** Prepares an transaction to store any changes made to the proxy-chain 
67       * structure that is controlled by the called IProxyController.
68       */
69      public void prepareControlledStore(IDataTransaction transaction);
70      
71      /*** Help method that initializes the data in an entity object based on its
72       * relation to the controller.
73       */
74      public void initializeEntity(IEntity entity, IEntityRelationPath relationPath);
75          
76      // Nested classes ----------------------------------------------------------
77  }