001: /*
002: * The contents of this file are subject to the Sapient Public License
003: * Version 1.0 (the "License"); you may not use this file except in compliance
004: * with the License. You may obtain a copy of the License at
005: * http://carbon.sf.net/License.html.
006: *
007: * Software distributed under the License is distributed on an "AS IS" basis,
008: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
009: * the specific language governing rights and limitations under the License.
010: *
011: * The Original Code is The Carbon Component Framework.
012: *
013: * The Initial Developer of the Original Code is Sapient Corporation
014: *
015: * Copyright (C) 2003 Sapient Corporation. All Rights Reserved.
016: */
017:
018: package org.sape.carbon.services.sql;
019:
020: import org.sape.carbon.core.config.Configuration;
021: import org.sape.carbon.services.sql.connection.ConnectionFactory;
022:
023: /**
024: * <p>This configuration holds the definition of a specific SQL statement. It
025: * maintains the parameters that are configurable on java.sql.Statement objects
026: * and their subclasses in order to allow configurable modification of their
027: * use with the Statement Factory.</p>
028: *
029: * Copyright 2002 Sapient
030: * @since carbon 1.0
031: * @author Vivekanand Kirubanandan, June 2002
032: * @author Greg Hinkle, December 2002
033: * @version $Revision: 1.6 $($Author: dvoet $ / $Date: 2003/05/05 21:21:36 $)
034:
035: */
036: public interface StatementConfiguration extends Configuration {
037:
038: /**
039: * Getter for the name of the query
040: * @return the name of the query
041: */
042: String getQueryName();
043:
044: /**
045: * Setter for the query name
046: * @param queryName the name of the query
047: */
048: void setQueryName(String queryName);
049:
050: /**
051: * The getter for the sql code of this query
052: * @return the sql query code
053: */
054: String getQuery();
055:
056: /**
057: * Setter for the sql query
058: * @param query the sql of this query
059: */
060: void setQuery(String query);
061:
062: /**
063: * Getter for the connection factory to be used when creating
064: * queries.
065: * @return the specific connection factory for this query
066: */
067: ConnectionFactory getConnectionFactory();
068:
069: /**
070: * Setter for the connection factory
071: * @param connectionFactory the default connection factory for this query
072: */
073: void setConnectionFactory(ConnectionFactory connectionFactory);
074:
075: /**
076: * Getter for the result set type
077: * @return the default type of result set
078: */
079: ResultSetTypeEnum getResultSetType();
080:
081: /**
082: * Setter for the default type of result set.
083: * @param resultSetType the type of result set created
084: * @see java.sql.ResultSet#TYPE_FORWARD_ONLY
085: * @see java.sql.ResultSet#TYPE_SCROLL_INSENSITIVE
086: * @see java.sql.ResultSet#TYPE_SCROLL_SENSITIVE
087: */
088: void setResultSetType(ResultSetTypeEnum resultSetType);
089:
090: /**
091: * Getter for the configured query's result set concurrency.
092: * @return the default concurrency for this query
093: */
094: ResultSetConcurrencyEnum getResultSetConcurrency();
095:
096: /**
097: * Setter for the concurrency of the result set.
098: * @param resultSetConcurrency the concurrency type of the result set
099: * @see java.sql.ResultSet#CONCUR_READ_ONLY
100: * @see java.sql.ResultSet#CONCUR_UPDATABLE
101: */
102: void setResultSetConcurrency(
103: ResultSetConcurrencyEnum resultSetConcurrency);
104:
105: /**
106: * Getter for the configured maximum number of rows to return.
107: * @return the maximum number of rows to return.
108: */
109: Integer getMaxRows();
110:
111: /**
112: * Setter for the max rows to return.
113: * @param maxRows The maximum number of rows to return from a query.
114: */
115: void setMaxRows(Integer maxRows);
116:
117: /**
118: * Getter for the configured fetch size.
119: * @return Gets the configured driver hint for rows to return
120: * at a time.
121: */
122: Integer getFetchSize();
123:
124: /**
125: * Setter for the fetch size on results sets.
126: * @param fetchSize A driver hint for the count of records to be returned
127: * on each database message.
128: */
129: void setFetchSize(Integer fetchSize);
130:
131: /**
132: * Getter for the maximum field size.
133: * @return the maximum field size in bytes
134: */
135: Integer getMaxFieldSize();
136:
137: /**
138: * Setter for the size of fields to be returned.
139: * @param maxFieldSize The max size, in bytes, that the driver should return
140: * for a column.
141: */
142: void setMaxFieldSize(Integer maxFieldSize);
143:
144: /**
145: * Getter for the configured query timeout.
146: * @return the configured query timeout in milleseconds
147: */
148: Integer getQueryTimeOut();
149:
150: /**
151: * Setter for the timeout in milleseconds of this query
152: * @param queryTimeOut the number of milleseconds before the driver should
153: * timeout a database query. (Drivers have defaults)
154: */
155: void setQueryTimeOut(Integer queryTimeOut);
156: }
|