View Javadoc

1   /**
2    * 
3    */
4   package org.sourceforge.jemm.database;
5   
6   import java.util.Iterator;
7   import java.util.Set;
8   
9   import org.sourceforge.jemm.database.components.types.StoredAtomicIntObject;
10  import org.sourceforge.jemm.database.components.types.StoredListObject;
11  import org.sourceforge.jemm.database.components.types.StoredMapObject;
12  import org.sourceforge.jemm.database.components.types.StoredObject;
13  import org.sourceforge.jemm.database.components.types.StoredSetObject;
14  import org.sourceforge.jemm.database.components.types.StoredUserObject;
15  import org.sourceforge.jemm.types.ID;
16  
17  /**
18   * Interface to reduce direct coupling between ObjectHandlers and their users.
19   * 
20   * @author Rory Graves
21   */
22  public interface ObjectAccessor {
23      StoredObject getObject(ID objectId);
24      StoredUserObject getUserObject(ID objectId);
25  
26      /**
27       * Returns the stored jemm list object referred to by 'id'
28       * @param id The id of the set to retrieve.
29       * @throws IllegalArgumentException If 'id' is null or is not JLIST type id.
30       * @throws IllegalStateException If the object is not in the database (an internal error), or the type
31       *         of the retrieved object is not a stored jemm list.
32       */
33      StoredListObject getListObject(ID objectId);
34  
35      /**
36       * Returns the stored jemm set object referred to by 'id'
37       * @param id The id of the set to retrieve.
38       * @throws IllegalArgumentException If 'id' is null or is not JSET type id.
39       * @throws IllegalStateException If the object is not in the database (an internal error), or the type
40       *         of the retrieved object is not a stored jemm set.
41       */
42  	StoredSetObject getSetObject(ID id);
43      /**
44       * Returns the stored jemm map object referred to by 'id'
45       * @param id The id of the map to retrieve.
46       * @throws IllegalArgumentException If 'id' is null or is not JSET type id.
47       * @throws IllegalStateException If the object is not in the database (an internal error), or the type
48       *         of the retrieved object is not a stored jemm map.
49       */
50  	StoredMapObject getMapObject(ID id);
51  
52  	boolean checkExists(ID objectId);
53  
54  	void release(StoredObject object);
55  
56  	/**
57  	 * Returns an iterator over the currently active ID set 
58  	 * @return An iterator over valid IDs
59  	 */
60  	Iterator<ID> idIterator();
61  
62  	void removeObject(ID id);
63  
64  	Set<ID> getObjectChildren(ID id);
65  	
66  	ID createObject(ClientId clientId,ClassId classId);
67  }