001: /**
002: * Sequoia: Database clustering technology.
003: * Copyright (C) 2006 Continuent, Inc.
004: * Contact: sequoia@continuent.org
005: *
006: * Licensed under the Apache License, Version 2.0 (the "License");
007: * you may not use this file except in compliance with the License.
008: * You may obtain a copy of the License at
009: *
010: * http://www.apache.org/licenses/LICENSE-2.0
011: *
012: * Unless required by applicable law or agreed to in writing, software
013: * distributed under the License is distributed on an "AS IS" BASIS,
014: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015: * See the License for the specific language governing permissions and
016: * limitations under the License.
017: *
018: * Initial developer(s): Gilles Rayrat.
019: * Contributor(s): ______________________.
020: */package org.continuent.sequoia.driver;
021:
022: import java.sql.SQLWarning;
023: import java.util.List;
024:
025: /**
026: * Holds the result of XXXExecuteUpdate() and XXXExecute() execution plus the
027: * possible SQL Warning chain that was generated by the database.<br>
028: * This holder contains a warning chain, that can be null, and either an update
029: * count (for XXXExecuteUpdate()) or a result list (for XXXExecute()), depending
030: * on the function call that generated the result.<br>
031: * <i>Note:</i> All methods of this class are package private, nobody but the
032: * driver itself should have access to it
033: *
034: * @author <a href="mailto:gilles.rayrat@continuent.com">Gilles Rayrat</a>
035: * @version 1.0
036: */
037: public class ResultAndWarnings {
038: /** warning chain, null means no warning */
039: private SQLWarning statementWarnings = null;
040:
041: private int updateCount = -1;
042: private List resultList = null;
043:
044: /**
045: * Constructs a <code>ResultAndWarning</code> that will hold an updateCount
046: * and the given SQLWarnings.<br>
047: * This constructor will typically be called by XXXexecuteUpdate() functions
048: *
049: * @param uc the update count
050: * @param warns the warnings to set, can be null
051: * @see Connection#statementExecuteUpdate(org.continuent.sequoia.common.sql.Request,
052: * SQLWarning)
053: * @see Connection#statementExecuteUpdateWithKeys(org.continuent.sequoia.common.sql.Request)
054: * @see Connection#callableStatementExecuteUpdate(org.continuent.sequoia.common.sql.Request)
055: */
056: ResultAndWarnings(int uc, SQLWarning warns) {
057: statementWarnings = warns;
058: updateCount = uc;
059: }
060:
061: /**
062: * Constructs a <code>ResultAndWarning</code> that will hold a resultList
063: * and the given SQLWarnings.<br>
064: * This constructor will typically be called by XXXexecute() functions
065: *
066: * @param reslist list of results
067: * @param warns the warnings to set, can be null
068: * @see Connection#statementExecute(org.continuent.sequoia.common.sql.RequestWithResultSetParameters)
069: * @see Connection#callableStatementExecute(org.continuent.sequoia.common.sql.RequestWithResultSetParameters)
070: */
071: ResultAndWarnings(List reslist, SQLWarning warns) {
072: statementWarnings = warns;
073: resultList = reslist;
074: }
075:
076: /**
077: * Gets the warning chain associated to the statement that generated the
078: * result
079: *
080: * @return a <code>SQLWarning</code> chain or null if no warnings
081: */
082: SQLWarning getStatementWarnings() {
083: return statementWarnings;
084: }
085:
086: /**
087: * Gets the updateCount. <i>Note:</i> if the held value is not an update
088: * count, then the returned value is unspecified
089: *
090: * @return the updateCount value
091: */
092: int getUpdateCount() {
093: return updateCount;
094: }
095:
096: /**
097: * Gets the ResultList. <i>Note:</i> if the held value is not an ResultList,
098: * then the returned value is unspecified
099: *
100: * @return the resultList value
101: */
102: List getResultList() {
103: return resultList;
104: }
105: }
|