KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > jorm > facility > naming > polymorphid > PolymorphIdMgr


1 /**
2  * JORM: an implementation of a generic mapping system for persistent Java
3  * objects. Two mapping are supported: to RDBMS and to binary files.
4  * Copyright (C) 2001-2003 France Telecom R&D - INRIA
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19  *
20  * Contact: jorm-team@objectweb.org
21  *
22  */

23
24 package org.objectweb.jorm.facility.naming.polymorphid;
25
26 import org.objectweb.jorm.api.PException;
27 import org.objectweb.jorm.api.PMapper;
28 import org.objectweb.jorm.naming.api.PBinder;
29 import org.objectweb.jorm.naming.api.PNamingContext;
30 import org.objectweb.jorm.type.api.PTypeSpace;
31 import org.objectweb.jorm.facility.naming.generator.LongGenMgr;
32
33 /**
34  * This manager allows the retrieval/allocation of PBinders and PNamingContext
35  * that manage polymorphic identifiers/references. These identifiers/references
36  * are composed of two longs: the first is the class identifier and the second
37  * one is the object identifier within this class (see PolymorphName.pd).
38  * @author P. Dechamboux
39  */

40 public interface PolymorphIdMgr {
41     /**
42      * Notifies the manager that a PType has been associated with this binder.
43      */

44     void binderTypeDef(PolymorphIdBinderInfo b);
45
46     /**
47      * Retrieves the LongGenMgr associated with this PolymorphIdMgr.
48      */

49     LongGenMgr getLongGenMgr();
50
51     /**
52      * Retrieves a PBinder that manages polymorphic identifiers for the class
53      * with the given name. If it does not exist, creates it.
54      * @param cn The class name.
55      */

56     PBinder getPBinder(String JavaDoc cn) throws PException;
57
58     /**
59      * Retrieves a PBinder that manages polymorphic identifiers for the class
60      * with the given name. If it does not exist, creates it.
61      * @param cn The class name.
62      */

63     PBinder getPBinder(long id) throws PException;
64
65     /**
66      * Retrieves a PBinder that manages polymorphic identifiers for the class
67      * with the given name. If it does not exist, creates it.
68      * @param cn The class name.
69      */

70     PBinder getPBinder(String JavaDoc cn, Object JavaDoc conn) throws PException;
71
72     /**
73      * Retrieves the mapper associated with this PolymorphIdMgr.
74      */

75     PMapper getPMapper();
76
77     /**
78      * Retrieves a PNamingContext that manages polymorphic references for the
79      * class with the given name. This means that such references can point to
80      * object of this class or any of its sub-classes. If it does not exist,
81      * creates it.
82      * @param cn The class name.
83      */

84     PNamingContext getRefNC(String JavaDoc cn);
85
86     /**
87      * Initializes a polymorphic identifier manager by mapping relevant classes
88      * to the given mapper, and setting up relevant initial persistent
89      * information.
90      */

91     void init(PMapper pm, byte clact) throws PException;
92
93     /**
94      * Notifies the manager that a PType has been associated with this binder.
95      */

96     void ncTypeDef(PolymorphRefNC n);
97
98     /**
99      * Allocates a new persisttent class identifier.
100      */

101     long newClassId() throws PException;
102
103     long newClassId(Object JavaDoc conn) throws PException;
104 }
105
Popular Tags