Initial revision
[mir.git] / source / mir / storage / DatabaseAdaptor.java
1 /*
2  * put your module comment here
3  */
4
5
6 package  mir.storage;
7
8 import java.util.*;
9
10
11 /**
12  * Interfacedefinition für Datenbank-Adpatoren. Die Adaptoren legen
13  * jeweils das Verhalten und die Befehlsmächtigkeit der Datenbank
14  * fest.
15  *
16  * @author <RK>
17  * @version 27.6.1999
18  */
19
20 public interface  DatabaseAdaptor{
21
22          /* Liefert den Namen der Adaptorklasse
23          * @return Adaptorklasse als String
24          */
25         public abstract String getDriver ();
26
27
28         /**
29          * Liefert die URL für JDBC zurück, in den die Parameter user, pass und host
30          * eingefügt werden. Die URL wird aus der Konfiguration geholt.
31          *
32          * @param user user als String
33          * @param pass passwort als String
34          * @param host host als String
35          * @return url als String
36          */
37         public abstract String getURL (String user, String pass, String host);
38
39
40         /**
41          * Gibt zurück, ob das SQL der Datenbank den <code>limit</code>-Befehl beherrscht.
42          * @return true wenn ja, sonst false
43          */
44         public abstract boolean hasLimit ();
45
46
47         /**
48          * Liefert zurück, ob der <code>limit</code>-Befehl erst start und dann offset
49          * hat (true), oder umgekehrt. Nur Relevant, wenn hasLimit true zurückliefert.
50          *
51          * @return true wenn erstes, sonst false
52          */
53         public abstract boolean reverseLimit ();
54
55
56         /**
57          * Liefert ein Properties-Objekt zurueck mit user und password.
58          * @param user
59          * @param password
60          * @return Properties
61          */
62         public abstract Properties getProperties (String user, String password);
63
64
65         /**
66          * Gibt SQL-Stringfragment zurück, mit dem nach einem insert-Befehl ermittelt
67          * werden kann, wie man den primary-Key des eingefügten Datensatzes bekommt.
68          *
69          * @param theDB Database-Objekt, aus dem ggf. noetige Informationen geholt
70          * werden können, wie z.B. der Tabellenname
71          * @return SQL-Statement als String
72          */
73         public abstract String getLastInsertSQL (Database theDB);
74 }
75
76