summaryrefslogtreecommitdiffstats
path: root/java/org/odmg/Implementation.java
blob: f2d2e6fc4f12dc1208c86bd9e492c330d12bdb59 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
* This file is part of rasdaman community.
*
* Rasdaman community is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Rasdaman community is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with rasdaman community.  If not, see <http://www.gnu.org/licenses/>.
*
* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
rasdaman GmbH.
*
* For more information please see <http://www.rasdaman.org>
* or contact Peter Baumann via <baumann@rasdaman.com>.
*/
package org.odmg;

/**
* The factory interface for a particular ODMG implementation.
* Each ODMG implementation will have a class that implements this interface.
* @author	David Jordan (as Java Editor of the Object Data Management Group)
* @version ODMG 3.0
*/

public interface Implementation {
/**
* Create a <code>Transaction</code> object and associate it with the current thread.
* @return The newly created <code>Transaction</code> instance.
* @see org.odmg.Transaction
*/
	public		Transaction		newTransaction();

/**
* Get the current <code>Transaction</code> for the thread.
* @return The current <code>Transaction</code> object or null if there is none.
* @see org.odmg.Transaction
*/
	public		Transaction		currentTransaction();

/**
* Create a new <code>Database</code> object.
* @return The new <code>Database</code> object.
* @see org.odmg.Database
*/
	public		Database			newDatabase();

/**
* Create a new <code>OQLQuery</code> object.
* @return The new <code>OQLQuery</code> object.
* @see org.odmg.OQLQuery
*/
	public		OQLQuery			newOQLQuery();

/**
* Create a new <code>DList</code> object.
* @return The new <code>DList</code> object.
* @see org.odmg.DList
*/
	public		DList					newDList();

/**
* Create a new <code>DBag</code> object.
* @return The new <code>DBag</code> object.
* @see org.odmg.DBag
*/
	public		DBag					newDBag();

/**
* Create a new <code>DSet</code> object.
* @return The new <code>DSet</code> object.
* @see org.odmg.DSet
*/
	public		DSet					newDSet();

/**
* Create a new <code>DArray</code> object,
* <BR><I> not yet available in RasDaMan. </BR></I>
* @return The new <code>DArray</code> object.
* @see org.odmg.DArray
*/
	public		DArray				newDArray();

/**
* Create a new <code>DMap</code> object,
* <BR><I> not yet available in RasDaMan. </BR></I>
* @return	The new <code>DMap</code> object.
* @see org.odmg.DMap
*/
	public		DMap					newDMap();

/**
* Get a <code>String</code> representation of the object's identifier.
* @param obj The object whose identifier is being accessed.
* @return The object's identifier in the form of a String
*/
	public		String				getObjectId(Object obj);

/**
* Get the <code>Database</code> that contains the object <code>obj</code>,
* <BR><I> not yet available in RasDaMan. </BR></I>
* @param obj The object.
* @return The <code>Database</code> that contains the object.
*/
	public		Database			getDatabase(Object obj);
}