001package com.avaje.ebean;
002
003import java.util.List;
004import java.util.concurrent.Future;
005
006/**
007 * The SqlFutureList represents the result of a background SQL query execution.
008 * 
009 * <p>
010 * It extends the java.util.concurrent.Future.
011 * </p>
012 * 
013 * <pre class="code">
014 *  // create a query
015 * String sql = ... ;
016 * SqlQuery sqlQuery = Ebean.createSqlQuery(sql);
017 * 
018 *  // execute the query in a background thread
019 * SqlFutureList sqlFuture = sqlQuery.findFutureList();
020 * 
021 *  // do something else ... we will sleep
022 * Thread.sleep(3000);
023 * System.out.println("end of sleep");
024 * 
025 * if (!futureList.isDone()){
026 *      // we can cancel the query execution
027 *      futureList.cancel(true);
028 * }
029 * 
030 * System.out.println("and... done:"+futureList.isDone());
031 * 
032 * if (!futureList.isCancelled()){
033 *      // wait for the query to finish and return the list
034 *      List&lt;SqlRow&gt; list = futureList.get();
035 *      System.out.println("list:"+list);
036 * }
037 * 
038 * </pre>
039 * 
040 * @author rob
041 * 
042 */
043public interface SqlFutureList extends Future<List<SqlRow>> {
044
045  SqlQuery getQuery();
046
047}