blob: 04a4033101def170262cfe947e0c44c0357e789f [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package flex.messaging.io;
import java.sql.SQLException;
import java.util.Map;
/**
* Implementations of this class are recoginized by the serialization filter
* as result sets that are pageable. A pageable result set is a server side
* cache of a query result (that implements java.sql.ResultSet) and is
* typically stored in the session object. Users can request a subset of
* data from the object given that they know it's id.
*
* @see javax.sql.RowSet
*/
public interface PageableRowSet {
/**
* Constants for getRecords map keys.
*/
String PAGE = "Page";
String CURSOR = "Cursor";
/**
* List the column names of the result set.
*
* @return String[] An array of the column names as strings, as ordered
* by the result set provider's column number assignment.
*/
String[] getColumnNames() throws SQLException;
/**
* Use this method to get a subset of records.
* A map is returned with two fields, the first being the
* row number the data page started from, and the second
* being the array of arrays for the actual data page.
*
* @param startIndex the start index of the records
* @param count the total count
* @return Map Contains two fields, the page's row index and the actual data array.
*/
Map getRecords(int startIndex, int count) throws SQLException;
/**
* Get the total number of rows in the result set
*
* @return int The total number of rows in the result set.
*/
int getRowCount();
/**
* If this function returns a number >= the total number of records in the recordset,
* then the recordset should be simply returned to the client in full. However,
* if it is < the total size, then this object itself is saved in Session data,
* and tagged with a unique ID.
*
* @return int the initial download count
*/
int getInitialDownloadCount();
/**
* Get the paged result ID.
*
* @return String This paged result's (universally unique) id.
*/
String getID();
/**
* Get the name of the service that manages the pages
*
* @return String The name of the service that will manage this paged result.
*/
String getServiceName();
/**
* Set the name of the service that manages the pages.
*
* @param serviceName Update the name of the service that manages the pages for this query.
*/
void setServicename(String serviceName);
}