01: //** Copyright Statement ***************************************************
02: //The Salmon Open Framework for Internet Applications (SOFIA)
03: // Copyright (C) 1999 - 2002, Salmon LLC
04: //
05: // This program is free software; you can redistribute it and/or
06: // modify it under the terms of the GNU General Public License version 2
07: // as published by the Free Software Foundation;
08: //
09: // This program is distributed in the hope that it will be useful,
10: // but WITHOUT ANY WARRANTY; without even the implied warranty of
11: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12: // GNU General Public License for more details.
13: //
14: // You should have received a copy of the GNU General Public License
15: // along with this program; if not, write to the Free Software
16: // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17: //
18: // For more information please visit http://www.salmonllc.com
19: //** End Copyright Statement ***************************************************
20: package com.salmonllc.sql;
21:
22: /////////////////////////
23: //$Archive: /SOFIA/SourceCode/com/salmonllc/sql/DataStoreQBEInterface.java $
24: //$Author: Dan $
25: //$Revision: 2 $
26: //$Modtime: 11/01/04 4:21p $
27: /////////////////////////
28:
29: /**
30: * This interface is for DataStores that should work with the QBEBuilder
31: */
32: public interface DataStoreQBEInterface {
33:
34: /**
35: * This method returns the number of aliases used by the datastore.
36: */
37: public int getAliasCount();
38:
39: /**
40: * This method returns the database name of the column in the data store
41: * given its index.
42: */
43: public String getColumnDatabaseName(int col)
44: throws DataStoreException;
45:
46: /**
47: * This method returns the name of the database table that the column is
48: * for.
49: */
50: public String getColumnTableName(int col) throws DataStoreException;
51:
52: /**
53: * Returns the name of the database engine being used
54: */
55: public String getDBMS();
56:
57: /**
58: * Returns a list of column definitions for a particular table in the database that the datastore is using. Note, the datastore must have an app name for this method to work.
59: */
60: public ColumnDefinition[] getColumnsForTable(String table);
61:
62: /**
63: * This method returns the name of one of the aliases used by the datastore. Use the method getAliasCount() to find out how many tables or aliases are used by the datastore.
64: * @return The table name.
65: */
66: public String getAlias(int tableNo) throws DataStoreException;
67:
68: /**
69: * This method returns the name of one of the tables used by the datastore. Use the method getAliasCount() to find out how many tables or aliases are used by the datastore.
70: * @return The table name.
71: */
72: public String getTable(int tableNo) throws DataStoreException;
73:
74: /**
75: * Executes the sql statement and retrieves to data. The data is retrieved in a new thread so the beginning of the result set can be accessed before all the data has been retrieved.
76: * @param criteria Additional selection criteria to use to limit the result set
77: */
78: public void retrieve(String criteria) throws java.sql.SQLException,
79: DataStoreException;
80:
81: /**
82: * Use this method to get the amount of rows that will be retrieved when a data store retrieve is executed.
83: * @param criteria The selection criteria to use for the select.
84: */
85: public int estimateRowsRetrieved(String criteria) throws Exception;
86:
87: /**
88: * This method returns the number of columns in the datastore.
89: */
90: public int getColumnCount();
91:
92: /**
93: * This method returns the index of the column in the data store given its name.
94: * @return The column number or -1 if the column name is not found.
95: * @param column The name of the column to search for.
96: */
97: public int getColumnIndex(String column);
98: }
|