Coverage Report - com.buckosoft.fibs.BuckoFIBS.db.Database
 
Classes in this File Line Coverage Branch Coverage Complexity
Database
N/A
N/A
1
 
 1  
 /******************************************************************************
 2  
  * Database.java - The API into the BuckoFIBS database. 
 3  
  * $Id$
 4  
  * 
 5  
  * BuckoFIBS - Backgammon by BuckoSoft
 6  
  * Copyright© 2009,2010 - Dick Balaska - BuckoSoft, Corp.
 7  
  * 
 8  
  * $Log$
 9  
  * Revision 1.5  2011/01/01 06:11:04  dick
 10  
  * Javadoc.
 11  
  *
 12  
  * Revision 1.4  2010/12/31 05:29:25  dick
 13  
  * Add support for reading and writing GroupOfPlayers.
 14  
  *
 15  
  * Revision 1.3  2010/03/03 13:12:21  inim
 16  
  * Replaced (c) sign in comment mangled by CVS default encoding back to UTF-8
 17  
  *
 18  
  * Revision 1.2  2010/03/03 12:19:48  inim
 19  
  * Moved source to UTF8 encoding from CP1252 encoding. To this end all source files' (c) message was updated to "Copyright© 2009,2010 - Dick Balaska - BuckoSoft, Corp.". This replaces the (c) sign to UTF8, and adds the new year 2010.
 20  
  *
 21  
  * Revision 1.1  2010/02/04 05:57:53  inim
 22  
  * Mavenized project folder layout
 23  
  *
 24  
  * Revision 1.5  2010/01/29 23:07:08  dick
 25  
  * Remove aborted RatingGraphConfig, it's a properties object.
 26  
  *
 27  
  * Revision 1.4  2010/01/27 02:09:37  dick
 28  
  * Preliminary RatingGraphConfig work.
 29  
  *
 30  
  * Revision 1.3  2009/03/04 19:01:58  dick
 31  
  * Add getFinishedMatches(pid).
 32  
  *
 33  
  * Revision 1.2  2009/02/21 18:00:01  dick
 34  
  * Add getAllRatingsByDate()
 35  
  *
 36  
  * Revision 1.1  2009/02/20 10:23:04  dick
 37  
  * The API into the BuckoFIBS database.
 38  
  *
 39  
  */
 40  
 
 41  
 /* 
 42  
  * This program is free software: you can redistribute it and/or modify
 43  
  * it under the terms of the GNU General Public License as published by
 44  
  * the Free Software Foundation, either version 3 of the License, or
 45  
  * (at your option) any later version.
 46  
  *
 47  
  * This program is distributed in the hope that it will be useful,
 48  
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 49  
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 50  
  * GNU General Public License for more details.
 51  
  *
 52  
  * You should have received a copy of the GNU General Public License
 53  
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 54  
  *
 55  
  * The Original Code is BuckoFIBS, <http://www.buckosoft.com/BuckoFIBS/>.
 56  
  * The Initial Developer of the Original Code is Dick Balaska and BuckoSoft, Corp.
 57  
  */
 58  
 package com.buckosoft.fibs.BuckoFIBS.db;
 59  
 
 60  
 import java.util.List;
 61  
 
 62  
 import com.buckosoft.fibs.domain.FinishedMatch;
 63  
 import com.buckosoft.fibs.domain.GroupOfPlayers;
 64  
 import com.buckosoft.fibs.domain.Player;
 65  
 
 66  
 /** The API into the BuckoFIBS database.
 67  
  * @author Dick Balaska
 68  
  * @since 2009/02/18
 69  
  * @version $Revision$ <br> $Date$
 70  
  * @see <a href="http://cvs.buckosoft.com/Projects/BuckoFIBS/BuckoFIBS/src/main/java/com/buckosoft/fibs/BuckoFIBS/db/Database.java">cvs Database.java</a>
 71  
  */
 72  
 public interface Database {
 73  
 
 74  
         /** Set the active Profile.  We deal with only one active profile at a time.
 75  
          * @param activeProfile Which profileId the user logged in as.
 76  
          */
 77  
         void setActiveProfile(int activeProfile);
 78  
 
 79  
         /** Write this player to the database
 80  
          * @param player The player to write.
 81  
          */
 82  
         void        store(Player player);
 83  
 
 84  
         /** Find this player based on his id
 85  
          * @param id The player id to query
 86  
          * @return The Player with this id or null if not found
 87  
          */
 88  
         Player        getPlayer(int id);
 89  
 
 90  
         /** Find this Player based on his name
 91  
          * @param name The Player name to query
 92  
          * @return The Player with this name or null if not found
 93  
          */
 94  
         Player        getPlayer(String name);
 95  
         
 96  
         /** Store this FinishedMatch to the database
 97  
          * @param finishedMatch the match we just finished
 98  
          */
 99  
         void store(FinishedMatch finishedMatch);
 100  
         
 101  
         /** Return an array of your ratings ordered by date.
 102  
          * @param actvieProfile which user are you currently playing as.
 103  
          * @return your ratings
 104  
          */
 105  
         double[] getAllRatingsByDate();
 106  
         
 107  
         /** Update the opponent with the data that we have.
 108  
          * This includes his local id and win/loss record.
 109  
          * @param p The Player to update
 110  
          */
 111  
         void updateOpponent(Player p);
 112  
 
 113  
         /** Get a List of matches that you have played against this player.
 114  
          * @param pid The playerid to query.
 115  
          * @return The List of FinishedMatches.  An empty List if no matches found.
 116  
          */
 117  
         List<FinishedMatch>        getFinishedMatches(int pid);
 118  
         
 119  
         /** Get all of the GroupOfPlayers
 120  
          * @return The persistent GroupOfPlayers
 121  
          */
 122  
         List<GroupOfPlayers>        getGroupsOfPlayers();
 123  
         
 124  
         /** Store all of the GroupOfPlayers.
 125  
          * Note that these objects make use of the {@link GroupOfPlayers}'s dirty flag to save disk accesses.
 126  
          * @param groupList The master list
 127  
          */
 128  
         void store(List<GroupOfPlayers> groupList);
 129  
         
 130  
 }